[Android] New equalizer: get rid of the useless state binding variable
Nicolas Pomepuy
git at videolan.org
Fri Jul 25 11:46:42 UTC 2025
vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Thu Jun 12 09:29:02 2025 +0200| [229028c6ba4f3d35b1addf037c0f33c7e27d5b32] | committer: Nicolas Pomepuy
New equalizer: get rid of the useless state binding variable
> https://code.videolan.org/videolan/vlc-android/commit/229028c6ba4f3d35b1addf037c0f33c7e27d5b32
---
.../vlc-android/res/layout/dialog_equalizer.xml | 22 ++++++++-----
.../vlc/gui/AudioPlayerContainerActivity.kt | 4 +--
.../vlc/gui/dialogs/EqualizerFragmentDialog.kt | 38 ++--------------------
3 files changed, 17 insertions(+), 47 deletions(-)
diff --git a/application/vlc-android/res/layout/dialog_equalizer.xml b/application/vlc-android/res/layout/dialog_equalizer.xml
index 92855498aa..b6932a49a7 100644
--- a/application/vlc-android/res/layout/dialog_equalizer.xml
+++ b/application/vlc-android/res/layout/dialog_equalizer.xml
@@ -31,10 +31,14 @@
<import type="android.view.View" />
+ <variable
+ name="name"
+ type="String" />
<variable
- name="state"
- type="org.videolan.vlc.gui.dialogs.EqualizerFragmentDialog.EqualizerState" />
+ name="custom"
+ type="Boolean" />
+
</data>
<androidx.core.widget.NestedScrollView
@@ -139,7 +143,7 @@
android:contentDescription="@string/edit_eq_preset"
android:focusable="true"
android:padding="12dp"
- android:visibility="@{state.type == 0 ? View.VISIBLE : View.GONE}"
+ android:visibility="@{custom ? View.GONE : View.VISIBLE}"
app:layout_constraintBottom_toBottomOf="@+id/top_bar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
@@ -158,7 +162,7 @@
android:contentDescription="@string/reset"
android:focusable="true"
android:padding="12dp"
- android:visibility="@{state.type != 0 ? View.VISIBLE : View.GONE}"
+ android:visibility="@{custom ? View.VISIBLE : View.GONE}"
app:layout_constraintBottom_toBottomOf="@+id/top_bar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
@@ -177,7 +181,7 @@
android:contentDescription="@string/save"
android:focusable="true"
android:padding="12dp"
- android:visibility="@{state.type != 0 ? View.VISIBLE : View.GONE}"
+ android:visibility="@{custom ? View.VISIBLE : View.GONE}"
app:layout_constraintBottom_toBottomOf="@+id/top_bar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
@@ -194,10 +198,10 @@
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
- android:text="@{state.name}"
+ android:text="@{name}"
android:textColor="?attr/font_default"
android:textSize="16sp"
- android:visibility="@{state.type == 0 ? View.VISIBLE : View.GONE}"
+ android:visibility="@{custom ? View.GONE : View.VISIBLE}"
app:layout_constraintBottom_toBottomOf="@+id/linearLayout8"
app:layout_constraintEnd_toStartOf="@+id/linearLayout8"
app:layout_constraintStart_toStartOf="parent"
@@ -213,8 +217,8 @@
android:ems="10"
android:inputType="text"
android:maxLines="1"
- android:text="@{state.name}"
- android:visibility="@{state.type != 0 ? View.VISIBLE : View.GONE}"
+ android:text="@{name}"
+ android:visibility="@{custom ? View.VISIBLE : View.GONE}"
app:layout_constraintBottom_toBottomOf="@+id/linearLayout8"
app:layout_constraintEnd_toStartOf="@+id/linearLayout8"
app:layout_constraintStart_toStartOf="parent"
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/AudioPlayerContainerActivity.kt b/application/vlc-android/src/org/videolan/vlc/gui/AudioPlayerContainerActivity.kt
index b807d77df5..c72137ab8d 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/AudioPlayerContainerActivity.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/AudioPlayerContainerActivity.kt
@@ -88,7 +88,7 @@ import org.videolan.vlc.VlcMigrationHelper
import org.videolan.vlc.gui.audio.AudioPlayer
import org.videolan.vlc.gui.audio.AudioPlaylistTipsDelegate
import org.videolan.vlc.gui.audio.AudioTipsDelegate
-import org.videolan.vlc.gui.audio.EqualizerFragment
+import org.videolan.vlc.gui.dialogs.EqualizerFragmentDialog
import org.videolan.vlc.gui.helpers.BottomNavigationBehavior
import org.videolan.vlc.gui.helpers.KeycodeListener
import org.videolan.vlc.gui.helpers.PlayerBehavior
@@ -451,7 +451,7 @@ open class AudioPlayerContainerActivity : BaseActivity(), KeycodeListener, Sched
}
override fun showEqualizer() {
- EqualizerFragment().show(supportFragmentManager, "equalizer")
+ EqualizerFragmentDialog().show(supportFragmentManager, "equalizer")
}
override fun increaseRate() {
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 04c02dab89..aeb1e37715 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
@@ -32,9 +32,6 @@ import android.view.ViewGroup.LayoutParams
import android.widget.LinearLayout
import androidx.core.content.edit
import androidx.core.view.children
-import androidx.databinding.ObservableBoolean
-import androidx.databinding.ObservableField
-import androidx.databinding.ObservableInt
import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope
import com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_EXPANDED
@@ -73,7 +70,6 @@ class EqualizerFragmentDialog : VLCBottomSheetDialogFragment(), Slider.OnChangeL
}
private lateinit var binding: DialogEqualizerBinding
- private val state = EqualizerState()
private val eqBandsViews = ArrayList<EqualizerBar>()
var oldEqualiserSets = listOf<String>()
@@ -92,7 +88,6 @@ class EqualizerFragmentDialog : VLCBottomSheetDialogFragment(), Slider.OnChangeL
savedInstanceState: Bundle?
): View? {
binding = DialogEqualizerBinding.inflate(layoutInflater, container, false)
- binding.state = state
return binding.root
}
@@ -236,7 +231,8 @@ class EqualizerFragmentDialog : VLCBottomSheetDialogFragment(), Slider.OnChangeL
*/
fun selectPreset() {
updateEqualizer()
- state.name.set(viewModel.getCurrentEqualizer().equalizerEntry.name)
+ binding.name = viewModel.getCurrentEqualizer().equalizerEntry.name
+ binding.custom = getEqualizerType() == TYPE_CUSTOM
val selectedChip = binding.equalizerPresets.findViewWithTag<Chip>(viewModel.getCurrentEqualizer().equalizerEntry.id)
binding.equalizerPresets.check(selectedChip.id)
updateEnabledState()
@@ -299,30 +295,6 @@ class EqualizerFragmentDialog : VLCBottomSheetDialogFragment(), Slider.OnChangeL
}
}
- /**
- * Equalizer state
- *
- * @constructor Create empty Equalizer state
- */
- inner class EqualizerState {
-
- internal var saved = true
- var saveButtonVisibility = ObservableBoolean(false)
- var revertButtonVisibility = ObservableBoolean(false)
- var deleteButtonVisibility = ObservableBoolean(false)
- var name = ObservableField<String>()
- var type = ObservableInt(TYPE_PRESET)
-
- fun update(newSaved: Boolean) {
- saved = newSaved
- name.set(viewModel.getCurrentEqualizer().equalizerEntry.name)
- type.set(getEqualizerType())
- saveButtonVisibility.set(!newSaved)
- revertButtonVisibility.set(!newSaved)
- deleteButtonVisibility.set(newSaved && getEqualizerType() == TYPE_CUSTOM)
- }
- }
-
/**
* Band listener
*
@@ -346,12 +318,6 @@ class EqualizerFragmentDialog : VLCBottomSheetDialogFragment(), Slider.OnChangeL
if (!binding.equalizerButton.isChecked)
binding.equalizerButton.isChecked = true
- if (getEqualizerType() == TYPE_PRESET) {
- state.update(false)
- } else if (getEqualizerType() == TYPE_CUSTOM) {
- state.update(false)
- }
-
/**
* Snap bands
*/
More information about the Android
mailing list