diff --git a/termux-shared/src/main/java/com/termux/shared/settings/preferences/AppSharedPreferences.java b/termux-shared/src/main/java/com/termux/shared/settings/preferences/AppSharedPreferences.java new file mode 100644 index 00000000..03a75e03 --- /dev/null +++ b/termux-shared/src/main/java/com/termux/shared/settings/preferences/AppSharedPreferences.java @@ -0,0 +1,49 @@ +package com.termux.shared.settings.preferences; + +import android.content.Context; +import android.content.SharedPreferences; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** A class that holds {@link SharedPreferences} objects for apps. */ +public class AppSharedPreferences { + + /** The {@link Context} for operations. */ + protected final Context mContext; + + /** The {@link SharedPreferences} that ideally should be created with {@link SharedPreferenceUtils#getPrivateSharedPreferences(Context, String)}. */ + protected final SharedPreferences mSharedPreferences; + + /** The {@link SharedPreferences}that ideally should be created with {@link SharedPreferenceUtils#getPrivateAndMultiProcessSharedPreferences(Context, String)}. */ + protected final SharedPreferences mMultiProcessSharedPreferences; + + protected AppSharedPreferences(@NonNull Context context, @Nullable SharedPreferences sharedPreferences) { + this(context, sharedPreferences, null); + } + + protected AppSharedPreferences(@NonNull Context context, @Nullable SharedPreferences sharedPreferences, + @Nullable SharedPreferences multiProcessSharedPreferences) { + mContext = context; + mSharedPreferences = sharedPreferences; + mMultiProcessSharedPreferences = multiProcessSharedPreferences; + } + + + + /** Get {@link #mContext}. */ + public Context getContext() { + return mContext; + } + + /** Get {@link #mSharedPreferences}. */ + public SharedPreferences getSharedPreferences() { + return mSharedPreferences; + } + + /** Get {@link #mMultiProcessSharedPreferences}. */ + public SharedPreferences getMultiProcessSharedPreferences() { + return mMultiProcessSharedPreferences; + } + +} diff --git a/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxAPIAppSharedPreferences.java b/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxAPIAppSharedPreferences.java index 228f9cc4..0eec1a14 100644 --- a/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxAPIAppSharedPreferences.java +++ b/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxAPIAppSharedPreferences.java @@ -1,31 +1,28 @@ package com.termux.shared.termux.settings.preferences; import android.content.Context; -import android.content.SharedPreferences; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.termux.shared.logger.Logger; import com.termux.shared.android.PackageUtils; +import com.termux.shared.settings.preferences.AppSharedPreferences; import com.termux.shared.settings.preferences.SharedPreferenceUtils; import com.termux.shared.termux.TermuxUtils; import com.termux.shared.termux.settings.preferences.TermuxPreferenceConstants.TERMUX_API_APP; import com.termux.shared.termux.TermuxConstants; -public class TermuxAPIAppSharedPreferences { - - private final Context mContext; - private final SharedPreferences mSharedPreferences; - private final SharedPreferences mMultiProcessSharedPreferences; - +public class TermuxAPIAppSharedPreferences extends AppSharedPreferences { private static final String LOG_TAG = "TermuxAPIAppSharedPreferences"; private TermuxAPIAppSharedPreferences(@NonNull Context context) { - mContext = context; - mSharedPreferences = getPrivateSharedPreferences(mContext); - mMultiProcessSharedPreferences = getPrivateAndMultiProcessSharedPreferences(mContext); + super(context, + SharedPreferenceUtils.getPrivateSharedPreferences(context, + TermuxConstants.TERMUX_API_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION), + SharedPreferenceUtils.getPrivateAndMultiProcessSharedPreferences(context, + TermuxConstants.TERMUX_API_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION)); } /** @@ -61,16 +58,6 @@ public class TermuxAPIAppSharedPreferences { return new TermuxAPIAppSharedPreferences(termuxAPIPackageContext); } - private static SharedPreferences getPrivateSharedPreferences(Context context) { - if (context == null) return null; - return SharedPreferenceUtils.getPrivateSharedPreferences(context, TermuxConstants.TERMUX_API_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION); - } - - private static SharedPreferences getPrivateAndMultiProcessSharedPreferences(Context context) { - if (context == null) return null; - return SharedPreferenceUtils.getPrivateAndMultiProcessSharedPreferences(context, TermuxConstants.TERMUX_API_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION); - } - public int getLogLevel(boolean readFromFile) { diff --git a/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxAppSharedPreferences.java b/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxAppSharedPreferences.java index a33be8e6..cd3812fe 100644 --- a/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxAppSharedPreferences.java +++ b/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxAppSharedPreferences.java @@ -1,13 +1,13 @@ package com.termux.shared.termux.settings.preferences; import android.content.Context; -import android.content.SharedPreferences; import android.util.TypedValue; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.termux.shared.android.PackageUtils; +import com.termux.shared.settings.preferences.AppSharedPreferences; import com.termux.shared.settings.preferences.SharedPreferenceUtils; import com.termux.shared.termux.TermuxConstants; import com.termux.shared.logger.Logger; @@ -15,11 +15,7 @@ import com.termux.shared.data.DataUtils; import com.termux.shared.termux.TermuxUtils; import com.termux.shared.termux.settings.preferences.TermuxPreferenceConstants.TERMUX_APP; -public class TermuxAppSharedPreferences { - - private final Context mContext; - private final SharedPreferences mSharedPreferences; - private final SharedPreferences mMultiProcessSharedPreferences; +public class TermuxAppSharedPreferences extends AppSharedPreferences { private int MIN_FONTSIZE; private int MAX_FONTSIZE; @@ -28,10 +24,11 @@ public class TermuxAppSharedPreferences { private static final String LOG_TAG = "TermuxAppSharedPreferences"; private TermuxAppSharedPreferences(@NonNull Context context) { - mContext = context; - mSharedPreferences = getPrivateSharedPreferences(mContext); - mMultiProcessSharedPreferences = getPrivateAndMultiProcessSharedPreferences(mContext); - + super(context, + SharedPreferenceUtils.getPrivateSharedPreferences(context, + TermuxConstants.TERMUX_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION), + SharedPreferenceUtils.getPrivateAndMultiProcessSharedPreferences(context, + TermuxConstants.TERMUX_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION)); setFontVariables(context); } @@ -69,17 +66,6 @@ public class TermuxAppSharedPreferences { return new TermuxAppSharedPreferences(termuxPackageContext); } - private static SharedPreferences getPrivateSharedPreferences(Context context) { - if (context == null) return null; - return SharedPreferenceUtils.getPrivateSharedPreferences(context, TermuxConstants.TERMUX_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION); - } - - - private static SharedPreferences getPrivateAndMultiProcessSharedPreferences(Context context) { - if (context == null) return null; - return SharedPreferenceUtils.getPrivateAndMultiProcessSharedPreferences(context, TermuxConstants.TERMUX_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION); - } - public boolean shouldShowTerminalToolbar() { diff --git a/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxBootAppSharedPreferences.java b/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxBootAppSharedPreferences.java index 49db9cef..317f93ce 100644 --- a/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxBootAppSharedPreferences.java +++ b/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxBootAppSharedPreferences.java @@ -1,31 +1,28 @@ package com.termux.shared.termux.settings.preferences; import android.content.Context; -import android.content.SharedPreferences; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.termux.shared.logger.Logger; import com.termux.shared.android.PackageUtils; +import com.termux.shared.settings.preferences.AppSharedPreferences; import com.termux.shared.settings.preferences.SharedPreferenceUtils; import com.termux.shared.termux.TermuxUtils; import com.termux.shared.termux.settings.preferences.TermuxPreferenceConstants.TERMUX_BOOT_APP; import com.termux.shared.termux.TermuxConstants; -public class TermuxBootAppSharedPreferences { - - private final Context mContext; - private final SharedPreferences mSharedPreferences; - private final SharedPreferences mMultiProcessSharedPreferences; - +public class TermuxBootAppSharedPreferences extends AppSharedPreferences { private static final String LOG_TAG = "TermuxBootAppSharedPreferences"; private TermuxBootAppSharedPreferences(@NonNull Context context) { - mContext = context; - mSharedPreferences = getPrivateSharedPreferences(mContext); - mMultiProcessSharedPreferences = getPrivateAndMultiProcessSharedPreferences(mContext); + super(context, + SharedPreferenceUtils.getPrivateSharedPreferences(context, + TermuxConstants.TERMUX_BOOT_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION), + SharedPreferenceUtils.getPrivateAndMultiProcessSharedPreferences(context, + TermuxConstants.TERMUX_BOOT_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION)); } /** @@ -61,16 +58,6 @@ public class TermuxBootAppSharedPreferences { return new TermuxBootAppSharedPreferences(termuxBootPackageContext); } - private static SharedPreferences getPrivateSharedPreferences(Context context) { - if (context == null) return null; - return SharedPreferenceUtils.getPrivateSharedPreferences(context, TermuxConstants.TERMUX_BOOT_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION); - } - - private static SharedPreferences getPrivateAndMultiProcessSharedPreferences(Context context) { - if (context == null) return null; - return SharedPreferenceUtils.getPrivateAndMultiProcessSharedPreferences(context, TermuxConstants.TERMUX_BOOT_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION); - } - public int getLogLevel(boolean readFromFile) { diff --git a/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxFloatAppSharedPreferences.java b/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxFloatAppSharedPreferences.java index 4c0c7939..e56e29ac 100644 --- a/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxFloatAppSharedPreferences.java +++ b/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxFloatAppSharedPreferences.java @@ -1,7 +1,6 @@ package com.termux.shared.termux.settings.preferences; import android.content.Context; -import android.content.SharedPreferences; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -9,16 +8,13 @@ import androidx.annotation.Nullable; import com.termux.shared.data.DataUtils; import com.termux.shared.logger.Logger; import com.termux.shared.android.PackageUtils; +import com.termux.shared.settings.preferences.AppSharedPreferences; import com.termux.shared.settings.preferences.SharedPreferenceUtils; import com.termux.shared.termux.TermuxUtils; import com.termux.shared.termux.settings.preferences.TermuxPreferenceConstants.TERMUX_FLOAT_APP; import com.termux.shared.termux.TermuxConstants; -public class TermuxFloatAppSharedPreferences { - - private final Context mContext; - private final SharedPreferences mSharedPreferences; - private final SharedPreferences mMultiProcessSharedPreferences; +public class TermuxFloatAppSharedPreferences extends AppSharedPreferences { private int MIN_FONTSIZE; private int MAX_FONTSIZE; @@ -27,9 +23,11 @@ public class TermuxFloatAppSharedPreferences { private static final String LOG_TAG = "TermuxFloatAppSharedPreferences"; private TermuxFloatAppSharedPreferences(@NonNull Context context) { - mContext = context; - mSharedPreferences = getPrivateSharedPreferences(mContext); - mMultiProcessSharedPreferences = getPrivateAndMultiProcessSharedPreferences(mContext); + super(context, + SharedPreferenceUtils.getPrivateSharedPreferences(context, + TermuxConstants.TERMUX_FLOAT_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION), + SharedPreferenceUtils.getPrivateAndMultiProcessSharedPreferences(context, + TermuxConstants.TERMUX_FLOAT_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION)); setFontVariables(context); } @@ -67,16 +65,6 @@ public class TermuxFloatAppSharedPreferences { return new TermuxFloatAppSharedPreferences(termuxFloatPackageContext); } - private static SharedPreferences getPrivateSharedPreferences(Context context) { - if (context == null) return null; - return SharedPreferenceUtils.getPrivateSharedPreferences(context, TermuxConstants.TERMUX_FLOAT_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION); - } - - private static SharedPreferences getPrivateAndMultiProcessSharedPreferences(Context context) { - if (context == null) return null; - return SharedPreferenceUtils.getPrivateAndMultiProcessSharedPreferences(context, TermuxConstants.TERMUX_FLOAT_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION); - } - public int getWindowX() { diff --git a/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxStylingAppSharedPreferences.java b/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxStylingAppSharedPreferences.java index 5e6b25a2..0e1b539e 100644 --- a/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxStylingAppSharedPreferences.java +++ b/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxStylingAppSharedPreferences.java @@ -1,31 +1,28 @@ package com.termux.shared.termux.settings.preferences; import android.content.Context; -import android.content.SharedPreferences; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.termux.shared.logger.Logger; import com.termux.shared.android.PackageUtils; +import com.termux.shared.settings.preferences.AppSharedPreferences; import com.termux.shared.settings.preferences.SharedPreferenceUtils; import com.termux.shared.termux.TermuxUtils; import com.termux.shared.termux.settings.preferences.TermuxPreferenceConstants.TERMUX_STYLING_APP; import com.termux.shared.termux.TermuxConstants; -public class TermuxStylingAppSharedPreferences { - - private final Context mContext; - private final SharedPreferences mSharedPreferences; - private final SharedPreferences mMultiProcessSharedPreferences; - +public class TermuxStylingAppSharedPreferences extends AppSharedPreferences { private static final String LOG_TAG = "TermuxStylingAppSharedPreferences"; private TermuxStylingAppSharedPreferences(@NonNull Context context) { - mContext = context; - mSharedPreferences = getPrivateSharedPreferences(mContext); - mMultiProcessSharedPreferences = getPrivateAndMultiProcessSharedPreferences(mContext); + super(context, + SharedPreferenceUtils.getPrivateSharedPreferences(context, + TermuxConstants.TERMUX_STYLING_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION), + SharedPreferenceUtils.getPrivateAndMultiProcessSharedPreferences(context, + TermuxConstants.TERMUX_STYLING_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION)); } /** @@ -61,16 +58,6 @@ public class TermuxStylingAppSharedPreferences { return new TermuxStylingAppSharedPreferences(termuxStylingPackageContext); } - private static SharedPreferences getPrivateSharedPreferences(Context context) { - if (context == null) return null; - return SharedPreferenceUtils.getPrivateSharedPreferences(context, TermuxConstants.TERMUX_STYLING_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION); - } - - private static SharedPreferences getPrivateAndMultiProcessSharedPreferences(Context context) { - if (context == null) return null; - return SharedPreferenceUtils.getPrivateAndMultiProcessSharedPreferences(context, TermuxConstants.TERMUX_STYLING_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION); - } - public int getLogLevel(boolean readFromFile) { diff --git a/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxTaskerAppSharedPreferences.java b/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxTaskerAppSharedPreferences.java index b647f096..5c518a67 100644 --- a/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxTaskerAppSharedPreferences.java +++ b/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxTaskerAppSharedPreferences.java @@ -1,31 +1,28 @@ package com.termux.shared.termux.settings.preferences; import android.content.Context; -import android.content.SharedPreferences; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.termux.shared.android.PackageUtils; +import com.termux.shared.settings.preferences.AppSharedPreferences; import com.termux.shared.settings.preferences.SharedPreferenceUtils; import com.termux.shared.termux.TermuxConstants; import com.termux.shared.termux.TermuxUtils; import com.termux.shared.termux.settings.preferences.TermuxPreferenceConstants.TERMUX_TASKER_APP; import com.termux.shared.logger.Logger; -public class TermuxTaskerAppSharedPreferences { - - private final Context mContext; - private final SharedPreferences mSharedPreferences; - private final SharedPreferences mMultiProcessSharedPreferences; - +public class TermuxTaskerAppSharedPreferences extends AppSharedPreferences { private static final String LOG_TAG = "TermuxTaskerAppSharedPreferences"; private TermuxTaskerAppSharedPreferences(@NonNull Context context) { - mContext = context; - mSharedPreferences = getPrivateSharedPreferences(mContext); - mMultiProcessSharedPreferences = getPrivateAndMultiProcessSharedPreferences(mContext); + super(context, + SharedPreferenceUtils.getPrivateSharedPreferences(context, + TermuxConstants.TERMUX_TASKER_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION), + SharedPreferenceUtils.getPrivateAndMultiProcessSharedPreferences(context, + TermuxConstants.TERMUX_TASKER_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION)); } /** @@ -61,16 +58,6 @@ public class TermuxTaskerAppSharedPreferences { return new TermuxTaskerAppSharedPreferences(termuxTaskerPackageContext); } - private static SharedPreferences getPrivateSharedPreferences(Context context) { - if (context == null) return null; - return SharedPreferenceUtils.getPrivateSharedPreferences(context, TermuxConstants.TERMUX_TASKER_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION); - } - - private static SharedPreferences getPrivateAndMultiProcessSharedPreferences(Context context) { - if (context == null) return null; - return SharedPreferenceUtils.getPrivateAndMultiProcessSharedPreferences(context, TermuxConstants.TERMUX_TASKER_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION); - } - public int getLogLevel(boolean readFromFile) { diff --git a/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxWidgetAppSharedPreferences.java b/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxWidgetAppSharedPreferences.java index 301feec2..40ce9226 100644 --- a/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxWidgetAppSharedPreferences.java +++ b/termux-shared/src/main/java/com/termux/shared/termux/settings/preferences/TermuxWidgetAppSharedPreferences.java @@ -1,13 +1,13 @@ package com.termux.shared.termux.settings.preferences; import android.content.Context; -import android.content.SharedPreferences; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.termux.shared.logger.Logger; import com.termux.shared.android.PackageUtils; +import com.termux.shared.settings.preferences.AppSharedPreferences; import com.termux.shared.settings.preferences.SharedPreferenceUtils; import com.termux.shared.termux.TermuxUtils; import com.termux.shared.termux.settings.preferences.TermuxPreferenceConstants.TERMUX_WIDGET_APP; @@ -15,19 +15,16 @@ import com.termux.shared.termux.TermuxConstants; import java.util.UUID; -public class TermuxWidgetAppSharedPreferences { - - private final Context mContext; - private final SharedPreferences mSharedPreferences; - private final SharedPreferences mMultiProcessSharedPreferences; - +public class TermuxWidgetAppSharedPreferences extends AppSharedPreferences { private static final String LOG_TAG = "TermuxWidgetAppSharedPreferences"; private TermuxWidgetAppSharedPreferences(@NonNull Context context) { - mContext = context; - mSharedPreferences = getPrivateSharedPreferences(mContext); - mMultiProcessSharedPreferences = getPrivateAndMultiProcessSharedPreferences(mContext); + super(context, + SharedPreferenceUtils.getPrivateSharedPreferences(context, + TermuxConstants.TERMUX_WIDGET_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION), + SharedPreferenceUtils.getPrivateAndMultiProcessSharedPreferences(context, + TermuxConstants.TERMUX_WIDGET_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION)); } /** @@ -63,16 +60,6 @@ public class TermuxWidgetAppSharedPreferences { return new TermuxWidgetAppSharedPreferences(termuxWidgetPackageContext); } - private static SharedPreferences getPrivateSharedPreferences(Context context) { - if (context == null) return null; - return SharedPreferenceUtils.getPrivateSharedPreferences(context, TermuxConstants.TERMUX_WIDGET_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION); - } - - private static SharedPreferences getPrivateAndMultiProcessSharedPreferences(Context context) { - if (context == null) return null; - return SharedPreferenceUtils.getPrivateAndMultiProcessSharedPreferences(context, TermuxConstants.TERMUX_WIDGET_DEFAULT_PREFERENCES_FILE_BASENAME_WITHOUT_EXTENSION); - } - public static String getGeneratedToken(@NonNull Context context) {