Permalink
Browse files

Mi Band 3: add untested and incomplete support

This also improves firmware/RES probing to distinguish Mi Band 2/3 firmware files and Mi Band 3/Bip RES files.

Notes:
- Firmware flashing should might but is untested
- This basicall runs off the Amazfit Bip code which will probably incorrect (Mi Band 3 is proabably something between the Bip and the Mi Band 2)
  • Loading branch information...
ashimokawa committed Jun 14, 2018
1 parent 3dd1929 commit 99dec159f7ef1e8344c1473c92f1a156da7be713
Showing with 364 additions and 67 deletions.
  1. +5 −0 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiConst.java
  2. +1 −1 ...c/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipFWHelper.java
  3. +2 −4 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband2/MiBand2Coordinator.java
  4. +1 −1 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband2/MiBand2FWHelper.java
  5. +1 −1 ...main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband2/MiBand2FWInstallHandler.java
  6. +2 −1 ...c/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband2/MiBand2HRXCoordinator.java
  7. +75 −0 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband3/MiBand3Coordinator.java
  8. +40 −0 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband3/MiBand3FWHelper.java
  9. +49 −0 .../main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband3/MiBand3WInstallHandler.java
  10. +0 −2 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandConst.java
  11. +1 −0 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java
  12. +6 −2 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceSupportFactory.java
  13. +3 −3 ...eyourgadget/gadgetbridge/service/devices/{miband2/BatteryInfo.java → huami/HuamiBatteryInfo.java}
  14. +1 −1 ...main/freeyourgadget/gadgetbridge/service/devices/{ → huami}/amazfitbip/ActivityDetailsParser.java
  15. +3 −3 ...ain/freeyourgadget/gadgetbridge/service/devices/{ → huami}/amazfitbip/AmazfitBipFirmwareInfo.java
  16. +5 −5 ...nodomain/freeyourgadget/gadgetbridge/service/devices/{ → huami}/amazfitbip/AmazfitBipSupport.java
  17. +3 −4 ...gadget/gadgetbridge/service/devices/{ → huami}/amazfitbip/AmazfitBipTextNotificationStrategy.java
  18. +1 −1 ...a/nodomain/freeyourgadget/gadgetbridge/service/devices/{ → huami}/amazfitbip/BipActivityType.java
  19. +3 −3 ...t/gadgetbridge/service/devices/{ → huami}/amazfitbip/operations/AmazfitBipFetchLogsOperation.java
  20. +1 −1 ...java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitcor/AmazfitCorSupport.java
  21. +1 −1 ...main/freeyourgadget/gadgetbridge/service/devices/{ → huami}/miband2/AbstractMiBand2Operation.java
  22. +6 −2 ...java/nodomain/freeyourgadget/gadgetbridge/service/devices/{ → huami}/miband2/Mi2FirmwareInfo.java
  23. +1 −1 ...omain/freeyourgadget/gadgetbridge/service/devices/{ → huami}/miband2/Mi2NotificationStrategy.java
  24. +1 −1 ...n/freeyourgadget/gadgetbridge/service/devices/{ → huami}/miband2/Mi2TextNotificationStrategy.java
  25. +8 −7 .../java/nodomain/freeyourgadget/gadgetbridge/service/devices/{ → huami}/miband2/MiBand2Support.java
  26. +1 −1 ...reeyourgadget/gadgetbridge/service/devices/{ → huami}/miband2/actions/StopNotificationAction.java
  27. +3 −3 ...yourgadget/gadgetbridge/service/devices/{ → huami}/miband2/operations/AbstractFetchOperation.java
  28. +2 −2 ...yourgadget/gadgetbridge/service/devices/{ → huami}/miband2/operations/FetchActivityOperation.java
  29. +3 −3 ...adget/gadgetbridge/service/devices/{ → huami}/miband2/operations/FetchSportsDetailsOperation.java
  30. +3 −3 ...adget/gadgetbridge/service/devices/{ → huami}/miband2/operations/FetchSportsSummaryOperation.java
  31. +2 −2 ...main/freeyourgadget/gadgetbridge/service/devices/{ → huami}/miband2/operations/InitOperation.java
  32. +3 −5 ...ourgadget/gadgetbridge/service/devices/{ → huami}/miband2/operations/UpdateFirmwareOperation.java
  33. +85 −0 .../java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/miband3/MiBand3FirmwareInfo.java
  34. +34 −0 .../main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/miband3/MiBand3Support.java
  35. +2 −0 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DeviceHelper.java
  36. +2 −0 app/src/main/res/drawable/level_list_device.xml
  37. +3 −1 app/src/main/res/values/strings.xml
  38. +1 −2 app/src/test/java/nodomain/freeyourgadget/gadgetbridge/test/ActivityDetailsParserTest.java
