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
new file mode 100644
index 000000000..f17f833a7
--- /dev/null
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiCoordinator.java
@@ -0,0 +1,251 @@
+/* Copyright (C) 2016-2017 Carsten Pfeiffer, José Rebelo
+
+ This file is part of Gadgetbridge.
+
+ Gadgetbridge is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published
+ by the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Gadgetbridge is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see . */
+package nodomain.freeyourgadget.gadgetbridge.devices.huami;
+
+import android.annotation.TargetApi;
+import android.app.Activity;
+import android.bluetooth.le.ScanFilter;
+import android.content.Context;
+import android.os.Build;
+import android.os.ParcelUuid;
+import android.support.annotation.NonNull;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
+import java.util.Set;
+
+import de.greenrobot.dao.query.QueryBuilder;
+import nodomain.freeyourgadget.gadgetbridge.GBApplication;
+import nodomain.freeyourgadget.gadgetbridge.GBException;
+import nodomain.freeyourgadget.gadgetbridge.R;
+import nodomain.freeyourgadget.gadgetbridge.activities.SettingsActivity;
+import nodomain.freeyourgadget.gadgetbridge.devices.AbstractDeviceCoordinator;
+import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
+import nodomain.freeyourgadget.gadgetbridge.devices.miband.DateTimeDisplay;
+import nodomain.freeyourgadget.gadgetbridge.devices.miband.DoNotDisturb;
+import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBand2SampleProvider;
+import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst;
+import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandPairingActivity;
+import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandService;
+import nodomain.freeyourgadget.gadgetbridge.entities.AbstractActivitySample;
+import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
+import nodomain.freeyourgadget.gadgetbridge.entities.Device;
+import nodomain.freeyourgadget.gadgetbridge.entities.MiBandActivitySampleDao;
+import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
+import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
+import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
+
+public abstract class HuamiCoordinator extends AbstractDeviceCoordinator {
+ private static final Logger LOG = LoggerFactory.getLogger(HuamiCoordinator.class);
+
+ @Override
+ public DeviceType getDeviceType() {
+ return DeviceType.MIBAND2;
+ }
+
+ @Override
+ public Class extends Activity> getPairingActivity() {
+ return MiBandPairingActivity.class;
+ }
+
+ @NonNull
+ @Override
+ @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+ public Collection extends ScanFilter> createBLEScanFilters() {
+ ParcelUuid mi2Service = new ParcelUuid(MiBandService.UUID_SERVICE_MIBAND2_SERVICE);
+ ScanFilter filter = new ScanFilter.Builder().setServiceUuid(mi2Service).build();
+ return Collections.singletonList(filter);
+ }
+
+ @Override
+ protected void deleteDevice(@NonNull GBDevice gbDevice, @NonNull Device device, @NonNull DaoSession session) throws GBException {
+ Long deviceId = device.getId();
+ QueryBuilder> qb = session.getMiBandActivitySampleDao().queryBuilder();
+ qb.where(MiBandActivitySampleDao.Properties.DeviceId.eq(deviceId)).buildDelete().executeDeleteWithoutDetachingEntities();
+ }
+
+ @Override
+ public String getManufacturer() {
+ return "Huami";
+ }
+
+ @Override
+ public boolean supportsAppsManagement() {
+ return false;
+ }
+
+ @Override
+ public Class extends Activity> getAppsManagementActivity() {
+ return null;
+ }
+
+ @Override
+ public boolean supportsCalendarEvents() {
+ return false;
+ }
+
+ @Override
+ public boolean supportsRealtimeData() {
+ return true;
+ }
+
+ @Override
+ public boolean supportsAlarmConfiguration() {
+ return true;
+ }
+
+ @Override
+ public boolean supportsActivityDataFetching() {
+ return true;
+ }
+
+ @Override
+ public boolean supportsActivityTracking() {
+ return true;
+ }
+
+ @Override
+ public SampleProvider extends AbstractActivitySample> getSampleProvider(GBDevice device, DaoSession session) {
+ return new MiBand2SampleProvider(device, session);
+ }
+
+ public static DateTimeDisplay getDateDisplay(Context context) throws IllegalArgumentException {
+ Prefs prefs = GBApplication.getPrefs();
+ String dateFormatTime = context.getString(R.string.p_dateformat_time);
+ if (dateFormatTime.equals(prefs.getString(MiBandConst.PREF_MI2_DATEFORMAT, dateFormatTime))) {
+ return DateTimeDisplay.TIME;
+ }
+ return DateTimeDisplay.DATE_TIME;
+ }
+
+ public static boolean getActivateDisplayOnLiftWrist() {
+ Prefs prefs = GBApplication.getPrefs();
+ return prefs.getBoolean(MiBandConst.PREF_MI2_ACTIVATE_DISPLAY_ON_LIFT, true);
+ }
+
+ public static Set getDisplayItems() {
+ Prefs prefs = GBApplication.getPrefs();
+ return prefs.getStringSet(MiBandConst.PREF_MI2_DISPLAY_ITEMS, null);
+ }
+
+ public static boolean getGoalNotification() {
+ Prefs prefs = GBApplication.getPrefs();
+ return prefs.getBoolean(MiBandConst.PREF_MI2_GOAL_NOTIFICATION, false);
+ }
+
+ public static boolean getRotateWristToSwitchInfo() {
+ Prefs prefs = GBApplication.getPrefs();
+ return prefs.getBoolean(MiBandConst.PREF_MI2_ROTATE_WRIST_TO_SWITCH_INFO, false);
+ }
+
+ public static boolean getInactivityWarnings() {
+ Prefs prefs = GBApplication.getPrefs();
+ return prefs.getBoolean(MiBandConst.PREF_MI2_INACTIVITY_WARNINGS, false);
+ }
+
+ public static int getInactivityWarningsThreshold() {
+ Prefs prefs = GBApplication.getPrefs();
+ return prefs.getInt(MiBandConst.PREF_MI2_INACTIVITY_WARNINGS_THRESHOLD, 60);
+ }
+
+ public static boolean getInactivityWarningsDnd() {
+ Prefs prefs = GBApplication.getPrefs();
+ return prefs.getBoolean(MiBandConst.PREF_MI2_INACTIVITY_WARNINGS_DND, false);
+ }
+
+ public static Date getInactivityWarningsStart() {
+ return getTimePreference(MiBandConst.PREF_MI2_INACTIVITY_WARNINGS_START, "06:00");
+ }
+
+ public static Date getInactivityWarningsEnd() {
+ return getTimePreference(MiBandConst.PREF_MI2_INACTIVITY_WARNINGS_END, "22:00");
+ }
+
+ public static Date getInactivityWarningsDndStart() {
+ return getTimePreference(MiBandConst.PREF_MI2_INACTIVITY_WARNINGS_DND_START, "12:00");
+ }
+
+ public static Date getInactivityWarningsDndEnd() {
+ return getTimePreference(MiBandConst.PREF_MI2_INACTIVITY_WARNINGS_DND_END, "14:00");
+ }
+
+ public static Date getDoNotDisturbStart() {
+ return getTimePreference(MiBandConst.PREF_MI2_DO_NOT_DISTURB_START, "01:00");
+ }
+
+ public static Date getDoNotDisturbEnd() {
+ return getTimePreference(MiBandConst.PREF_MI2_DO_NOT_DISTURB_END, "06:00");
+ }
+
+ public static Date getTimePreference(String key, String defaultValue) {
+ Prefs prefs = GBApplication.getPrefs();
+ String time = prefs.getString(key, defaultValue);
+
+ DateFormat df = new SimpleDateFormat("HH:mm");
+ try {
+ return df.parse(time);
+ } catch(Exception e) {
+ LOG.error("Unexpected exception in MiBand2Coordinator.getTime: " + e.getMessage());
+ }
+
+ return new Date();
+ }
+
+ public static MiBandConst.DistanceUnit getDistanceUnit() {
+ Prefs prefs = GBApplication.getPrefs();
+ String unit = prefs.getString(SettingsActivity.PREF_MEASUREMENT_SYSTEM, GBApplication.getContext().getString(R.string.p_unit_metric));
+ if (unit.equals(GBApplication.getContext().getString(R.string.p_unit_metric))) {
+ return MiBandConst.DistanceUnit.METRIC;
+ } else {
+ return MiBandConst.DistanceUnit.IMPERIAL;
+ }
+ }
+
+ public static DoNotDisturb getDoNotDisturb(Context context) {
+ Prefs prefs = GBApplication.getPrefs();
+
+ String dndOff = context.getString(R.string.p_off);
+ String dndAutomatic = context.getString(R.string.p_automatic);
+ String dndScheduled = context.getString(R.string.p_scheduled);
+
+ String pref = prefs.getString(MiBandConst.PREF_MI2_DO_NOT_DISTURB, dndOff);
+
+ if (dndAutomatic.equals(pref)) {
+ return DoNotDisturb.AUTOMATIC;
+ } else if (dndScheduled.equals(pref)) {
+ return DoNotDisturb.SCHEDULED;
+ }
+
+ return DoNotDisturb.OFF;
+ }
+
+ @Override
+ public boolean supportsScreenshots() {
+ return false;
+ }
+
+ @Override
+ public boolean supportsSmartWakeup(GBDevice device) {
+ return false;
+ }
+}
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipCoordinator.java
index 7b526af51..812f34cdb 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipCoordinator.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipCoordinator.java
@@ -25,11 +25,12 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler;
-import nodomain.freeyourgadget.gadgetbridge.devices.huami.miband2.MiBand2Coordinator;
+import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiCoordinator;
+import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
-public class AmazfitBipCoordinator extends MiBand2Coordinator {
+public class AmazfitBipCoordinator extends HuamiCoordinator {
private static final Logger LOG = LoggerFactory.getLogger(AmazfitBipCoordinator.class);
@Override
@@ -57,4 +58,9 @@ public class AmazfitBipCoordinator extends MiBand2Coordinator {
AmazfitBipFWInstallHandler handler = new AmazfitBipFWInstallHandler(uri, context);
return handler.isValid() ? handler : null;
}
+
+ @Override
+ public boolean supportsHeartRateMeasurement(GBDevice device) {
+ return true;
+ }
}
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitcor/AmazfitCorCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitcor/AmazfitCorCoordinator.java
index e5dde8c94..a57085372 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitcor/AmazfitCorCoordinator.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitcor/AmazfitCorCoordinator.java
@@ -25,11 +25,12 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler;
-import nodomain.freeyourgadget.gadgetbridge.devices.huami.miband2.MiBand2Coordinator;
+import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiCoordinator;
+import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
-public class AmazfitCorCoordinator extends MiBand2Coordinator {
+public class AmazfitCorCoordinator extends HuamiCoordinator {
private static final Logger LOG = LoggerFactory.getLogger(AmazfitCorCoordinator.class);
@Override
@@ -56,4 +57,9 @@ public class AmazfitCorCoordinator extends MiBand2Coordinator {
public InstallHandler findInstallHandler(Uri uri, Context context) {
return null;
}
+
+ @Override
+ public boolean supportsHeartRateMeasurement(GBDevice device) {
+ return true;
+ }
}
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband2/MiBand2Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband2/MiBand2Coordinator.java
index b97089d91..857778221 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband2/MiBand2Coordinator.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband2/MiBand2Coordinator.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2017 Carsten Pfeiffer, José Rebelo
+/* Copyright (C) 2017 Andreas Shimokawa, João Paulo Barraca
This file is part of Gadgetbridge.
@@ -16,59 +16,28 @@
along with this program. If not, see . */
package nodomain.freeyourgadget.gadgetbridge.devices.huami.miband2;
-import android.annotation.TargetApi;
import android.bluetooth.BluetoothDevice;
-import android.bluetooth.le.ScanFilter;
import android.content.Context;
import android.net.Uri;
-import android.os.Build;
-import android.os.ParcelUuid;
import android.support.annotation.NonNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Date;
-import java.util.Set;
-
-import nodomain.freeyourgadget.gadgetbridge.GBApplication;
-import nodomain.freeyourgadget.gadgetbridge.R;
-import nodomain.freeyourgadget.gadgetbridge.activities.SettingsActivity;
import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler;
-import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
-import nodomain.freeyourgadget.gadgetbridge.devices.miband.DateTimeDisplay;
-import nodomain.freeyourgadget.gadgetbridge.devices.miband.DoNotDisturb;
-import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBand2SampleProvider;
+import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBand2Service;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst;
-import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandCoordinator;
-import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandService;
-import nodomain.freeyourgadget.gadgetbridge.entities.AbstractActivitySample;
-import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
-import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
-public class MiBand2Coordinator extends MiBandCoordinator {
+public class MiBand2Coordinator extends HuamiCoordinator {
private static final Logger LOG = LoggerFactory.getLogger(MiBand2Coordinator.class);
@Override
public DeviceType getDeviceType() {
- return DeviceType.MIBAND2;
- }
-
- @NonNull
- @Override
- @TargetApi(Build.VERSION_CODES.LOLLIPOP)
- public Collection extends ScanFilter> createBLEScanFilters() {
- ParcelUuid mi2Service = new ParcelUuid(MiBandService.UUID_SERVICE_MIBAND2_SERVICE);
- ScanFilter filter = new ScanFilter.Builder().setServiceUuid(mi2Service).build();
- return Collections.singletonList(filter);
+ return DeviceType.AMAZFITBIP;
}
@NonNull
@@ -82,10 +51,10 @@ public class MiBand2Coordinator extends MiBandCoordinator {
try {
BluetoothDevice device = candidate.getDevice();
// if (isHealthWearable(device)) {
- String name = device.getName();
- if (name != null && name.equalsIgnoreCase(MiBandConst.MI_BAND2_NAME)) {
- return DeviceType.MIBAND2;
- }
+ String name = device.getName();
+ if (name != null && name.equalsIgnoreCase(MiBandConst.MI_BAND2_NAME)) {
+ return DeviceType.MIBAND2;
+ }
// }
} catch (Exception ex) {
LOG.error("unable to check device support", ex);
@@ -94,136 +63,6 @@ public class MiBand2Coordinator extends MiBandCoordinator {
}
- @Override
- public boolean supportsHeartRateMeasurement(GBDevice device) {
- return true;
- }
-
- @Override
- public boolean supportsAlarmConfiguration() {
- return true;
- }
-
- @Override
- public boolean supportsActivityDataFetching() {
- return true;
- }
-
- @Override
- public SampleProvider extends AbstractActivitySample> getSampleProvider(GBDevice device, DaoSession session) {
- return new MiBand2SampleProvider(device, session);
- }
-
- public static DateTimeDisplay getDateDisplay(Context context) throws IllegalArgumentException {
- Prefs prefs = GBApplication.getPrefs();
- String dateFormatTime = context.getString(R.string.p_dateformat_time);
- if (dateFormatTime.equals(prefs.getString(MiBandConst.PREF_MI2_DATEFORMAT, dateFormatTime))) {
- return DateTimeDisplay.TIME;
- }
- return DateTimeDisplay.DATE_TIME;
- }
-
- public static boolean getActivateDisplayOnLiftWrist() {
- Prefs prefs = GBApplication.getPrefs();
- return prefs.getBoolean(MiBandConst.PREF_MI2_ACTIVATE_DISPLAY_ON_LIFT, true);
- }
-
- public static Set getDisplayItems() {
- Prefs prefs = GBApplication.getPrefs();
- return prefs.getStringSet(MiBandConst.PREF_MI2_DISPLAY_ITEMS, null);
- }
-
- public static boolean getGoalNotification() {
- Prefs prefs = GBApplication.getPrefs();
- return prefs.getBoolean(MiBandConst.PREF_MI2_GOAL_NOTIFICATION, false);
- }
-
- public static boolean getRotateWristToSwitchInfo() {
- Prefs prefs = GBApplication.getPrefs();
- return prefs.getBoolean(MiBandConst.PREF_MI2_ROTATE_WRIST_TO_SWITCH_INFO, false);
- }
-
- public static boolean getInactivityWarnings() {
- Prefs prefs = GBApplication.getPrefs();
- return prefs.getBoolean(MiBandConst.PREF_MI2_INACTIVITY_WARNINGS, false);
- }
-
- public static int getInactivityWarningsThreshold() {
- Prefs prefs = GBApplication.getPrefs();
- return prefs.getInt(MiBandConst.PREF_MI2_INACTIVITY_WARNINGS_THRESHOLD, 60);
- }
-
- public static boolean getInactivityWarningsDnd() {
- Prefs prefs = GBApplication.getPrefs();
- return prefs.getBoolean(MiBandConst.PREF_MI2_INACTIVITY_WARNINGS_DND, false);
- }
-
- public static Date getInactivityWarningsStart() {
- return getTimePreference(MiBandConst.PREF_MI2_INACTIVITY_WARNINGS_START, "06:00");
- }
-
- public static Date getInactivityWarningsEnd() {
- return getTimePreference(MiBandConst.PREF_MI2_INACTIVITY_WARNINGS_END, "22:00");
- }
-
- public static Date getInactivityWarningsDndStart() {
- return getTimePreference(MiBandConst.PREF_MI2_INACTIVITY_WARNINGS_DND_START, "12:00");
- }
-
- public static Date getInactivityWarningsDndEnd() {
- return getTimePreference(MiBandConst.PREF_MI2_INACTIVITY_WARNINGS_DND_END, "14:00");
- }
-
- public static Date getDoNotDisturbStart() {
- return getTimePreference(MiBandConst.PREF_MI2_DO_NOT_DISTURB_START, "01:00");
- }
-
- public static Date getDoNotDisturbEnd() {
- return getTimePreference(MiBandConst.PREF_MI2_DO_NOT_DISTURB_END, "06:00");
- }
-
- public static Date getTimePreference(String key, String defaultValue) {
- Prefs prefs = GBApplication.getPrefs();
- String time = prefs.getString(key, defaultValue);
-
- DateFormat df = new SimpleDateFormat("HH:mm");
- try {
- return df.parse(time);
- } catch(Exception e) {
- LOG.error("Unexpected exception in MiBand2Coordinator.getTime: " + e.getMessage());
- }
-
- return new Date();
- }
-
- public static MiBandConst.DistanceUnit getDistanceUnit() {
- Prefs prefs = GBApplication.getPrefs();
- String unit = prefs.getString(SettingsActivity.PREF_MEASUREMENT_SYSTEM, GBApplication.getContext().getString(R.string.p_unit_metric));
- if (unit.equals(GBApplication.getContext().getString(R.string.p_unit_metric))) {
- return MiBandConst.DistanceUnit.METRIC;
- } else {
- return MiBandConst.DistanceUnit.IMPERIAL;
- }
- }
-
- public static DoNotDisturb getDoNotDisturb(Context context) {
- Prefs prefs = GBApplication.getPrefs();
-
- String dndOff = context.getString(R.string.p_off);
- String dndAutomatic = context.getString(R.string.p_automatic);
- String dndScheduled = context.getString(R.string.p_scheduled);
-
- String pref = prefs.getString(MiBandConst.PREF_MI2_DO_NOT_DISTURB, dndOff);
-
- if (dndAutomatic.equals(pref)) {
- return DoNotDisturb.AUTOMATIC;
- } else if (dndScheduled.equals(pref)) {
- return DoNotDisturb.SCHEDULED;
- }
-
- return DoNotDisturb.OFF;
- }
-
@Override
public InstallHandler findInstallHandler(Uri uri, Context context) {
MiBand2FWInstallHandler handler = new MiBand2FWInstallHandler(uri, context);
@@ -231,7 +70,7 @@ public class MiBand2Coordinator extends MiBandCoordinator {
}
@Override
- public boolean supportsSmartWakeup(GBDevice device) {
- return false;
+ public boolean supportsHeartRateMeasurement(GBDevice device) {
+ return true;
}
}
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband2/MiBand2HRXCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband2/MiBand2HRXCoordinator.java
index cbabd094e..2f26c880c 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband2/MiBand2HRXCoordinator.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband2/MiBand2HRXCoordinator.java
@@ -25,11 +25,12 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler;
+import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiCoordinator;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
-public class MiBand2HRXCoordinator extends MiBand2Coordinator {
+public class MiBand2HRXCoordinator extends HuamiCoordinator {
private static final Logger LOG = LoggerFactory.getLogger(MiBand2HRXCoordinator.class);
@NonNull
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/MiBand2Support.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/MiBand2Support.java
index 0305cd96c..99bd8baca 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/MiBand2Support.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/MiBand2Support.java
@@ -57,7 +57,7 @@ import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventVersionInf
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.DateTimeDisplay;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.DoNotDisturb;
-import nodomain.freeyourgadget.gadgetbridge.devices.huami.miband2.MiBand2Coordinator;
+import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBand2SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBand2Service;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst;
@@ -1329,7 +1329,7 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport {
}
private MiBand2Support setDateDisplay(TransactionBuilder builder) {
- DateTimeDisplay dateTimeDisplay = MiBand2Coordinator.getDateDisplay(getContext());
+ DateTimeDisplay dateTimeDisplay = HuamiCoordinator.getDateDisplay(getContext());
LOG.info("Setting date display to " + dateTimeDisplay);
switch (dateTimeDisplay) {
case TIME:
@@ -1354,7 +1354,7 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport {
}
private MiBand2Support setGoalNotification(TransactionBuilder builder) {
- boolean enable = MiBand2Coordinator.getGoalNotification();
+ boolean enable = HuamiCoordinator.getGoalNotification();
LOG.info("Setting goal notification to " + enable);
if (enable) {
builder.write(getCharacteristic(MiBand2Service.UUID_CHARACTERISTIC_3_CONFIGURATION), MiBand2Service.COMMAND_ENABLE_GOAL_NOTIFICATION);
@@ -1365,7 +1365,7 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport {
}
private MiBand2Support setActivateDisplayOnLiftWrist(TransactionBuilder builder) {
- boolean enable = MiBand2Coordinator.getActivateDisplayOnLiftWrist();
+ boolean enable = HuamiCoordinator.getActivateDisplayOnLiftWrist();
LOG.info("Setting activate display on lift wrist to " + enable);
if (enable) {
builder.write(getCharacteristic(MiBand2Service.UUID_CHARACTERISTIC_3_CONFIGURATION), MiBand2Service.COMMAND_ENABLE_DISPLAY_ON_LIFT_WRIST);
@@ -1376,7 +1376,7 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport {
}
private MiBand2Support setDisplayItems(TransactionBuilder builder) {
- Set pages = MiBand2Coordinator.getDisplayItems();
+ Set pages = HuamiCoordinator.getDisplayItems();
LOG.info("Setting display items to " + (pages == null ? "none" : pages));
byte[] data = MiBand2Service.COMMAND_CHANGE_SCREENS.clone();
@@ -1404,7 +1404,7 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport {
}
private MiBand2Support setRotateWristToSwitchInfo(TransactionBuilder builder) {
- boolean enable = MiBand2Coordinator.getRotateWristToSwitchInfo();
+ boolean enable = HuamiCoordinator.getRotateWristToSwitchInfo();
LOG.info("Setting rotate wrist to cycle info to " + enable);
if (enable) {
builder.write(getCharacteristic(MiBand2Service.UUID_CHARACTERISTIC_3_CONFIGURATION), MiBand2Service.COMMAND_ENABLE_ROTATE_WRIST_TO_SWITCH_INFO);
@@ -1420,7 +1420,7 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport {
}
private MiBand2Support setDoNotDisturb(TransactionBuilder builder) {
- DoNotDisturb doNotDisturb = MiBand2Coordinator.getDoNotDisturb(getContext());
+ DoNotDisturb doNotDisturb = HuamiCoordinator.getDoNotDisturb(getContext());
LOG.info("Setting do not disturb to " + doNotDisturb);
switch (doNotDisturb) {
case OFF:
@@ -1434,12 +1434,12 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport {
Calendar calendar = GregorianCalendar.getInstance();
- Date start = MiBand2Coordinator.getDoNotDisturbStart();
+ Date start = HuamiCoordinator.getDoNotDisturbStart();
calendar.setTime(start);
data[MiBand2Service.DND_BYTE_START_HOURS] = (byte) calendar.get(Calendar.HOUR_OF_DAY);
data[MiBand2Service.DND_BYTE_START_MINUTES] = (byte) calendar.get(Calendar.MINUTE);
- Date end = MiBand2Coordinator.getDoNotDisturbEnd();
+ Date end = HuamiCoordinator.getDoNotDisturbEnd();
calendar.setTime(end);
data[MiBand2Service.DND_BYTE_END_HOURS] = (byte) calendar.get(Calendar.HOUR_OF_DAY);
data[MiBand2Service.DND_BYTE_END_MINUTES] = (byte) calendar.get(Calendar.MINUTE);
@@ -1453,23 +1453,23 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport {
}
private MiBand2Support setInactivityWarnings(TransactionBuilder builder) {
- boolean enable = MiBand2Coordinator.getInactivityWarnings();
+ boolean enable = HuamiCoordinator.getInactivityWarnings();
LOG.info("Setting inactivity warnings to " + enable);
if (enable) {
byte[] data = MiBand2Service.COMMAND_ENABLE_INACTIVITY_WARNINGS.clone();
- int threshold = MiBand2Coordinator.getInactivityWarningsThreshold();
+ int threshold = HuamiCoordinator.getInactivityWarningsThreshold();
data[MiBand2Service.INACTIVITY_WARNINGS_THRESHOLD] = (byte) threshold;
Calendar calendar = GregorianCalendar.getInstance();
- boolean enableDnd = MiBand2Coordinator.getInactivityWarningsDnd();
+ boolean enableDnd = HuamiCoordinator.getInactivityWarningsDnd();
- Date intervalStart = MiBand2Coordinator.getInactivityWarningsStart();
- Date intervalEnd = MiBand2Coordinator.getInactivityWarningsEnd();
- Date dndStart = MiBand2Coordinator.getInactivityWarningsDndStart();
- Date dndEnd = MiBand2Coordinator.getInactivityWarningsDndEnd();
+ Date intervalStart = HuamiCoordinator.getInactivityWarningsStart();
+ Date intervalEnd = HuamiCoordinator.getInactivityWarningsEnd();
+ Date dndStart = HuamiCoordinator.getInactivityWarningsDndStart();
+ Date dndEnd = HuamiCoordinator.getInactivityWarningsDndEnd();
// The first interval always starts when the warnings interval starts
calendar.setTime(intervalStart);
@@ -1507,7 +1507,7 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport {
}
private MiBand2Support setDistanceUnit(TransactionBuilder builder) {
- MiBandConst.DistanceUnit unit = MiBand2Coordinator.getDistanceUnit();
+ MiBandConst.DistanceUnit unit = HuamiCoordinator.getDistanceUnit();
LOG.info("Setting distance unit to " + unit);
if (unit == MiBandConst.DistanceUnit.METRIC) {
builder.write(getCharacteristic(MiBand2Service.UUID_CHARACTERISTIC_3_CONFIGURATION), MiBand2Service.COMMAND_DISTANCE_UNIT_METRIC);
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DeviceHelper.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DeviceHelper.java
index 09dd40e08..8c600325f 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DeviceHelper.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DeviceHelper.java
@@ -39,15 +39,15 @@ import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
import nodomain.freeyourgadget.gadgetbridge.database.DBHelper;
import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.UnknownDeviceCoordinator;
-import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitbip.AmazfitBipCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.hplus.EXRIZUK8Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.hplus.HPlusCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.hplus.MakibesF68Coordinator;
+import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitbip.AmazfitBipCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitcor.AmazfitCorCoordinator;
+import nodomain.freeyourgadget.gadgetbridge.devices.huami.miband2.MiBand2Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huami.miband2.MiBand2HRXCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.jyou.TeclastH30Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.liveview.LiveviewCoordinator;
-import nodomain.freeyourgadget.gadgetbridge.devices.huami.miband2.MiBand2Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.no1f1.No1F1Coordinator;