From 1d669078623fe1c06f4e9b696af796dc49df0300 Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Thu, 9 Jun 2022 17:01:46 -0600 Subject: [PATCH] ui: remove edge-to-edge option Remove the edge-to-edge option, as it turned out to be useless with #149. --- CHANGELOG.md | 6 ++- .../java/org/oxycblt/auxio/MainActivity.kt | 41 ++++++------------- .../auxio/settings/SettingsListFragment.kt | 7 ---- .../oxycblt/auxio/settings/SettingsManager.kt | 5 --- .../org/oxycblt/auxio/ui/StyledImageView.kt | 2 +- app/src/main/res/drawable/ic_indexer.xml | 10 ++--- .../layout-land/fragment_playback_panel.xml | 16 ++++---- .../fragment_playback_panel.xml | 18 ++++---- .../fragment_playback_panel.xml | 18 ++++---- .../layout-sw640dp/fragment_playback_bar.xml | 6 +-- .../fragment_playback_panel.xml | 14 +++---- app/src/main/res/layout/fragment_home.xml | 6 +-- .../main/res/layout/fragment_playback_bar.xml | 2 +- .../res/layout/fragment_playback_panel.xml | 14 +++---- app/src/main/res/layout/item_accent.xml | 2 +- app/src/main/res/layout/item_excluded_dir.xml | 2 +- app/src/main/res/layout/item_queue_song.xml | 4 +- app/src/main/res/layout/item_sort_header.xml | 2 +- app/src/main/res/layout/item_tab.xml | 4 +- app/src/main/res/layout/view_seek_bar.xml | 12 +++--- app/src/main/res/values-sw600dp/styles_ui.xml | 13 ++++-- app/src/main/res/values-sw640dp/styles_ui.xml | 1 + app/src/main/res/values-v31/styles_core.xml | 1 + app/src/main/res/values/dimens.xml | 2 +- app/src/main/res/values/strings.xml | 2 - app/src/main/res/values/styles_android.xml | 4 +- app/src/main/res/values/styles_ui.xml | 14 ++++--- app/src/main/res/xml/prefs_main.xml | 8 ---- 28 files changed, 107 insertions(+), 129 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e62f5a3c..e54d3349b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,15 +4,19 @@ #### What's New - Folders on external drives can now be excluded on Android Q+ [#134] -- Added toggle for edge-to-edge mode [#149] +- Playback bar now has a skip action #### What's Improved - The toolbar in the home UI now collapses when scrolling +- The toolbar layout is now consistent with Material Design 3 - Genre parsing now handles multiple integer values and cover/remix indicators (May wipe playback state) +- Playback bar now picks the larger inset in case that gesture inset is missing [#149] #### Dev/Meta - New translations [Fjuro -> Czech] - Moved music loading to a foreground service +- Phased out `ImageButton` for `MaterialButton` +- Unified icon sizing ## v2.3.1 diff --git a/app/src/main/java/org/oxycblt/auxio/MainActivity.kt b/app/src/main/java/org/oxycblt/auxio/MainActivity.kt index 76c76dd63..ddba5ec69 100644 --- a/app/src/main/java/org/oxycblt/auxio/MainActivity.kt +++ b/app/src/main/java/org/oxycblt/auxio/MainActivity.kt @@ -32,8 +32,6 @@ import org.oxycblt.auxio.music.IndexerService import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.playback.system.PlaybackService import org.oxycblt.auxio.settings.SettingsManager -import org.oxycblt.auxio.ui.accent.Accent -import org.oxycblt.auxio.util.getColorSafe import org.oxycblt.auxio.util.getSystemBarInsetsCompat import org.oxycblt.auxio.util.isNight import org.oxycblt.auxio.util.logD @@ -56,13 +54,11 @@ class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - val settingsManager = SettingsManager.getInstance() - - setupTheme(settingsManager.theme, settingsManager.accent, settingsManager.useBlackTheme) + setupTheme() val binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) - setupEdgeToEdge(binding.root, settingsManager.edgeToEdge) + setupEdgeToEdge(binding.root) logD("Activity created") } @@ -111,41 +107,30 @@ class MainActivity : AppCompatActivity() { return null } - private fun setupTheme(theme: Int, accent: Accent, useBlackTheme: Boolean) { + private fun setupTheme() { + val settingsManager = SettingsManager.getInstance() + // Disable theme customization above Android 12, as it's far enough in as a version to // the point where most phones should have an automatic option for light/dark theming. if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) { - AppCompatDelegate.setDefaultNightMode(theme) + AppCompatDelegate.setDefaultNightMode(settingsManager.theme) } else { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM) } // The black theme has a completely separate set of styles since style attributes cannot // be modified at runtime. - if (isNight && useBlackTheme) { - logD("Applying black theme [accent $accent]") - setTheme(accent.blackTheme) + if (isNight && settingsManager.useBlackTheme) { + logD("Applying black theme [accent ${settingsManager.accent}]") + setTheme(settingsManager.accent.blackTheme) } else { - logD("Applying normal theme [accent $accent]") - setTheme(accent.theme) + logD("Applying normal theme [accent ${settingsManager.accent}]") + setTheme(settingsManager.accent.theme) } } - private fun setupEdgeToEdge(contentView: View, enabled: Boolean) { - val fitsSystemWindows = !enabled - WindowCompat.setDecorFitsSystemWindows(window, fitsSystemWindows) - if (fitsSystemWindows) { - // Auxio's theme is normally set up to anticipate edge to edge mode being - // enabled. In the case that it is not, we have to update the values during - // runtime. - val controller = WindowCompat.getInsetsController(window, window.decorView) - val black = getColorSafe(android.R.color.black) - - window.statusBarColor = black - controller.isAppearanceLightStatusBars = false - window.navigationBarColor = black - controller.isAppearanceLightNavigationBars = false - } + private fun setupEdgeToEdge(contentView: View) { + WindowCompat.setDecorFitsSystemWindows(window, false) contentView.setOnApplyWindowInsetsListener { view, insets -> val bars = insets.getSystemBarInsetsCompat(view) 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 cc295f0fe..9e9bb30c9 100644 --- a/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt @@ -141,13 +141,6 @@ class SettingsListFragment : PreferenceFragmentCompat() { true } } - SettingsManager.KEY_EDGE_TO_EDGE -> { - onPreferenceChangeListener = - Preference.OnPreferenceChangeListener { _, _ -> - requireActivity().recreate() - true - } - } SettingsManager.KEY_LIB_TABS -> { onPreferenceClickListener = Preference.OnPreferenceClickListener { 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 266859c9d..16e506a02 100644 --- a/app/src/main/java/org/oxycblt/auxio/settings/SettingsManager.kt +++ b/app/src/main/java/org/oxycblt/auxio/settings/SettingsManager.kt @@ -62,10 +62,6 @@ class SettingsManager private constructor(context: Context) : } } - /** Whether edge-to-edge is enabled. */ - val edgeToEdge: Boolean - get() = inner.getBoolean(KEY_EDGE_TO_EDGE, true) - /** * Whether to display the RepeatMode or the shuffle status on the notification. False if repeat, * true if shuffle. @@ -308,7 +304,6 @@ class SettingsManager private constructor(context: Context) : const val KEY_THEME = "KEY_THEME2" const val KEY_BLACK_THEME = "KEY_BLACK_THEME" const val KEY_ACCENT = "auxio_accent2" - const val KEY_EDGE_TO_EDGE = "auxio_edge" const val KEY_LIB_TABS = "auxio_lib_tabs" const val KEY_SHOW_COVERS = "KEY_SHOW_COVERS" diff --git a/app/src/main/java/org/oxycblt/auxio/ui/StyledImageView.kt b/app/src/main/java/org/oxycblt/auxio/ui/StyledImageView.kt index 4641838b9..792b6cc3f 100644 --- a/app/src/main/java/org/oxycblt/auxio/ui/StyledImageView.kt +++ b/app/src/main/java/org/oxycblt/auxio/ui/StyledImageView.kt @@ -50,7 +50,7 @@ import org.oxycblt.auxio.util.getDrawableSafe * of the view size, and corner radius application depending on user preference. * @author OxygenCobalt * - * TODO: Add an activation indicator to this view too + * TODO: Rework this layout into a total ViewGroup that enables more customization + an indicator */ class StyledImageView @JvmOverloads diff --git a/app/src/main/res/drawable/ic_indexer.xml b/app/src/main/res/drawable/ic_indexer.xml index d223966f1..4a3d390d0 100644 --- a/app/src/main/res/drawable/ic_indexer.xml +++ b/app/src/main/res/drawable/ic_indexer.xml @@ -2,10 +2,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/layout-land/fragment_playback_panel.xml b/app/src/main/res/layout-land/fragment_playback_panel.xml index 4c135627f..cfa0156a0 100644 --- a/app/src/main/res/layout-land/fragment_playback_panel.xml +++ b/app/src/main/res/layout-land/fragment_playback_panel.xml @@ -88,23 +88,23 @@