From 89b6ae9f24374c6cffe394673db0d0118f4fc23d Mon Sep 17 00:00:00 2001 From: "Martin.JM" Date: Sun, 18 Feb 2024 17:24:29 +0100 Subject: [PATCH] Add more granular smart wakeup support Specifically: - Add position to smart wakeup support coordinator function - Add interface to stop smart alarm checkbox from being changed --- .../gadgetbridge/activities/AlarmDetails.java | 21 +++++++++++++++---- .../devices/AbstractDeviceCoordinator.java | 7 ++++++- .../devices/DeviceCoordinator.java | 13 +++++++++--- .../devices/UnknownDeviceCoordinator.java | 5 ----- .../AsteroidOSDeviceCoordinator.java | 5 ----- .../devices/banglejs/BangleJSCoordinator.java | 5 ----- .../coordinator/BinarySensorCoordinator.java | 5 ----- .../gb6900/CasioGB6900DeviceCoordinator.java | 5 ----- .../gbx100/CasioGBX100DeviceCoordinator.java | 5 ----- .../CasioGWB5600DeviceCoordinator.java | 5 ----- .../devices/domyos/DomyosT540Coordinator.java | 5 ----- .../fitpro/FitProDeviceCoordinator.java | 5 ----- .../flipper/zero/FlipperZeroCoordinator.java | 5 ----- .../GalaxyBudsGenericCoordinator.java | 5 ----- .../devices/hplus/HPlusCoordinator.java | 5 ----- .../devices/hplus/SG2Coordinator.java | 2 +- .../devices/huami/HuamiCoordinator.java | 5 ----- .../huami/zeppos/ZeppOsCoordinator.java | 2 +- .../devices/huawei/HuaweiBRCoordinator.java | 9 ++++++-- .../devices/huawei/HuaweiCoordinator.java | 9 ++++++++ .../devices/huawei/HuaweiLECoordinator.java | 9 ++++++-- .../devices/id115/ID115Coordinator.java | 5 ----- .../devices/itag/ITagCoordinator.java | 5 ----- .../devices/jyou/BFH16DeviceCoordinator.java | 6 ------ .../TeclastH30/TeclastH30Coordinator.java | 5 ----- .../devices/jyou/y5/Y5Coordinator.java | 2 +- .../devices/lefun/LefunDeviceCoordinator.java | 5 ----- .../WatchXPlusDeviceCoordinator.java | 5 ----- .../devices/liveview/LiveviewCoordinator.java | 5 ----- .../makibeshr3/MakibesHR3Coordinator.java | 5 ----- .../devices/miband/MiBandCoordinator.java | 2 +- .../miscale2/MiScale2DeviceCoordinator.java | 5 ----- .../devices/no1f1/No1F1Coordinator.java | 5 ----- .../devices/nut/NutCoordinator.java | 5 ----- .../devices/pebble/PebbleCoordinator.java | 5 ----- .../pinetime/PineTimeJFCoordinator.java | 5 ----- .../devices/qc35/QC35Coordinator.java | 5 ----- .../devices/qhybrid/QHybridCoordinator.java | 5 ----- .../devices/roidmi/RoidmiCoordinator.java | 5 ----- .../devices/smaq2oss/SMAQ2OSSCoordinator.java | 6 ------ .../devices/soflow/SoFlowCoordinator.java | 5 ----- .../headphones/SonyHeadphonesCoordinator.java | 5 ----- .../sony/wena3/SonyWena3Coordinator.java | 2 +- .../sonyswr12/SonySWR12DeviceCoordinator.java | 2 +- .../supercars/SuperCarsCoordinator.java | 5 ----- .../devices/test/TestDeviceCoordinator.java | 2 +- .../devices/tlw64/TLW64Coordinator.java | 5 ----- .../um25/Coordinator/UM25Coordinator.java | 5 ----- .../devices/vesc/VescCoordinator.java | 5 ----- .../vibratissimo/VibratissimoCoordinator.java | 5 ----- .../vivomovehr/VivomoveHrCoordinator.java | 5 ----- .../devices/waspos/WaspOSCoordinator.java | 5 ----- .../watch9/Watch9DeviceCoordinator.java | 4 ---- .../WithingsSteelHRDeviceCoordinator.java | 2 +- .../devices/xiaomi/XiaomiCoordinator.java | 2 +- .../devices/xwatch/XWatchCoordinator.java | 5 ----- .../devices/zetime/ZeTimeCoordinator.java | 5 ----- .../zeppos/services/ZeppOsAlarmsService.java | 2 +- 58 files changed, 66 insertions(+), 233 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AlarmDetails.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AlarmDetails.java index f65550c0b..2aa472c58 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AlarmDetails.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AlarmDetails.java @@ -126,8 +126,10 @@ public class AlarmDetails extends AbstractGBActivity { timePicker.setCurrentMinute(alarm.getMinute()); cbSmartWakeup.setChecked(alarm.getSmartWakeup()); - int smartAlarmVisibility = supportsSmartWakeup() ? View.VISIBLE : View.GONE; + int smartAlarmVisibility = supportsSmartWakeup(alarm.getPosition()) ? View.VISIBLE : View.GONE; cbSmartWakeup.setVisibility(smartAlarmVisibility); + boolean smartAlarmEnabled = !forcedSmartWakeup(alarm.getPosition()); + cbSmartWakeup.setEnabled(smartAlarmEnabled); cbSnooze.setChecked(alarm.getSnooze()); int snoozeVisibility = supportsSnoozing() ? View.VISIBLE : View.GONE; @@ -153,10 +155,21 @@ public class AlarmDetails extends AbstractGBActivity { cbSunday.setChecked(alarm.getRepetition(Alarm.ALARM_SUN)); } - private boolean supportsSmartWakeup() { + private boolean supportsSmartWakeup(int position) { if (device != null) { DeviceCoordinator coordinator = device.getDeviceCoordinator(); - return coordinator.supportsSmartWakeup(device); + return coordinator.supportsSmartWakeup(device, position); + } + return false; + } + + /** + * The alarm at this position *must* be a smart alarm + */ + private boolean forcedSmartWakeup(int position) { + if (device != null) { + DeviceCoordinator coordinator = device.getDeviceCoordinator(); + return coordinator.forcedSmartWakeup(device, position); } return false; } @@ -210,7 +223,7 @@ public class AlarmDetails extends AbstractGBActivity { alarm.setUnused(false); alarm.setEnabled(true); } - alarm.setSmartWakeup(supportsSmartWakeup() && cbSmartWakeup.isChecked()); + alarm.setSmartWakeup(supportsSmartWakeup(alarm.getPosition()) && cbSmartWakeup.isChecked()); alarm.setSnooze(supportsSnoozing() && cbSnooze.isChecked()); int repetitionMask = AlarmUtils.createRepetitionMask(cbMonday.isChecked(), cbTuesday.isChecked(), cbWednesday.isChecked(), cbThursday.isChecked(), cbFriday.isChecked(), cbSaturday.isChecked(), cbSunday.isChecked()); alarm.setRepetition(repetitionMask); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinator.java index e6e8115c3..8dce27d1b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinator.java @@ -319,7 +319,12 @@ public abstract class AbstractDeviceCoordinator implements DeviceCoordinator { } @Override - public boolean supportsSmartWakeup(final GBDevice device) { + public boolean supportsSmartWakeup(GBDevice device, int alarmPosition) { + return false; + } + + @Override + public boolean forcedSmartWakeup(GBDevice device, int alarmPosition) { return false; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/DeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/DeviceCoordinator.java index b0af24587..b0bf68f60 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/DeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/DeviceCoordinator.java @@ -332,10 +332,17 @@ public interface DeviceCoordinator { int getAlarmSlotCount(GBDevice device); /** - * Returns true if this device/coordinator supports alarms with smart wakeup - * @return + * Returns true if this device/coordinator supports an alarm with smart wakeup for the current position + * @param alarmPosition Position of the alarm */ - boolean supportsSmartWakeup(GBDevice device); + boolean supportsSmartWakeup(GBDevice device, int alarmPosition); + + /** + * Returns true if the alarm at the specified position *must* be a smart alarm for this device/coordinator + * @param alarmPosition Position of the alarm + * @return True if it must be a smart alarm, false otherwise + */ + boolean forcedSmartWakeup(GBDevice device, int alarmPosition); /** * Returns true if this device/coordinator supports alarm snoozing diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/UnknownDeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/UnknownDeviceCoordinator.java index b67696194..a824722f8 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/UnknownDeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/UnknownDeviceCoordinator.java @@ -151,11 +151,6 @@ public class UnknownDeviceCoordinator extends AbstractDeviceCoordinator { return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/asteroidos/AsteroidOSDeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/asteroidos/AsteroidOSDeviceCoordinator.java index 358cca6b9..d3e2a446d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/asteroidos/AsteroidOSDeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/asteroidos/AsteroidOSDeviceCoordinator.java @@ -156,11 +156,6 @@ public class AsteroidOSDeviceCoordinator extends AbstractDeviceCoordinator { return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/banglejs/BangleJSCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/banglejs/BangleJSCoordinator.java index b1357c954..c1a84c99f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/banglejs/BangleJSCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/banglejs/BangleJSCoordinator.java @@ -112,11 +112,6 @@ public class BangleJSCoordinator extends AbstractBLEDeviceCoordinator { return false; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return true; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/binary_sensor/coordinator/BinarySensorCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/binary_sensor/coordinator/BinarySensorCoordinator.java index e9dcacde3..497e693c9 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/binary_sensor/coordinator/BinarySensorCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/binary_sensor/coordinator/BinarySensorCoordinator.java @@ -118,11 +118,6 @@ public class BinarySensorCoordinator extends AbstractBLEDeviceCoordinator { return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/casio/gb6900/CasioGB6900DeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/casio/gb6900/CasioGB6900DeviceCoordinator.java index 0c7875496..3b1492f74 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/casio/gb6900/CasioGB6900DeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/casio/gb6900/CasioGB6900DeviceCoordinator.java @@ -111,11 +111,6 @@ public class CasioGB6900DeviceCoordinator extends CasioDeviceCoordinator { return 5; // 4 regular and one snooze } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/casio/gbx100/CasioGBX100DeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/casio/gbx100/CasioGBX100DeviceCoordinator.java index e96e2f05f..ad9a6a85b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/casio/gbx100/CasioGBX100DeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/casio/gbx100/CasioGBX100DeviceCoordinator.java @@ -142,11 +142,6 @@ public class CasioGBX100DeviceCoordinator extends CasioDeviceCoordinator { return 4; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/casio/gwb5600/CasioGWB5600DeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/casio/gwb5600/CasioGWB5600DeviceCoordinator.java index 157c4642d..f112710c6 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/casio/gwb5600/CasioGWB5600DeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/casio/gwb5600/CasioGWB5600DeviceCoordinator.java @@ -115,11 +115,6 @@ public class CasioGWB5600DeviceCoordinator extends CasioDeviceCoordinator { return false; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsAppsManagement(final GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/domyos/DomyosT540Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/domyos/DomyosT540Coordinator.java index 2cf8da3e0..b47cb5d33 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/domyos/DomyosT540Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/domyos/DomyosT540Coordinator.java @@ -80,11 +80,6 @@ public class DomyosT540Coordinator extends AbstractBLEDeviceCoordinator { return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/fitpro/FitProDeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/fitpro/FitProDeviceCoordinator.java index 1a797f1cf..06f370eac 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/fitpro/FitProDeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/fitpro/FitProDeviceCoordinator.java @@ -105,11 +105,6 @@ public class FitProDeviceCoordinator extends AbstractBLEDeviceCoordinator { return 8; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return true; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/flipper/zero/FlipperZeroCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/flipper/zero/FlipperZeroCoordinator.java index 87f6b7277..b9c1e1e72 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/flipper/zero/FlipperZeroCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/flipper/zero/FlipperZeroCoordinator.java @@ -90,11 +90,6 @@ public class FlipperZeroCoordinator extends AbstractBLEDeviceCoordinator { return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public String getManufacturer() { return "Flipper devices"; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/galaxy_buds/GalaxyBudsGenericCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/galaxy_buds/GalaxyBudsGenericCoordinator.java index aedbc1af4..5c7625a56 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/galaxy_buds/GalaxyBudsGenericCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/galaxy_buds/GalaxyBudsGenericCoordinator.java @@ -80,11 +80,6 @@ public abstract class GalaxyBudsGenericCoordinator extends AbstractBLClassicDevi return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/hplus/HPlusCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/hplus/HPlusCoordinator.java index 00bc2ecfc..990ad5902 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/hplus/HPlusCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/hplus/HPlusCoordinator.java @@ -136,11 +136,6 @@ public class HPlusCoordinator extends AbstractBLEDeviceCoordinator { return 3; // FIXME - check the real value } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return true; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/hplus/SG2Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/hplus/SG2Coordinator.java index 89b85d546..09e961520 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/hplus/SG2Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/hplus/SG2Coordinator.java @@ -53,7 +53,7 @@ public class SG2Coordinator extends HPlusCoordinator { } @Override - public boolean supportsSmartWakeup(GBDevice device) { + public boolean supportsSmartWakeup(GBDevice device, int position) { return true; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiCoordinator.java index e35aaca55..0ab6e45bd 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiCoordinator.java @@ -525,11 +525,6 @@ public abstract class HuamiCoordinator extends AbstractBLEDeviceCoordinator { return false; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsFindDevice() { return true; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/zeppos/ZeppOsCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/zeppos/ZeppOsCoordinator.java index 73ce5af7b..663f8b6c9 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/zeppos/ZeppOsCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/zeppos/ZeppOsCoordinator.java @@ -307,7 +307,7 @@ public abstract class ZeppOsCoordinator extends HuamiCoordinator { } @Override - public boolean supportsSmartWakeup(final GBDevice device) { + public boolean supportsSmartWakeup(final GBDevice device, int position) { return true; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiBRCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiBRCoordinator.java index bd2606efb..677a88a89 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiBRCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiBRCoordinator.java @@ -112,8 +112,13 @@ public abstract class HuaweiBRCoordinator extends AbstractBLClassicDeviceCoordin } @Override - public boolean supportsSmartWakeup(GBDevice device) { - return huaweiCoordinator.supportsSmartAlarm(device); + public boolean supportsSmartWakeup(GBDevice device, int position) { + return huaweiCoordinator.supportsSmartAlarm(device, position); + } + + @Override + public boolean forcedSmartWakeup(GBDevice device, int alarmPosition) { + return huaweiCoordinator.forcedSmartWakeup(device, alarmPosition); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiCoordinator.java index 4902a4245..fe6c36c05 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiCoordinator.java @@ -308,10 +308,19 @@ public class HuaweiCoordinator { public boolean supportsSmartAlarm() { return supportsCommandForService(0x08, 0x02) ; } + public boolean supportsSmartAlarm(GBDevice gbDevice) { return supportsSmartAlarm() || getForceOption(gbDevice, PREF_FORCE_ENABLE_SMART_ALARM); } + public boolean supportsSmartAlarm(GBDevice gbDevice, int alarmPosition) { + return supportsSmartAlarm(gbDevice) && alarmPosition == 0; + } + + public boolean forcedSmartWakeup(GBDevice device, int alarmPosition) { + return supportsSmartAlarm(device, alarmPosition) && alarmPosition == 0; + } + /** * @return True if alarms can be changed on the device, false otherwise */ diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiLECoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiLECoordinator.java index 45421af7a..782159327 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiLECoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiLECoordinator.java @@ -112,8 +112,13 @@ public abstract class HuaweiLECoordinator extends AbstractBLEDeviceCoordinator i } @Override - public boolean supportsSmartWakeup(GBDevice device) { - return huaweiCoordinator.supportsSmartAlarm(device); + public boolean supportsSmartWakeup(GBDevice device, int position) { + return huaweiCoordinator.supportsSmartAlarm(device, position); + } + + @Override + public boolean forcedSmartWakeup(GBDevice device, int alarmPosition) { + return huaweiCoordinator.forcedSmartWakeup(device, alarmPosition); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/id115/ID115Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/id115/ID115Coordinator.java index 6c0c5017a..210967598 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/id115/ID115Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/id115/ID115Coordinator.java @@ -105,11 +105,6 @@ public class ID115Coordinator extends AbstractBLEDeviceCoordinator { return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/itag/ITagCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/itag/ITagCoordinator.java index e3f0df340..4354fa452 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/itag/ITagCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/itag/ITagCoordinator.java @@ -102,11 +102,6 @@ public class ITagCoordinator extends AbstractBLEDeviceCoordinator { return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/jyou/BFH16DeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/jyou/BFH16DeviceCoordinator.java index d56a8ab7e..1a6f00b2d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/jyou/BFH16DeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/jyou/BFH16DeviceCoordinator.java @@ -188,12 +188,6 @@ public class BFH16DeviceCoordinator extends AbstractBLEDeviceCoordinator return false; } - @Override - public boolean supportsSmartWakeup(GBDevice device) - { - return false; - } - @Override public boolean supportsWeather() { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/jyou/TeclastH30/TeclastH30Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/jyou/TeclastH30/TeclastH30Coordinator.java index 85dd26a45..b1f9fcbc4 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/jyou/TeclastH30/TeclastH30Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/jyou/TeclastH30/TeclastH30Coordinator.java @@ -140,11 +140,6 @@ public class TeclastH30Coordinator extends AbstractBLEDeviceCoordinator { return 3; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return true; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/jyou/y5/Y5Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/jyou/y5/Y5Coordinator.java index a76e9b598..0ede0565a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/jyou/y5/Y5Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/jyou/y5/Y5Coordinator.java @@ -92,7 +92,7 @@ public class Y5Coordinator extends AbstractBLEDeviceCoordinator { } @Override - public boolean supportsSmartWakeup(GBDevice device) { + public boolean supportsSmartWakeup(GBDevice device, int position) { return true; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/lefun/LefunDeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/lefun/LefunDeviceCoordinator.java index a5ce12e76..7e7bb0fd1 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/lefun/LefunDeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/lefun/LefunDeviceCoordinator.java @@ -108,11 +108,6 @@ public class LefunDeviceCoordinator extends AbstractBLEDeviceCoordinator { return NUM_ALARM_SLOTS; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return true; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/lenovo/watchxplus/WatchXPlusDeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/lenovo/watchxplus/WatchXPlusDeviceCoordinator.java index 4f9ace4f1..96abec07e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/lenovo/watchxplus/WatchXPlusDeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/lenovo/watchxplus/WatchXPlusDeviceCoordinator.java @@ -140,11 +140,6 @@ public class WatchXPlusDeviceCoordinator extends AbstractBLEDeviceCoordinator { return 3; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return true; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/liveview/LiveviewCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/liveview/LiveviewCoordinator.java index 119d41b23..8d756e07f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/liveview/LiveviewCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/liveview/LiveviewCoordinator.java @@ -80,11 +80,6 @@ public class LiveviewCoordinator extends AbstractBLClassicDeviceCoordinator { return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/makibeshr3/MakibesHR3Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/makibeshr3/MakibesHR3Coordinator.java index 9cb7fabf4..465f12538 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/makibeshr3/MakibesHR3Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/makibeshr3/MakibesHR3Coordinator.java @@ -223,11 +223,6 @@ public class MakibesHR3Coordinator extends AbstractBLEDeviceCoordinator { return 8; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return true; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandCoordinator.java index 4b39e900f..8a740cf5c 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandCoordinator.java @@ -139,7 +139,7 @@ public class MiBandCoordinator extends AbstractBLEDeviceCoordinator { } @Override - public boolean supportsSmartWakeup(GBDevice device) { + public boolean supportsSmartWakeup(GBDevice device, int position) { return true; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miscale2/MiScale2DeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miscale2/MiScale2DeviceCoordinator.java index 5484baaa2..5b805a34e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miscale2/MiScale2DeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miscale2/MiScale2DeviceCoordinator.java @@ -115,11 +115,6 @@ public class MiScale2DeviceCoordinator extends AbstractBLEDeviceCoordinator { return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/no1f1/No1F1Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/no1f1/No1F1Coordinator.java index 0f7e9e09d..41fccbb1d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/no1f1/No1F1Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/no1f1/No1F1Coordinator.java @@ -101,11 +101,6 @@ public class No1F1Coordinator extends AbstractBLEDeviceCoordinator { return 3; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return true; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/nut/NutCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/nut/NutCoordinator.java index 56dc89b7d..00efb169c 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/nut/NutCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/nut/NutCoordinator.java @@ -109,11 +109,6 @@ public class NutCoordinator extends AbstractBLEDeviceCoordinator { return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/PebbleCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/PebbleCoordinator.java index 7884e0e7c..d70ebaa01 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/PebbleCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/PebbleCoordinator.java @@ -131,11 +131,6 @@ public class PebbleCoordinator extends AbstractBLClassicDeviceCoordinator { return 16; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return PebbleUtils.hasHRM(device.getModel()); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pinetime/PineTimeJFCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pinetime/PineTimeJFCoordinator.java index b30aa2697..c64601ec8 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pinetime/PineTimeJFCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pinetime/PineTimeJFCoordinator.java @@ -84,11 +84,6 @@ public class PineTimeJFCoordinator extends AbstractBLEDeviceCoordinator { return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return true; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/qc35/QC35Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/qc35/QC35Coordinator.java index 38ab5130c..cf785f45a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/qc35/QC35Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/qc35/QC35Coordinator.java @@ -99,11 +99,6 @@ public class QC35Coordinator extends AbstractBLClassicDeviceCoordinator { return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/qhybrid/QHybridCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/qhybrid/QHybridCoordinator.java index 8f949b410..5a00e5fa4 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/qhybrid/QHybridCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/qhybrid/QHybridCoordinator.java @@ -166,11 +166,6 @@ public class QHybridCoordinator extends AbstractBLEDeviceCoordinator { return isHybridHR(); } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return this.isHybridHR(); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/roidmi/RoidmiCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/roidmi/RoidmiCoordinator.java index 789e0fcf4..e7417ffb7 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/roidmi/RoidmiCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/roidmi/RoidmiCoordinator.java @@ -89,11 +89,6 @@ public abstract class RoidmiCoordinator extends AbstractBLClassicDeviceCoordinat return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/smaq2oss/SMAQ2OSSCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/smaq2oss/SMAQ2OSSCoordinator.java index 897544342..c448b10e0 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/smaq2oss/SMAQ2OSSCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/smaq2oss/SMAQ2OSSCoordinator.java @@ -107,12 +107,6 @@ public class SMAQ2OSSCoordinator extends AbstractBLEDeviceCoordinator { return 0; } - - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/soflow/SoFlowCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/soflow/SoFlowCoordinator.java index 725d61464..027d54391 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/soflow/SoFlowCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/soflow/SoFlowCoordinator.java @@ -79,11 +79,6 @@ public class SoFlowCoordinator extends AbstractBLEDeviceCoordinator { return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/sony/headphones/SonyHeadphonesCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/sony/headphones/SonyHeadphonesCoordinator.java index dd24a56db..6ce91f958 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/sony/headphones/SonyHeadphonesCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/sony/headphones/SonyHeadphonesCoordinator.java @@ -98,11 +98,6 @@ public abstract class SonyHeadphonesCoordinator extends AbstractBLClassicDeviceC return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/sony/wena3/SonyWena3Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/sony/wena3/SonyWena3Coordinator.java index 78e4ca3b8..c549e3d1e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/sony/wena3/SonyWena3Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/sony/wena3/SonyWena3Coordinator.java @@ -213,7 +213,7 @@ public class SonyWena3Coordinator extends AbstractBLEDeviceCoordinator { } @Override - public boolean supportsSmartWakeup(GBDevice device) { + public boolean supportsSmartWakeup(GBDevice device, int position) { return true; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/sonyswr12/SonySWR12DeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/sonyswr12/SonySWR12DeviceCoordinator.java index f32e6db96..843824287 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/sonyswr12/SonySWR12DeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/sonyswr12/SonySWR12DeviceCoordinator.java @@ -93,7 +93,7 @@ public class SonySWR12DeviceCoordinator extends AbstractBLEDeviceCoordinator { } @Override - public boolean supportsSmartWakeup(GBDevice device) { + public boolean supportsSmartWakeup(GBDevice device, int position) { return true; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/supercars/SuperCarsCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/supercars/SuperCarsCoordinator.java index ed4bf8f46..ecae4a100 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/supercars/SuperCarsCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/supercars/SuperCarsCoordinator.java @@ -113,11 +113,6 @@ public class SuperCarsCoordinator extends AbstractDeviceCoordinator { return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public String getManufacturer() { return "Brand Base"; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/test/TestDeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/test/TestDeviceCoordinator.java index 450525490..b00f47e91 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/test/TestDeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/test/TestDeviceCoordinator.java @@ -207,7 +207,7 @@ public class TestDeviceCoordinator extends AbstractDeviceCoordinator { } @Override - public boolean supportsSmartWakeup(final GBDevice device) { + public boolean supportsSmartWakeup(final GBDevice device, int position) { return supports(getTestDevice(), TestFeature.SMART_WAKEUP); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/tlw64/TLW64Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/tlw64/TLW64Coordinator.java index cd1bad705..3f39c42c5 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/tlw64/TLW64Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/tlw64/TLW64Coordinator.java @@ -88,11 +88,6 @@ public class TLW64Coordinator extends AbstractBLEDeviceCoordinator { return 3; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/um25/Coordinator/UM25Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/um25/Coordinator/UM25Coordinator.java index 60e360077..0898c5f46 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/um25/Coordinator/UM25Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/um25/Coordinator/UM25Coordinator.java @@ -118,11 +118,6 @@ public class UM25Coordinator extends AbstractBLEDeviceCoordinator { return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/vesc/VescCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/vesc/VescCoordinator.java index 28afa594c..9517b70d6 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/vesc/VescCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/vesc/VescCoordinator.java @@ -125,11 +125,6 @@ public class VescCoordinator extends AbstractBLEDeviceCoordinator { return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/vibratissimo/VibratissimoCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/vibratissimo/VibratissimoCoordinator.java index 67639930f..93687e48f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/vibratissimo/VibratissimoCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/vibratissimo/VibratissimoCoordinator.java @@ -81,11 +81,6 @@ public class VibratissimoCoordinator extends AbstractBLEDeviceCoordinator { return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/vivomovehr/VivomoveHrCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/vivomovehr/VivomoveHrCoordinator.java index 919d532ac..b4cf1e1c6 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/vivomovehr/VivomoveHrCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/vivomovehr/VivomoveHrCoordinator.java @@ -94,11 +94,6 @@ public class VivomoveHrCoordinator extends AbstractBLEDeviceCoordinator { return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return true; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/waspos/WaspOSCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/waspos/WaspOSCoordinator.java index 106ea5b67..c0f3c8313 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/waspos/WaspOSCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/waspos/WaspOSCoordinator.java @@ -104,11 +104,6 @@ public class WaspOSCoordinator extends AbstractBLEDeviceCoordinator { return false; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/watch9/Watch9DeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/watch9/Watch9DeviceCoordinator.java index 98aecaf62..8e5114eec 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/watch9/Watch9DeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/watch9/Watch9DeviceCoordinator.java @@ -116,10 +116,6 @@ public class Watch9DeviceCoordinator extends AbstractBLEDeviceCoordinator { return 3; // FIXME - check the real value } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } @Override public boolean supportsHeartRateMeasurement(GBDevice device) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/withingssteelhr/WithingsSteelHRDeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/withingssteelhr/WithingsSteelHRDeviceCoordinator.java index bb6209b6e..74efa62aa 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/withingssteelhr/WithingsSteelHRDeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/withingssteelhr/WithingsSteelHRDeviceCoordinator.java @@ -131,7 +131,7 @@ public class WithingsSteelHRDeviceCoordinator extends AbstractDeviceCoordinator } @Override - public boolean supportsSmartWakeup(GBDevice device) { + public boolean supportsSmartWakeup(GBDevice device, int position) { return true; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xiaomi/XiaomiCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xiaomi/XiaomiCoordinator.java index 9a1e7b90a..bd0145e6e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xiaomi/XiaomiCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xiaomi/XiaomiCoordinator.java @@ -174,7 +174,7 @@ public abstract class XiaomiCoordinator extends AbstractBLEDeviceCoordinator { } @Override - public boolean supportsSmartWakeup(final GBDevice device) { + public boolean supportsSmartWakeup(final GBDevice device, int position) { return true; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xwatch/XWatchCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xwatch/XWatchCoordinator.java index a119da3e8..5663dddc2 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xwatch/XWatchCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xwatch/XWatchCoordinator.java @@ -87,11 +87,6 @@ public class XWatchCoordinator extends AbstractBLEDeviceCoordinator { return 0; } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return false; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimeCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimeCoordinator.java index b1960e519..e09f0c927 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimeCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimeCoordinator.java @@ -129,11 +129,6 @@ public class ZeTimeCoordinator extends AbstractBLEDeviceCoordinator { } - @Override - public boolean supportsSmartWakeup(GBDevice device) { - return false; - } - @Override public boolean supportsRealtimeData() { return true; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/zeppos/services/ZeppOsAlarmsService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/zeppos/services/ZeppOsAlarmsService.java index a667fab7d..9ea52aadb 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/zeppos/services/ZeppOsAlarmsService.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/zeppos/services/ZeppOsAlarmsService.java @@ -125,7 +125,7 @@ public class ZeppOsAlarmsService extends AbstractZeppOsService { if (alarm.getEnabled()) { alarmFlags = FLAG_ENABLED; } - if (coordinator.supportsSmartWakeup(getSupport().getDevice()) && alarm.getSmartWakeup()) { + if (coordinator.supportsSmartWakeup(getSupport().getDevice(), alarm.getPosition()) && alarm.getSmartWakeup()) { alarmFlags |= FLAG_SMART; } alarmMessage = new byte[]{