Skip to content

Commit af6704d

Browse files
author
Wiki
committed
迁移到mavenCentral
1 parent 6db8e8f commit af6704d

File tree

10 files changed

+43
-258
lines changed

10 files changed

+43
-258
lines changed

README.md

Lines changed: 8 additions & 219 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,16 @@ https://github.com/taoweiji/AptPreferences
3737
```
3838
buildscript {
3939
repositories {
40-
jcenter()
40+
mavenCentral()
4141
}
4242
dependencies {
43-
classpath "com.android.tools.build:gradle:3.1.0"
4443
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
4544
}
4645
}
4746
4847
allprojects {
4948
repositories {
50-
jcenter()
51-
maven { url "https://jitpack.io" }
49+
mavenCentral()
5250
}
5351
}
5452
```
@@ -59,8 +57,8 @@ apply plugin: 'com.android.application'
5957
6058
//...
6159
dependencies {
62-
implementation 'com.github.taoweiji.AptPreferences:aptpreferences:0.9.5'
63-
annotationProcessor 'com.github.taoweiji.AptPreferences:aptpreferences-compiler:0.9.5'
60+
implementation 'io.github.taoweiji:aptpreferences:1.2.0'
61+
annotationProcessor 'io.github.taoweiji:aptpreferences-compiler:1.2.0'
6462
}
6563
```
6664

@@ -77,23 +75,13 @@ open class Settings {
7775
@AptField
7876
open var useLanguage = "zh"
7977
80-
@AptField(ignoreGroupId = false)
81-
open lateinit var push: Push
82-
8378
@AptField(ignoreGroupId = false)
8479
open var loginUser: LoginUser? = null
8580
86-
@AptField(save = false)
81+
@AptField(ignore = true)
8782
open var lastActionTimeMillis: Long = 0
8883
}
8984
90-
@AptPreferences
91-
open class Push {
92-
var isOpenPush = false
93-
var isVibrate = false
94-
var isVoice = false
95-
}
96-
9785
class LoginUser : Serializable {
9886
var username: String = ""
9987
var password: String = ""
@@ -104,7 +92,7 @@ class LoginUser : Serializable {
10492

10593
### 三、注解及使用说明
10694

107-
我们提供了两个注解@AptPreferences@AptField(commit = false,save = true,preferences = false)。
95+
我们提供了两个注解@AptPreferences@AptField(commit = false,ignore = false,ignoreGroupId = false)。
10896

10997
###### @AptPreferences
11098

@@ -116,10 +104,9 @@ AptField有三个参数可以配置。
116104

117105
1. commit:可以配置使用commit还是apply持久化,默认是apply,需要在一些需要立刻保存到文件的可以使用commit方式,比如在退出APP时保存退出的时间。
118106

119-
2. save:用来声明是否需要持久化这个字段。
107+
2. ignore:用来声明是否需要持久化这个字段,如果是false就不保存
120108

121-
3. preferences:这个属性仅仅适用于对象类型的字段,用来声明这个是以对象的方式保存,还是以preferences的方式保存。如果是true,就可以通过settingsPreference.getPush().isOpenPush()的方式存取。
122-
4. global:默认是true,如果设置为false时,和AptPreferencesManager.setUserInfo()配合,可以为不同的用户进行持久化,达到每个用户有不用的设置。
109+
3. ignoreGroupId:如果是true,那么该字段就会忽略GroupId,可以用于实现多用户登录的场景,部分字段需要区分用户发、设置为false;部分字段无需区分用户,是全局参数,那么就是true
123110

124111

125112
### 四、初始化
@@ -169,14 +156,10 @@ Settings.LoginUser loginUser = new Settings.LoginUser();
169156
loginUser.setUsername("username");
170157
loginUser.setPassword("password");
171158
SettingsPreferences.get().setLoginUser(loginUser);
172-
// 对象类型带 @AptField(preferences = true) 注解的保存,相当于把 push相关的放在一个分类
173-
SettingsPreferences.get().getPush().setOpenPush(true);
174-
175159
176160
// 获取
177161
String useLanguage = settingsPreference.getUseLanguage();
178162
Settings.LoginUser loginUser1 = settingsPreference.getLoginUser();
179-
boolean openPush = settingsPreference.getPush().isOpenPush();
180163
```
181164

