Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorFlorian <64581222+fm-sys@users.noreply.github.com>2020-12-13 11:08:25 +0300
committerNiedermann IT-Dienstleistungen <stefan-niedermann@users.noreply.github.com>2020-12-15 12:29:56 +0300
commitc3181dbb924b93922163762d046cfb991238e850 (patch)
tree5afd0f80fbedbf46cc9dc93242075b17e8722b10 /app/src
parent3cab6716c9e005a4bba42dfbd342e6e1c764af27 (diff)
[DarkModeSetting] cleanup dirty code
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/DeckApplication.java2
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/DarkModeSetting.java20
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java2
3 files changed, 21 insertions, 3 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/DeckApplication.java b/app/src/main/java/it/niedermann/nextcloud/deck/DeckApplication.java
index ba4088aa9..2fc725784 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/DeckApplication.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/DeckApplication.java
@@ -44,7 +44,7 @@ public class DeckApplication extends MultiDexApplication {
boolean darkModeEnabled = prefs.getBoolean(PREF_KEY_THEME, false);
mode = darkModeEnabled ? DarkModeSetting.DARK.getPreferenceValue(context) : DarkModeSetting.LIGHT.getPreferenceValue(context);
}
- return DarkModeSetting.valueOf(mode);
+ return DarkModeSetting.fromPreferenceValue(context, mode);
}
public static boolean isDarkThemeActive(@NonNull Context context, DarkModeSetting setting) {
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/DarkModeSetting.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/DarkModeSetting.java
index 41e894666..14e63423e 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/DarkModeSetting.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/DarkModeSetting.java
@@ -6,12 +6,14 @@ import androidx.annotation.NonNull;
import androidx.annotation.StringRes;
import androidx.appcompat.app.AppCompatDelegate;
+import java.util.NoSuchElementException;
+
import it.niedermann.nextcloud.deck.R;
/**
* Possible values of the Dark Mode Setting.
* <p>
- * The Dark Mode Setting can be stored in {@link android.content.SharedPreferences} as String by using {@link DarkModeSetting#getPreferenceValue(Context)} and received via {@link DarkModeSetting#valueOf(String)}.
+ * The Dark Mode Setting can be stored in {@link android.content.SharedPreferences} as String by using {@link DarkModeSetting#getPreferenceValue(Context)} and received via {@link DarkModeSetting#fromPreferenceValue(Context, String)}.
* <p>
* Additionally, the equivalent {@link AppCompatDelegate}-Mode can be received via {@link #getModeId()}.
*
@@ -49,4 +51,20 @@ public enum DarkModeSetting {
public String getPreferenceValue(@NonNull Context context) {
return context.getString(preferenceValue);
}
+
+ /**
+ * Returns the instance of {@link DarkModeSetting} that corresponds to the preferenceValue
+ *
+ * @param preferenceValue String that is stored in shared preferences
+ * @return An instance of {@link DarkModeSetting}
+ */
+ public static DarkModeSetting fromPreferenceValue(@NonNull Context context, String preferenceValue) {
+ for (DarkModeSetting value : DarkModeSetting.values()) {
+ if (context.getString(value.preferenceValue).equals(preferenceValue)) {
+ return value;
+ }
+ }
+
+ throw new NoSuchElementException("No NightMode with preferenceValue \"" + preferenceValue + "\" found");
+ }
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java
index 5a1d82389..1a1591ff7 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java
@@ -43,7 +43,7 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Brande
Preference themePref = findPreference(getString(R.string.pref_key_dark_theme));
if (themePref != null) {
themePref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> {
- final DarkModeSetting darkTheme = DarkModeSetting.valueOf((String) newValue);
+ final DarkModeSetting darkTheme = DarkModeSetting.fromPreferenceValue(getContext(), (String) newValue);
DeckLog.log("appTheme: " + darkTheme);
setAppTheme(darkTheme);
requireActivity().setResult(Activity.RESULT_OK);