Skip to content

Commit d15ef5a

Browse files
authored
fix(android): Avoid ConcurrentModificationException (#1297)
1 parent 5dcc382 commit d15ef5a

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

packages/audioplayers_android/android/src/main/kotlin/xyz/luan/audioplayers/AudioplayersPlugin.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ import xyz.luan.audioplayers.player.WrappedPlayer
1717
import xyz.luan.audioplayers.source.BytesSource
1818
import xyz.luan.audioplayers.source.UrlSource
1919
import java.lang.ref.WeakReference
20+
import java.util.concurrent.ConcurrentHashMap
21+
import java.util.concurrent.ConcurrentMap
2022

2123
typealias FlutterHandler = (call: MethodCall, response: MethodChannel.Result) -> Unit
2224

@@ -27,7 +29,7 @@ class AudioplayersPlugin : FlutterPlugin, IUpdateCallback {
2729
private lateinit var globalChannel: MethodChannel
2830
private lateinit var context: Context
2931

30-
private val players = mutableMapOf<String, WrappedPlayer>()
32+
private val players = ConcurrentHashMap<String, WrappedPlayer>()
3133
private val handler = Handler(Looper.getMainLooper())
3234
private var updateRunnable: Runnable? = null
3335

@@ -189,7 +191,7 @@ class AudioplayersPlugin : FlutterPlugin, IUpdateCallback {
189191
}
190192

191193
private class UpdateRunnable(
192-
mediaPlayers: Map<String, WrappedPlayer>,
194+
mediaPlayers: ConcurrentMap<String, WrappedPlayer>,
193195
channel: MethodChannel,
194196
handler: Handler,
195197
updateCallback: IUpdateCallback,

0 commit comments

Comments
 (0)