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 getPairingActivity() { + return MiBandPairingActivity.class; + } + + @NonNull + @Override + @TargetApi(Build.VERSION_CODES.LOLLIPOP) + public Collection 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 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 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 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 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;