mirror of
https://github.com/fankes/termux-app.git
synced 2025-09-07 03:05:18 +08:00
Added: Add multi process support in TermuxAppSharedPreferences
since plugin apps may need to read values modified by termux app process
This commit is contained in:
@@ -648,7 +648,7 @@ public final class TermuxService extends Service implements AppShell.AppShellCli
|
|||||||
} else {
|
} else {
|
||||||
TermuxAppSharedPreferences preferences = TermuxAppSharedPreferences.build(this);
|
TermuxAppSharedPreferences preferences = TermuxAppSharedPreferences.build(this);
|
||||||
if (preferences == null) return;
|
if (preferences == null) return;
|
||||||
if (preferences.arePluginErrorNotificationsEnabled())
|
if (preferences.arePluginErrorNotificationsEnabled(false))
|
||||||
Logger.showToast(this, this.getString(R.string.error_display_over_other_apps_permission_not_granted), true);
|
Logger.showToast(this, this.getString(R.string.error_display_over_other_apps_permission_not_granted), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -144,9 +144,9 @@ class DebuggingPreferencesDataStore extends PreferenceDataStore {
|
|||||||
case "terminal_view_key_logging_enabled":
|
case "terminal_view_key_logging_enabled":
|
||||||
return mPreferences.isTerminalViewKeyLoggingEnabled();
|
return mPreferences.isTerminalViewKeyLoggingEnabled();
|
||||||
case "plugin_error_notifications_enabled":
|
case "plugin_error_notifications_enabled":
|
||||||
return mPreferences.arePluginErrorNotificationsEnabled();
|
return mPreferences.arePluginErrorNotificationsEnabled(false);
|
||||||
case "crash_report_notifications_enabled":
|
case "crash_report_notifications_enabled":
|
||||||
return mPreferences.areCrashReportNotificationsEnabled();
|
return mPreferences.areCrashReportNotificationsEnabled(false);
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@@ -241,7 +241,7 @@ public class PluginUtils {
|
|||||||
if (preferences == null) return;
|
if (preferences == null) return;
|
||||||
|
|
||||||
// If user has disabled notifications for plugin commands, then just return
|
// If user has disabled notifications for plugin commands, then just return
|
||||||
if (!preferences.arePluginErrorNotificationsEnabled() && !forceNotification)
|
if (!preferences.arePluginErrorNotificationsEnabled(true) && !forceNotification)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
logTag = DataUtils.getDefaultIfNull(logTag, LOG_TAG);
|
logTag = DataUtils.getDefaultIfNull(logTag, LOG_TAG);
|
||||||
|
@@ -20,6 +20,7 @@ public class TermuxAppSharedPreferences {
|
|||||||
|
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
private final SharedPreferences mSharedPreferences;
|
private final SharedPreferences mSharedPreferences;
|
||||||
|
private final SharedPreferences mMultiProcessSharedPreferences;
|
||||||
|
|
||||||
private int MIN_FONTSIZE;
|
private int MIN_FONTSIZE;
|
||||||
private int MAX_FONTSIZE;
|
private int MAX_FONTSIZE;
|
||||||
@@ -30,6 +31,8 @@ public class TermuxAppSharedPreferences {
|
|||||||
private TermuxAppSharedPreferences(@NonNull Context context) {
|
private TermuxAppSharedPreferences(@NonNull Context context) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mSharedPreferences = getPrivateSharedPreferences(mContext);
|
mSharedPreferences = getPrivateSharedPreferences(mContext);
|
||||||
|
mMultiProcessSharedPreferences = getPrivateAndMultiProcessSharedPreferences(mContext);
|
||||||
|
|
||||||
|
|
||||||
setFontVariables(context);
|
setFontVariables(context);
|
||||||
}
|
}
|
||||||
@@ -73,6 +76,12 @@ public class TermuxAppSharedPreferences {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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() {
|
public boolean shouldShowTerminalToolbar() {
|
||||||
return SharedPreferenceUtils.getBoolean(mSharedPreferences, TERMUX_APP.KEY_SHOW_TERMINAL_TOOLBAR, TERMUX_APP.DEFAULT_VALUE_SHOW_TERMINAL_TOOLBAR);
|
return SharedPreferenceUtils.getBoolean(mSharedPreferences, TERMUX_APP.KEY_SHOW_TERMINAL_TOOLBAR, TERMUX_APP.DEFAULT_VALUE_SHOW_TERMINAL_TOOLBAR);
|
||||||
@@ -218,7 +227,10 @@ public class TermuxAppSharedPreferences {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
public boolean arePluginErrorNotificationsEnabled() {
|
public boolean arePluginErrorNotificationsEnabled(boolean readFromFile) {
|
||||||
|
if (readFromFile)
|
||||||
|
return SharedPreferenceUtils.getBoolean(mMultiProcessSharedPreferences, TERMUX_APP.KEY_PLUGIN_ERROR_NOTIFICATIONS_ENABLED, TERMUX_APP.DEFAULT_VALUE_PLUGIN_ERROR_NOTIFICATIONS_ENABLED);
|
||||||
|
else
|
||||||
return SharedPreferenceUtils.getBoolean(mSharedPreferences, TERMUX_APP.KEY_PLUGIN_ERROR_NOTIFICATIONS_ENABLED, TERMUX_APP.DEFAULT_VALUE_PLUGIN_ERROR_NOTIFICATIONS_ENABLED);
|
return SharedPreferenceUtils.getBoolean(mSharedPreferences, TERMUX_APP.KEY_PLUGIN_ERROR_NOTIFICATIONS_ENABLED, TERMUX_APP.DEFAULT_VALUE_PLUGIN_ERROR_NOTIFICATIONS_ENABLED);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -228,7 +240,10 @@ public class TermuxAppSharedPreferences {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
public boolean areCrashReportNotificationsEnabled() {
|
public boolean areCrashReportNotificationsEnabled(boolean readFromFile) {
|
||||||
|
if (readFromFile)
|
||||||
|
return SharedPreferenceUtils.getBoolean(mMultiProcessSharedPreferences, TERMUX_APP.KEY_CRASH_REPORT_NOTIFICATIONS_ENABLED, TERMUX_APP.DEFAULT_VALUE_CRASH_REPORT_NOTIFICATIONS_ENABLED);
|
||||||
|
else
|
||||||
return SharedPreferenceUtils.getBoolean(mSharedPreferences, TERMUX_APP.KEY_CRASH_REPORT_NOTIFICATIONS_ENABLED, TERMUX_APP.DEFAULT_VALUE_CRASH_REPORT_NOTIFICATIONS_ENABLED);
|
return SharedPreferenceUtils.getBoolean(mSharedPreferences, TERMUX_APP.KEY_CRASH_REPORT_NOTIFICATIONS_ENABLED, TERMUX_APP.DEFAULT_VALUE_CRASH_REPORT_NOTIFICATIONS_ENABLED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user