[Android] Better management of the equalizer focus order

Nicolas Pomepuy git at videolan.org
Mon Mar 3 16:07:06 UTC 2025


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Mon Mar  3 15:02:45 2025 +0100| [a4f20160b94371fcfc6674a1cb6887b826093c5d] | committer: Duncan McNamara

Better management of the equalizer focus order

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

 .../src/org/videolan/vlc/gui/audio/EqualizerFragment.kt            | 6 +++++-
 .../vlc-android/src/org/videolan/vlc/gui/view/EqualizerBar.kt      | 7 +++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/application/vlc-android/src/org/videolan/vlc/gui/audio/EqualizerFragment.kt b/application/vlc-android/src/org/videolan/vlc/gui/audio/EqualizerFragment.kt
index d32f291401..21a9beaa88 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/audio/EqualizerFragment.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/audio/EqualizerFragment.kt
@@ -175,9 +175,13 @@ class EqualizerFragment : VLCBottomSheetDialogFragment(), Slider.OnChangeListene
             val params = LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT, 1f)
             bar.layoutParams = params
             eqBandsViews.add(bar)
+            bar.setSliderId(View.generateViewId())
             bar.setListener(BandListener(i))
         }
-
+        for (i in 0 until bandCount) {
+            if (i > 0) eqBandsViews[i].nextFocusLeftId = eqBandsViews[i - 1].getSliderId()
+            if (i < bandCount - 1) eqBandsViews[i].nextFocusRightId = eqBandsViews[i + 1].getSliderId()
+        }
         eqBandsViews[0].nextFocusLeftId = R.id.equalizer_preamp
         eqBandsViews[eqBandsViews.size - 1].nextFocusRightId = R.id.snapBands
 
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/view/EqualizerBar.kt b/application/vlc-android/src/org/videolan/vlc/gui/view/EqualizerBar.kt
index 1cd65410b5..94e85b11c0 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/view/EqualizerBar.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/view/EqualizerBar.kt
@@ -28,6 +28,7 @@ import android.view.LayoutInflater
 import android.view.View
 import android.widget.LinearLayout
 import android.widget.TextView
+import androidx.annotation.IdRes
 import com.google.android.material.slider.Slider
 import org.videolan.vlc.R
 import org.videolan.vlc.interfaces.OnEqualizerBarChangeListener
@@ -115,6 +116,12 @@ class EqualizerBar : LinearLayout {
 
     fun getProgress(): Int = verticalSlider.value.toInt()
 
+    fun setSliderId(@IdRes id: Int) {
+        verticalSlider.id = id
+    }
+
+    fun getSliderId() = verticalSlider.id
+
     companion object {
 
         const val PRECISION = 10



More information about the Android mailing list