From ad3a4c2cb538fd7fb4d650f87bbd8523f4d1a564 Mon Sep 17 00:00:00 2001 From: Azalea Gui Date: Tue, 24 Jan 2023 12:15:42 -0500 Subject: [PATCH] [F] Fix initialization --- .../java/org/hydev/wearsync/bles/BluetoothHandler.kt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/hydev/wearsync/bles/BluetoothHandler.kt b/app/src/main/java/org/hydev/wearsync/bles/BluetoothHandler.kt index 91a8931..7ee316b 100644 --- a/app/src/main/java/org/hydev/wearsync/bles/BluetoothHandler.kt +++ b/app/src/main/java/org/hydev/wearsync/bles/BluetoothHandler.kt @@ -30,7 +30,8 @@ internal class BluetoothHandler private constructor(context: Context) { } } - val listeners = HashMap, MutableList<(Any) -> Unit>>() + val listeners: Map>, ArrayList<(Any) -> Unit>> = + decoders.associate { it::class to ArrayList() } @Suppress("UNCHECKED_CAST") inline fun > observe(crossinline cb: (M) -> Unit) { @@ -43,11 +44,9 @@ internal class BluetoothHandler private constructor(context: Context) { } private suspend fun BluePeri.observe(dec: IDecoder) { - val cls = dec::class - listeners[cls] = ArrayList() - + val lst = listeners[dec::class] ?: error("Decoder $dec is not in the listeners list") observe(dec) { - listeners[cls]?.forEach { cb -> cb(it) } + lst.forEach { cb -> cb(it) } } }