From 1f77e3e84f1bf7ee6b2e2b2abd7e719c3ee63db1 Mon Sep 17 00:00:00 2001 From: Daniele Gobbetti Date: Tue, 25 Oct 2016 17:39:11 +0200 Subject: [PATCH] Coordinator: add explicit methods to determine if the device supports app management and which class is responsible for it. --- .../gadgetbridge/devices/DeviceCoordinator.java | 15 +++++++++++++++ .../devices/UnknownDeviceCoordinator.java | 10 ++++++++++ .../devices/miband/MiBandCoordinator.java | 10 ++++++++++ .../devices/pebble/PebbleCoordinator.java | 10 ++++++++++ .../vibratissimo/VibratissimoCoordinator.java | 10 ++++++++++ 5 files changed, 55 insertions(+) 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 221bc3ae..c2eace40 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/DeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/DeviceCoordinator.java @@ -140,4 +140,19 @@ public interface DeviceCoordinator { * Returns the readable name of the manufacturer. */ String getManufacturer(); + + /** + * Returns true if this device/coordinator supports managing device apps. + * + * @return + */ + boolean supportsAppsManagement(); + + /** + * Returns the Activity class that will be used to manage device apps. + * + * @return + */ + Class getAppsManagementActivity(); + } 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 e3d1c0f5..06fc3d4a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/UnknownDeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/UnknownDeviceCoordinator.java @@ -142,4 +142,14 @@ public class UnknownDeviceCoordinator extends AbstractDeviceCoordinator { public String getManufacturer() { return "unknown"; } + + @Override + public boolean supportsAppsManagement() { + return false; + } + + @Override + public Class getAppsManagementActivity() { + return null; + } } 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 00cd7b79..069c9ba1 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 @@ -119,6 +119,16 @@ public class MiBandCoordinator extends AbstractDeviceCoordinator { return "Xiaomi"; } + @Override + public boolean supportsAppsManagement() { + return false; + } + + @Override + public Class getAppsManagementActivity() { + return null; + } + public static boolean hasValidUserInfo() { String dummyMacAddress = MiBandService.MAC_ADDRESS_FILTER_1_1A + ":00:00:00"; try { 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 39d9e095..48cbbb88 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 @@ -117,4 +117,14 @@ public class PebbleCoordinator extends AbstractDeviceCoordinator { public String getManufacturer() { return "Pebble"; } + + @Override + public boolean supportsAppsManagement() { + return true; + } + + @Override + public Class getAppsManagementActivity() { + return AppManagerActivity.class; + } } 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 3bb7f072..d36b0c40 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 @@ -85,6 +85,16 @@ public class VibratissimoCoordinator extends AbstractDeviceCoordinator { return "Amor AG"; } + @Override + public boolean supportsAppsManagement() { + return false; + } + + @Override + public Class getAppsManagementActivity() { + return null; + } + @Override protected void deleteDevice(@NonNull GBDevice gbDevice, @NonNull Device device, @NonNull DaoSession session) throws GBException { // nothing to delete, yet