From 2068534241bf3b335c40a66070ac2f5dbb2af949 Mon Sep 17 00:00:00 2001 From: Philoul Date: Sun, 4 Aug 2024 22:23:42 +0200 Subject: [PATCH 1/3] Move HR+Step to DataLayerListenerServiceWear --- .../wear/comm/DataLayerListenerServiceWear.kt | 48 +++++++++++++++++++ .../wear/watchfaces/utils/BaseWatchFace.kt | 16 +++---- 2 files changed, 56 insertions(+), 8 deletions(-) diff --git a/wear/src/main/kotlin/app/aaps/wear/comm/DataLayerListenerServiceWear.kt b/wear/src/main/kotlin/app/aaps/wear/comm/DataLayerListenerServiceWear.kt index a2f16bca101..4403193a557 100644 --- a/wear/src/main/kotlin/app/aaps/wear/comm/DataLayerListenerServiceWear.kt +++ b/wear/src/main/kotlin/app/aaps/wear/comm/DataLayerListenerServiceWear.kt @@ -15,11 +15,15 @@ import app.aaps.core.interfaces.rx.bus.RxBus import app.aaps.core.interfaces.rx.events.EventWearDataToMobile import app.aaps.core.interfaces.rx.events.EventWearToMobile import app.aaps.core.interfaces.rx.weardata.EventData +import app.aaps.core.interfaces.rx.weardata.EventData.ActionResendData import app.aaps.core.interfaces.sharedPreferences.SP import app.aaps.shared.impl.weardata.ZipWatchfaceFormat import app.aaps.wear.R +import app.aaps.wear.events.EventWearPreferenceChange +import app.aaps.wear.heartrate.HeartRateListener import app.aaps.wear.interaction.ConfigurationActivity import app.aaps.wear.interaction.utils.Persistence +import app.aaps.wear.wearStepCount.StepCountListener import com.google.android.gms.tasks.Tasks import com.google.android.gms.wearable.CapabilityClient import com.google.android.gms.wearable.CapabilityInfo @@ -61,6 +65,8 @@ class DataLayerListenerServiceWear : WearableListenerService() { private var handler = Handler(HandlerThread(this::class.simpleName + "Handler").also { it.start() }.looper) private val disposable = CompositeDisposable() + private var heartRateListener: HeartRateListener? = null + private var stepCountListener: StepCountListener? = null private val rxPath get() = getString(app.aaps.core.interfaces.R.string.path_rx_bridge) private val rxDataPath get() = getString(app.aaps.core.interfaces.R.string.path_rx_data_bridge) @@ -83,6 +89,17 @@ class DataLayerListenerServiceWear : WearableListenerService() { .subscribe { sendMessage(rxDataPath, it.payload.serializeByte()) } + disposable += rxBus + .toObservable(EventWearPreferenceChange::class.java) + .observeOn(aapsSchedulers.main) + .subscribe { event: EventWearPreferenceChange -> + if (event.changedKey != null && event.changedKey == "delta_granularity") rxBus.send(EventWearToMobile(ActionResendData("BaseWatchFace:onSharedPreferenceChanged"))) + if (event.changedKey == getString(R.string.key_heart_rate_sampling)) updateHeartRateListener() + if (event.changedKey == getString(R.string.key_steps_sampling)) updatestepsCountListener() + } + + updateHeartRateListener() + updatestepsCountListener() } override fun onCapabilityChanged(p0: CapabilityInfo) { @@ -174,6 +191,37 @@ class DataLayerListenerServiceWear : WearableListenerService() { startForeground(FOREGROUND_NOTIF_ID, notification) } + + private fun updateHeartRateListener() { + if (sp.getBoolean(R.string.key_heart_rate_sampling, false)) { + if (heartRateListener == null) { + heartRateListener = HeartRateListener( + this, aapsLogger, aapsSchedulers + ).also { hrl -> disposable += hrl } + } + } else { + heartRateListener?.let { hrl -> + disposable.remove(hrl) + heartRateListener = null + } + } + } + + private fun updatestepsCountListener() { + if (sp.getBoolean(R.string.key_steps_sampling, false)) { + if (stepCountListener == null) { + stepCountListener = StepCountListener( + this, aapsLogger, aapsSchedulers + ).also { scl -> disposable += scl } + } + } else { + stepCountListener?.let { scl -> + disposable.remove(scl) + stepCountListener = null + } + } + } + @Suppress("PrivatePropertyName") private val CHANNEL_ID: String = "DataLayerForegroundServiceChannel" private fun createNotificationChannel() { diff --git a/wear/src/main/kotlin/app/aaps/wear/watchfaces/utils/BaseWatchFace.kt b/wear/src/main/kotlin/app/aaps/wear/watchfaces/utils/BaseWatchFace.kt index 82de720af22..26c453128cb 100644 --- a/wear/src/main/kotlin/app/aaps/wear/watchfaces/utils/BaseWatchFace.kt +++ b/wear/src/main/kotlin/app/aaps/wear/watchfaces/utils/BaseWatchFace.kt @@ -109,8 +109,8 @@ abstract class BaseWatchFace : WatchFace() { private var mLastSvg = "" private var mLastDirection = "" - private var heartRateListener: HeartRateListener? = null - private var stepCountListener: StepCountListener? = null + //private var heartRateListener: HeartRateListener? = null + //private var stepCountListener: StepCountListener? = null override fun onCreate() { // Not derived from DaggerService, do injection here @@ -127,8 +127,8 @@ abstract class BaseWatchFace : WatchFace() { .subscribe { event: EventWearPreferenceChange -> simpleUi.updatePreferences() if (event.changedKey != null && event.changedKey == "delta_granularity") rxBus.send(EventWearToMobile(ActionResendData("BaseWatchFace:onSharedPreferenceChanged"))) - if (event.changedKey == getString(R.string.key_heart_rate_sampling)) updateHeartRateListener() - if (event.changedKey == getString(R.string.key_steps_sampling)) updatestepsCountListener() + //if (event.changedKey == getString(R.string.key_heart_rate_sampling)) updateHeartRateListener() + //if (event.changedKey == getString(R.string.key_steps_sampling)) updatestepsCountListener() if (layoutSet) setDataFields() invalidate() } @@ -153,15 +153,15 @@ abstract class BaseWatchFace : WatchFace() { layoutView = binding.root performViewSetup() rxBus.send(EventWearToMobile(ActionResendData("BaseWatchFace::onCreate"))) - updateHeartRateListener() - updatestepsCountListener() + //updateHeartRateListener() + //updatestepsCountListener() } private fun forceUpdate() { setDataFields() invalidate() } - +/* private fun updateHeartRateListener() { if (sp.getBoolean(R.string.key_heart_rate_sampling, false)) { if (heartRateListener == null) { @@ -191,7 +191,7 @@ abstract class BaseWatchFace : WatchFace() { } } } - +*/ override fun onTapCommand(tapType: Int, x: Int, y: Int, eventTime: Long) { binding.chart?.let { chart -> if (tapType == TAP_TYPE_TAP && x >= chart.left && x <= chart.right && y >= chart.top && y <= chart.bottom) { From 60a7dec30a08eff2dac5d66ffc87e78089c20a70 Mon Sep 17 00:00:00 2001 From: Philoul Date: Mon, 5 Aug 2024 10:19:38 +0200 Subject: [PATCH 2/3] Clean Code --- .../wear/watchfaces/utils/BaseWatchFace.kt | 36 ------------------- 1 file changed, 36 deletions(-) diff --git a/wear/src/main/kotlin/app/aaps/wear/watchfaces/utils/BaseWatchFace.kt b/wear/src/main/kotlin/app/aaps/wear/watchfaces/utils/BaseWatchFace.kt index 26c453128cb..450842a2c65 100644 --- a/wear/src/main/kotlin/app/aaps/wear/watchfaces/utils/BaseWatchFace.kt +++ b/wear/src/main/kotlin/app/aaps/wear/watchfaces/utils/BaseWatchFace.kt @@ -109,8 +109,6 @@ abstract class BaseWatchFace : WatchFace() { private var mLastSvg = "" private var mLastDirection = "" - //private var heartRateListener: HeartRateListener? = null - //private var stepCountListener: StepCountListener? = null override fun onCreate() { // Not derived from DaggerService, do injection here @@ -127,8 +125,6 @@ abstract class BaseWatchFace : WatchFace() { .subscribe { event: EventWearPreferenceChange -> simpleUi.updatePreferences() if (event.changedKey != null && event.changedKey == "delta_granularity") rxBus.send(EventWearToMobile(ActionResendData("BaseWatchFace:onSharedPreferenceChanged"))) - //if (event.changedKey == getString(R.string.key_heart_rate_sampling)) updateHeartRateListener() - //if (event.changedKey == getString(R.string.key_steps_sampling)) updatestepsCountListener() if (layoutSet) setDataFields() invalidate() } @@ -153,45 +149,13 @@ abstract class BaseWatchFace : WatchFace() { layoutView = binding.root performViewSetup() rxBus.send(EventWearToMobile(ActionResendData("BaseWatchFace::onCreate"))) - //updateHeartRateListener() - //updatestepsCountListener() } private fun forceUpdate() { setDataFields() invalidate() } -/* - private fun updateHeartRateListener() { - if (sp.getBoolean(R.string.key_heart_rate_sampling, false)) { - if (heartRateListener == null) { - heartRateListener = HeartRateListener( - this, aapsLogger, aapsSchedulers - ).also { hrl -> disposable += hrl } - } - } else { - heartRateListener?.let { hrl -> - disposable.remove(hrl) - heartRateListener = null - } - } - } - private fun updatestepsCountListener() { - if (sp.getBoolean(R.string.key_steps_sampling, false)) { - if (stepCountListener == null) { - stepCountListener = StepCountListener( - this, aapsLogger, aapsSchedulers - ).also { scl -> disposable += scl } - } - } else { - stepCountListener?.let { scl -> - disposable.remove(scl) - stepCountListener = null - } - } - } -*/ override fun onTapCommand(tapType: Int, x: Int, y: Int, eventTime: Long) { binding.chart?.let { chart -> if (tapType == TAP_TYPE_TAP && x >= chart.left && x <= chart.right && y >= chart.top && y <= chart.bottom) { From e22ea222e22761ccea5bb15cd9958cb324731d51 Mon Sep 17 00:00:00 2001 From: Philoul Date: Mon, 5 Aug 2024 10:41:39 +0200 Subject: [PATCH 3/3] Clean code --- .../kotlin/app/aaps/wear/comm/DataLayerListenerServiceWear.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/wear/src/main/kotlin/app/aaps/wear/comm/DataLayerListenerServiceWear.kt b/wear/src/main/kotlin/app/aaps/wear/comm/DataLayerListenerServiceWear.kt index 4403193a557..8713aacc7a3 100644 --- a/wear/src/main/kotlin/app/aaps/wear/comm/DataLayerListenerServiceWear.kt +++ b/wear/src/main/kotlin/app/aaps/wear/comm/DataLayerListenerServiceWear.kt @@ -93,7 +93,6 @@ class DataLayerListenerServiceWear : WearableListenerService() { .toObservable(EventWearPreferenceChange::class.java) .observeOn(aapsSchedulers.main) .subscribe { event: EventWearPreferenceChange -> - if (event.changedKey != null && event.changedKey == "delta_granularity") rxBus.send(EventWearToMobile(ActionResendData("BaseWatchFace:onSharedPreferenceChanged"))) if (event.changedKey == getString(R.string.key_heart_rate_sampling)) updateHeartRateListener() if (event.changedKey == getString(R.string.key_steps_sampling)) updatestepsCountListener() }