From bfaf88afd69fd40a46da3e8a7cd42de2e256f19b Mon Sep 17 00:00:00 2001 From: Aria Moradi Date: Sat, 31 Jul 2021 02:49:15 +0430 Subject: [PATCH] put back syer's implementation --- .../androidimpl/CustomContext.java | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/androidimpl/CustomContext.java b/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/androidimpl/CustomContext.java index 4050320f..8c136d21 100644 --- a/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/androidimpl/CustomContext.java +++ b/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/androidimpl/CustomContext.java @@ -38,7 +38,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import xyz.nulldev.androidcompat.info.ApplicationInfoImpl; import xyz.nulldev.androidcompat.io.AndroidFiles; -import xyz.nulldev.androidcompat.io.sharedprefs.JsonSharedPreferences; +import xyz.nulldev.androidcompat.io.sharedprefs.JavaSharedPreferences; import xyz.nulldev.androidcompat.service.ServiceSupport; import xyz.nulldev.androidcompat.util.KodeinGlobalHelper; @@ -50,10 +50,9 @@ import java.util.Map; /** * Custom context implementation. * - * TODO Deal with packagemanager for extension sources */ public class CustomContext extends Context implements DIAware { - private DI kodein; + private final DI kodein; public CustomContext() { this(KodeinGlobalHelper.kodein()); } @@ -165,23 +164,22 @@ public class CustomContext extends Context implements DIAware { /** Fake shared prefs! **/ private Map prefs = new HashMap<>(); //Cache - private File sharedPrefsFileFromString(String s) { - return new File(androidFiles.getPrefsDir(), s + ".json"); - } - @Override public synchronized SharedPreferences getSharedPreferences(String s, int i) { SharedPreferences preferences = prefs.get(s); //Create new shared preferences if one does not exist if(preferences == null) { - preferences = getSharedPreferences(sharedPrefsFileFromString(s), i); + preferences = new JavaSharedPreferences(s); prefs.put(s, preferences); } return preferences; } - public SharedPreferences getSharedPreferences(File file, int mode) { - return new JsonSharedPreferences(file); + @Override + public SharedPreferences getSharedPreferences(@NotNull File file, int mode) { + String path = file.getAbsolutePath().replace('\\', '/'); + int firstSlash = path.indexOf("/"); + return new JavaSharedPreferences(path.substring(firstSlash)); } @Override @@ -191,8 +189,8 @@ public class CustomContext extends Context implements DIAware { @Override public boolean deleteSharedPreferences(String name) { - prefs.remove(name); - return sharedPrefsFileFromString(name).delete(); + JavaSharedPreferences item = (JavaSharedPreferences) prefs.remove(name); + return item.deleteAll(); } @Override