From 3f0331f1c9e30e1472e330be0a7165122cd3c9a8 Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Sun, 28 Feb 2021 15:50:13 -0700 Subject: [PATCH] Redo accents Collapse amber and yellow into a single accent [Yellow], remove the neutral accent due to UI isuses, and darken light-mode accents across the board to be more visible. --- .../auxio/settings/SettingsListFragment.kt | 2 +- .../oxycblt/auxio/settings/SettingsManager.kt | 55 +++++++++++++++++-- .../main/java/org/oxycblt/auxio/ui/Accent.kt | 2 - app/src/main/res/layout/fragment_detail.xml | 6 +- app/src/main/res/values-de/strings.xml | 2 - app/src/main/res/values-es/strings.xml | 2 - app/src/main/res/values-fr/strings.xml | 2 - app/src/main/res/values-hu/strings.xml | 1 - app/src/main/res/values-it/strings.xml | 2 - app/src/main/res/values-night/colors.xml | 3 +- app/src/main/res/values-nl/strings.xml | 1 - app/src/main/res/values-pl/strings.xml | 2 - app/src/main/res/values/colors.xml | 9 ++- app/src/main/res/values/strings.xml | 2 - app/src/main/res/values/themes.xml | 5 -- 15 files changed, 59 insertions(+), 37 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt b/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt index 277bd765d..1828f7838 100644 --- a/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt @@ -75,7 +75,7 @@ class SettingsListFragment : PreferenceFragmentCompat() { } } - SettingsManager.Keys.KEY_ACCENT -> { + SettingsManager.Keys.KEY_ACCENT_OLD -> { onPreferenceClickListener = Preference.OnPreferenceClickListener { showAccentDialog() true diff --git a/app/src/main/java/org/oxycblt/auxio/settings/SettingsManager.kt b/app/src/main/java/org/oxycblt/auxio/settings/SettingsManager.kt index bd322e70a..1974e9248 100644 --- a/app/src/main/java/org/oxycblt/auxio/settings/SettingsManager.kt +++ b/app/src/main/java/org/oxycblt/auxio/settings/SettingsManager.kt @@ -2,7 +2,9 @@ package org.oxycblt.auxio.settings import android.content.Context import android.content.SharedPreferences +import androidx.core.content.edit import androidx.preference.PreferenceManager +import org.oxycblt.auxio.logD import org.oxycblt.auxio.playback.state.PlaybackMode import org.oxycblt.auxio.recycler.DisplayMode import org.oxycblt.auxio.recycler.SortMode @@ -30,7 +32,21 @@ class SettingsManager private constructor(context: Context) : /** The current accent. */ var accent: Accent get() { - // Accent is stored as an index [to be efficient], so retrieve it when done. + if (sharedPrefs.contains(Keys.KEY_ACCENT_OLD)) { + logD("Migrating from old accent to new accent.") + + val newAccent = handleAccentCompat( + sharedPrefs.getInt(Keys.KEY_ACCENT_OLD, 5) + ) + + // When converted, write them to the new accent pref and delete the old one. + sharedPrefs.edit { + putInt(Keys.KEY_ACCENT, newAccent) + remove(Keys.KEY_ACCENT_OLD) + apply() + } + } + return ACCENTS[sharedPrefs.getInt(Keys.KEY_ACCENT, 5)] } set(value) { @@ -171,10 +187,37 @@ class SettingsManager private constructor(context: Context) : } } - /** SharedPreferences keys. */ + /** + * Convert the old accent format of <1.3.1 to the accent format of 1.3.2-Onwards, + * where many accents were changed or removed. + */ + private fun handleAccentCompat(oldAccent: Int): Int { + var newAccent = oldAccent + + // Correct any accents over yellow to their correct positions + if (oldAccent > 12) { + newAccent-- + } + + // Correct neutral accents to the closest accent [Grey] + if (newAccent == 18) { + newAccent = 16 + } + + // If there are still any issues with indices, just correct them so a crash doesnt occur. + if (newAccent > ACCENTS.lastIndex) { + newAccent = ACCENTS.lastIndex + } + + return newAccent + } + + /** + * SharedPreferences keys. + */ object Keys { const val KEY_THEME = "KEY_THEME" - const val KEY_ACCENT = "KEY_ACCENT" + const val KEY_ACCENT = "KEY_ACCENT2" const val KEY_EDGE_TO_EDGE = "KEY_EDGE" const val KEY_LIBRARY_DISPLAY_MODE = "KEY_LIBRARY_DISPLAY_MODE" const val KEY_SHOW_COVERS = "KEY_SHOW_COVERS" @@ -191,9 +234,13 @@ class SettingsManager private constructor(context: Context) : const val KEY_LIBRARY_SORT_MODE = "KEY_LIBRARY_SORT_MODE" const val KEY_SEARCH_FILTER_MODE = "KEY_SEARCH" const val KEY_DEBUG_SAVE = "KEY_SAVE_STATE" + + const val KEY_ACCENT_OLD = "KEY_ACCENT" } - /** Values for some settings entries that cant be enums/ints.*/ + /** + * Values for some settings entries that arent important enough to recieve an enum. + */ object EntryValues { const val THEME_AUTO = "AUTO" const val THEME_LIGHT = "LIGHT" diff --git a/app/src/main/java/org/oxycblt/auxio/ui/Accent.kt b/app/src/main/java/org/oxycblt/auxio/ui/Accent.kt index 3f4d7bc0f..5295a14c7 100644 --- a/app/src/main/java/org/oxycblt/auxio/ui/Accent.kt +++ b/app/src/main/java/org/oxycblt/auxio/ui/Accent.kt @@ -30,13 +30,11 @@ val ACCENTS = arrayOf( Accent(R.color.light_green, R.style.Theme_LightGreen, R.string.color_label_light_green), Accent(R.color.lime, R.style.Theme_Lime, R.string.color_label_lime), Accent(R.color.yellow, R.style.Theme_Yellow, R.string.color_label_yellow), - Accent(R.color.amber, R.style.Theme_Amber, R.string.color_label_amber), Accent(R.color.orange, R.style.Theme_Orange, R.string.color_label_orange), Accent(R.color.deep_orange, R.style.Theme_DeepOrange, R.string.color_label_deep_orange), Accent(R.color.brown, R.style.Theme_Brown, R.string.color_label_brown), Accent(R.color.grey, R.style.Theme_Gray, R.string.color_label_grey), Accent(R.color.blue_grey, R.style.Theme_BlueGrey, R.string.color_label_blue_grey), - Accent(R.color.control_color, R.style.Theme_Neutral, R.string.color_label_neutral) ) /** diff --git a/app/src/main/res/layout/fragment_detail.xml b/app/src/main/res/layout/fragment_detail.xml index e8d6cfdae..3845f7901 100644 --- a/app/src/main/res/layout/fragment_detail.xml +++ b/app/src/main/res/layout/fragment_detail.xml @@ -2,7 +2,7 @@ + tools:context=".detail.DetailFragment"> + \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index f93ec577d..a67aac4c1 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -138,13 +138,11 @@ Hellgrün Lindgrün Gelb - Bernsteingelb Orange Tieforange Braun Grau Blaugrau - Neutral Nächsten von: %s diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 49c18fdee..c21151902 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -89,12 +89,10 @@ Verde Claro Verde Amarillo Amarillo - Ambar Naranja Marrón Gris Azul Gris - Neutro Canciones encontradas: %d diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index a869e0586..33dd21681 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -88,12 +88,10 @@ Vert Clair Vert Citron Jaune - Ambre Orange Brun Gris Bleu Gris - Neutre Titres chargés: %d diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 9fd90a53b..261166527 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -91,7 +91,6 @@ Barna Szürke Kékszürke - Semleges diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 105703be8..edf36319d 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -89,12 +89,10 @@ Verde Chiaro Verde Giallo Giallo - Ambra Arancio Bruno Grigio Azzurro Grigio - Neutrale Brani caricate: %d diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index 739419fdb..c5943d9f8 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -23,8 +23,7 @@ #a5d6a7 #c5e1a5 #e6ee9c - #fff59d - #ffe082 + #ffe082 #ffcc80 #ffab91 #bcaaa4 diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index e137c0771..844c3180a 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -95,7 +95,6 @@ Bruin Grijis Blauwgrijis - Neutraal Nummers geladen: %d diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index c79f0b309..4ca7fa0c2 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -85,12 +85,10 @@ Jasnozielony Żółtyzielony Żółty - Bursztynowy Pomarańczowy Brązowy Szary Błękitszary - Neutralny Utwory uruchamia się: %d diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 29416d1a4..4a7ff6bb1 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -22,12 +22,11 @@ #009688 #4caf50 #8bc34a - #cddc39 - #f1ca00 - #ffc107 - #ff9800 + #B7C534 + #E4AC00 + #E68A01 #ff5722 #795548 - #9e9e9e + #808080 #607d8b \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index eb7aae8dd..33bb1fc17 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -141,13 +141,11 @@ Light Green Lime Yellow - Amber Orange Deep Orange Brown Grey Blue Grey - Neutral Next From: %s diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 1afd231c2..b9b8e7426 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -68,11 +68,6 @@ @color/yellow - -