-
Notifications
You must be signed in to change notification settings - Fork 1
/
PreferenceConfig.java
153 lines (131 loc) · 3.99 KB
/
PreferenceConfig.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
package github.hellocsl.simpleconfig.impl;
import android.content.Context;
import android.content.SharedPreferences;
import android.support.annotation.Nullable;
import java.util.Set;
import github.hellocsl.simpleconfig.Config;
/**
* Implement {@link Config} using {@link SharedPreferences}
* Created by chensuilun on 2017/6/12.
*/
public class PreferenceConfig implements Config {
private Context mContext;
private String mName;
private int mMode;
private SharedPreferences mPreferences;
public PreferenceConfig(Context context, String name, int mode) {
mContext = context;
mName = name;
mMode = mode;
mPreferences = mContext.getSharedPreferences(mName, mMode);
}
@Override
public String getName() {
return mName;
}
@Override
public int getMode() {
return mMode;
}
@Override
public boolean putString(String key, String value, boolean async) {
if (async) {
mPreferences.edit().putString(key, value).apply();
} else {
return mPreferences.edit().putString(key, value).commit();
}
return true;
}
@Override
public boolean putStringSet(String key, @Nullable Set<String> values, boolean async) {
if (async) {
mPreferences.edit().putStringSet(key, values).apply();
} else {
return mPreferences.edit().putStringSet(key, values).commit();
}
return true;
}
@Override
public boolean putBoolean(String key, boolean value, boolean async) {
if (async) {
mPreferences.edit().putBoolean(key, value).apply();
} else {
return mPreferences.edit().putBoolean(key, value).commit();
}
return true;
}
@Override
public boolean putFloat(String key, float value, boolean async) {
if (async) {
mPreferences.edit().putFloat(key, value).apply();
} else {
return mPreferences.edit().putFloat(key, value).commit();
}
return true;
}
@Override
public boolean putLong(String key, long value, boolean async) {
if (async) {
mPreferences.edit().putLong(key, value).apply();
} else {
return mPreferences.edit().putLong(key, value).commit();
}
return true;
}
@Override
public boolean putInt(String key, int value, boolean async) {
if (async) {
mPreferences.edit().putInt(key, value).apply();
} else {
return mPreferences.edit().putInt(key, value).commit();
}
return true;
}
@Nullable
@Override
public String getString(String key, @Nullable String defValue) {
return mPreferences.getString(key, defValue);
}
@Nullable
@Override
public Set<String> getStringSet(String key, @Nullable Set<String> defValues) {
return mPreferences.getStringSet(key, defValues);
}
@Override
public int getInt(String key, int defValue) {
return mPreferences.getInt(key, defValue);
}
@Override
public long getLong(String key, long defValue) {
return mPreferences.getLong(key, defValue);
}
@Override
public float getFloat(String key, float defValue) {
return mPreferences.getFloat(key, defValue);
}
@Override
public boolean getBoolean(String key, boolean defValue) {
return mPreferences.getBoolean(key, defValue);
}
@Override
public boolean remove(String key, boolean async) {
if (async) {
mPreferences.edit().remove(key).apply();
} else {
return mPreferences.edit().remove(key).commit();
}
return true;
}
@Override
public boolean clear(boolean async) {
if (async) {
mPreferences.edit().clear().apply();
} else {
return mPreferences.edit().clear().commit();
}
return true;
}
public SharedPreferences getPreferences() {
return mPreferences;
}
}