182165
### 七、默认值
@@ -210,200 +193,6 @@ public class Settings {
210193

211194

212195

213-
### 八、详细转换代码
214-
215-
```
216-
217-
@AptPreferences
218-
public class Settings {
219-
private long lastOpenAppTimeMillis;
220-
// 使用commit提交,默认是使用apply提交,配置默认值
221-
@AptField(commit = true)
222-
private String useLanguage = "zh";
223-
// 使用preferences的方式保存
224-
@AptField(preferences = true)
225-
private Push push;
226-
// 使用对象的方式保存
227-
private LoginUser loginUser;
228-
// 不持久化该字段,仅仅保留在内存
229-
@AptField(save = false)
230-
private long lastActionTimeMillis;
231-
public long getLastActionTimeMillis() {
232-
return lastActionTimeMillis;
233-
}
234-
public void setLastActionTimeMillis(long lastActionTimeMillis) {
235-
this.lastActionTimeMillis = lastActionTimeMillis;
236-
}
237-
public LoginUser getLoginUser() {
238-
return loginUser;
239-
}
240-
public void setLoginUser(LoginUser loginUser) {
241-
this.loginUser = loginUser;
242-
}
243-
public long getLastOpenAppTimeMillis() {
244-
return lastOpenAppTimeMillis;
245-
}
246-
public void setLastOpenAppTimeMillis(long lastOpenAppTimeMillis) {
247-
this.lastOpenAppTimeMillis = lastOpenAppTimeMillis;
248-
}
249-
public String getUseLanguage() {
250-
return useLanguage;
251-
}
252-
public void setUseLanguage(String useLanguage) {
253-
this.useLanguage = useLanguage;
254-
}
255-
public Push getPush() {
256-
return push;
257-
}
258-
public void setPush(Push push) {
259-
this.push = push;
260-
}
261-
public static class Push {
262-
private boolean openPush;
263-
private boolean vibrate;
264-
private boolean voice;
265-
public boolean isOpenPush() {
266-
return openPush;
267-
}
268-
public void setOpenPush(boolean openPush) {
269-
this.openPush = openPush;
270-
}
271-
public boolean isVibrate() {
272-
return vibrate;
273-
}
274-
public void setVibrate(boolean vibrate) {
275-
this.vibrate = vibrate;
276-
}
277-
public boolean isVoice() {
278-
return voice;
279-
}
280-
public void setVoice(boolean voice) {
281-
this.voice = voice;
282-
}
283-
}
284-
public static class LoginUser implements Serializable{
285-
public String username;
286-
public String password;
287-
public String getUsername() {
288-
return username;
289-
}
290-
public void setUsername(String username) {
291-
this.username = username;
292-
}
293-
public String getPassword() {
294-
return password;
295-
}
296-
public void setPassword(String password) {
297-
this.password = password;
298-
}
299-
}
300-
}
301-
302-
```
303-
304-
实际上就是根据上面的代码自动生成带有持久化的代码,可以在这里可以找到
305-
306-
> app/build/generated/source/apt/debug
307-
308-
```
309-
310-
public final class SettingsPreferences extends Settings {
311-
public static final Map<String, SettingsPreferences> sMap = new java.util.HashMap<>();
312-
private final SharedPreferences.Editor mEdit;
313-
private final SharedPreferences mPreferences;
314-
private final String mName;
315-
public SettingsPreferences(String name) {
316-
mPreferences = AptPreferencesManager.getContext().getSharedPreferences("Settings_" + name, 0);
317-
mEdit = mPreferences.edit();
318-
this.mName = name;
319-
this.setPush(new PushPreferences());
320-
}
321-
@Override
322-
public Settings.LoginUser getLoginUser() {
323-
String text = mPreferences.getString("loginUser", null);
324-
Object object = null;
325-
if (text != null) {
326-
object = AptPreferencesManager.getAptParser().deserialize(com.thejoyrun.aptpreferences.Settings.LoginUser.class, text);
327-
}
328-
if (object != null) {
329-
return (com.thejoyrun.aptpreferences.Settings.LoginUser) object;
330-
}
331-
return super.getLoginUser();
332-
}
333-
@Override
334-
public void setLoginUser(Settings.LoginUser loginUser) {
335-
mEdit.putString("loginUser", AptPreferencesManager.getAptParser().serialize(loginUser)).apply();
336-
}
337-
@Override
338-
public long getLastOpenAppTimeMillis() {
339-
return mPreferences.getLong("lastOpenAppTimeMillis", super.getLastOpenAppTimeMillis());
340-
}
341-
@Override
342-
public void setLastOpenAppTimeMillis(long lastOpenAppTimeMillis) {
343-
mEdit.putLong("lastOpenAppTimeMillis", lastOpenAppTimeMillis).apply();
344-
}
345-
@Override
346-
public String getUseLanguage() {
347-
return mPreferences.getString("useLanguage", super.getUseLanguage());
348-
}
349-
@Override
350-
public void setUseLanguage(String useLanguage) {
351-
mEdit.putString("useLanguage", useLanguage).commit();
352-
}
353-
public static SettingsPreferences get(String name) {
354-
if (sMap.containsKey(name)) {
355-
return sMap.get(name);
356-
}
357-
synchronized (sMap) {
358-
if (!sMap.containsKey(name)) {
359-
SettingsPreferences preferences = new SettingsPreferences(name);
360-
sMap.put(name, preferences);
361-
}
362-
}
363-
return sMap.get(name);
364-
}
365-
public static SettingsPreferences get() {
366-
return get("");
367-
}
368-
public void clear() {
369-
mEdit.clear().commit();
370-
sMap.remove(mName);
371-
}
372-
public static void clearAll() {
373-
java.util.Set<String> keys = sMap.keySet();
374-
for (String key : keys) {
375-
sMap.get(key).clear();
376-
}
377-
}
378-
private class PushPreferences extends Settings.Push {
379-
@Override
380-
public boolean isOpenPush() {
381-
return mPreferences.getBoolean("Push.openPush", super.isOpenPush());
382-
}
383-
@Override
384-
public void setOpenPush(boolean openPush) {
385-
mEdit.putBoolean("Push.openPush", openPush).apply();
386-
}
387-
@Override
388-
public boolean isVibrate() {
389-
return mPreferences.getBoolean("Push.vibrate", super.isVibrate());
390-
}
391-
@Override
392-
public void setVibrate(boolean vibrate) {
393-
mEdit.putBoolean("Push.vibrate", vibrate).apply();
394-
}
395-
@Override
396-
public boolean isVoice() {
397-
return mPreferences.getBoolean("Push.voice", super.isVoice());
398-
}
399-
@Override
400-
public void setVoice(boolean voice) {
401-
mEdit.putBoolean("Push.voice", voice).apply();
402-
}
403-
}
404-
}
405-
```
406-
407196

408197

409198

app-kotlin/src/main/java/com/taoweiji/aptpreferences/example/MyApplication.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@ class MyApplication : Application() {
2323
return JSON.toJSONString(`object`)
2424
}
2525
})
26-
AptPreferencesManager.setUserInfo("123456")
26+
AptPreferencesManager.setGroupId("123456")
2727
}
2828
}

