[Android] Add a warning when disabling the playback history

Nicolas Pomepuy git at videolan.org
Fri Feb 28 10:06:25 UTC 2025


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Thu Feb 27 10:29:27 2025 +0100| [458c1c77c4d7d1ed340ea7e04d8a65b906c0f14f] | committer: Nicolas Pomepuy

Add a warning when disabling the playback history

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

 .../resources/src/main/res/values/strings.xml      |  1 +
 .../vlc/gui/preferences/PreferencesFragment.kt     | 36 +++++++++++++---------
 2 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/application/resources/src/main/res/values/strings.xml b/application/resources/src/main/res/values/strings.xml
index 18f11a4b79..8331a8e2d0 100644
--- a/application/resources/src/main/res/values/strings.xml
+++ b/application/resources/src/main/res/values/strings.xml
@@ -255,6 +255,7 @@
     <string name="video_resume_playback_summary">Allow saving the video play queue to resume later</string>
     <string name="audio_resume_playback_title">Audio play queue history</string>
     <string name="audio_resume_playback_warning">Disabling the audio play queue history may lead to some behavior issues.\nAfter disabling it you may not be able to resume the playback from:\n\n\t- a  bluetooth device\n\t- the widget\n\t- the media notification</string>
+    <string name="playback_history_warning">Disabling the playback history will hide the history but the media progresses and play state will be saved.\nIf you want to completely hide your activity, use the incognito mode instead.\nYou can also clear your history in the history screen or in the advanced settings.</string>
     <string name="audio_resume_playback_summary">Allow saving the audio play queue to resume later</string>
 
     <string name="play_button">Play Button</string>
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesFragment.kt b/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesFragment.kt
index a89418e8b1..b30bf05010 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesFragment.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesFragment.kt
@@ -124,20 +124,23 @@ class PreferencesFragment : BasePreferenceFragment(), SharedPreferences.OnShared
             arguments = null
         }
         requireActivity().supportFragmentManager.setFragmentResultListener(CONFIRM_PREFERENCE_CHANGE_DIALOG_RESULT, viewLifecycleOwner) { requestKey, bundle ->
-            if (bundle.getString(PREFERENCE_KEY, "") == AUDIO_RESUME_PLAYBACK) {
-                Settings.getInstance(requireActivity()).edit()
-                    .remove(KEY_AUDIO_LAST_PLAYLIST)
-                    .remove(KEY_MEDIA_LAST_PLAYLIST_RESUME)
-                    .remove(KEY_CURRENT_AUDIO_RESUME_TITLE)
-                    .remove(KEY_CURRENT_AUDIO_RESUME_ARTIST)
-                    .remove(KEY_CURRENT_AUDIO_RESUME_THUMB)
-                    .remove(KEY_CURRENT_AUDIO)
-                    .remove(KEY_CURRENT_MEDIA)
-                    .remove(KEY_CURRENT_MEDIA_RESUME)
-                    .apply()
-                val activity = activity
-                activity?.setResult(RESULT_RESTART)
-                audioResumePref.isChecked = false
+            when (bundle.getString(PREFERENCE_KEY, "")) {
+                AUDIO_RESUME_PLAYBACK -> {
+                    Settings.getInstance(requireActivity()).edit()
+                        .remove(KEY_AUDIO_LAST_PLAYLIST)
+                        .remove(KEY_MEDIA_LAST_PLAYLIST_RESUME)
+                        .remove(KEY_CURRENT_AUDIO_RESUME_TITLE)
+                        .remove(KEY_CURRENT_AUDIO_RESUME_ARTIST)
+                        .remove(KEY_CURRENT_AUDIO_RESUME_THUMB)
+                        .remove(KEY_CURRENT_AUDIO)
+                        .remove(KEY_CURRENT_MEDIA)
+                        .remove(KEY_CURRENT_MEDIA_RESUME)
+                        .apply()
+                    val activity = activity
+                    activity?.setResult(RESULT_RESTART)
+                    audioResumePref.isChecked = false
+                }
+                PLAYBACK_HISTORY -> findPreference<CheckBoxPreference>(PLAYBACK_HISTORY)?.isChecked = false
             }
         }
     }
@@ -179,6 +182,11 @@ class PreferencesFragment : BasePreferenceFragment(), SharedPreferences.OnShared
             PLAYBACK_HISTORY -> {
                 val activity = activity
                 activity?.setResult(RESULT_RESTART)
+                if (!(preference as CheckBoxPreference).isChecked) {
+                    val dialog = ConfirmPreferenceChangeDialog.newInstance(PLAYBACK_HISTORY,getString(R.string.playback_history_title),getString(R.string.playback_history_warning))
+                    dialog.show((activity as FragmentActivity).supportFragmentManager, ConfirmPreferenceChangeDialog::class.simpleName)
+                    preference.isChecked = true
+                }
                 return true
             }
             AUDIO_RESUME_PLAYBACK -> {



More information about the Android mailing list