|
1 | 1 | package ir.farsroidx; |
2 | 2 |
|
| 3 | +import android.annotation.SuppressLint; |
3 | 4 | import android.content.Context; |
4 | 5 | import android.content.SharedPreferences; |
5 | 6 | import android.preference.PreferenceManager; |
6 | 7 |
|
7 | 8 | public class SPUtils { |
8 | 9 |
|
9 | 10 | private Context context; |
| 11 | + @SuppressLint("StaticFieldLeak") |
| 12 | + private static SPUtils spUtils = null; |
| 13 | + private SharedPreferences sharedPreferences = null; |
| 14 | + private SharedPreferences.Editor editor = null; |
10 | 15 |
|
11 | | - public SPUtils(Context context) { |
| 16 | + private SPUtils(Context context) { |
12 | 17 | this.context = context; |
13 | 18 | } |
14 | 19 |
|
15 | | - private SharedPreferences preference() { |
16 | | - return PreferenceManager.getDefaultSharedPreferences(context); |
| 20 | + public static SPUtils getInstance(Context context){ |
| 21 | + if(spUtils == null){ |
| 22 | + spUtils = new SPUtils(context); |
| 23 | + } |
| 24 | + return spUtils; |
| 25 | + } |
| 26 | + |
| 27 | + private SharedPreferences getPreferenceInstance() { |
| 28 | + if(sharedPreferences == null){ |
| 29 | + sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); |
| 30 | + } |
| 31 | + return sharedPreferences; |
| 32 | + } |
| 33 | + |
| 34 | + private SharedPreferences.Editor getPreferenceEditor() { |
| 35 | + if(editor == null){ |
| 36 | + editor = getPreferenceInstance().edit(); |
| 37 | + } |
| 38 | + return editor; |
17 | 39 | } |
18 | 40 |
|
19 | 41 | public String readString(String key, String alternative) { |
20 | | - return preference().getString(key, alternative); |
| 42 | + return getPreferenceInstance().getString(key, alternative); |
21 | 43 | } |
22 | 44 |
|
23 | 45 | public float readFloat(String key, float alternative) { |
24 | | - return preference().getFloat(key, alternative); |
| 46 | + return getPreferenceInstance().getFloat(key, alternative); |
25 | 47 | } |
26 | 48 |
|
27 | 49 | public long readLong(String key, long alternative) { |
28 | | - return preference().getLong(key, alternative); |
| 50 | + return getPreferenceInstance().getLong(key, alternative); |
29 | 51 | } |
30 | 52 |
|
31 | 53 | public int readInteger(String key, int alternative) { |
32 | | - return preference().getInt(key, alternative); |
| 54 | + return getPreferenceInstance().getInt(key, alternative); |
33 | 55 | } |
34 | 56 |
|
35 | 57 | public boolean readBoolean(String key, boolean alternative) { |
36 | | - return preference().getBoolean(key, alternative); |
| 58 | + return getPreferenceInstance().getBoolean(key, alternative); |
37 | 59 | } |
38 | 60 |
|
39 | 61 | public void writeString(String key, String str) { |
40 | | - SharedPreferences.Editor editor = preference().edit(); |
| 62 | + SharedPreferences.Editor editor = getPreferenceEditor(); |
41 | 63 | editor.putString(key, str); |
42 | 64 | editor.apply(); |
43 | 65 | } |
44 | 66 |
|
45 | 67 | public void writeFloat(String key, float flt) { |
46 | | - SharedPreferences.Editor editor = preference().edit(); |
| 68 | + SharedPreferences.Editor editor = getPreferenceEditor(); |
47 | 69 | editor.putFloat(key , flt); |
48 | 70 | editor.apply(); |
49 | 71 | } |
50 | 72 |
|
51 | 73 | public void writeLong(String key, long lng) { |
52 | | - SharedPreferences.Editor editor = preference().edit(); |
| 74 | + SharedPreferences.Editor editor = getPreferenceEditor(); |
53 | 75 | editor.putLong(key,lng); |
54 | 76 | editor.apply(); |
55 | 77 | } |
56 | 78 |
|
57 | 79 | public void writeInteger(String key, int integer) { |
58 | | - SharedPreferences.Editor editor = preference().edit(); |
| 80 | + SharedPreferences.Editor editor = getPreferenceEditor(); |
59 | 81 | editor.putInt(key, integer); |
60 | 82 | editor.apply(); |
61 | 83 | } |
62 | 84 |
|
63 | 85 | public void writeBoolean(String key, boolean bln) { |
64 | | - SharedPreferences.Editor editor = preference().edit(); |
| 86 | + SharedPreferences.Editor editor = getPreferenceEditor(); |
65 | 87 | editor.putBoolean(key, bln); |
66 | 88 | editor.apply(); |
67 | 89 | } |
68 | 90 |
|
| 91 | + public void remove(String key) { |
| 92 | + SharedPreferences.Editor editor = getPreferenceEditor(); |
| 93 | + editor.remove(key); |
| 94 | + editor.apply(); |
| 95 | + } |
| 96 | + |
| 97 | + public void clearAll() { |
| 98 | + SharedPreferences.Editor editor = getPreferenceEditor(); |
| 99 | + editor.clear(); |
| 100 | + editor.apply(); |
| 101 | + } |
| 102 | + |
69 | 103 | } |
0 commit comments