app-kotlin/src/main/java/com/taoweiji/aptpreferences/example/Settings.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ open class Settings {
1818
@AptField(ignoreGroupId = false)
1919
open var loginInfo: LoginInfo? = null
2020

21-
@AptField(save = false)
21+
@AptField(ignore = false)
2222
open var lastActionTimeMillis: Long = 0
2323
}
2424

app/src/main/java/com/taoweiji/aptpreferences/MyApplication.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,6 @@ public String serialize(Object object) {
2424
return JSON.toJSONString(object);
2525
}
2626
});
27-
AptPreferencesManager.setUserInfo("123456");
27+
AptPreferencesManager.setGroupId("123456");
2828
}
2929
}

app/src/main/java/com/taoweiji/aptpreferences/SettingsInfo.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ public class SettingsInfo {
1212
private boolean login;
1313
private float price2;
1414
private double price;
15-
@AptField(save = false)
15+
@AptField(ignore = false)
1616
private float tmp;
1717
private static float tmpStatic;
1818

19-
@AptField(preferences = true, ignoreGroupId = false)
20-
private Run run;
19+
// @AptField(preferences = true, ignoreGroupId = false)
20+
// private Run run;
2121
@AptField(ignoreGroupId = false)
2222
private LoginUser loginUser;
2323

@@ -37,13 +37,13 @@ public void setTmp(float tmp) {
3737
this.tmp = tmp;
3838
}
3939

40-
public Run getRun() {
41-
return run;
42-
}
43-
44-
public void setRun(Run run) {
45-
this.run = run;
46-
}
40+
// public Run getRun() {
41+
// return run;
42+
// }
43+
//
44+
// public void setRun(Run run) {
45+
// this.run = run;
46+
// }
4747

4848
public String getFirstUse() {
4949
return firstUse;

app/src/main/java/com/taoweiji/aptpreferences/preferences/Settings.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ public class Settings {
1616
@AptField(commit = true, ignoreGroupId = false)
1717
private String useLanguage;
1818
// 使用对象的方式保存
19-
@AptField(preferences = true, ignoreGroupId = false)
19+
@AptField(ignoreGroupId = false)
2020
private LoginUser loginUser;
2121
// 不持久化该字段,仅仅保留在内存
22-
@AptField(save = false)
22+
@AptField(ignore = false)
2323
private long lastActionTimeMillis;
2424
public long getLastActionTimeMillis() {
2525
return lastActionTimeMillis;

0 commit comments

Comments
 (0)