diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2016-09-22 15:10:00 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2016-09-22 15:10:00 +0900 |
commit | 2f4ba0aa001203de6ff80465ae0d7ce990b67b17 (patch) | |
tree | df07d2b6f0054e732b2f36e6ec5845b2cc1caab6 | |
parent | e800f6634ed29f203497fb1849ed7c9273215e02 (diff) | |
download | SmileEssence-2f4ba0aa001203de6ff80465ae0d7ce990b67b17.tar.gz |
fix db
7 files changed, 41 insertions, 87 deletions
diff --git a/.idea/modules/app/app.iml b/.idea/modules/app/app.iml index a236e834..6b68f799 100644 --- a/.idea/modules/app/app.iml +++ b/.idea/modules/app/app.iml @@ -107,10 +107,19 @@ <excludeFolder url="file://$MODULE_DIR$/../../../app/build/intermediates/exploded-aar/de.keyboardsurfer.android.widget/crouton/1.8.5/jars" /> <excludeFolder url="file://$MODULE_DIR$/../../../app/build/intermediates/exploded-aar/io.fabric.sdk.android/fabric/1.3.10/jars" /> <excludeFolder url="file://$MODULE_DIR$/../../../app/build/intermediates/incremental" /> + <excludeFolder url="file://$MODULE_DIR$/../../../app/build/intermediates/incremental-classes" /> + <excludeFolder url="file://$MODULE_DIR$/../../../app/build/intermediates/incremental-runtime-classes" /> + <excludeFolder url="file://$MODULE_DIR$/../../../app/build/intermediates/incremental-verifier" /> + <excludeFolder url="file://$MODULE_DIR$/../../../app/build/intermediates/instant-run-support" /> + <excludeFolder url="file://$MODULE_DIR$/../../../app/build/intermediates/jniLibs" /> <excludeFolder url="file://$MODULE_DIR$/../../../app/build/intermediates/manifests" /> + <excludeFolder url="file://$MODULE_DIR$/../../../app/build/intermediates/reload-dex" /> <excludeFolder url="file://$MODULE_DIR$/../../../app/build/intermediates/res" /> + <excludeFolder url="file://$MODULE_DIR$/../../../app/build/intermediates/restart-dex" /> <excludeFolder url="file://$MODULE_DIR$/../../../app/build/intermediates/rs" /> + <excludeFolder url="file://$MODULE_DIR$/../../../app/build/intermediates/sourceFolderJavaResources" /> <excludeFolder url="file://$MODULE_DIR$/../../../app/build/intermediates/symbols" /> + <excludeFolder url="file://$MODULE_DIR$/../../../app/build/intermediates/transforms" /> <excludeFolder url="file://$MODULE_DIR$/../../../app/build/outputs" /> <excludeFolder url="file://$MODULE_DIR$/../../../app/build/tmp" /> </content> diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/EditExtractionActivity.java b/app/src/main/java/net/lacolaco/smileessence/activity/EditExtractionActivity.java index 833817d2..c53a4e1f 100644 --- a/app/src/main/java/net/lacolaco/smileessence/activity/EditExtractionActivity.java +++ b/app/src/main/java/net/lacolaco/smileessence/activity/EditExtractionActivity.java @@ -44,7 +44,7 @@ import net.lacolaco.smileessence.view.adapter.OrderedCustomListAdapter; import net.lacolaco.smileessence.view.dialog.EditTextDialogFragment; import net.lacolaco.smileessence.viewmodel.IViewModel; -public class EditExtractionActivity extends Activity implements AdapterView.OnItemClickListener, AbsListView.MultiChoiceModeListener { +public class EditExtractionActivity extends Activity implements AbsListView.MultiChoiceModeListener { // ------------------------------ FIELDS ------------------------------ @@ -95,13 +95,6 @@ public class EditExtractionActivity extends Activity implements AdapterView.OnIt public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) { } - // --------------------- Interface OnItemClickListener --------------------- - - @Override - public void onItemClick(AdapterView<?> parent, View view, int position, long id) { - openEditExtractionWordDialog(position); - } - // ------------------------ OVERRIDE METHODS ------------------------ @Override @@ -152,23 +145,6 @@ public class EditExtractionActivity extends Activity implements AdapterView.OnIt updateListView(); } - public void openEditExtractionWordDialog(int position) { - final ExtractionWord extractionWord = adapter.getItem(position).getExtractionWord(); - EditTextDialogFragment dialogFragment = new EditTextDialogFragment() { - @Override - public void onTextInput(String text) { - if (TextUtils.isEmpty(text.trim())) { - return; - } - extractionWord.update(text); - adapter.notifyDataSetChanged(); - updateListView(); - } - }; - dialogFragment.setParams(getString(R.string.dialog_title_edit), extractionWord.getPatternString()); - DialogHelper.showDialog(this, dialogFragment); - } - private void addNewExtractionWord() { EditTextDialogFragment dialogFragment = new EditTextDialogFragment() { @Override @@ -195,7 +171,6 @@ public class EditExtractionActivity extends Activity implements AdapterView.OnIt adapter.update(); listView.setAdapter(adapter); listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); - listView.setOnItemClickListener(this); listView.setMultiChoiceModeListener(this); } @@ -230,7 +205,7 @@ public class EditExtractionActivity extends Activity implements AdapterView.OnIt @Override public long getId() { - return ew.getId(); + return ew.getPatternString().hashCode(); } } } diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/ManageAccountsActivity.java b/app/src/main/java/net/lacolaco/smileessence/activity/ManageAccountsActivity.java index 53cccfa8..6c4cceb4 100644 --- a/app/src/main/java/net/lacolaco/smileessence/activity/ManageAccountsActivity.java +++ b/app/src/main/java/net/lacolaco/smileessence/activity/ManageAccountsActivity.java @@ -92,7 +92,7 @@ public class ManageAccountsActivity extends Activity implements AdapterView.OnIt Account account = adapter.getItem(i); ConfirmDialogFragment.show(this, getString(R.string.dialog_confirm_clear_account, account.getUser().getScreenName()), () -> { adapter.removeAt(i); - Account.unregister(account.getModelId()); + Account.unregister(account.getUserId()); if (account == newAccount) { newAccount = adapter.getItem(0); adapter.notifyDataSetChanged(); @@ -128,7 +128,7 @@ public class ManageAccountsActivity extends Activity implements AdapterView.OnIt if (newAccount != null) { if (newAccount != Application.getInstance().getCurrentAccount()) { Application.getInstance().setCurrentAccount(newAccount); - InternalPreferenceHelper.getInstance().set(R.string.key_last_used_account_id, newAccount.getModelId()); + InternalPreferenceHelper.getInstance().set(R.string.key_last_used_account_id, newAccount.getUserId()); } setResult(RESULT_OK); finish(); @@ -189,7 +189,7 @@ public class ManageAccountsActivity extends Activity implements AdapterView.OnIt @Override public long getItemId(int position) { - return accounts.get(position).getModelId(); + return accounts.get(position).getUserId(); } @Override diff --git a/app/src/main/java/net/lacolaco/smileessence/data/Account.java b/app/src/main/java/net/lacolaco/smileessence/data/Account.java index 1967cd7f..c45a8286 100644 --- a/app/src/main/java/net/lacolaco/smileessence/data/Account.java +++ b/app/src/main/java/net/lacolaco/smileessence/data/Account.java @@ -51,15 +51,13 @@ public class Account { private final Set<Long> muteUserIds = Collections.newSetFromMap(new ConcurrentHashMap<>()); @PrimaryKey - long id; + public long userId; + @Column + public String screenName; @Column public String oauthToken; @Column public String oauthTokenSecret; - @Column - public long userId; - @Column - public String screenName; public Account() { } @@ -89,7 +87,7 @@ public class Account { public static synchronized void load() { cache = new LinkedHashMap<>(); for (Account item : relation().selector()) - cache.put(item.id, item); + cache.put(item.userId, item); } private static Account_Relation relation() { @@ -112,20 +110,17 @@ public class Account { account.oauthToken = token; account.oauthTokenSecret = tokenSecret; - if (account.id == 0) - relation().inserter().execute(account); - else - relation().upserter().execute(account); + relation().upserter().execute(account); - cache.put(account.id, account); + cache.put(account.userId, account); return account; } - public static synchronized Account unregister(long modelId) { - Account account = cache.remove(modelId); + public static synchronized Account unregister(long id) { + Account account = cache.remove(id); if (account != null) { - relation().deleter().idEq(modelId).execute(); + relation().deleter().userIdEq(id).execute(); } return account; } @@ -134,10 +129,6 @@ public class Account { return userId; } - public long getModelId() { - return id; - } - public Twitter getTwitter() { Twitter twitter = new TwitterFactory().getInstance(); twitter.setOAuthAccessToken(new AccessToken(oauthToken, oauthTokenSecret)); diff --git a/app/src/main/java/net/lacolaco/smileessence/data/ExtractionWord.java b/app/src/main/java/net/lacolaco/smileessence/data/ExtractionWord.java index 40c40603..10d0b631 100644 --- a/app/src/main/java/net/lacolaco/smileessence/data/ExtractionWord.java +++ b/app/src/main/java/net/lacolaco/smileessence/data/ExtractionWord.java @@ -34,37 +34,36 @@ import java.util.regex.Pattern; @Table public class ExtractionWord { - private static Map<Long, ExtractionWord> cache; // model id -> Account + private static Set<ExtractionWord> cache; private static final Object mutex = new Object(); private Pattern pattern; @PrimaryKey - long id; - @Column(unique = true, uniqueOnConflict = OnConflict.REPLACE) String patternString; // --------------------- static methods --------------------- public static List<ExtractionWord> cached() { synchronized(mutex) { - return new ArrayList<>(cache.values()); + return new ArrayList<>(cache); } } public static synchronized void load() { synchronized(mutex) { - cache = new LinkedHashMap<>(); OrmaDatabase orma = OrmaHolder.getORMA(); - for (ExtractionWord item : orma.selectFromExtractionWord().toList()) - cache.put(item.id, item); + cache = new HashSet<>(orma.selectFromExtractionWord().toList()); } } + private static ExtractionWord_Relation relation() { + return OrmaHolder.getORMA().relationOfExtractionWord(); + } + public static synchronized ExtractionWord add(String patternString) { ExtractionWord extractionWord = new ExtractionWord(patternString); - OrmaDatabase orma = OrmaHolder.getORMA(); - orma.relationOfExtractionWord().inserter().execute(extractionWord); + relation().upserter().execute(extractionWord); synchronized(mutex) { - cache.put(extractionWord.id, extractionWord); + cache.add(extractionWord); } return extractionWord; } @@ -86,20 +85,7 @@ public class ExtractionWord { } public void remove() { - OrmaDatabase orma = OrmaHolder.getORMA(); - orma.deleteFromExtractionWord().idEq(id); - cache.remove(id); - } - - public void update(String newString) { - patternString = newString; - pattern = Pattern.compile(newString); - - OrmaDatabase orma = OrmaHolder.getORMA(); - orma.updateExtractionWord(); - } - - public long getId() { - return id; + relation().deleter().patternStringEq(patternString).execute(); + cache.remove(this); } } diff --git a/app/src/main/java/net/lacolaco/smileessence/data/SearchQuery.java b/app/src/main/java/net/lacolaco/smileessence/data/SearchQuery.java index 2c26ca5d..83235d31 100644 --- a/app/src/main/java/net/lacolaco/smileessence/data/SearchQuery.java +++ b/app/src/main/java/net/lacolaco/smileessence/data/SearchQuery.java @@ -37,9 +37,6 @@ public class SearchQuery { // ------------------------------ FIELDS ------------------------------ @PrimaryKey - long id; - - @Column(uniqueOnConflict = OnConflict.REPLACE) public String query; // -------------------------- STATIC METHODS -------------------------- @@ -55,19 +52,15 @@ public class SearchQuery { return orma.selectFromSearchQuery().toList(); } - // --------------------------- CONSTRUCTORS --------------------------- - - public static boolean saveIfNotFound(String query) { - OrmaDatabase orma = OrmaHolder.getORMA(); - - orma.insertIntoSearchQuery(new SearchQuery(query)); + private static SearchQuery_Relation relation() { + return OrmaHolder.getORMA().relationOfSearchQuery(); + } - return true; + public static void add(String query) { + relation().upserter().execute(new SearchQuery(query)); } public void delete() { - OrmaDatabase orma = OrmaHolder.getORMA(); - - orma.deleteFromSearchQuery().idEq(id).execute(); + relation().deleter().queryEq(query); } } diff --git a/app/src/main/java/net/lacolaco/smileessence/view/page/SearchFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/page/SearchFragment.java index 03dd0cf3..437d2047 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/page/SearchFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/page/SearchFragment.java @@ -277,7 +277,7 @@ public class SearchFragment extends CustomListFragment<SearchListAdapter> implem if (TextUtils.isEmpty(text)) { Notificator.getInstance().alert(R.string.notice_query_is_empty); } else { - SearchQuery.saveIfNotFound(text); + SearchQuery.add(text); Notificator.getInstance().publish(R.string.notice_query_saved); } } |