mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-07-03 10:54:38 -05:00
bring back the old SharedPreferences for CustomContext, implement Toast
This commit is contained in:
@@ -13,7 +13,7 @@ do
|
|||||||
which $dep >/dev/null 2>&1 || { echo >&2 "Error: This script needs $dep installed."; abort=yes; }
|
which $dep >/dev/null 2>&1 || { echo >&2 "Error: This script needs $dep installed."; abort=yes; }
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ $abort = yes ]; then
|
if [ "$abort" = yes ]; then
|
||||||
echo "Some of the dependencies didn't exist. Aborting."
|
echo "Some of the dependencies didn't exist. Aborting."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|||||||
91
AndroidCompat/src/main/java/android/widget/Toast.java
Normal file
91
AndroidCompat/src/main/java/android/widget/Toast.java
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
package android.widget;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (C) Contributors to the Suwayomi project
|
||||||
|
*
|
||||||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
public class Toast {
|
||||||
|
public static final int LENGTH_LONG = 1;
|
||||||
|
public static final int LENGTH_SHORT = 0;
|
||||||
|
|
||||||
|
private CharSequence text;
|
||||||
|
|
||||||
|
private Toast(CharSequence text) {
|
||||||
|
this.text = text;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Toast(android.content.Context context) {
|
||||||
|
throw new RuntimeException("Stub!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void show() {
|
||||||
|
System.out.printf("made a Toast: \"%s\"\n", text.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void cancel() {
|
||||||
|
throw new RuntimeException("Stub!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setView(android.view.View view) {
|
||||||
|
throw new RuntimeException("Stub!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public android.view.View getView() {
|
||||||
|
throw new RuntimeException("Stub!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDuration(int duration) {
|
||||||
|
throw new RuntimeException("Stub!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getDuration() {
|
||||||
|
throw new RuntimeException("Stub!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMargin(float horizontalMargin, float verticalMargin) {
|
||||||
|
throw new RuntimeException("Stub!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getHorizontalMargin() {
|
||||||
|
throw new RuntimeException("Stub!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getVerticalMargin() {
|
||||||
|
throw new RuntimeException("Stub!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGravity(int gravity, int xOffset, int yOffset) {
|
||||||
|
throw new RuntimeException("Stub!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getGravity() {
|
||||||
|
throw new RuntimeException("Stub!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getXOffset() {
|
||||||
|
throw new RuntimeException("Stub!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getYOffset() {
|
||||||
|
throw new RuntimeException("Stub!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Toast makeText(android.content.Context context, java.lang.CharSequence text, int duration) {
|
||||||
|
return new Toast(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static android.widget.Toast makeText(android.content.Context context, int resId, int duration) throws android.content.res.Resources.NotFoundException {
|
||||||
|
throw new RuntimeException("Stub!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setText(int resId) {
|
||||||
|
throw new RuntimeException("Stub!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setText(java.lang.CharSequence s) {
|
||||||
|
throw new RuntimeException("Stub!");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -38,7 +38,7 @@ import org.slf4j.Logger;
|
|||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import xyz.nulldev.androidcompat.info.ApplicationInfoImpl;
|
import xyz.nulldev.androidcompat.info.ApplicationInfoImpl;
|
||||||
import xyz.nulldev.androidcompat.io.AndroidFiles;
|
import xyz.nulldev.androidcompat.io.AndroidFiles;
|
||||||
import xyz.nulldev.androidcompat.io.sharedprefs.JavaSharedPreferences;
|
import xyz.nulldev.androidcompat.io.sharedprefs.JsonSharedPreferences;
|
||||||
import xyz.nulldev.androidcompat.service.ServiceSupport;
|
import xyz.nulldev.androidcompat.service.ServiceSupport;
|
||||||
import xyz.nulldev.androidcompat.util.KodeinGlobalHelper;
|
import xyz.nulldev.androidcompat.util.KodeinGlobalHelper;
|
||||||
|
|
||||||
@@ -50,9 +50,10 @@ import java.util.Map;
|
|||||||
/**
|
/**
|
||||||
* Custom context implementation.
|
* Custom context implementation.
|
||||||
*
|
*
|
||||||
|
* TODO Deal with packagemanager for extension sources
|
||||||
*/
|
*/
|
||||||
public class CustomContext extends Context implements DIAware {
|
public class CustomContext extends Context implements DIAware {
|
||||||
private final DI kodein;
|
private DI kodein;
|
||||||
public CustomContext() {
|
public CustomContext() {
|
||||||
this(KodeinGlobalHelper.kodein());
|
this(KodeinGlobalHelper.kodein());
|
||||||
}
|
}
|
||||||
@@ -164,22 +165,23 @@ public class CustomContext extends Context implements DIAware {
|
|||||||
/** Fake shared prefs! **/
|
/** Fake shared prefs! **/
|
||||||
private Map<String, SharedPreferences> prefs = new HashMap<>(); //Cache
|
private Map<String, SharedPreferences> prefs = new HashMap<>(); //Cache
|
||||||
|
|
||||||
|
private File sharedPrefsFileFromString(String s) {
|
||||||
|
return new File(androidFiles.getPrefsDir(), s + ".json");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized SharedPreferences getSharedPreferences(String s, int i) {
|
public synchronized SharedPreferences getSharedPreferences(String s, int i) {
|
||||||
SharedPreferences preferences = prefs.get(s);
|
SharedPreferences preferences = prefs.get(s);
|
||||||
//Create new shared preferences if one does not exist
|
//Create new shared preferences if one does not exist
|
||||||
if(preferences == null) {
|
if(preferences == null) {
|
||||||
preferences = new JavaSharedPreferences(s);
|
preferences = getSharedPreferences(sharedPrefsFileFromString(s), i);
|
||||||
prefs.put(s, preferences);
|
prefs.put(s, preferences);
|
||||||
}
|
}
|
||||||
return preferences;
|
return preferences;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public SharedPreferences getSharedPreferences(File file, int mode) {
|
||||||
public SharedPreferences getSharedPreferences(@NotNull File file, int mode) {
|
return new JsonSharedPreferences(file);
|
||||||
String path = file.getAbsolutePath().replace('\\', '/');
|
|
||||||
int firstSlash = path.indexOf("/");
|
|
||||||
return new JavaSharedPreferences(path.substring(firstSlash));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -189,8 +191,8 @@ public class CustomContext extends Context implements DIAware {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean deleteSharedPreferences(String name) {
|
public boolean deleteSharedPreferences(String name) {
|
||||||
JavaSharedPreferences item = (JavaSharedPreferences) prefs.remove(name);
|
prefs.remove(name);
|
||||||
return item.deleteAll();
|
return sharedPrefsFileFromString(name).delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -733,4 +735,3 @@ public class CustomContext extends Context implements DIAware {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ class AndroidFiles(val configManager: ConfigManager = GlobalConfigManager) {
|
|||||||
val downloadCacheDir: File get() = registerFile(filesConfig.downloadCacheDir)
|
val downloadCacheDir: File get() = registerFile(filesConfig.downloadCacheDir)
|
||||||
val databasesDir: File get() = registerFile(filesConfig.databasesDir)
|
val databasesDir: File get() = registerFile(filesConfig.databasesDir)
|
||||||
|
|
||||||
|
val prefsDir: File get() = registerFile(filesConfig.prefsDir)
|
||||||
|
|
||||||
val packagesDir: File get() = registerFile(filesConfig.packageDir)
|
val packagesDir: File get() = registerFile(filesConfig.packageDir)
|
||||||
|
|
||||||
fun registerFile(file: String): File {
|
fun registerFile(file: String): File {
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
package xyz.nulldev.androidcompat.io.sharedprefs
|
package xyz.nulldev.androidcompat.io.sharedprefs
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (C) Contributors to the Suwayomi project
|
||||||
|
*
|
||||||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
import com.russhwolf.settings.ExperimentalSettingsApi
|
import com.russhwolf.settings.ExperimentalSettingsApi
|
||||||
import com.russhwolf.settings.ExperimentalSettingsImplementation
|
import com.russhwolf.settings.ExperimentalSettingsImplementation
|
||||||
|
|||||||
@@ -233,7 +233,7 @@ public class JsonSharedPreferences implements SharedPreferences {
|
|||||||
private JsonSharedPreferencesEditor() {
|
private JsonSharedPreferencesEditor() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void recordChange(String key) {
|
private void recordChange(String key) {
|
||||||
if (!affectedKeys.contains(key)) {
|
if (!affectedKeys.contains(key)) {
|
||||||
affectedKeys.add(key);
|
affectedKeys.add(key);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user