From 72de9bafe9d380c63fa32268230462ea8f15348d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Sat, 13 Apr 2024 19:25:24 +0100 Subject: [PATCH] Garmin protocol: Introduce GarminCoordinator --- .../devices/garmin/GarminCoordinator.java | 39 ++++++++++++++++++ .../GarminInstinct2SCoordinator.java | 39 +----------------- .../garmin/venu3/GarminVenu3Coordinator.java | 34 ++++----------- .../GarminVivomoveStyleCoordinator.java | 41 +------------------ 4 files changed, 51 insertions(+), 102 deletions(-) create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/GarminCoordinator.java diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/GarminCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/GarminCoordinator.java new file mode 100644 index 000000000..f58e9cefd --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/GarminCoordinator.java @@ -0,0 +1,39 @@ +package nodomain.freeyourgadget.gadgetbridge.devices.garmin; + +import androidx.annotation.NonNull; + +import nodomain.freeyourgadget.gadgetbridge.GBException; +import nodomain.freeyourgadget.gadgetbridge.devices.AbstractBLEDeviceCoordinator; +import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; +import nodomain.freeyourgadget.gadgetbridge.entities.Device; +import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; +import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport; +import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.GarminSupport; + +public abstract class GarminCoordinator extends AbstractBLEDeviceCoordinator { + @Override + protected void deleteDevice(@NonNull GBDevice gbDevice, @NonNull Device device, @NonNull DaoSession session) throws GBException { + + } + + @Override + public String getManufacturer() { + return "Garmin"; + } + + @NonNull + @Override + public Class getDeviceSupportClass() { + return GarminSupport.class; + } + + @Override + public boolean supportsFindDevice() { + return true; + } + + @Override + public boolean supportsWeather() { + return true; + } +} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/instinct2s/GarminInstinct2SCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/instinct2s/GarminInstinct2SCoordinator.java index a14312d18..ee656d92a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/instinct2s/GarminInstinct2SCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/instinct2s/GarminInstinct2SCoordinator.java @@ -1,53 +1,18 @@ package nodomain.freeyourgadget.gadgetbridge.devices.garmin.instinct2s; -import androidx.annotation.NonNull; - import java.util.regex.Pattern; -import nodomain.freeyourgadget.gadgetbridge.GBException; import nodomain.freeyourgadget.gadgetbridge.R; -import nodomain.freeyourgadget.gadgetbridge.devices.AbstractBLEDeviceCoordinator; -import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; -import nodomain.freeyourgadget.gadgetbridge.entities.Device; -import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport; -import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.GarminSupport; - -public class GarminInstinct2SCoordinator extends AbstractBLEDeviceCoordinator { - @Override - protected void deleteDevice(@NonNull GBDevice gbDevice, @NonNull Device device, @NonNull DaoSession session) throws GBException { - - } +import nodomain.freeyourgadget.gadgetbridge.devices.garmin.GarminCoordinator; +public class GarminInstinct2SCoordinator extends GarminCoordinator { @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("Instinct 2S"); } - @Override - public String getManufacturer() { - return "Garmin"; - } - - @NonNull - @Override - public Class getDeviceSupportClass() { - return GarminSupport.class; - } - @Override public int getDeviceNameResource() { return R.string.devicetype_garmin_instinct_2s; } - - @Override - public boolean supportsFindDevice() { - return true; - } - - @Override - public boolean supportsWeather() { - return true; - } - } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/venu3/GarminVenu3Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/venu3/GarminVenu3Coordinator.java index 3a17c353a..fb0210daf 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/venu3/GarminVenu3Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/venu3/GarminVenu3Coordinator.java @@ -1,42 +1,24 @@ package nodomain.freeyourgadget.gadgetbridge.devices.garmin.venu3; -import androidx.annotation.NonNull; - import java.util.regex.Pattern; -import nodomain.freeyourgadget.gadgetbridge.GBException; import nodomain.freeyourgadget.gadgetbridge.R; -import nodomain.freeyourgadget.gadgetbridge.devices.AbstractBLEDeviceCoordinator; -import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; -import nodomain.freeyourgadget.gadgetbridge.entities.Device; -import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport; -import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.GarminSupport; - -public class GarminVenu3Coordinator extends AbstractBLEDeviceCoordinator { - @Override - protected void deleteDevice(@NonNull GBDevice gbDevice, @NonNull Device device, @NonNull DaoSession session) throws GBException { - - } +import nodomain.freeyourgadget.gadgetbridge.devices.garmin.GarminCoordinator; +public class GarminVenu3Coordinator extends GarminCoordinator { @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("Venu 3"); } - @Override - public String getManufacturer() { - return "Garmin"; - } - - @NonNull - @Override - public Class getDeviceSupportClass() { - return GarminSupport.class; - } - @Override public int getDeviceNameResource() { return R.string.devicetype_garmin_vivomove_style; } + + @Override + public boolean supportsWeather() { + // FIXME: It's not working + return false; + } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/vivomove/GarminVivomoveStyleCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/vivomove/GarminVivomoveStyleCoordinator.java index fb9881e73..832c41786 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/vivomove/GarminVivomoveStyleCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/vivomove/GarminVivomoveStyleCoordinator.java @@ -1,55 +1,18 @@ package nodomain.freeyourgadget.gadgetbridge.devices.garmin.vivomove; -import androidx.annotation.NonNull; - import java.util.regex.Pattern; -import nodomain.freeyourgadget.gadgetbridge.GBException; import nodomain.freeyourgadget.gadgetbridge.R; -import nodomain.freeyourgadget.gadgetbridge.devices.AbstractBLEDeviceCoordinator; -import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; -import nodomain.freeyourgadget.gadgetbridge.entities.Device; -import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport; -import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.GarminSupport; - -public class GarminVivomoveStyleCoordinator extends AbstractBLEDeviceCoordinator { - @Override - protected void deleteDevice(@NonNull GBDevice gbDevice, @NonNull Device device, @NonNull DaoSession session) throws GBException { - - } +import nodomain.freeyourgadget.gadgetbridge.devices.garmin.GarminCoordinator; +public class GarminVivomoveStyleCoordinator extends GarminCoordinator { @Override protected Pattern getSupportedDeviceName() { return Pattern.compile("vĂ­vomove Style"); } - @Override - public String getManufacturer() { - return "Garmin"; - } - - @NonNull - @Override - public Class getDeviceSupportClass() { - return GarminSupport.class; - } - @Override public int getDeviceNameResource() { return R.string.devicetype_garmin_vivomove_style; } - - @Override - public boolean supportsFindDevice() { - return true; - } - - - @Override - public boolean supportsWeather() { - return true; - } - - }