[Android] Fix crash spamming Subtitle shadow preference

Duncan McNamara git at videolan.org
Thu May 7 05:17:06 UTC 2026


vlc-android | branch: master | Duncan McNamara <dcn.mcnamara at gmail.com> | Mon Mar 23 16:10:47 2026 +0100| [cf6dce34cd6207e5351dfe876670e84a6106349a] | committer: Nicolas Pomepuy

Fix crash spamming Subtitle shadow preference

By waiting for the user to leave the view to update the settings,
spamming Substitle shadow doesn't crash the app anymore.

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

 .../videolan/vlc/gui/preferences/PreferencesSubtitles.kt    | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesSubtitles.kt b/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesSubtitles.kt
index db58c8ac59..b361a4cebe 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesSubtitles.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesSubtitles.kt
@@ -79,6 +79,8 @@ class PreferencesSubtitles : BasePreferenceFragment(), SharedPreferences.OnShare
     private lateinit var subtitlesOutlineColor: ColorPreferenceCompat
     private lateinit var subtitlesOutlineOpacity: SeekBarPreference
 
+    private var valueChanged = false
+
     override fun getXml(): Int {
         return R.xml.preferences_subtitles
     }
@@ -182,6 +184,12 @@ class PreferencesSubtitles : BasePreferenceFragment(), SharedPreferences.OnShare
 
     override fun onStop() {
         super.onStop()
+        if (valueChanged) {
+            lifecycleScope.launch {
+                VLCInstance.restart()
+                restartMediaPlayer()
+            }
+        }
         preferenceScreen.sharedPreferences!!.unregisterOnSharedPreferenceChangeListener(this)
     }
 
@@ -192,10 +200,7 @@ class PreferencesSubtitles : BasePreferenceFragment(), SharedPreferences.OnShare
             KEY_SUBTITLES_BACKGROUND_COLOR, KEY_SUBTITLES_BACKGROUND_COLOR_OPACITY, KEY_SUBTITLES_BACKGROUND,
             KEY_SUBTITLES_OUTLINE, KEY_SUBTITLES_OUTLINE_SIZE, KEY_SUBTITLES_OUTLINE_COLOR, KEY_SUBTITLES_OUTLINE_COLOR_OPACITY,
             KEY_SUBTITLES_SHADOW, KEY_SUBTITLES_SHADOW_COLOR, KEY_SUBTITLES_SHADOW_COLOR_OPACITY -> {
-                lifecycleScope.launch {
-                    VLCInstance.restart()
-                    restartMediaPlayer()
-                }
+                valueChanged = true
                 managePreferenceVisibilities()
             }
             KEY_SUBTITLE_PREFERRED_LANGUAGE -> updatePreferredSubtitleTrack()



More information about the Android mailing list