@@ -8,10 +8,10 @@ import com.kylecorry.andromeda.core.system.Resources
88import com.kylecorry.andromeda.core.tryOrDefault
99import com.kylecorry.andromeda.widgets.Widgets
1010import com.kylecorry.luna.hooks.Hooks
11- import com.kylecorry.luna.subscriptions.generic.Subscription
1211import com.kylecorry.luna.text.capitalizeWords
1312import com.kylecorry.trail_sense.R
1413import com.kylecorry.trail_sense.settings.SettingsToolRegistration
14+ import com.kylecorry.trail_sense.shared.andromeda_temp.EventBus
1515import com.kylecorry.trail_sense.shared.map_layers.preferences.repo.MapLayerDefinition
1616import com.kylecorry.trail_sense.shared.quickactions.QuickActionOpenTool
1717import com.kylecorry.trail_sense.shared.views.QuickActionNone
@@ -63,9 +63,6 @@ import com.kylecorry.trail_sense.tools.waterpurification.WaterBoilTimerToolRegis
6363import com.kylecorry.trail_sense.tools.weather.WeatherToolRegistration
6464import com.kylecorry.trail_sense.tools.whistle.WhistleToolRegistration
6565import com.kylecorry.trail_sense.tools.whitenoise.WhiteNoiseToolRegistration
66- import kotlinx.coroutines.CoroutineScope
67- import kotlinx.coroutines.Dispatchers
68- import kotlinx.coroutines.launch
6966
7067object Tools {
7168
@@ -120,9 +117,7 @@ object Tools {
120117 MapToolRegistration ,
121118 MagnifierToolRegistration
122119 )
123- private val topics = mutableMapOf<String , Subscription <Bundle >>()
124- private val broadcastScope = CoroutineScope (Dispatchers .Main )
125-
120+ private val bus = EventBus <Bundle >()
126121
127122 fun isToolAvailable (context : Context , toolId : Long ): Boolean {
128123 return getTool(context, toolId) != null
@@ -137,7 +132,6 @@ object Tools {
137132 registry.map { it.getTool(context.applicationContext) }
138133 }
139134
140-
141135 return tools.filter { ! availableOnly || it.isAvailable(context) }
142136 }
143137
@@ -174,21 +168,15 @@ object Tools {
174168 }
175169
176170 fun broadcast (toolBroadcastId : String , data : Bundle ? = null) {
177- broadcastScope.launch {
178- topics[toolBroadcastId]?.publish(data ? : Bundle ())
179- }
171+ bus.publish(toolBroadcastId, data ? : Bundle ())
180172 }
181173
182174 fun subscribe (toolBroadcastId : String , callback : suspend (Bundle ) -> Unit ) {
183- val topic = topics.getOrPut(toolBroadcastId) {
184- Subscription ()
185- }
186- topic.subscribe(callback)
175+ bus.subscribe(toolBroadcastId, callback)
187176 }
188177
189178 fun unsubscribe (toolBroadcastId : String , callback : suspend (Bundle ) -> Unit ) {
190- val topic = topics[toolBroadcastId]
191- topic?.unsubscribe(callback)
179+ bus.unsubscribe(toolBroadcastId, callback)
192180 }
193181
194182 fun getService (context : Context , serviceId : String ): ToolService ? {
0 commit comments