From 8d926b07373298ada931b115dd3ab799915e0785 Mon Sep 17 00:00:00 2001 From: Nicolas Pomepuy Date: Mon, 15 Sep 2025 09:02:29 +0200 Subject: [PATCH] Fix a ClassCastException crash for the remote_access_medialibrary_content setting --- .../org/videolan/vlc/util/VersionMigration.kt | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/application/vlc-android/src/org/videolan/vlc/util/VersionMigration.kt b/application/vlc-android/src/org/videolan/vlc/util/VersionMigration.kt index a97d7a610..fa05c86db 100644 --- a/application/vlc-android/src/org/videolan/vlc/util/VersionMigration.kt +++ b/application/vlc-android/src/org/videolan/vlc/util/VersionMigration.kt @@ -41,8 +41,8 @@ import org.videolan.resources.util.getFromMl import org.videolan.tools.KEY_APP_THEME import org.videolan.tools.KEY_CURRENT_EQUALIZER_ID import org.videolan.tools.KEY_CURRENT_MAJOR_VERSION -import org.videolan.tools.KEY_CURRENT_SETTINGS_VERSION_AFTER_LIBVLC_INSTANTIATION import org.videolan.tools.KEY_CURRENT_SETTINGS_VERSION +import org.videolan.tools.KEY_CURRENT_SETTINGS_VERSION_AFTER_LIBVLC_INSTANTIATION import org.videolan.tools.KEY_PLAYBACK_SPEED_AUDIO_GLOBAL import org.videolan.tools.KEY_PLAYBACK_SPEED_AUDIO_GLOBAL_VALUE import org.videolan.tools.KEY_PLAYBACK_SPEED_VIDEO_GLOBAL @@ -70,7 +70,7 @@ import org.videolan.vlc.repository.EqualizerRepository import java.io.File import java.io.IOException -private const val CURRENT_VERSION = 16 +private const val CURRENT_VERSION = 17 private const val CURRENT_VERSION_LIBVLC = 1 object VersionMigration { @@ -152,6 +152,10 @@ object VersionMigration { migrateToVersion16(settings) } + if (lastVersion < 17) { + migrateToVersion17(settings) + } + //Major version upgrade if (lastMajorVersion == 3 && currentMajorVersion == 4) { migrateToVlc4(settings) @@ -469,6 +473,32 @@ object VersionMigration { } } + /** + * Migrate the wrongly typed remote_access_medialibrary_content setting + * + */ + private fun migrateToVersion17(settings: SharedPreferences) { + Log.i(this::class.java.simpleName, "Migrate to version 17: Migrate the wrongly typed remote_access_medialibrary_content setting") + if (settings.contains("remote_access_medialibrary_content")) { + try { + settings.getString("remote_access_medialibrary_content", "")?.let { oldValue -> + settings.edit(true) { + putStringSet( + "remote_access_medialibrary_content", + oldValue + .split(",") + .map { it.filter(Char::isDigit) } + .toSet() + ) + } + } + + } catch (_: ClassCastException) { + //Not a string. Safe to keep + } + } + } + /** * Migrate the equalizer to room */