Zepp OS: Disable realtime steps on connection

They can stay across connections and waste battery.
This commit is contained in:
José Rebelo
2025-04-27 22:50:28 +01:00
parent b6b7ee31f9
commit a5a1ade392
2 changed files with 13 additions and 2 deletions
@@ -460,7 +460,7 @@ public class ZeppOsSupport extends AbstractDeviceSupport
@Override
public void onEnableRealtimeSteps(final boolean enable) {
stepsService.onEnableRealtimeSteps(enable);
stepsService.setRealtimeSteps(enable);
}
@Override
@@ -25,6 +25,7 @@ import nodomain.freeyourgadget.gadgetbridge.Logging;
import nodomain.freeyourgadget.gadgetbridge.service.btle.BLETypeConversions;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.zeppos.AbstractZeppOsService;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.zeppos.ZeppOsSupport;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.zeppos.ZeppOsTransactionBuilder;
import nodomain.freeyourgadget.gadgetbridge.util.RealtimeSamplesAggregator;
public class ZeppOsStepsService extends AbstractZeppOsService {
@@ -49,6 +50,12 @@ public class ZeppOsStepsService extends AbstractZeppOsService {
return ENDPOINT;
}
@Override
public void initialize(final ZeppOsTransactionBuilder builder) {
// It can stay enable across connections
setRealtimeSteps(builder, false);
}
@Override
public void handlePayload(final byte[] payload) {
switch (payload[0]) {
@@ -80,7 +87,11 @@ public class ZeppOsStepsService extends AbstractZeppOsService {
this.realtimeSamplesAggregator = realtimeSamplesAggregator;
}
public void onEnableRealtimeSteps(final boolean enable) {
public void setRealtimeSteps(final boolean enable) {
withTransactionBuilder("toggle realtime steps", builder -> setRealtimeSteps(builder, enable));
}
public void setRealtimeSteps(final ZeppOsTransactionBuilder builder, final boolean enable) {
write("toggle realtime steps", new byte[]{CMD_ENABLE_REALTIME, bool(enable)});
}