[Android] Equalizer: fix the focus when current equalizer changes

Nicolas Pomepuy git at videolan.org
Thu Jun 4 12:32:45 UTC 2026


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Thu Jun  4 12:16:16 2026 +0200| [cc8cc68826177aec4f9ea9bcdc5e7c13b8d41a23] | committer: Nicolas Pomepuy

Equalizer: fix the focus when current equalizer changes

> https://code.videolan.org/videolan/vlc-android/commit/cc8cc68826177aec4f9ea9bcdc5e7c13b8d41a23
---

 .../src/org/videolan/vlc/gui/dialogs/EqualizerFragmentDialog.kt    | 7 ++++++-
 .../src/org/videolan/vlc/viewmodels/EqualizerViewModel.kt          | 3 +++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/application/vlc-android/src/org/videolan/vlc/gui/dialogs/EqualizerFragmentDialog.kt b/application/vlc-android/src/org/videolan/vlc/gui/dialogs/EqualizerFragmentDialog.kt
index dc179ed282..31d8c4a839 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/dialogs/EqualizerFragmentDialog.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/dialogs/EqualizerFragmentDialog.kt
@@ -241,7 +241,8 @@ class EqualizerFragmentDialog : VLCBottomSheetDialogFragment(), Slider.OnChangeL
             chip.text = item.equalizerEntry.name
             chip.tag = item.equalizerEntry.id
             chip.isCheckable = true
-            chip.nextFocusDownId = if (item.equalizerEntry.presetIndex == -1) R.id.edit else R.id.preset_title_edit
+            val isCurrentCustom = viewModel.isCurrentEqCustom()
+            chip.nextFocusDownId = if (!isCurrentCustom) R.id.edit else R.id.preset_title_edit
             if (item.equalizerEntry.presetIndex == -1) chip.setChipBackgroundColorResource(R.color.orange_800_transparent_10)
             if (item.equalizerEntry.id == viewModel.currentEqualizerId) {
                 selectedChip = chip
@@ -256,6 +257,10 @@ class EqualizerFragmentDialog : VLCBottomSheetDialogFragment(), Slider.OnChangeL
                 fillBands()
                 selectPreset()
                 oldCurrentEqualizer = viewModel.getCurrentEqualizer()
+                val isCurrentCustom = viewModel.isCurrentEqCustom()
+                binding.equalizerPresets.children.forEach {
+                    it.nextFocusDownId = if (!isCurrentCustom) R.id.edit else R.id.preset_title_edit
+                }
             }
             binding.equalizerPresets.addView(chip)
         }
diff --git a/application/vlc-android/src/org/videolan/vlc/viewmodels/EqualizerViewModel.kt b/application/vlc-android/src/org/videolan/vlc/viewmodels/EqualizerViewModel.kt
index 27ff875a33..f5420a6fd8 100644
--- a/application/vlc-android/src/org/videolan/vlc/viewmodels/EqualizerViewModel.kt
+++ b/application/vlc-android/src/org/videolan/vlc/viewmodels/EqualizerViewModel.kt
@@ -91,6 +91,9 @@ class EqualizerViewModel(context: Context, private val equalizerRepository: Equa
             currentEqualizerIdLive.postValue(value)
         }
 
+    fun isCurrentEqCustom() =
+        equalizerEntries.value?.firstOrNull { it.equalizerEntry.id == currentEqualizerId }?.equalizerEntry?.presetIndex == -1
+
     fun updateEqualizer() {
         if (!settings.getBoolean(KEY_EQUALIZER_ENABLED, false))
             PlaybackService.equalizer.value = MediaPlayer.Equalizer.create()



More information about the Android mailing list