From 997860fe522e67dff087e4184a80fc9656de28d8 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Sat, 18 Feb 2023 14:51:55 +0100 Subject: [PATCH] Extra toggle for full black theme (#6328) --- .../test/antennapod/ui/PreferencesTest.java | 39 ++---- .../UserInterfacePreferencesFragment.java | 27 ++-- .../preferences/PreferenceUpgrader.java | 8 ++ .../preferences/ThemePreference.java | 53 ++++++++ .../res/drawable-nodpi/theme_preview_dark.png | Bin 0 -> 18079 bytes .../drawable-nodpi/theme_preview_light.png | Bin 0 -> 17760 bytes .../drawable-nodpi/theme_preview_system.png | Bin 0 -> 34076 bytes app/src/main/res/layout/theme_preference.xml | 123 ++++++++++++++++++ .../res/xml/preferences_user_interface.xml | 14 +- .../core/preferences/ThemeSwitcher.java | 7 +- core/src/main/res/values/arrays.xml | 14 -- .../storage/preferences/UserPreferences.java | 21 ++- ui/i18n/src/main/res/values/strings.xml | 9 +- 13 files changed, 240 insertions(+), 75 deletions(-) create mode 100644 app/src/main/java/de/danoeh/antennapod/preferences/ThemePreference.java create mode 100644 app/src/main/res/drawable-nodpi/theme_preview_dark.png create mode 100644 app/src/main/res/drawable-nodpi/theme_preview_light.png create mode 100644 app/src/main/res/drawable-nodpi/theme_preview_system.png create mode 100644 app/src/main/res/layout/theme_preference.xml diff --git a/app/src/androidTest/java/de/test/antennapod/ui/PreferencesTest.java b/app/src/androidTest/java/de/test/antennapod/ui/PreferencesTest.java index 909b7a5a2..b790bc005 100644 --- a/app/src/androidTest/java/de/test/antennapod/ui/PreferencesTest.java +++ b/app/src/androidTest/java/de/test/antennapod/ui/PreferencesTest.java @@ -3,14 +3,22 @@ package de.test.antennapod.ui; import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Resources; - import androidx.annotation.StringRes; import androidx.preference.PreferenceManager; import androidx.test.espresso.matcher.RootMatchers; import androidx.test.filters.LargeTest; import androidx.test.rule.ActivityTestRule; - +import de.danoeh.antennapod.R; +import de.danoeh.antennapod.activity.PreferenceActivity; +import de.danoeh.antennapod.core.storage.APCleanupAlgorithm; +import de.danoeh.antennapod.core.storage.APNullCleanupAlgorithm; +import de.danoeh.antennapod.core.storage.APQueueCleanupAlgorithm; +import de.danoeh.antennapod.core.storage.EpisodeCleanupAlgorithm; import de.danoeh.antennapod.core.storage.EpisodeCleanupAlgorithmFactory; +import de.danoeh.antennapod.core.storage.ExceptFavoriteCleanupAlgorithm; +import de.danoeh.antennapod.storage.preferences.UserPreferences; +import de.danoeh.antennapod.storage.preferences.UserPreferences.EnqueueLocation; +import de.test.antennapod.EspressoTestUtils; import org.awaitility.Awaitility; import org.junit.Before; import org.junit.Rule; @@ -19,17 +27,6 @@ import org.junit.Test; import java.util.Arrays; import java.util.concurrent.TimeUnit; -import de.danoeh.antennapod.R; -import de.danoeh.antennapod.activity.PreferenceActivity; -import de.danoeh.antennapod.storage.preferences.UserPreferences; -import de.danoeh.antennapod.storage.preferences.UserPreferences.EnqueueLocation; -import de.danoeh.antennapod.core.storage.APCleanupAlgorithm; -import de.danoeh.antennapod.core.storage.APNullCleanupAlgorithm; -import de.danoeh.antennapod.core.storage.APQueueCleanupAlgorithm; -import de.danoeh.antennapod.core.storage.EpisodeCleanupAlgorithm; -import de.danoeh.antennapod.core.storage.ExceptFavoriteCleanupAlgorithm; -import de.test.antennapod.EspressoTestUtils; - import static androidx.test.espresso.Espresso.onData; import static androidx.test.espresso.Espresso.onView; import static androidx.test.espresso.action.ViewActions.click; @@ -77,22 +74,6 @@ public class PreferencesTest { UserPreferences.init(activityTestRule.getActivity()); } - @Test - public void testSwitchTheme() { - final UserPreferences.ThemePreference theme = UserPreferences.getTheme(); - int otherThemeText; - if (theme == UserPreferences.ThemePreference.DARK) { - otherThemeText = R.string.pref_theme_title_light; - } else { - otherThemeText = R.string.pref_theme_title_dark; - } - clickPreference(R.string.user_interface_label); - clickPreference(R.string.pref_set_theme_title); - onView(withText(otherThemeText)).perform(click()); - Awaitility.await().atMost(1000, MILLISECONDS) - .until(() -> UserPreferences.getTheme() != theme); - } - @Test public void testEnablePersistentPlaybackControls() { final boolean persistNotify = UserPreferences.isPersistNotify(); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/UserInterfacePreferencesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/UserInterfacePreferencesFragment.java index caf555964..66f592af2 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/UserInterfacePreferencesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/UserInterfacePreferencesFragment.java @@ -5,18 +5,19 @@ import android.os.Build; import android.os.Bundle; import android.widget.ListView; import androidx.appcompat.app.AlertDialog; -import com.google.android.material.snackbar.Snackbar; -import com.google.android.material.dialog.MaterialAlertDialogBuilder; import androidx.core.app.ActivityCompat; +import androidx.preference.Preference; import androidx.preference.PreferenceFragmentCompat; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; +import com.google.android.material.snackbar.Snackbar; import de.danoeh.antennapod.R; import de.danoeh.antennapod.activity.PreferenceActivity; -import de.danoeh.antennapod.storage.preferences.UserPreferences; import de.danoeh.antennapod.dialog.DrawerPreferencesDialog; import de.danoeh.antennapod.dialog.FeedSortDialog; import de.danoeh.antennapod.dialog.SubscriptionsFilterDialog; import de.danoeh.antennapod.event.PlayerStatusEvent; import de.danoeh.antennapod.event.UnreadItemsUpdateEvent; +import de.danoeh.antennapod.storage.preferences.UserPreferences; import org.greenrobot.eventbus.EventBus; import java.util.List; @@ -37,22 +38,16 @@ public class UserInterfacePreferencesFragment extends PreferenceFragmentCompat { } private void setupInterfaceScreen() { - findPreference(UserPreferences.PREF_THEME) - .setOnPreferenceChangeListener( - (preference, newValue) -> { - ActivityCompat.recreate(getActivity()); - return true; - }); - + Preference.OnPreferenceChangeListener restartApp = (preference, newValue) -> { + ActivityCompat.recreate(getActivity()); + return true; + }; + findPreference(UserPreferences.PREF_THEME).setOnPreferenceChangeListener(restartApp); + findPreference(UserPreferences.PREF_THEME_BLACK).setOnPreferenceChangeListener(restartApp); + findPreference(UserPreferences.PREF_TINTED_COLORS).setOnPreferenceChangeListener(restartApp); if (Build.VERSION.SDK_INT < 31) { findPreference(UserPreferences.PREF_TINTED_COLORS).setVisible(false); } - findPreference(UserPreferences.PREF_TINTED_COLORS) - .setOnPreferenceChangeListener( - (preference, newValue) -> { - ActivityCompat.recreate(getActivity()); - return true; - }); findPreference(UserPreferences.PREF_SHOW_TIME_LEFT) .setOnPreferenceChangeListener( diff --git a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java index e093c067d..79d06de59 100644 --- a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java +++ b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java @@ -133,5 +133,13 @@ public class PreferenceUpgrader { "" + UserPreferences.EPISODE_CACHE_SIZE_UNLIMITED).apply(); } } + if (oldVersion < 3010000) { + if (prefs.getString(UserPreferences.PREF_THEME, "system").equals("2")) { + prefs.edit() + .putString(UserPreferences.PREF_THEME, "1") + .putBoolean(UserPreferences.PREF_THEME_BLACK, true) + .apply(); + } + } } } diff --git a/app/src/main/java/de/danoeh/antennapod/preferences/ThemePreference.java b/app/src/main/java/de/danoeh/antennapod/preferences/ThemePreference.java new file mode 100644 index 000000000..30cbeb523 --- /dev/null +++ b/app/src/main/java/de/danoeh/antennapod/preferences/ThemePreference.java @@ -0,0 +1,53 @@ +package de.danoeh.antennapod.preferences; + +import android.content.Context; +import android.util.AttributeSet; +import androidx.cardview.widget.CardView; +import androidx.preference.Preference; +import androidx.preference.PreferenceViewHolder; +import com.google.android.material.elevation.SurfaceColors; +import de.danoeh.antennapod.R; +import de.danoeh.antennapod.databinding.ThemePreferenceBinding; +import de.danoeh.antennapod.storage.preferences.UserPreferences; + +public class ThemePreference extends Preference { + ThemePreferenceBinding viewBinding; + + public ThemePreference(Context context) { + super(context); + setLayoutResource(R.layout.theme_preference); + } + + public ThemePreference(Context context, AttributeSet attrs) { + super(context, attrs); + setLayoutResource(R.layout.theme_preference); + } + + @Override + public void onBindViewHolder(PreferenceViewHolder holder) { + super.onBindViewHolder(holder); + viewBinding = ThemePreferenceBinding.bind(holder.itemView); + updateUi(); + } + + void updateThemeCard(CardView card, UserPreferences.ThemePreference theme) { + float density = getContext().getResources().getDisplayMetrics().density; + int surfaceColor = SurfaceColors.getColorForElevation(getContext(), 1 * density); + int surfaceColorActive = SurfaceColors.getColorForElevation(getContext(), 32 * density); + UserPreferences.ThemePreference activeTheme = UserPreferences.getTheme(); + card.setCardBackgroundColor(theme == activeTheme ? surfaceColorActive : surfaceColor); + card.setOnClickListener(v -> { + UserPreferences.setTheme(theme); + if (getOnPreferenceChangeListener() != null) { + getOnPreferenceChangeListener().onPreferenceChange(this, UserPreferences.getTheme()); + } + updateUi(); + }); + } + + void updateUi() { + updateThemeCard(viewBinding.themeSystemCard, UserPreferences.ThemePreference.SYSTEM); + updateThemeCard(viewBinding.themeLightCard, UserPreferences.ThemePreference.LIGHT); + updateThemeCard(viewBinding.themeDarkCard, UserPreferences.ThemePreference.DARK); + } +} diff --git a/app/src/main/res/drawable-nodpi/theme_preview_dark.png b/app/src/main/res/drawable-nodpi/theme_preview_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..b4e1e0376a4ce6c08668809c3a018c8d3911ec63 GIT binary patch literal 18079 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�^{-^Jw@ym>b)GO5|0 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 d>b^t4YJGe87K~mD{FfHja52?`} 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 bN2=u9C@k@u=nnWlh`-cTw3JH~AEEyr#7V$O literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/theme_preference.xml b/app/src/main/res/layout/theme_preference.xml new file mode 100644 index 000000000..32a7ed1e8 --- /dev/null +++ b/app/src/main/res/layout/theme_preference.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/xml/preferences_user_interface.xml b/app/src/main/res/xml/preferences_user_interface.xml index f11b89be7..ed3f5777a 100644 --- a/app/src/main/res/xml/preferences_user_interface.xml +++ b/app/src/main/res/xml/preferences_user_interface.xml @@ -4,13 +4,13 @@ xmlns:search="http://schemas.android.com/apk/com.bytehamster.lib.preferencesearch"> - + + -2 - - @string/pref_theme_title_use_system - @string/pref_theme_title_light - @string/pref_theme_title_dark - @string/pref_theme_title_trueblack - - - - system - 0 - 1 - 2 - - @string/home_label @string/queue_label diff --git a/storage/preferences/src/main/java/de/danoeh/antennapod/storage/preferences/UserPreferences.java b/storage/preferences/src/main/java/de/danoeh/antennapod/storage/preferences/UserPreferences.java index 8d9b099fc..c7758d40e 100644 --- a/storage/preferences/src/main/java/de/danoeh/antennapod/storage/preferences/UserPreferences.java +++ b/storage/preferences/src/main/java/de/danoeh/antennapod/storage/preferences/UserPreferences.java @@ -48,6 +48,7 @@ public class UserPreferences { // User Interface public static final String PREF_THEME = "prefTheme"; + public static final String PREF_THEME_BLACK = "prefThemeBlack"; public static final String PREF_TINTED_COLORS = "prefTintedColors"; public static final String PREF_HIDDEN_DRAWER_ITEMS = "prefHiddenDrawerItems"; public static final String PREF_DRAWER_FEED_ORDER = "prefDrawerFeedOrder"; @@ -159,19 +160,35 @@ public class UserPreferences { LIGHT, DARK, BLACK, SYSTEM } + public static void setTheme(ThemePreference theme) { + switch (theme) { + case LIGHT: + prefs.edit().putString(PREF_THEME, "0").apply(); + break; + case DARK: + prefs.edit().putString(PREF_THEME, "1").apply(); + break; + default: + prefs.edit().putString(PREF_THEME, "system").apply(); + break; + } + } + public static ThemePreference getTheme() { switch (prefs.getString(PREF_THEME, "system")) { case "0": return ThemePreference.LIGHT; case "1": return ThemePreference.DARK; - case "2": - return ThemePreference.BLACK; default: return ThemePreference.SYSTEM; } } + public static boolean getIsBlackTheme() { + return prefs.getBoolean(PREF_THEME_BLACK, false); + } + public static boolean getIsThemeColorTinted() { return Build.VERSION.SDK_INT >= 31 && prefs.getBoolean(PREF_TINTED_COLORS, false); } diff --git a/ui/i18n/src/main/res/values/strings.xml b/ui/i18n/src/main/res/values/strings.xml index 40015630f..db91c43ae 100644 --- a/ui/i18n/src/main/res/values/strings.xml +++ b/ui/i18n/src/main/res/values/strings.xml @@ -432,8 +432,9 @@ Streaming User Interface Appearance, Subscriptions, Lockscreen - Select Theme - Use Tinted Colors + Full Black + Use full black for the dark theme + Tinted Colors Tint app colors based on the background image Set Navigation Drawer items Change which items appear in the navigation drawer. @@ -441,7 +442,6 @@ Change the order of your subscriptions Set Subscription Counter Change the information displayed by the subscription counter. Also affects the sorting of subscriptions if \'Subscription Order\' is set to \'Counter\'. - Change the appearance of AntennaPod. Automatic Download Configure the automatic download of episodes. Enable Wi-Fi filter @@ -455,10 +455,9 @@ Use the episode specific cover in lists whenever available. If unchecked, the app will always use the podcast cover image. Show Remaining Time Display remaining time of episodes when checked. If unchecked, display total duration of episodes. - Use system theme + Automatic Light Dark - Black (AMOLED ready) Unlimited Customize the speeds available for variable speed playback The speed to use when starting audio playback for episodes in this podcast