[Android] Fix a concurrent modification exception

Nicolas Pomepuy git at videolan.org
Tue May 5 12:48:24 UTC 2026


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Mon May  4 14:19:48 2026 +0200| [3b9d371095a3feb0ad6d51120b3de17475784e48] | committer: Nicolas Pomepuy

Fix a concurrent modification exception

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

 .../org/videolan/vlc/viewmodels/browser/BrowserModel.kt    | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/application/vlc-android/src/org/videolan/vlc/viewmodels/browser/BrowserModel.kt b/application/vlc-android/src/org/videolan/vlc/viewmodels/browser/BrowserModel.kt
index 54bad00fb1..17defcea47 100644
--- a/application/vlc-android/src/org/videolan/vlc/viewmodels/browser/BrowserModel.kt
+++ b/application/vlc-android/src/org/videolan/vlc/viewmodels/browser/BrowserModel.kt
@@ -88,7 +88,12 @@ open class BrowserModel(
      */
     fun reSort() {
         viewModelScope.launch {
-            dataset.value = withContext(coroutineContextProvider.Default) { dataset.value.apply { provider.sort(this) }.also { provider.computeHeaders(dataset.value) } }
+            dataset.value = withContext(coroutineContextProvider.Default) {
+                val list = dataset.value.toMutableList()
+                provider.sort(list)
+                provider.computeHeaders(list)
+                list
+            }
         }
     }
 
@@ -110,7 +115,12 @@ open class BrowserModel(
             desc = if (sort == Medialibrary.SORT_DEFAULT) false else !desc
             provider.sort = sort
             provider.desc = desc
-            dataset.value = withContext(coroutineContextProvider.Default) { dataset.value.apply { provider.sort(this) }.also { provider.computeHeaders(dataset.value) } }
+            dataset.value = withContext(coroutineContextProvider.Default) {
+                val list = dataset.value.toMutableList()
+                provider.sort(list)
+                provider.computeHeaders(list)
+                list
+            }
             settings.putSingle(sortKey, sort)
             settings.putSingle("${sortKey}_desc", desc)
         }



More information about the Android mailing list