MCPcopy Create free account
hub / github.com/cinit/TMoe / ConfigManager

Class ConfigManager

app/src/main/java/cc/ioctl/tmoe/util/config/ConfigManager.java:15–171  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

13import cc.ioctl.tmoe.td.AccountController;
14
15public abstract class ConfigManager implements SharedPreferences, SharedPreferences.Editor {
16
17 private static ConfigManager sDefaultConfig;
18 private static ConfigManager sCache;
19
20 private static final HashMap<Long, ConfigManager> sUserConfigs = new HashMap<>();
21
22 protected ConfigManager() {
23 }
24
25 @NonNull
26 public static ConfigManager getDefaultConfig() {
27 if (sDefaultConfig == null) {
28 sDefaultConfig = new MmkvConfigManagerImpl("global_config");
29 }
30 return sDefaultConfig;
31 }
32
33 @NonNull
34 public static ConfigManager getCache() {
35 if (sCache == null) {
36 sCache = new MmkvConfigManagerImpl("global_cache");
37 }
38 return sCache;
39 }
40
41 @NonNull
42 public static ConfigManager forUser(long uid) {
43 if (uid == -1 || uid == 0) {
44 throw new IllegalArgumentException("invalid uid");
45 }
46 ConfigManager config = sUserConfigs.get(uid);
47 if (config == null) {
48 config = new MmkvConfigManagerImpl("user_config_" + uid);
49 sUserConfigs.put(uid, config);
50 }
51 return config;
52 }
53
54 @NonNull
55 public static ConfigManager forCurrentUser() throws AccountController.NoUserLoginException {
56 long uid = AccountController.getCurrentActiveUserId();
57 if (uid == -1 || uid == 0) {
58 throw new AccountController.NoUserLoginException();
59 }
60 return forUser(uid);
61 }
62
63 @Nullable
64 public static ConfigManager forCurrentUserOrNull() {
65 long uid = AccountController.getCurrentActiveUserId();
66 if (uid == -1 || uid == 0) {
67 return null;
68 }
69 return forUser(uid);
70 }
71
72 public abstract void reinit() throws IOException;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected