[Android] Prevent sending the playback default action immediately when opening the display settings

Nicolas Pomepuy git at videolan.org
Thu Mar 27 10:42:54 UTC 2025


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Wed Mar 26 12:07:23 2025 +0100| [e83afe64879a76c159ff56fea4cbbc19eed51fef] | committer: Nicolas Pomepuy

Prevent sending the playback default action immediately when opening the display settings

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

 .../src/org/videolan/vlc/gui/dialogs/DisplaySettingsDialog.kt    | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/application/vlc-android/src/org/videolan/vlc/gui/dialogs/DisplaySettingsDialog.kt b/application/vlc-android/src/org/videolan/vlc/gui/dialogs/DisplaySettingsDialog.kt
index d837cec401..5b27184be1 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/dialogs/DisplaySettingsDialog.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/dialogs/DisplaySettingsDialog.kt
@@ -90,6 +90,7 @@ class DisplaySettingsDialog : VLCBottomSheetDialogFragment() {
     private var showVideoGroups: String? = null
     private var defaultPlaybackActions: List<DefaultPlaybackAction>? = null
     private var defaultActionType: String? = null
+    private var currentDefaultAction: DefaultPlaybackAction? = null
 
     private lateinit var binding: DialogDisplaySettingsBinding
 
@@ -252,11 +253,15 @@ class DisplaySettingsDialog : VLCBottomSheetDialogFragment() {
             binding.defaultActionsGroup.setOnClickListener {
                 binding.defaultActionsSpinner.performClick()
             }
-            binding.defaultActionsSpinner.setSelection(it.indexOf(it.find { it.selected }))
+            currentDefaultAction = it.find { it.selected }
+            binding.defaultActionsSpinner.setSelection(it.indexOf(currentDefaultAction))
             binding.defaultActionsSpinner.onItemSelectedListener = object : OnItemSelectedListener {
                 override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
                     val defaultPlaybackAction = defaultActionsArrayAdapter.getItem(position) as DefaultPlaybackAction
-                    lifecycleScope.launch { displaySettingsViewModel.send(DEFAULT_ACTIONS, defaultPlaybackAction) }
+                    if (defaultPlaybackAction != currentDefaultAction) {
+                        lifecycleScope.launch { displaySettingsViewModel.send(DEFAULT_ACTIONS, defaultPlaybackAction) }
+                        currentDefaultAction = defaultPlaybackAction
+                    }
                 }
 
                 override fun onNothingSelected(parent: AdapterView<*>?) {}



More information about the Android mailing list