@@ -27,6 +27,11 @@
public static final int TYPE_DEEP_SLEEP = 11;
public static final int TYPE_WAKE_UP = 12;
public static final String MI_BAND2_NAME = "MI Band 2";
public static final String MI_BAND2_NAME_HRX = "Mi Band HRX";
public static final String MI_BAND3_NAME = "Mi Band 3";
public static int toActivityKind(int rawType) {
switch (rawType) {
case TYPE_DEEP_SLEEP:
@@ -23,7 +23,7 @@
import java.io.IOException;
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiFWHelper;
import nodomain.freeyourgadget.gadgetbridge.service.devices.amazfitbip.AmazfitBipFirmwareInfo;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip.AmazfitBipFirmwareInfo;
public class AmazfitBipFWHelper extends HuamiFWHelper {
@@ -25,9 +25,9 @@
import org.slf4j.LoggerFactory;
import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler;
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
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.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
@@ -50,12 +50,10 @@ public DeviceType getSupportedType(GBDeviceCandidate candidate) {
// and a heuristic for now
try {
BluetoothDevice device = candidate.getDevice();
// if (isHealthWearable(device)) {
String name = device.getName();
if (name != null && name.equalsIgnoreCase(MiBandConst.MI_BAND2_NAME)) {
if (name != null && name.equalsIgnoreCase(HuamiConst.MI_BAND2_NAME)) {
return DeviceType.MIBAND2;
}
// }
} catch (Exception ex) {
LOG.error("unable to check device support", ex);
}
@@ -23,7 +23,7 @@
import java.io.IOException;
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiFWHelper;
import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.Mi2FirmwareInfo;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.miband2.Mi2FirmwareInfo;
public class MiBand2FWHelper extends HuamiFWHelper {
@@ -37,7 +37,7 @@
public class MiBand2FWInstallHandler extends AbstractMiBandFWInstallHandler {
private static final Logger LOG = LoggerFactory.getLogger(MiBand2FWInstallHandler.class);
public MiBand2FWInstallHandler(Uri uri, Context context) {
MiBand2FWInstallHandler(Uri uri, Context context) {
super(uri, context);
}
@@ -25,6 +25,7 @@
import org.slf4j.LoggerFactory;
import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler;
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiCoordinator;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate;
@@ -44,7 +45,7 @@ public DeviceType getSupportedType(GBDeviceCandidate candidate) {
try {
BluetoothDevice device = candidate.getDevice();
String name = device.getName();
if (name != null && (name.equalsIgnoreCase("Mi Band HRX") || name.equalsIgnoreCase("Mi Band 2i"))) {
if (name != null && (name.equalsIgnoreCase(HuamiConst.MI_BAND2_NAME_HRX) || name.equalsIgnoreCase("Mi Band 2i"))) {
return DeviceType.MIBAND2;
}
} catch (Exception ex) {
@@ -0,0 +1,75 @@
/* Copyright (C) 2016-2018 Andreas Shimokawa, 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 <http://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.devices.huami.miband3;
import android.bluetooth.BluetoothDevice;
import android.content.Context;
import android.net.Uri;
import android.support.annotation.NonNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler;
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
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.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
public class MiBand3Coordinator extends HuamiCoordinator {
private static final Logger LOG = LoggerFactory.getLogger(MiBand3Coordinator.class);
@Override
public DeviceType getDeviceType() {
return DeviceType.MIBAND3;
}
@NonNull
@Override
public DeviceType getSupportedType(GBDeviceCandidate candidate) {
try {
BluetoothDevice device = candidate.getDevice();
String name = device.getName();
if (name != null && name.equalsIgnoreCase(HuamiConst.MI_BAND3_NAME)) {
return DeviceType.MIBAND3;
}
} catch (Exception ex) {
LOG.error("unable to check device support", ex);
}
return DeviceType.UNKNOWN;
}
@Override
public InstallHandler findInstallHandler(Uri uri, Context context) {
MiBand3FWInstallHandler handler = new MiBand3FWInstallHandler(uri, context);
return handler.isValid() ? handler : null;
}
@Override
public boolean supportsHeartRateMeasurement(GBDevice device) {
return true;
}
@Override
public boolean supportsWeather() {
return true;
}
}
@@ -0,0 +1,40 @@
/* Copyright (C) 2017-2018 Andreas Shimokawa, Carsten Pfeiffer
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 <http://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.devices.huami.miband3;
import android.content.Context;
import android.net.Uri;
import java.io.IOException;
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiFWHelper;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.miband3.MiBand3FirmwareInfo;
public class MiBand3FWHelper extends HuamiFWHelper {
public MiBand3FWHelper(Uri uri, Context context) throws IOException {
super(uri, context);
}
@Override
protected void determineFirmwareInfo(byte[] wholeFirmwareBytes) {
firmwareInfo = new MiBand3FirmwareInfo(wholeFirmwareBytes);
if (!firmwareInfo.isHeaderValid()) {
throw new IllegalArgumentException("Not a Mi Band 3 firmware");
}
}
}
@@ -0,0 +1,49 @@
/* Copyright (C) 2015-2018 Andreas Shimokawa, Carsten Pfeiffer
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 <http://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.devices.huami.miband3;
import android.content.Context;
import android.net.Uri;
import java.io.IOException;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.AbstractMiBandFWHelper;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.AbstractMiBandFWInstallHandler;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
class MiBand3FWInstallHandler extends AbstractMiBandFWInstallHandler {
MiBand3FWInstallHandler(Uri uri, Context context) {
super(uri, context);
}
@Override
protected String getFwUpgradeNotice() {
return mContext.getString(R.string.fw_upgrade_notice_miband3, helper.getHumanFirmwareVersion());
}
@Override
protected AbstractMiBandFWHelper createHelper(Uri uri, Context context) throws IOException {
return new MiBand3FWHelper(uri, context);
}
@Override
protected boolean isSupportedDeviceType(GBDevice device) {
return device.getType() == DeviceType.MIBAND3;
}
}
@@ -73,8 +73,6 @@
public static final String ORIGIN_INCOMING_CALL = "incoming_call";
public static final String ORIGIN_ALARM_CLOCK = "alarm_clock";
public static final String MI_GENERAL_NAME_PREFIX = "MI";
public static final String MI_BAND2_NAME = "MI Band 2";
public static final String MI_BAND2_NAME_HRX = "Mi Band HRX";
public static final String MI_1 = "1";
public static final String MI_1A = "1A";
public static final String MI_1S = "1S";
@@ -35,6 +35,7 @@
MIBAND2(11, R.drawable.ic_device_miband, R.drawable.ic_device_miband_disabled, R.string.devicetype_miband2),
AMAZFITBIP(12, R.drawable.ic_device_hplus, R.drawable.ic_device_hplus_disabled, R.string.devicetype_amazfit_bip),
AMAZFITCOR(13, R.drawable.ic_device_default, R.drawable.ic_device_default_disabled, R.string.devicetype_amazfit_cor),
MIBAND3(14, R.drawable.ic_device_miband, R.drawable.ic_device_miband_disabled, R.string.devicetype_miband3),
VIBRATISSIMO(20, R.drawable.ic_device_lovetoy, R.drawable.ic_device_lovetoy_disabled, R.string.devicetype_vibratissimo),
LIVEVIEW(30, R.drawable.ic_device_default, R.drawable.ic_device_default_disabled, R.string.devicetype_liveview),
HPLUS(40, R.drawable.ic_device_hplus, R.drawable.ic_device_hplus_disabled, R.string.devicetype_hplus),
@@ -30,9 +30,10 @@
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitcor.AmazfitCorSupport;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.miband3.MiBand3Support;
import nodomain.freeyourgadget.gadgetbridge.service.devices.liveview.LiveviewSupport;
import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.MiBand2Support;
import nodomain.freeyourgadget.gadgetbridge.service.devices.amazfitbip.AmazfitBipSupport;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.miband2.MiBand2Support;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip.AmazfitBipSupport;
import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.MiBandSupport;
import nodomain.freeyourgadget.gadgetbridge.service.devices.no1f1.No1F1Support;
import nodomain.freeyourgadget.gadgetbridge.service.devices.pebble.PebbleSupport;
@@ -115,6 +116,9 @@ private DeviceSupport createBTDeviceSupport(GBDevice gbDevice) throws GBExceptio
case MIBAND2:
deviceSupport = new ServiceDeviceSupport(new MiBand2Support(), EnumSet.of(ServiceDeviceSupport.Flags.THROTTLING, ServiceDeviceSupport.Flags.BUSY_CHECKING));
break;
case MIBAND3:
deviceSupport = new ServiceDeviceSupport(new MiBand3Support(), EnumSet.of(ServiceDeviceSupport.Flags.BUSY_CHECKING));
break;
case AMAZFITBIP:
deviceSupport = new ServiceDeviceSupport(new AmazfitBipSupport(), EnumSet.of(ServiceDeviceSupport.Flags.BUSY_CHECKING));
break;
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.service.devices.miband2;
package nodomain.freeyourgadget.gadgetbridge.service.devices.huami;
import java.util.GregorianCalendar;
@@ -45,14 +45,14 @@
// 04 = 4 // num charges??
// 64 = 100 // how much was charged
public class BatteryInfo extends AbstractInfo {
public class HuamiBatteryInfo extends AbstractInfo {
public static final byte DEVICE_BATTERY_NORMAL = 0;
public static final byte DEVICE_BATTERY_CHARGING = 1;
// public static final byte DEVICE_BATTERY_LOW = 1;
// public static final byte DEVICE_BATTERY_CHARGING_FULL = 3;
// public static final byte DEVICE_BATTERY_CHARGE_OFF = 4;
public BatteryInfo(byte[] data) {
public HuamiBatteryInfo(byte[] data) {
super(data);
}
@@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.service.devices.amazfitbip;
package nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.service.devices.amazfitbip;
package nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip;
import java.util.HashMap;
import java.util.Map;
@@ -131,7 +131,7 @@ public AmazfitBipFirmwareInfo(byte[] bytes) {
@Override
protected HuamiFirmwareType determineFirmwareType(byte[] bytes) {
if (ArrayUtils.startsWith(bytes, RES_HEADER) || ArrayUtils.startsWith(bytes, NEWRES_HEADER)) {
if (bytes.length > 700000) { // dont know how to distinguish from Cor .res
if ((bytes.length <= 100000) || (bytes.length > 700000)) { // dont know how to distinguish from Cor/Mi Band 3 .res
return HuamiFirmwareType.INVALID;
}
return HuamiFirmwareType.RES;
@@ -149,7 +149,7 @@ protected HuamiFirmwareType determineFirmwareType(byte[] bytes) {
String foundVersion = searchFirmwareVersion(bytes);
if (foundVersion != null) {
Version version = new Version(foundVersion);
if ((version.compareTo(new Version("0.0.8.00")) >= 0) && (version.compareTo(new Version("1.0.5.00")) < 0)) {
if ((version.compareTo(new Version("0.0.8.00")) >= 0) && (version.compareTo(new Version("1.0.0.00")) < 0)) {
return HuamiFirmwareType.FIRMWARE;
}
}
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.service.devices.amazfitbip;
package nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip;
import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCharacteristic;
@@ -50,12 +50,12 @@
import nodomain.freeyourgadget.gadgetbridge.service.btle.profiles.alertnotification.AlertCategory;
import nodomain.freeyourgadget.gadgetbridge.service.btle.profiles.alertnotification.AlertNotificationProfile;
import nodomain.freeyourgadget.gadgetbridge.service.btle.profiles.alertnotification.NewAlert;
import nodomain.freeyourgadget.gadgetbridge.service.devices.amazfitbip.operations.AmazfitBipFetchLogsOperation;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip.operations.AmazfitBipFetchLogsOperation;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.HuamiIcon;
import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.NotificationStrategy;
import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.MiBand2Support;
import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.operations.FetchActivityOperation;
import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.operations.FetchSportsSummaryOperation;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.miband2.MiBand2Support;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.miband2.operations.FetchActivityOperation;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.miband2.operations.FetchSportsSummaryOperation;
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
import nodomain.freeyourgadget.gadgetbridge.util.StringUtils;
import nodomain.freeyourgadget.gadgetbridge.util.Version;
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.service.devices.amazfitbip;
package nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip;
import android.support.annotation.NonNull;
@@ -26,9 +26,8 @@
import nodomain.freeyourgadget.gadgetbridge.service.btle.profiles.alertnotification.NewAlert;
import nodomain.freeyourgadget.gadgetbridge.service.btle.profiles.alertnotification.OverflowStrategy;
import nodomain.freeyourgadget.gadgetbridge.service.devices.common.SimpleNotification;
import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.Mi2TextNotificationStrategy;
import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.MiBand2Support;
import nodomain.freeyourgadget.gadgetbridge.util.StringUtils;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.miband2.Mi2TextNotificationStrategy;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.miband2.MiBand2Support;
// This class in no longer in use except for incoming calls
@@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.service.devices.amazfitbip;
package nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip;
import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind;
Oops, something went wrong.

0 comments on commit 99dec15

Please sign in to comment.