diff --git a/packages/kotlin/src/android/src/main/java/alphaTab/EnvironmentPartials.kt b/packages/kotlin/src/android/src/main/java/alphaTab/EnvironmentPartials.kt index d3f534bcc..cc7fe85bf 100644 --- a/packages/kotlin/src/android/src/main/java/alphaTab/EnvironmentPartials.kt +++ b/packages/kotlin/src/android/src/main/java/alphaTab/EnvironmentPartials.kt @@ -39,7 +39,7 @@ internal class EnvironmentPartials { print("Screen Size: ${AndroidEnvironment.screenWidth}x${AndroidEnvironment.screenHeight}"); } - private val throttleScope = CoroutineScope(Dispatchers.Default) + private val throttleScope = CoroutineScope(Dispatchers.Main) internal fun throttle(toThrottle: () -> Unit, delay: Double): () -> Unit { var job: Job? = null return { diff --git a/packages/kotlin/src/android/src/main/java/alphaTab/platform/android/AlphaTabRenderSurface.kt b/packages/kotlin/src/android/src/main/java/alphaTab/platform/android/AlphaTabRenderSurface.kt index a5e71229e..0ff15e381 100644 --- a/packages/kotlin/src/android/src/main/java/alphaTab/platform/android/AlphaTabRenderSurface.kt +++ b/packages/kotlin/src/android/src/main/java/alphaTab/platform/android/AlphaTabRenderSurface.kt @@ -12,6 +12,7 @@ import android.widget.ScrollView import java.io.Closeable import java.lang.RuntimeException import kotlin.contracts.ExperimentalContracts +import java.util.concurrent.CopyOnWriteArrayList @ExperimentalUnsignedTypes @ExperimentalContracts @@ -44,7 +45,7 @@ internal class RenderPlaceholder(public var result: RenderFinishedEventArgs) : C @ExperimentalContracts internal class AlphaTabRenderSurface(context: Context, attributeSet: AttributeSet) : View(context, attributeSet), View.OnScrollChangeListener { - private val _placeholders: ArrayList = arrayListOf() + private val _placeholders: CopyOnWriteArrayList = CopyOnWriteArrayList() private val _resultIdToIndex: ObjectDoubleMap = ObjectDoubleMap() private var _totalWidth: Int = 0 @@ -65,11 +66,10 @@ internal class AlphaTabRenderSurface(context: Context, attributeSet: AttributeSe public fun clearPlaceholders() { _resultIdToIndex.clear() - val placeholder = _placeholders - for (p in placeholder) { + for (p in _placeholders) { p.close(); } - placeholder.clear() + _placeholders.clear() } override fun onAttachedToWindow() {