[Android] Equalizer: focus the preset when hitting back on eq bands

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 13:54:14 2026 +0200| [957ab84c2a2e735c52e980ff30a3ee85d9fa4bec] | committer: Nicolas Pomepuy

Equalizer: focus the preset when hitting back on eq bands

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

 .../vlc/gui/dialogs/EqualizerFragmentDialog.kt      | 21 ++++++++++++++++++++-
 1 file changed, 20 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 31d8c4a839..34538273a0 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
@@ -34,7 +34,8 @@ import android.view.ViewGroup
 import android.view.ViewGroup.LayoutParams
 import android.widget.HorizontalScrollView
 import android.widget.LinearLayout
-import androidx.appcompat.app.AlertDialog
+import androidx.activity.ComponentDialog
+import androidx.activity.OnBackPressedCallback
 import androidx.core.content.edit
 import androidx.core.view.children
 import androidx.core.view.isEmpty
@@ -104,8 +105,26 @@ class EqualizerFragmentDialog : VLCBottomSheetDialogFragment(), Slider.OnChangeL
         return binding.root
     }
 
+    private val backPressedCallback = object : OnBackPressedCallback(true) {
+        override fun handleOnBackPressed() {
+            if (handleBack()) return
+            dismiss()
+        }
+    }
+
+    private fun handleBack(): Boolean {
+        if (eqBandsViews.any { it.hasFocus() }) {
+            binding.equalizerPresets.children.forEach {
+                if ((it as Chip).isChecked) it.requestFocus()
+            }
+            return true
+        }
+        return false
+    }
+
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         super.onViewCreated(view, savedInstanceState)
+        (dialog as? ComponentDialog)?.onBackPressedDispatcher?.addCallback(viewLifecycleOwner, backPressedCallback)
         if (requireActivity() is EqualizerSettingsActivity) {
             binding.equalizerSettings.setGone()
         }



More information about the Android mailing list