[Android] Equalizer: display a dialog instead of the useless snackbar on TV

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


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Wed Jun  3 13:30:04 2026 +0200| [dc50c2404bce13d813e623b39d8f2029d3d31a50] | committer: Nicolas Pomepuy

Equalizer: display a dialog instead of the useless snackbar on TV

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

 .../vlc/gui/dialogs/EqualizerFragmentDialog.kt     | 30 +++++++++++++++++-----
 1 file changed, 24 insertions(+), 6 deletions(-)

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 74cee1f19c..3d3b4e3247 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,8 +34,11 @@ import android.view.ViewGroup
 import android.view.ViewGroup.LayoutParams
 import android.widget.HorizontalScrollView
 import android.widget.LinearLayout
+import androidx.appcompat.app.AlertDialog
 import androidx.core.content.edit
 import androidx.core.view.children
+import androidx.core.view.isEmpty
+import androidx.core.view.isNotEmpty
 import androidx.fragment.app.viewModels
 import androidx.lifecycle.lifecycleScope
 import com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_EXPANDED
@@ -53,7 +56,6 @@ import org.videolan.tools.Settings
 import org.videolan.tools.dp
 import org.videolan.tools.isStarted
 import org.videolan.tools.setGone
-import org.videolan.tools.setVisible
 import org.videolan.vlc.R
 import org.videolan.vlc.databinding.DialogEqualizerBinding
 import org.videolan.vlc.gui.EqualizerSettingsActivity
@@ -65,12 +67,10 @@ import org.videolan.vlc.mediadb.models.EqualizerBand
 import org.videolan.vlc.mediadb.models.EqualizerWithBands
 import org.videolan.vlc.repository.EqualizerRepository
 import org.videolan.vlc.viewmodels.EqualizerViewModel
+import org.videolan.vlc.viewmodels.EqualizerViewModel.Companion.currentEqualizerIdLive
 import org.videolan.vlc.viewmodels.EqualizerViewModelFactory
 import kotlin.math.absoluteValue
 import kotlin.math.roundToInt
-import androidx.core.view.isEmpty
-import androidx.core.view.isNotEmpty
-import org.videolan.vlc.viewmodels.EqualizerViewModel.Companion.currentEqualizerIdLive
 
 
 /**
@@ -165,7 +165,7 @@ class EqualizerFragmentDialog : VLCBottomSheetDialogFragment(), Slider.OnChangeL
 
         binding.equalizerSettings.setOnClickListener {
             if (requireActivity() is VideoPlayerActivity)
-                UiTools.snackerConfirm(requireActivity(), getString(R.string.equalizer_leave_warning), forcedView = binding.contextMenuItemSnackbarHost) {
+                showSnackOrDialog(getString(R.string.equalizer_leave_warning)) {
                     startActivity(Intent(requireActivity(), EqualizerSettingsActivity::class.java))
                 }
             else
@@ -189,7 +189,7 @@ class EqualizerFragmentDialog : VLCBottomSheetDialogFragment(), Slider.OnChangeL
             } else {
                 getString(R.string.confirm_delete_vlc_eq)
             }
-            UiTools.snackerConfirm(requireActivity(), message, forcedView = binding.contextMenuItemSnackbarHost) {
+            showSnackOrDialog(message) {
                 viewModel.deleteEqualizer(requireActivity())
             }
         }
@@ -215,6 +215,24 @@ class EqualizerFragmentDialog : VLCBottomSheetDialogFragment(), Slider.OnChangeL
 
     }
 
+    private fun showSnackOrDialog(message: String, listener: () -> Unit) {
+        if (!Settings.showTvUi)
+            UiTools.snackerConfirm(requireActivity(), message, forcedView = binding.contextMenuItemSnackbarHost, action = listener)
+        else {
+            AlertDialog.Builder(requireActivity())
+                .setTitle(R.string.equalizer)
+                .setMessage(message)
+                .setCancelable(true)
+                .setPositiveButton(R.string.ok) { _, _ ->
+                    listener()
+                }
+                .setNegativeButton(R.string.cancel) { _, _ ->
+
+                }
+                .show()
+        }
+    }
+
     private fun fillPreamp() {
         // preamp
         binding.equalizerPreamp.value = viewModel.getCurrentEqualizer().equalizerEntry.preamp.roundToInt().toFloat()



More information about the Android mailing list