[Android] New equalizer dialog: use a snackbar instead of sloppy UI for the delete warning

Nicolas Pomepuy git at videolan.org
Fri Jul 25 11:46:44 UTC 2025


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Thu Jul 24 08:12:10 2025 +0200| [dbaaf34b6863dbf85969175a9090f800724d7011] | committer: Nicolas Pomepuy

New equalizer dialog: use a snackbar instead of sloppy UI for the delete warning

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

 .../vlc-android/res/layout/dialog_equalizer.xml    | 79 +---------------------
 .../vlc/gui/dialogs/EqualizerFragmentDialog.kt     | 19 ++----
 2 files changed, 9 insertions(+), 89 deletions(-)

diff --git a/application/vlc-android/res/layout/dialog_equalizer.xml b/application/vlc-android/res/layout/dialog_equalizer.xml
index f89acf5478..70dedc9451 100644
--- a/application/vlc-android/res/layout/dialog_equalizer.xml
+++ b/application/vlc-android/res/layout/dialog_equalizer.xml
@@ -49,7 +49,6 @@
                 android:id="@+id/equalizer_container"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:animateLayoutChanges="true"
                 android:nextFocusLeft="@+id/equalizer_button"
                 android:nextFocusRight="@+id/equalizer_button"
                 android:nextFocusDown="@+id/equalizer_button"
@@ -138,95 +137,23 @@
                         app:singleSelection="true" />
             </HorizontalScrollView>
 
-            <com.google.android.material.card.MaterialCardView
-                    android:id="@+id/warning_container"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_marginStart="8dp"
-                    android:layout_marginTop="24dp"
-                    android:layout_marginEnd="8dp"
-                    android:clickable="false"
-                    android:visibility="gone"
-                    app:cardBackgroundColor="@color/red500transparent_10"
-                    app:cardCornerRadius="4dp"
-                    app:cardElevation="0dp"
-                    app:cardUseCompatPadding="true"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/equalizer_presets_container"
-                    tools:visibility="visible">
-
-                <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="match_parent"
-                        android:gravity="center_vertical"
-                        android:orientation="horizontal">
-
-                    <TextView
-                            android:id="@+id/warning_text"
-                            android:layout_width="0dp"
-                            android:layout_height="wrap_content"
-                            android:layout_margin="8dp"
-                            android:layout_weight="1"
-                            android:fontFamily="sans-serif-medium"
-                            android:text="@string/confirm_delete_eq" />
-
-                    <androidx.appcompat.widget.AppCompatImageView
-                            android:id="@+id/warning_cancel"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginEnd="8dp"
-                            android:background="?attr/actionBarItemBackground"
-                            android:clickable="true"
-                            android:contentDescription="@string/save"
-                            android:focusable="true"
-                            android:padding="12dp"
-                            app:layout_constraintBottom_toBottomOf="@+id/top_bar"
-                            app:layout_constraintEnd_toEndOf="parent"
-                            app:layout_constraintHorizontal_bias="0.5"
-                            app:layout_constraintStart_toEndOf="@+id/title"
-                            app:layout_constraintTop_toTopOf="@+id/top_bar"
-                            app:srcCompat="@drawable/ic_playlist_delete"
-                            app:tint="?attr/colorControlNormal" />
-
-                    <androidx.appcompat.widget.AppCompatImageView
-                            android:id="@+id/warning_confirm"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginEnd="8dp"
-                            android:background="?attr/actionBarItemBackground"
-                            android:clickable="true"
-                            android:contentDescription="@string/save"
-                            android:focusable="true"
-                            android:padding="12dp"
-                            app:layout_constraintBottom_toBottomOf="@+id/top_bar"
-                            app:layout_constraintEnd_toEndOf="parent"
-                            app:layout_constraintHorizontal_bias="0.5"
-                            app:layout_constraintStart_toEndOf="@+id/title"
-                            app:layout_constraintTop_toTopOf="@+id/top_bar"
-                            app:srcCompat="@drawable/ic_check_large"
-                            app:tint="?attr/colorControlNormal" />
-                </LinearLayout>
-
-            </com.google.android.material.card.MaterialCardView>
-
             <com.google.android.material.card.MaterialCardView
                     android:id="@+id/cardView"
                     style="@style/VLCCardView.NoShadow"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginStart="8dp"
-                    android:layout_marginTop="8dp"
+                    android:layout_marginTop="16dp"
                     android:layout_marginEnd="8dp"
                     android:layout_marginBottom="8dp"
+                    android:clickable="false"
                     app:cardCornerRadius="4dp"
                     app:cardElevation="0dp"
-                    android:clickable="false"
                     app:cardUseCompatPadding="true"
                     app:layout_constraintBottom_toBottomOf="parent"
                     app:layout_constraintEnd_toEndOf="parent"
                     app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/warning_container">
+                    app:layout_constraintTop_toBottomOf="@+id/equalizer_presets_container">
 
                 <androidx.constraintlayout.widget.ConstraintLayout
                         android:layout_width="match_parent"
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 835dc42e71..60611b2b92 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
@@ -182,22 +182,15 @@ class EqualizerFragmentDialog : VLCBottomSheetDialogFragment(), Slider.OnChangeL
         }
 
         binding.delete.setOnClickListener {
-            binding.warningContainer.setVisible()
             viewModel.presetToDelete = viewModel.getCurrentEqualizer()
-            if (getEqualizerType() == TYPE_CUSTOM) {
-                binding.warningText.text = getString(R.string.confirm_delete_eq)
+            val message = if (getEqualizerType() == TYPE_CUSTOM) {
+                 getString(R.string.confirm_delete_eq)
             } else {
-                binding.warningText.text = getString(R.string.confirm_delete_vlc_eq)
+                getString(R.string.confirm_delete_vlc_eq)
+            }
+            UiTools.snackerConfirm(requireActivity(), message, forcedView = binding.contextMenuItemSnackbarHost) {
+                viewModel.deleteEqualizer(requireActivity())
             }
-        }
-
-        binding.warningCancel.setOnClickListener {
-            binding.warningContainer.setGone()
-            viewModel.presetToDelete = null
-        }
-        binding.warningConfirm.setOnClickListener {
-            binding.warningContainer.setGone()
-            viewModel.deleteEqualizer(requireActivity())
         }
 
         binding.edit.setOnClickListener {



More information about the Android mailing list