From 07ec8a095bd42d8acd7846fc2d05311d9f99b6be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Sat, 22 Jul 2023 14:35:54 +0100 Subject: [PATCH] Zepp OS: Handle fitness goals in Huami2021Support HuamiSupport handles configurations with performInitialize, which may trigger a device reinitialization if called while the device is already initializing. Handle fitness goals in Huami2021Support, which should be one of the last settings still missing. --- .../service/devices/huami/Huami2021Support.java | 16 ++++++++++++++++ .../zeppos/services/ZeppOsConfigService.java | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/Huami2021Support.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/Huami2021Support.java index 8b9f81eee..41cd4b51c 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/Huami2021Support.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/Huami2021Support.java @@ -223,6 +223,20 @@ public abstract class Huami2021Support extends HuamiSupport implements ZeppOsFil public void onSendConfiguration(final String config) { final Prefs prefs = getDevicePrefs(); + // FIXME: This should not be handled here + switch (config) { + case ActivityUser.PREF_USER_STEPS_GOAL: + case ActivityUser.PREF_USER_CALORIES_BURNT: + case ActivityUser.PREF_USER_SLEEP_DURATION: + case ActivityUser.PREF_USER_GOAL_WEIGHT_KG: + case ActivityUser.PREF_USER_GOAL_STANDING_TIME_HOURS: + case ActivityUser.PREF_USER_GOAL_FAT_BURN_TIME_MINUTES: + final TransactionBuilder builder = createTransactionBuilder("set fitness goal"); + setFitnessGoal(builder); + builder.queue(getQueue()); + return; + } + // Check if any of the services handles this config for (AbstractZeppOsService service : mServiceMap.values()) { if (service.onSendConfiguration(config, prefs)) { @@ -230,6 +244,8 @@ public abstract class Huami2021Support extends HuamiSupport implements ZeppOsFil } } + LOG.warn("Unhandled config {}, will pass to HuamiSupport", config); + super.onSendConfiguration(config); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/zeppos/services/ZeppOsConfigService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/zeppos/services/ZeppOsConfigService.java index 1ee0cddbf..7a22c3654 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/zeppos/services/ZeppOsConfigService.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/zeppos/services/ZeppOsConfigService.java @@ -143,7 +143,7 @@ public class ZeppOsConfigService extends AbstractZeppOsService { if (setConfig(prefs, prefKey, configSetter)) { try { // If the ConfigSetter was able to set the config, just write it and return - final TransactionBuilder builder = new TransactionBuilder("Sending configuration for " + prefKey); + final TransactionBuilder builder = new TransactionBuilder("send config " + prefKey); configSetter.write(builder); builder.queue(getSupport().getQueue()); } catch (final Exception e) {