aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/net
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2015-09-15 00:56:02 +0900
committerKazuki Yamaguchi <k@rhe.jp>2015-09-15 00:56:02 +0900
commit7c4deb7a9109a277f95066ac40af1d96f8f410ec (patch)
tree396f8bf3e7b7a4b458fffc503e372a8544123d22 /app/src/main/java/net
parent93b315a3ac7536b007e385bba4434bbda9410de8 (diff)
downloadSmileEssence-7c4deb7a9109a277f95066ac40af1d96f8f410ec.tar.gz
Preferences まわりをリファクタ
Diffstat (limited to 'app/src/main/java/net')
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/Application.java18
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/activity/EditCommandActivity.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/activity/EditTabActivity.java15
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.java47
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/command/CommandOpenSearch.java3
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/command/CommandSearchOnTwitter.java3
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/entity/DirectMessage.java10
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/entity/Tweet.java10
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/preference/InternalPreferenceHelper.java (renamed from app/src/main/java/net/lacolaco/smileessence/preference/AppPreferenceHelper.java)19
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/preference/SharedPreferenceHelper.java120
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/preference/UserPreferenceHelper.java96
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/twitter/UserStreamListener.java3
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/twitter/task/DirectMessagesTask.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/twitter/task/HomeTimelineTask.java5
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/twitter/util/TwitterUtils.java8
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/util/Function.java18
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/util/ListUtils.java14
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/PostFragment.java5
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/SettingFragment.java15
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/UserListFragment.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/adapter/CustomListAdapter.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/ConfirmDialogFragment.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java5
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/viewmodel/MessageViewModel.java5
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/viewmodel/StatusViewModel.java9
25 files changed, 191 insertions, 247 deletions
diff --git a/app/src/main/java/net/lacolaco/smileessence/Application.java b/app/src/main/java/net/lacolaco/smileessence/Application.java
index 20e6f7aa..3fdbad88 100644
--- a/app/src/main/java/net/lacolaco/smileessence/Application.java
+++ b/app/src/main/java/net/lacolaco/smileessence/Application.java
@@ -24,11 +24,28 @@
package net.lacolaco.smileessence;
+import android.content.Context;
+
public class Application extends com.activeandroid.app.Application {
// ------------------------------ FIELDS ------------------------------
private int themeIndex;
+ private static Context context;
+
+ public static Context getContext() {
+ if (context == null) {
+ throw new IllegalStateException("Application is not initialized");
+ }
+ return context;
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ // onCreate は一度しか呼ばれないはずだから安全なはず
+ context = getApplicationContext();
+ }
// --------------------- GETTER / SETTER METHODS ---------------------
@@ -39,4 +56,5 @@ public class Application extends com.activeandroid.app.Application {
public void setThemeIndex(int themeIndex) {
this.themeIndex = themeIndex;
}
+
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/EditCommandActivity.java b/app/src/main/java/net/lacolaco/smileessence/activity/EditCommandActivity.java
index 62bc24eb..13c21d0f 100644
--- a/app/src/main/java/net/lacolaco/smileessence/activity/EditCommandActivity.java
+++ b/app/src/main/java/net/lacolaco/smileessence/activity/EditCommandActivity.java
@@ -39,7 +39,6 @@ import net.lacolaco.smileessence.command.status.StatusCommand;
import net.lacolaco.smileessence.command.user.UserCommand;
import net.lacolaco.smileessence.entity.CommandSetting;
import net.lacolaco.smileessence.logging.Logger;
-import net.lacolaco.smileessence.preference.UserPreferenceHelper;
import net.lacolaco.smileessence.util.Themes;
import net.lacolaco.smileessence.view.adapter.CustomListAdapter;
import net.lacolaco.smileessence.viewmodel.CheckBoxModel;
@@ -87,7 +86,6 @@ public class EditCommandActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
- UserPreferenceHelper userPreferenceHelper = new UserPreferenceHelper(this);
setTheme(Themes.getTheme(((Application) getApplication()).getThemeIndex()));
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_edit_list);
diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/EditTabActivity.java b/app/src/main/java/net/lacolaco/smileessence/activity/EditTabActivity.java
index 8145ae7f..bdce51b9 100644
--- a/app/src/main/java/net/lacolaco/smileessence/activity/EditTabActivity.java
+++ b/app/src/main/java/net/lacolaco/smileessence/activity/EditTabActivity.java
@@ -90,15 +90,10 @@ public class EditTabActivity extends Activity {
return (MainActivity) getParent();
}
- private UserPreferenceHelper getPreference() {
- return new UserPreferenceHelper(this);
- }
-
// ------------------------ OVERRIDE METHODS ------------------------
@Override
protected void onCreate(Bundle savedInstanceState) {
- UserPreferenceHelper userPreferenceHelper = getPreference();
setTheme(Themes.getTheme(((Application) getApplication()).getThemeIndex()));
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_edit_list);
@@ -135,11 +130,11 @@ public class EditTabActivity extends Activity {
}
private int getPosition(int key, int defaultValue) {
- return Integer.parseInt(getPreference().getValue(key, String.valueOf(defaultValue)));
+ return UserPreferenceHelper.getInstance().get(key, defaultValue);
}
private boolean getVisibility(int key) {
- return getPreference().getValue(key, true);
+ return UserPreferenceHelper.getInstance().get(key, true);
}
private void initializeViews() {
@@ -150,11 +145,7 @@ public class EditTabActivity extends Activity {
adapter.update();
}
- private void putPosition(int key, int value) {
- getPreference().putValue(key, String.valueOf(value));
- }
-
private void putVisibility(int key, boolean value) {
- getPreference().putValue(key, value);
+ UserPreferenceHelper.getInstance().set(key, value);
}
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.java b/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.java
index 8d8bd695..5452051c 100644
--- a/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.java
+++ b/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.java
@@ -32,7 +32,6 @@ import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v4.view.ViewPager;
-import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
@@ -50,7 +49,7 @@ import net.lacolaco.smileessence.entity.User;
import net.lacolaco.smileessence.logging.Logger;
import net.lacolaco.smileessence.notification.NotificationType;
import net.lacolaco.smileessence.notification.Notificator;
-import net.lacolaco.smileessence.preference.AppPreferenceHelper;
+import net.lacolaco.smileessence.preference.InternalPreferenceHelper;
import net.lacolaco.smileessence.preference.UserPreferenceHelper;
import net.lacolaco.smileessence.twitter.*;
import net.lacolaco.smileessence.twitter.UserStreamListener;
@@ -69,9 +68,6 @@ public class MainActivity extends Activity {
public static final int REQUEST_OAUTH = 10;
public static final int REQUEST_GET_PICTURE_FROM_GALLERY = 11;
public static final int REQUEST_GET_PICTURE_FROM_CAMERA = 12;
- private static final String KEY_LAST_USED_SEARCH_QUERY = "lastUsedSearchQuery";
- private static final String KEY_LAST_USED_ACCOUNT_ID = "lastUsedAccountID";
- private static final String KEY_LAST_USER_LIST = "lastUsedUserList";
private ViewPager viewPager;
private PageListAdapter pagerAdapter;
private Account currentAccount;
@@ -81,10 +77,6 @@ public class MainActivity extends Activity {
// --------------------- GETTER / SETTER METHODS ---------------------
- public AppPreferenceHelper getAppPreferenceHelper() {
- return new AppPreferenceHelper(this);
- }
-
public Uri getCameraTempFilePath() {
return cameraTempFilePath;
}
@@ -102,36 +94,31 @@ public class MainActivity extends Activity {
}
public String getLastSearch() {
- return getAppPreferenceHelper().getValue(KEY_LAST_USED_SEARCH_QUERY, "");
+ return InternalPreferenceHelper.getInstance().get(R.string.key_last_used_search_query, "");
}
public void setLastSearch(String query) {
- getAppPreferenceHelper().putValue(KEY_LAST_USED_SEARCH_QUERY, query);
+ InternalPreferenceHelper.getInstance().set(R.string.key_last_used_search_query, query);
}
private long getLastUsedAccountID() {
- String id = getAppPreferenceHelper().getValue(KEY_LAST_USED_ACCOUNT_ID, "");
- if (TextUtils.isEmpty(id)) {
- return -1;
- } else {
- return Long.parseLong(id);
- }
+ return InternalPreferenceHelper.getInstance().get(R.string.key_last_used_account_id, -1L);
}
private void setLastUsedAccountID(Account account) {
- getAppPreferenceHelper().putValue(KEY_LAST_USED_ACCOUNT_ID, account.getId());
+ InternalPreferenceHelper.getInstance().set(R.string.key_last_used_account_id, account.getId());
}
public String getLastUserList() {
- return getAppPreferenceHelper().getValue(KEY_LAST_USER_LIST, "");
+ return InternalPreferenceHelper.getInstance().get(R.string.key_last_used_user_list, "");
}
- public int getThemeIndex() {
- return ((Application) getApplication()).getThemeIndex();
+ public void setLastUserList(String lastUserList) {
+ InternalPreferenceHelper.getInstance().set(R.string.key_last_used_user_list, lastUserList);
}
- public UserPreferenceHelper getUserPreferenceHelper() {
- return new UserPreferenceHelper(this);
+ public int getThemeIndex() {
+ return ((Application) getApplication()).getThemeIndex();
}
public String getVersion() {
@@ -333,10 +320,6 @@ public class MainActivity extends Activity {
}
}
- public void saveLastUserList(String lastUserList) {
- getAppPreferenceHelper().putValue(KEY_LAST_USER_LIST, lastUserList);
- }
-
public void setSelectedPageIndex(final int position, final boolean smooth) {
new UIHandler() {
@Override
@@ -429,13 +412,13 @@ public class MainActivity extends Activity {
pagerAdapter.addPage(PostFragment.class, getString(R.string.page_name_post), null, false);
pagerAdapter.addPage(HomeFragment.class, getString(R.string.page_name_home), null, false);
pagerAdapter.addPage(MentionsFragment.class, getString(R.string.page_name_mentions), null, false);
- if (getUserPreferenceHelper().getValue(R.string.key_page_history_visibility, true))
+ if (UserPreferenceHelper.getInstance().get(R.string.key_page_history_visibility, true))
pagerAdapter.addPage(HistoryFragment.class, getString(R.string.page_name_history), null, false);
- if (getUserPreferenceHelper().getValue(R.string.key_page_messages_visibility, true))
+ if (UserPreferenceHelper.getInstance().get(R.string.key_page_messages_visibility, true))
pagerAdapter.addPage(MessagesFragment.class, getString(R.string.page_name_messages), null, false);
- if (getUserPreferenceHelper().getValue(R.string.key_page_search_visibility, true))
+ if (UserPreferenceHelper.getInstance().get(R.string.key_page_search_visibility, true))
pagerAdapter.addPage(SearchFragment.class, getString(R.string.page_name_search), null, false);
- if (getUserPreferenceHelper().getValue(R.string.key_page_list_visibility, true))
+ if (UserPreferenceHelper.getInstance().get(R.string.key_page_list_visibility, true))
pagerAdapter.addPage(UserListFragment.class, getString(R.string.page_name_list), null, false);
pagerAdapter.notifyDataSetChanged();
viewPager.setOffscreenPageLimit(pagerAdapter.getCount());
@@ -475,7 +458,7 @@ public class MainActivity extends Activity {
}
private void setTheme() {
- ((Application) getApplication()).setThemeIndex(getUserPreferenceHelper().getValue(R.string.key_setting_theme, 0));
+ ((Application) getApplication()).setThemeIndex(UserPreferenceHelper.getInstance().get(R.string.key_setting_theme, 0));
setTheme(Themes.getTheme(getThemeIndex()));
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenSearch.java b/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenSearch.java
index 7ddcc362..8dc06e41 100644
--- a/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenSearch.java
+++ b/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenSearch.java
@@ -29,6 +29,7 @@ import android.app.Activity;
import net.lacolaco.smileessence.R;
import net.lacolaco.smileessence.activity.MainActivity;
import net.lacolaco.smileessence.entity.SearchQuery;
+import net.lacolaco.smileessence.preference.UserPreferenceHelper;
public class CommandOpenSearch extends Command {
@@ -56,7 +57,7 @@ public class CommandOpenSearch extends Command {
@Override
public boolean isEnabled() {
- return ((MainActivity) getActivity()).getUserPreferenceHelper().getValue(R.string.key_page_search_visibility, true);
+ return UserPreferenceHelper.getInstance().get(R.string.key_page_search_visibility, true);
}
// -------------------------- OTHER METHODS --------------------------
diff --git a/app/src/main/java/net/lacolaco/smileessence/command/CommandSearchOnTwitter.java b/app/src/main/java/net/lacolaco/smileessence/command/CommandSearchOnTwitter.java
index 4be2862e..cb037636 100644
--- a/app/src/main/java/net/lacolaco/smileessence/command/CommandSearchOnTwitter.java
+++ b/app/src/main/java/net/lacolaco/smileessence/command/CommandSearchOnTwitter.java
@@ -28,6 +28,7 @@ import android.app.Activity;
import net.lacolaco.smileessence.R;
import net.lacolaco.smileessence.activity.MainActivity;
+import net.lacolaco.smileessence.preference.UserPreferenceHelper;
public class CommandSearchOnTwitter extends Command {
@@ -51,7 +52,7 @@ public class CommandSearchOnTwitter extends Command {
@Override
public boolean isEnabled() {
- return ((MainActivity) getActivity()).getUserPreferenceHelper().getValue(R.string.key_page_search_visibility, true);
+ return UserPreferenceHelper.getInstance().get(R.string.key_page_search_visibility, true);
}
// -------------------------- OTHER METHODS --------------------------
diff --git a/app/src/main/java/net/lacolaco/smileessence/entity/DirectMessage.java b/app/src/main/java/net/lacolaco/smileessence/entity/DirectMessage.java
index dd870836..e5288f29 100644
--- a/app/src/main/java/net/lacolaco/smileessence/entity/DirectMessage.java
+++ b/app/src/main/java/net/lacolaco/smileessence/entity/DirectMessage.java
@@ -1,9 +1,8 @@
package net.lacolaco.smileessence.entity;
-import com.google.common.base.Function;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
-import com.google.common.collect.Lists;
+import net.lacolaco.smileessence.util.ListUtils;
import twitter4j.*;
import java.util.Date;
@@ -33,12 +32,7 @@ public class DirectMessage {
}
public synchronized static List<DirectMessage> fromTwitter(List<twitter4j.DirectMessage> sts) {
- return Lists.transform(sts, new Function<twitter4j.DirectMessage, DirectMessage>() {
- @Override
- public DirectMessage apply(twitter4j.DirectMessage input) {
- return DirectMessage.fromTwitter(input);
- }
- });
+ return ListUtils.map(sts, DirectMessage::fromTwitter);
}
// インスタンス
diff --git a/app/src/main/java/net/lacolaco/smileessence/entity/Tweet.java b/app/src/main/java/net/lacolaco/smileessence/entity/Tweet.java
index effec22f..1d82e268 100644
--- a/app/src/main/java/net/lacolaco/smileessence/entity/Tweet.java
+++ b/app/src/main/java/net/lacolaco/smileessence/entity/Tweet.java
@@ -1,10 +1,9 @@
package net.lacolaco.smileessence.entity;
-import com.google.common.base.Function;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
-import com.google.common.collect.Lists;
import net.lacolaco.smileessence.twitter.util.TwitterUtils;
+import net.lacolaco.smileessence.util.ListUtils;
import twitter4j.*;
import java.util.Date;
@@ -34,12 +33,7 @@ public class Tweet {
}
public synchronized static List<Tweet> fromTwitter(List<Status> sts) {
- return Lists.transform(sts, new Function<Status, Tweet>() {
- @Override
- public Tweet apply(twitter4j.Status input) {
- return Tweet.fromTwitter(input);
- }
- });
+ return ListUtils.map(sts, Tweet::fromTwitter);
}
// インスタンス
diff --git a/app/src/main/java/net/lacolaco/smileessence/preference/AppPreferenceHelper.java b/app/src/main/java/net/lacolaco/smileessence/preference/InternalPreferenceHelper.java
index a5dd9b9d..a99d7639 100644
--- a/app/src/main/java/net/lacolaco/smileessence/preference/AppPreferenceHelper.java
+++ b/app/src/main/java/net/lacolaco/smileessence/preference/InternalPreferenceHelper.java
@@ -25,16 +25,29 @@
package net.lacolaco.smileessence.preference;
import android.content.Context;
+import android.content.SharedPreferences;
+import net.lacolaco.smileessence.Application;
-public class AppPreferenceHelper extends SharedPreferenceHelper {
+public class InternalPreferenceHelper extends SharedPreferenceHelper {
// ------------------------------ FIELDS ------------------------------
private static final String FILE_NAME = "AppPreference";
+ private static final InternalPreferenceHelper instance = new InternalPreferenceHelper();
+
+ public static InternalPreferenceHelper getInstance() {
+ return instance;
+ }
+
+ private InternalPreferenceHelper() {
+ }
// --------------------------- CONSTRUCTORS ---------------------------
- public AppPreferenceHelper(Context context) {
- super(context, FILE_NAME);
+ @Override
+ protected SharedPreferences getPreferences() {
+
+ return Application.getContext().getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);
+
}
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/preference/SharedPreferenceHelper.java b/app/src/main/java/net/lacolaco/smileessence/preference/SharedPreferenceHelper.java
index 47d58dfb..51283078 100644
--- a/app/src/main/java/net/lacolaco/smileessence/preference/SharedPreferenceHelper.java
+++ b/app/src/main/java/net/lacolaco/smileessence/preference/SharedPreferenceHelper.java
@@ -24,90 +24,102 @@
package net.lacolaco.smileessence.preference;
-import android.content.Context;
import android.content.SharedPreferences;
+import net.lacolaco.smileessence.Application;
import java.util.Set;
-public class SharedPreferenceHelper {
-
- // ------------------------------ FIELDS ------------------------------
-
- protected final Context context;
- protected final String fileName;
-
- // --------------------------- CONSTRUCTORS ---------------------------
-
- public SharedPreferenceHelper(Context context, String fileName) {
- this.context = context;
- this.fileName = fileName;
- }
-
+public abstract class SharedPreferenceHelper {
// --------------------- GETTER / SETTER METHODS ---------------------
- protected SharedPreferences getPref() {
- return context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
- }
+ protected abstract SharedPreferences getPreferences();
// -------------------------- OTHER METHODS --------------------------
- public boolean getValue(String key, boolean defaultValue) {
- return getPref().getBoolean(key, defaultValue);
+ public String get(int key, String defaultValue) {
+ return getPreferences().getString(getString(key), defaultValue);
+ }
+
+ // int, long, float value may be stored in String format (old versions)
+ public int get(int key, int defaultValue) {
+ try {
+ return getPreferences().getInt(getString(key), defaultValue);
+ } catch (ClassCastException ex) {
+ int ret = Integer.parseInt(get(key, String.valueOf(defaultValue)));
+ set(key, ret);
+ return ret;
+ }
}
- public int getValue(String key, int defaultValue) {
- return Integer.valueOf(getPref().getString(key, String.valueOf(defaultValue)));
+ public long get(int key, long defaultValue) {
+ try {
+ return getPreferences().getLong(getString(key), defaultValue);
+ } catch (ClassCastException ex) {
+ long ret = Long.parseLong(get(key, String.valueOf(defaultValue)));
+ set(key, ret);
+ return ret;
+ }
}
- public float getValue(String key, float defaultValue) {
- return Float.valueOf(getPref().getString(key, String.valueOf(defaultValue)));
+ public float get(int key, float defaultValue) {
+ try {
+ return getPreferences().getFloat(getString(key), defaultValue);
+ } catch (ClassCastException ex) {
+ float ret = Float.parseFloat(get(key, String.valueOf(defaultValue)));
+ set(key, ret);
+ return ret;
+ }
}
- public long getValue(String key, long defaultValue) {
- return Long.valueOf(getPref().getString(key, String.valueOf(defaultValue)));
+ public boolean get(int key, boolean defaultValue) {
+ return getPreferences().getBoolean(getString(key), defaultValue);
}
- public String getValue(String key, String defaultValue) {
- return getPref().getString(key, defaultValue);
+ public Set<String> get(int key, Set<String> defaultValue) {
+ return getPreferences().getStringSet(getString(key), defaultValue);
}
- public Set<String> getValue(String key, Set<String> defaultValue) {
- return getPref().getStringSet(key, defaultValue);
+ public boolean set(int key, String value) {
+ return getPreferences().edit()
+ .putString(getString(key), value)
+ .commit();
}
- public boolean putValue(String key, boolean value) {
- SharedPreferences.Editor editor = getPref().edit();
- editor.putBoolean(key, value);
- return editor.commit();
+ public boolean set(int key, int value) {
+ return getPreferences().edit()
+ .putInt(getString(key), value)
+ .commit();
}
- public boolean putValue(String key, int value) {
- SharedPreferences.Editor editor = getPref().edit();
- editor.putString(key, String.valueOf(value));
- return editor.commit();
+ public boolean set(int key, long value) {
+ return getPreferences().edit()
+ .putLong(getString(key), value)
+ .commit();
}
- public boolean putValue(String key, float value) {
- SharedPreferences.Editor editor = getPref().edit();
- editor.putString(key, String.valueOf(value));
- return editor.commit();
+ public boolean set(int key, float value) {
+ return getPreferences().edit()
+ .putFloat(getString(key), value)
+ .commit();
}
- public boolean putValue(String key, long value) {
- SharedPreferences.Editor editor = getPref().edit();
- editor.putString(key, String.valueOf(value));
- return editor.commit();
+ public boolean set(int key, boolean value) {
+ return getPreferences().edit()
+ .putBoolean(getString(key), value)
+ .commit();
}
- public boolean putValue(String key, String value) {
- SharedPreferences.Editor editor = getPref().edit();
- editor.putString(key, value);
- return editor.commit();
+ public boolean set(int key, Set<String> value) {
+ return getPreferences().edit()
+ .putStringSet(getString(key), value)
+ .commit();
}
- public boolean putValue(String key, Set<String> value) {
- SharedPreferences.Editor editor = getPref().edit();
- editor.putStringSet(key, value);
- return editor.commit();
+ private String getString(int resID) {
+ try {
+ return Application.getContext().getString(resID);
+ } catch (Exception e) {
+ return null;
+ }
}
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/preference/UserPreferenceHelper.java b/app/src/main/java/net/lacolaco/smileessence/preference/UserPreferenceHelper.java
index 67c02c37..61420658 100644
--- a/app/src/main/java/net/lacolaco/smileessence/preference/UserPreferenceHelper.java
+++ b/app/src/main/java/net/lacolaco/smileessence/preference/UserPreferenceHelper.java
@@ -27,104 +27,26 @@ package net.lacolaco.smileessence.preference;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
+import net.lacolaco.smileessence.Application;
import java.util.Set;
public class UserPreferenceHelper extends SharedPreferenceHelper {
-
- // ------------------------------ FIELDS ------------------------------
-
- public static final int TEXT_SIZE_MIN = 8;
- public static final int TEXT_SIZE_MAX = 24;
- public static final int TIMELINES_MIN = 1;
- public static final int TIMELINES_MAX = 200;
-
// --------------------------- CONSTRUCTORS ---------------------------
- public UserPreferenceHelper(Context context) {
- super(context, null);
- }
-
- // --------------------- GETTER / SETTER METHODS ---------------------
-
- @Override
- protected SharedPreferences getPref() {
- return PreferenceManager.getDefaultSharedPreferences(context);
- }
-
- // -------------------------- OTHER METHODS --------------------------
-
- public boolean getValue(int keyID, boolean defaultValue) {
- return getString(keyID) != null ? super.getValue(getString(keyID), defaultValue) : defaultValue;
- }
-
- public int getValue(int keyID, int defaultValue) {
- return getString(keyID) != null ? super.getValue(getString(keyID), defaultValue) : defaultValue;
- }
-
- public float getValue(int keyID, float defaultValue) {
- return getString(keyID) != null ? super.getValue(getString(keyID), defaultValue) : defaultValue;
- }
+ private static final UserPreferenceHelper instance = new UserPreferenceHelper();
- public long getValue(int keyID, long defaultValue) {
- return getString(keyID) != null ? super.getValue(getString(keyID), defaultValue) : defaultValue;
+ public static UserPreferenceHelper getInstance() {
+ return instance;
}
- public String getValue(int keyID, String defaultValue) {
- return getString(keyID) != null ? super.getValue(getString(keyID), defaultValue) : defaultValue;
+ private UserPreferenceHelper() {
}
- public Set<String> getValue(int keyID, Set<String> defaultValue) {
- return getString(keyID) != null ? super.getValue(getString(keyID), defaultValue) : defaultValue;
- }
-
- public boolean putValue(int keyID, boolean value) {
- if (getString(keyID) == null) {
- return false;
- }
- return super.putValue(getString(keyID), value);
- }
-
- public boolean putValue(int keyID, int value) {
- if (getString(keyID) == null) {
- return false;
- }
- return super.putValue(getString(keyID), value);
- }
-
- public boolean putValue(int keyID, float value) {
- if (getString(keyID) == null) {
- return false;
- }
- return super.putValue(getString(keyID), value);
- }
-
- public boolean putValue(int keyID, long value) {
- if (getString(keyID) == null) {
- return false;
- }
- return super.putValue(getString(keyID), value);
- }
-
- public boolean putValue(int keyID, String value) {
- if (getString(keyID) == null) {
- return false;
- }
- return super.putValue(getString(keyID), value);
- }
-
- public boolean putValue(int keyID, Set<String> value) {
- if (getString(keyID) == null) {
- return false;
- }
- return super.putValue(getString(keyID), value);
- }
+ // --------------------- GETTER / SETTER METHODS ---------------------
- protected String getString(int resID) {
- try {
- return context.getString(resID);
- } catch (Exception e) {
- return null;
- }
+ @Override
+ protected SharedPreferences getPreferences() {
+ return PreferenceManager.getDefaultSharedPreferences(Application.getContext());
}
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/UserStreamListener.java b/app/src/main/java/net/lacolaco/smileessence/twitter/UserStreamListener.java
index c4806a06..6a8936f3 100644
--- a/app/src/main/java/net/lacolaco/smileessence/twitter/UserStreamListener.java
+++ b/app/src/main/java/net/lacolaco/smileessence/twitter/UserStreamListener.java
@@ -32,6 +32,7 @@ import net.lacolaco.smileessence.entity.Tweet;
import net.lacolaco.smileessence.entity.User;
import net.lacolaco.smileessence.logging.Logger;
import net.lacolaco.smileessence.notification.Notificator;
+import net.lacolaco.smileessence.preference.UserPreferenceHelper;
import net.lacolaco.smileessence.view.adapter.CustomListAdapter;
import net.lacolaco.smileessence.view.adapter.EventListAdapter;
import net.lacolaco.smileessence.view.adapter.MessageListAdapter;
@@ -165,7 +166,7 @@ public class UserStreamListener implements twitter4j.UserStreamListener, Connect
@Override
public void onUnfavorite(twitter4j.User source, twitter4j.User target, twitter4j.Status unfavoritedStatus) {
Tweet tweet = Tweet.fromTwitter(unfavoritedStatus);
- boolean unfavNoticeEnabled = activity.getUserPreferenceHelper().getValue(R.string.key_setting_notify_on_unfavorited, true);
+ boolean unfavNoticeEnabled = UserPreferenceHelper.getInstance().get(R.string.key_setting_notify_on_unfavorited, true);
if (isMe(User.fromTwitter(target)) && unfavNoticeEnabled) {
addToHistory(new EventViewModel(EnumEvent.UNFAVORITED, User.fromTwitter(source), tweet));
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/DirectMessagesTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/DirectMessagesTask.java
index 8590c935..66ff7e1f 100644
--- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/DirectMessagesTask.java
+++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/DirectMessagesTask.java
@@ -24,8 +24,6 @@
package net.lacolaco.smileessence.twitter.task;
-import android.app.Activity;
-
import net.lacolaco.smileessence.R;
import net.lacolaco.smileessence.entity.DirectMessage;
import net.lacolaco.smileessence.logging.Logger;
diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/HomeTimelineTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/HomeTimelineTask.java
index a57fbeaa..3f227965 100644
--- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/HomeTimelineTask.java
+++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/HomeTimelineTask.java
@@ -24,12 +24,7 @@
package net.lacolaco.smileessence.twitter.task;
-import android.app.Activity;
-
-import com.google.common.base.Function;
-import com.google.common.collect.Lists;
import net.lacolaco.smileessence.R;
-import net.lacolaco.smileessence.data.FavoriteCache;
import net.lacolaco.smileessence.entity.Tweet;
import net.lacolaco.smileessence.logging.Logger;
import net.lacolaco.smileessence.notification.NotificationType;
diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/util/TwitterUtils.java b/app/src/main/java/net/lacolaco/smileessence/twitter/util/TwitterUtils.java
index b2557094..1886508c 100644
--- a/app/src/main/java/net/lacolaco/smileessence/twitter/util/TwitterUtils.java
+++ b/app/src/main/java/net/lacolaco/smileessence/twitter/util/TwitterUtils.java
@@ -30,15 +30,13 @@ import com.twitter.Validator;
import net.lacolaco.smileessence.R;
import net.lacolaco.smileessence.activity.MainActivity;
-import net.lacolaco.smileessence.entity.Account;
-import net.lacolaco.smileessence.entity.Tweet;
-import net.lacolaco.smileessence.entity.User;
+import net.lacolaco.smileessence.entity.*;
+import net.lacolaco.smileessence.preference.UserPreferenceHelper;
import net.lacolaco.smileessence.twitter.task.ShowDirectMessageTask;
import net.lacolaco.smileessence.twitter.task.ShowStatusTask;
import net.lacolaco.smileessence.twitter.task.ShowUserTask;
import net.lacolaco.smileessence.twitter.task.TwitterTask;
-import net.lacolaco.smileessence.entity.DirectMessage;
import twitter4j.Paging;
import twitter4j.URLEntity;
import twitter4j.UserMentionEntity;
@@ -222,7 +220,7 @@ public class TwitterUtils {
}
public static int getPagingCount(MainActivity activity) {
- return activity.getUserPreferenceHelper().getValue(R.string.key_setting_timelines, 20);
+ return UserPreferenceHelper.getInstance().get(R.string.key_setting_timelines, 20);
}
public static String getMessageSummary(DirectMessage message) {
diff --git a/app/src/main/java/net/lacolaco/smileessence/util/Function.java b/app/src/main/java/net/lacolaco/smileessence/util/Function.java
new file mode 100644
index 00000000..82ea8c03
--- /dev/null
+++ b/app/src/main/java/net/lacolaco/smileessence/util/Function.java
@@ -0,0 +1,18 @@
+package net.lacolaco.smileessence.util;
+
+import java.util.Objects;
+
+public interface Function<T, R> {
+ R apply(T t);
+ /*default <V> Function<V, R> compose(Function<? super V, ? extends T> before) {
+ Objects.requireNonNull(before);
+ return (V v) -> apply(before.apply(v));
+ }
+ default <V> Function<T, V> andThen(Function<? super R, ? extends V> after) {
+ Objects.requireNonNull(after);
+ return (T t) -> after.apply(apply(t));
+ }
+ static <T> Function<T, T> identity() {
+ return t -> t;
+ }*/
+}
diff --git a/app/src/main/java/net/lacolaco/smileessence/util/ListUtils.java b/app/src/main/java/net/lacolaco/smileessence/util/ListUtils.java
new file mode 100644
index 00000000..6ebc7579
--- /dev/null
+++ b/app/src/main/java/net/lacolaco/smileessence/util/ListUtils.java
@@ -0,0 +1,14 @@
+package net.lacolaco.smileessence.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ListUtils {
+ public static <T, R> List<R> map(List<T> orig, Function<T, R> func) {
+ List<R> result = new ArrayList<>(orig.size());
+ for (T item : orig) {
+ result.add(func.apply(item));
+ }
+ return result;
+ }
+}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/PostFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/PostFragment.java
index a4d8ddb1..2fb4ea9e 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/PostFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/PostFragment.java
@@ -230,13 +230,12 @@ public class PostFragment extends PageFragment implements TextWatcher, View.OnFo
Logger.debug("onCreateView");
MainActivity activity = (MainActivity) getActivity();
PostState.getState().setListener(this);
- UserPreferenceHelper preferenceHelper = new UserPreferenceHelper(activity);
View v = inflater.inflate(R.layout.fragment_post, null);
buttonTweet = getTweetButton(v);
buttonTweet.setOnClickListener(this);
editText = getEditText(v);
textViewCount = getCountTextView(v);
- int textSize = preferenceHelper.getValue(R.string.key_setting_text_size, 10);
+ int textSize = UserPreferenceHelper.getInstance().get(R.string.key_setting_text_size, 10);
editText.addTextChangedListener(this);
editText.setOnFocusChangeListener(this);
editText.setTextSize(textSize + 4);
@@ -376,7 +375,7 @@ public class PostFragment extends PageFragment implements TextWatcher, View.OnFo
PostState state = PostState.getState();
StatusUpdate statusUpdate = state.toStatusUpdate();
MainActivity mainActivity = (MainActivity) getActivity();
- boolean resizeFlag = new UserPreferenceHelper(mainActivity).getValue(R.string.key_setting_resize_post_image, false);
+ boolean resizeFlag = UserPreferenceHelper.getInstance().get(R.string.key_setting_resize_post_image, false);
TweetTask tweetTask = new TweetTask(mainActivity.getCurrentAccount().getTwitter(), statusUpdate, state.getMediaFilePath(), resizeFlag);
tweetTask.execute();
PostState.newState().beginTransaction().commit();
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/SettingFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/SettingFragment.java
index e3f813c2..894461a0 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/SettingFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/SettingFragment.java
@@ -37,7 +37,6 @@ import net.lacolaco.smileessence.R;
import net.lacolaco.smileessence.activity.LicenseActivity;
import net.lacolaco.smileessence.entity.Account;
import net.lacolaco.smileessence.notification.Notificator;
-import net.lacolaco.smileessence.preference.UserPreferenceHelper;
import net.lacolaco.smileessence.view.dialog.ConfirmDialogFragment;
import net.lacolaco.smileessence.view.dialog.SimpleDialogFragment;
@@ -45,6 +44,10 @@ import static android.content.SharedPreferences.OnSharedPreferenceChangeListener
public class SettingFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener,
Preference.OnPreferenceChangeListener, Preference.OnPreferenceClickListener {
+ private static final int TEXT_SIZE_MIN = 8;
+ private static final int TEXT_SIZE_MAX = 24;
+ private static final int TIMELINES_MIN = 1;
+ private static final int TIMELINES_MAX = 200;
// ------------------------ INTERFACE METHODS ------------------------
@@ -57,7 +60,7 @@ public class SettingFragment extends PreferenceFragment implements OnSharedPrefe
if (preference.getKey().contentEquals(getString(R.string.key_setting_text_size))) {
if (TextUtils.isDigitsOnly(newValueStr)) {
int newTextSize = Integer.parseInt(newValueStr);
- if (UserPreferenceHelper.TEXT_SIZE_MIN <= newTextSize && newTextSize <= UserPreferenceHelper.TEXT_SIZE_MAX) {
+ if (TEXT_SIZE_MIN <= newTextSize && newTextSize <= TEXT_SIZE_MAX) {
return true;
}
Notificator.getInstance().publish(R.string.error_setting_text_size_range);
@@ -68,7 +71,7 @@ public class SettingFragment extends PreferenceFragment implements OnSharedPrefe
} else if (preference.getKey().contentEquals(getString(R.string.key_setting_timelines))) {
if (TextUtils.isDigitsOnly(newValueStr)) {
int newTextSize = Integer.parseInt(newValueStr);
- if (UserPreferenceHelper.TIMELINES_MIN <= newTextSize && newTextSize <= UserPreferenceHelper.TIMELINES_MAX) {
+ if (TIMELINES_MIN <= newTextSize && newTextSize <= TIMELINES_MAX) {
return true;
}
Notificator.getInstance().publish(R.string.error_setting_timelines_range);
@@ -98,7 +101,7 @@ public class SettingFragment extends PreferenceFragment implements OnSharedPrefe
public void run() {
Notificator.getInstance().publish(R.string.notice_cleared_account);
Account.deleteAll();
- finishActivity();
+ getActivity().finish();
}
}, false);
} else if (key.contentEquals(getString(R.string.key_setting_licenses))) {
@@ -159,10 +162,6 @@ public class SettingFragment extends PreferenceFragment implements OnSharedPrefe
return findPreference(getString(preferenceResID));
}
- private void finishActivity() {
- getActivity().finish();
- }
-
private void openLicenseActivity() {
Intent intent = new Intent(getActivity(), LicenseActivity.class);
getActivity().startActivity(intent);
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/UserListFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/UserListFragment.java
index 9e8fd65b..cd186dca 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/UserListFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/UserListFragment.java
@@ -219,7 +219,7 @@ public class UserListFragment extends CustomListFragment<UserListListAdapter> im
}
public void startUserList(Twitter twitter, String listFullName) {
- getMainActivity().saveLastUserList(listFullName);
+ getMainActivity().setLastUserList(listFullName);
final UserListListAdapter adapter = getAdapter();
adapter.setListFullName(listFullName);
adapter.clear();
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/adapter/CustomListAdapter.java b/app/src/main/java/net/lacolaco/smileessence/view/adapter/CustomListAdapter.java
index 99146758..76824e45 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/adapter/CustomListAdapter.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/adapter/CustomListAdapter.java
@@ -29,8 +29,6 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
-import com.google.common.collect.Iterables;
-
import net.lacolaco.smileessence.util.UIHandler;
import net.lacolaco.smileessence.viewmodel.IViewModel;
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/ConfirmDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/ConfirmDialogFragment.java
index f1f1f126..f86f0a5f 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/ConfirmDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/ConfirmDialogFragment.java
@@ -59,7 +59,7 @@ public abstract class ConfirmDialogFragment extends StackableDialogFragment {
}
public static void show(Activity activity, String text, final Runnable onOK, final Runnable onCancel, boolean ignorable) {
- boolean confirm = new UserPreferenceHelper(activity).getValue(R.string.key_setting_show_confirm_dialog, true);
+ boolean confirm = UserPreferenceHelper.getInstance().get(R.string.key_setting_show_confirm_dialog, true);
if (!confirm && ignorable) {
onOK.run();
return;
diff --git a/app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java b/app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java
index 0eb78e11..4391a76a 100644
--- a/app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java
+++ b/app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java
@@ -138,9 +138,8 @@ public class EventViewModel implements IViewModel {
if (convertedView == null) {
convertedView = inflater.inflate(R.layout.list_item_status, null);
}
- UserPreferenceHelper preferenceHelper = new UserPreferenceHelper(activity);
- int textSize = preferenceHelper.getValue(R.string.key_setting_text_size, 10);
- int nameStyle = preferenceHelper.getValue(R.string.key_setting_namestyle, 0);
+ int textSize = UserPreferenceHelper.getInstance().get(R.string.key_setting_text_size, 10);
+ int nameStyle = UserPreferenceHelper.getInstance().get(R.string.key_setting_namestyle, 0);
int theme = ((MainActivity) activity).getThemeIndex();
NetworkImageView icon = (NetworkImageView) convertedView.findViewById(R.id.imageview_status_icon);
ImageCache.getInstance().setImageToView(getIconURL(), icon);
diff --git a/app/src/main/java/net/lacolaco/smileessence/viewmodel/MessageViewModel.java b/app/src/main/java/net/lacolaco/smileessence/viewmodel/MessageViewModel.java
index 7930e410..b6c640b5 100644
--- a/app/src/main/java/net/lacolaco/smileessence/viewmodel/MessageViewModel.java
+++ b/app/src/main/java/net/lacolaco/smileessence/viewmodel/MessageViewModel.java
@@ -91,9 +91,8 @@ public class MessageViewModel implements IViewModel {
if (convertedView == null) {
convertedView = inflater.inflate(R.layout.list_item_status, null);
}
- UserPreferenceHelper preferenceHelper = new UserPreferenceHelper(activity);
- int textSize = preferenceHelper.getValue(R.string.key_setting_text_size, 10);
- int nameStyle = preferenceHelper.getValue(R.string.key_setting_namestyle, 0);
+ int textSize = UserPreferenceHelper.getInstance().get(R.string.key_setting_text_size, 10);
+ int nameStyle = UserPreferenceHelper.getInstance().get(R.string.key_setting_namestyle, 0);
int theme = ((MainActivity) activity).getThemeIndex();
NetworkImageView icon = (NetworkImageView) convertedView.findViewById(R.id.imageview_status_icon);
ImageCache.getInstance().setImageToView(directMessage.getSender().getProfileImageUrl(), icon);
diff --git a/app/src/main/java/net/lacolaco/smileessence/viewmodel/StatusViewModel.java b/app/src/main/java/net/lacolaco/smileessence/viewmodel/StatusViewModel.java
index 1013b1a9..2385019d 100644
--- a/app/src/main/java/net/lacolaco/smileessence/viewmodel/StatusViewModel.java
+++ b/app/src/main/java/net/lacolaco/smileessence/viewmodel/StatusViewModel.java
@@ -147,7 +147,7 @@ public class StatusViewModel implements IViewModel {
@Override
public View getView(final Activity activity, final LayoutInflater inflater, View convertedView) {
- boolean extendStatusURL = new UserPreferenceHelper(activity).getValue(R.string.key_setting_extend_status_url, true);
+ boolean extendStatusURL = UserPreferenceHelper.getInstance().get(R.string.key_setting_extend_status_url, true);
return getView(activity, inflater, convertedView, extendStatusURL);
}
@@ -162,9 +162,8 @@ public class StatusViewModel implements IViewModel {
if (convertedView == null) {
convertedView = inflater.inflate(R.layout.list_item_status, null);
}
- UserPreferenceHelper preferenceHelper = new UserPreferenceHelper(activity);
- int textSize = preferenceHelper.getValue(R.string.key_setting_text_size, 10);
- int nameStyle = preferenceHelper.getValue(R.string.key_setting_namestyle, 0);
+ int textSize = UserPreferenceHelper.getInstance().get(R.string.key_setting_text_size, 10);
+ int nameStyle = UserPreferenceHelper.getInstance().get(R.string.key_setting_namestyle, 0);
int theme = ((MainActivity) activity).getThemeIndex();
NetworkImageView icon = (NetworkImageView) convertedView.findViewById(R.id.imageview_status_icon);
ImageCache.getInstance().setImageToView(tweet.getUser().getProfileImageUrl(), icon);
@@ -258,7 +257,7 @@ public class StatusViewModel implements IViewModel {
}
private boolean isReadMorseEnabled(MainActivity activity) {
- return activity.getUserPreferenceHelper().getValue(R.string.key_setting_read_morse, true);
+ return UserPreferenceHelper.getInstance().get(R.string.key_setting_read_morse, true);
}
private void onClick(Activity activity) {