diff --git a/termux-shared/src/main/java/com/termux/shared/settings/preferences/SharedPreferenceUtils.java b/termux-shared/src/main/java/com/termux/shared/settings/preferences/SharedPreferenceUtils.java index ca16624b..8f7a420a 100644 --- a/termux-shared/src/main/java/com/termux/shared/settings/preferences/SharedPreferenceUtils.java +++ b/termux-shared/src/main/java/com/termux/shared/settings/preferences/SharedPreferenceUtils.java @@ -245,17 +245,22 @@ public class SharedPreferenceUtils { * @param sharedPreferences The {@link SharedPreferences} to get the value from. * @param key The key for the value. * @param def The default value if failed to read a valid value. + * @param defIfEmpty If set to {@code true}, then {@code def} will be returned if value is empty. * @return Returns the {@code String} value stored in {@link SharedPreferences}, otherwise returns * default if failed to read a valid value, like in case of an exception. */ - public static String getString(SharedPreferences sharedPreferences, String key, String def) { + public static String getString(SharedPreferences sharedPreferences, String key, String def, boolean defIfEmpty) { if (sharedPreferences == null) { Logger.logError(LOG_TAG, "Error getting String value for the \"" + key + "\" key from null shared preferences. Returning default value \"" + def + "\"."); return def; } try { - return sharedPreferences.getString(key, def); + String value = sharedPreferences.getString(key, def); + if (defIfEmpty && (value == null || value.isEmpty())) + return def; + else + return value; } catch (ClassCastException e) { Logger.logStackTraceWithMessage(LOG_TAG, "Error getting String value for the \"" + key + "\" key from shared preferences. Returning default value \"" + def + "\".", e); diff --git a/termux-shared/src/main/java/com/termux/shared/settings/preferences/TermuxAppSharedPreferences.java b/termux-shared/src/main/java/com/termux/shared/settings/preferences/TermuxAppSharedPreferences.java index 0fe12b3f..d1bb032e 100644 --- a/termux-shared/src/main/java/com/termux/shared/settings/preferences/TermuxAppSharedPreferences.java +++ b/termux-shared/src/main/java/com/termux/shared/settings/preferences/TermuxAppSharedPreferences.java @@ -178,7 +178,7 @@ public class TermuxAppSharedPreferences { public String getCurrentSession() { - return SharedPreferenceUtils.getString(mSharedPreferences, TERMUX_APP.KEY_CURRENT_SESSION, null); + return SharedPreferenceUtils.getString(mSharedPreferences, TERMUX_APP.KEY_CURRENT_SESSION, null, true); } public void setCurrentSession(String value) {