From 118172b7c8d5f3917fa99e57284e86f5536ee3be Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Mon, 15 Feb 2021 14:25:13 -0700 Subject: [PATCH] Fix song selection bug Fix a bug where if a song is selected while shuffling it would not move that song to the beginning of the queue. --- .../auxio/playback/state/PlaybackStateManager.kt | 2 +- .../auxio/settings/SettingsListFragment.kt | 16 +++++++++------- app/src/main/res/values-ro/strings.xml | 7 +------ app/src/main/res/values/strings.xml | 2 +- 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt b/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt index cc12cb4c2..e6f663ce4 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt @@ -352,7 +352,7 @@ class PlaybackStateManager private constructor() { * @param to The destination index. */ fun moveQueueItems(from: Int, to: Int): Boolean { - if (from > mUserQueue.size || from < 0 || to > mUserQueue.size || to < 0) { + if (from > mQueue.size || from < 0 || to > mQueue.size || to < 0) { logE("Indices were out of bounds, did not move queue item") return false 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 dfe769dbc..68ee7d3a7 100644 --- a/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt @@ -13,6 +13,7 @@ import androidx.recyclerview.widget.RecyclerView import coil.Coil import com.afollestad.materialdialogs.MaterialDialog import com.afollestad.materialdialogs.customview.customView +import com.afollestad.materialdialogs.utils.invalidateDividers import org.oxycblt.auxio.BuildConfig import org.oxycblt.auxio.R import org.oxycblt.auxio.logD @@ -29,6 +30,7 @@ import org.oxycblt.auxio.ui.Accent @Suppress("UNUSED") class SettingsListFragment : PreferenceFragmentCompat() { private val playbackModel: PlaybackViewModel by activityViewModels() + val settingsManager = SettingsManager.getInstance() override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) @@ -93,7 +95,7 @@ class SettingsListFragment : PreferenceFragmentCompat() { } SettingsManager.Keys.KEY_LIBRARY_DISPLAY_MODE -> { - setIcon(SettingsManager.getInstance().libraryDisplayMode.iconRes) + setIcon(settingsManager.libraryDisplayMode.iconRes) onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, value -> setIcon(DisplayMode.valueOfOrFallback(value as String).iconRes) @@ -150,7 +152,7 @@ class SettingsListFragment : PreferenceFragmentCompat() { val recycler = RecyclerView(requireContext()).apply { adapter = AccentAdapter { if (it != Accent.get()) { - SettingsManager.getInstance().accent = it + settingsManager.accent = it requireActivity().recreate() } @@ -158,6 +160,10 @@ class SettingsListFragment : PreferenceFragmentCompat() { this@show.dismiss() } + layoutManager = LinearLayoutManager( + requireContext(), LinearLayoutManager.HORIZONTAL, false + ) + post { // Combine the width of the recyclerview with the width of an item in order // to center the currently selected accent. @@ -169,15 +175,11 @@ class SettingsListFragment : PreferenceFragmentCompat() { (width / 2) - childWidth ) } - - layoutManager = LinearLayoutManager( - requireContext() - ).also { it.orientation = LinearLayoutManager.HORIZONTAL } } customView(view = recycler) - view.invalidateDividers(showTop = false, showBottom = false) + invalidateDividers(showTop = false, showBottom = false) negativeButton(android.R.string.cancel) diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 076862674..c23ea0f8d 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -47,15 +47,10 @@ Automatică Clar Întunecat - Accent - Unknown Accent + Culoare accentuată Colorează notificarea Ignoră coperțile Media Store - Increases the quality of the album covers, but results in longer loading times and higher memory usage - Use alternate notification action - Prefer repeat mode action - Prefer shuffle action Audio Concentrare audio diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6ac6747e4..f010e0091 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -23,7 +23,7 @@ Sort Default Ascending - Decending + Descending Play Shuffle