Guest User

Untitled

a guest
Jan 19th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.62 KB | None | 0 0
  1. import android.content.Context;
  2. import android.content.SharedPreferences;
  3.  
  4. import com.google.gson.Gson;
  5. import com.google.gson.internal.Primitives;
  6. import com.google.gson.reflect.TypeToken;
  7.  
  8. import org.json.JSONArray;
  9.  
  10. import java.util.List;
  11.  
  12. public class PreferencesHelper {
  13. private static PreferencesHelper instance;
  14. private SharedPreferences prefs;
  15.  
  16. public static PreferencesHelper getInstance() {
  17. return instance;
  18. }
  19.  
  20. private PreferencesHelper(Context context) {
  21. prefs = context.getApplicationContext().getSharedPreferences(context.getString(R.string.app_name), Context.MODE_PRIVATE);
  22. }
  23.  
  24. private PreferencesHelper(Context context, String sharePreferencesName) {
  25. prefs = context.getApplicationContext().getSharedPreferences(sharePreferencesName, Context.MODE_PRIVATE);
  26. }
  27.  
  28. public static PreferencesHelper initHelper(Context context) {
  29. if (instance == null)
  30. instance = new PreferencesHelper(context);
  31. return instance;
  32. }
  33.  
  34. public static PreferencesHelper initHelper(Context context, String sharePreferencesName) {
  35. if (instance == null)
  36. instance = new PreferencesHelper(context, sharePreferencesName);
  37. return instance;
  38. }
  39.  
  40. public void setValue(String KEY, boolean value) {
  41. prefs.edit().putBoolean(KEY, value).apply();
  42. }
  43.  
  44. public void setValue(String KEY, String value) {
  45. prefs.edit().putString(KEY, value).apply();
  46. }
  47.  
  48. public void setValue(String KEY, Object value) {
  49. prefs.edit().putString(KEY, new Gson().toJson(value)).apply();
  50. }
  51.  
  52. public void setValue(String KEY, int value) {
  53. prefs.edit().putInt(KEY, value).apply();
  54. }
  55.  
  56. public void setValue(String KEY, long value) {
  57. prefs.edit().putLong(KEY, value).apply();
  58. }
  59.  
  60. public void setValue(String KEY, float value) {
  61. prefs.edit().putFloat(KEY, value).apply();
  62. }
  63.  
  64. public void setValue(String KEY, double defValue) {
  65. setValue(KEY, String.valueOf(defValue));
  66. }
  67.  
  68. public <T> void setValue(String KEY, List<T> strings) {
  69. setValue(KEY, new Gson().toJson(strings));
  70. }
  71.  
  72. public <T> void setValue(String KEY, T[] array) {
  73. JSONArray jArray = new JSONArray();
  74. for (T t : array) {
  75. jArray.put(t);
  76. }
  77. prefs.edit().putString(KEY, new Gson().toJson(jArray)).apply();
  78. }
  79.  
  80. public <T> T[] getArrayValue(String KEY) {
  81. T[] results = null;
  82. try {
  83. JSONArray jArray = new JSONArray(prefs.getString(KEY, ""));
  84. for (int i = 0; i < jArray.length(); i++) {
  85. results[i] = (T) jArray.get(i);
  86. }
  87. } catch (Exception ex) {
  88. ex.printStackTrace();
  89. }
  90. return results;
  91. }
  92.  
  93. public <T> List<T> getListValue(String KEY) {
  94. List<T> objects = null;
  95. try {
  96. String obj = prefs.getString(KEY, "");
  97. objects = new Gson().fromJson(obj, new TypeToken<List<T>>() {}.getType());
  98. } catch (Exception ex) {
  99. ex.printStackTrace();
  100. }
  101. return objects;
  102. }
  103.  
  104. public boolean getBooleanValue(String KEY, boolean defvalue) {
  105. return prefs.getBoolean(KEY, defvalue);
  106. }
  107.  
  108. public String getStringValue(String KEY, String defvalue) {
  109. return prefs.getString(KEY, defvalue);
  110. }
  111.  
  112. public <T> T getObjectValue(String KEY, Class<T> mModelClass) {
  113. Object object = null;
  114. try {
  115. object = new Gson().fromJson(prefs.getString(KEY, ""), mModelClass);
  116. } catch (Exception ex) {
  117. ex.printStackTrace();
  118. }
  119. return Primitives.wrap(mModelClass).cast(object);
  120. }
  121.  
  122. public int getIntValue(String KEY, int defValue) {
  123. return prefs.getInt(KEY, defValue);
  124. }
  125.  
  126. public long getLongValue(String KEY, long defValue) {
  127. return prefs.getLong(KEY, defValue);
  128. }
  129.  
  130. public float getFloatValue(String KEY, float defValue) {
  131. return prefs.getFloat(KEY, defValue);
  132. }
  133.  
  134. public double getDoubleValue(String KEY, double defValue) {
  135. return Double.parseDouble(getStringValue(KEY, String.valueOf(defValue)));
  136. }
  137.  
  138. public void removeKey(String KEY) {
  139. prefs.edit().remove(KEY).apply();
  140. }
  141.  
  142. public boolean contain(String KEY) {
  143. return prefs.contains(KEY);
  144. }
  145.  
  146. public void registerChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener) {
  147. prefs.registerOnSharedPreferenceChangeListener(listener);
  148. }
  149.  
  150. public void unregisterChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener) {
  151. prefs.unregisterOnSharedPreferenceChangeListener(listener);
  152. }
  153. }
Add Comment
Please, Sign In to add comment