From 17d2ebf8634a42a40779b9b68afea517fcb8a6e9 Mon Sep 17 00:00:00 2001 From: darken Date: Tue, 18 Jan 2022 14:37:53 +0100 Subject: [PATCH] Better disabling of unused reaction modules. --- .../capod/reaction/core/autoconnect/AutoConnect.kt | 3 ++- .../darken/capod/reaction/core/playpause/PlayPause.kt | 11 ++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/eu/darken/capod/reaction/core/autoconnect/AutoConnect.kt b/app/src/main/java/eu/darken/capod/reaction/core/autoconnect/AutoConnect.kt index 27fda028..e66d6726 100644 --- a/app/src/main/java/eu/darken/capod/reaction/core/autoconnect/AutoConnect.kt +++ b/app/src/main/java/eu/darken/capod/reaction/core/autoconnect/AutoConnect.kt @@ -21,7 +21,8 @@ class AutoConnect @Inject constructor( private val reactionSettings: ReactionSettings ) { - fun monitor(): Flow = podMonitor.mainDevice + fun monitor(): Flow = reactionSettings.autoConnect.flow + .flatMapLatest { if (it) podMonitor.mainDevice else emptyFlow() } .filterNotNull() .distinctUntilChanged() .map { podDevice -> diff --git a/app/src/main/java/eu/darken/capod/reaction/core/playpause/PlayPause.kt b/app/src/main/java/eu/darken/capod/reaction/core/playpause/PlayPause.kt index 6da420ee..495dae1d 100644 --- a/app/src/main/java/eu/darken/capod/reaction/core/playpause/PlayPause.kt +++ b/app/src/main/java/eu/darken/capod/reaction/core/playpause/PlayPause.kt @@ -11,10 +11,7 @@ import eu.darken.capod.common.flow.withPrevious import eu.darken.capod.monitor.core.PodMonitor import eu.darken.capod.pods.core.HasEarDetection import eu.darken.capod.reaction.core.ReactionSettings -import kotlinx.coroutines.flow.distinctUntilChanged -import kotlinx.coroutines.flow.emptyFlow -import kotlinx.coroutines.flow.flatMapLatest -import kotlinx.coroutines.flow.onEach +import kotlinx.coroutines.flow.* import javax.inject.Inject @Reusable @@ -25,7 +22,11 @@ class PlayPause @Inject constructor( private val mediaControl: MediaControl, ) { - fun monitor() = bluetoothManager.connectedDevices() + fun monitor() = combine( + reactionSettings.autoPlay.flow, + reactionSettings.autoPause.flow, + ) { play, pause -> play || pause } + .flatMapLatest { if (it) bluetoothManager.connectedDevices() else emptyFlow() } .flatMapLatest { if (it.isEmpty()) { log(TAG) { "No known devices connected." }