mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
Amazfit Active 2 NFC Square: Fix recognition
This commit is contained in:
@@ -53,35 +53,9 @@ public class HuamiConst {
|
||||
public static final String MI_BAND4_NAME = "Mi Smart Band 4";
|
||||
public static final String MI_BAND5_NAME = "Mi Smart Band 5";
|
||||
public static final String MI_BAND6_NAME = "Mi Smart Band 6";
|
||||
public static final String AMAZFIT_ACTIVE_NAME = "Amazfit Active";
|
||||
public static final String AMAZFIT_ACTIVE_2_NAME = "Active 2 (Round)";
|
||||
public static final String AMAZFIT_ACTIVE_2_NFC_NAME = "Active 2 NFC (Round)";
|
||||
public static final String AMAZFIT_ACTIVE_EDGE_NAME = "Amazfit Active Edge";
|
||||
public static final String AMAZFIT_BALANCE_NAME = "Amazfit Balance";
|
||||
public static final String AMAZFIT_BALANCE_2_NAME = "Amazfit Balance 2";
|
||||
public static final String AMAZFIT_BAND5_NAME = "Amazfit Band 5";
|
||||
public static final String AMAZFIT_BAND7_NAME = "Amazfit Band 7";
|
||||
public static final String AMAZFIT_NEO_NAME = "Amazfit Neo";
|
||||
public static final String AMAZFIT_X = "Amazfit X";
|
||||
public static final String AMAZFIT_BIP5_NAME = "Amazfit Bip 5";
|
||||
public static final String AMAZFIT_BIP5_UNITY_NAME = "Amazfit Bip 5 Unity";
|
||||
public static final String AMAZFIT_BIP6_NAME = "Amazfit Bip 6";
|
||||
public static final String AMAZFIT_GTS3_NAME = "Amazfit GTS 3";
|
||||
public static final String AMAZFIT_GTS4_NAME = "Amazfit GTS 4";
|
||||
public static final String AMAZFIT_GTS4_MINI_NAME = "Amazfit GTS 4 Mini";
|
||||
public static final String AMAZFIT_GTR3_NAME = "Amazfit GTR 3";
|
||||
public static final String AMAZFIT_GTR3_PRO_NAME = "Amazfit GTR 3 Pro";
|
||||
public static final String AMAZFIT_GTR4_NAME = "Amazfit GTR 4";
|
||||
public static final String AMAZFIT_GTR_MINI_NAME = "Amazfit GTR Mini";
|
||||
public static final String AMAZFIT_TREX_2_NAME = "Amazfit T-Rex 2";
|
||||
public static final String AMAZFIT_TREX_3_NAME = "Amazfit T-Rex 3";
|
||||
public static final String AMAZFIT_TREX_ULTRA = "Amazfit T-Rex Ultra";
|
||||
public static final String AMAZFIT_CHEETAH_PRO_NAME = "Amazfit Cheetah Pro";
|
||||
public static final String AMAZFIT_CHEETAH_SQUARE_NAME = "Amazfit Cheetah S";
|
||||
public static final String AMAZFIT_CHEETAH_ROUND_NAME = "Amazfit Cheetah R";
|
||||
public static final String AMAZFIT_FALCON_NAME = "Amazfit Falcon";
|
||||
|
||||
public static final String XIAOMI_SMART_BAND7_NAME = "Xiaomi Smart Band 7";
|
||||
public static final String XIAOMI_SMART_BAND7_PRO_NAME = "Xiaomi Smart Band 7 Pro";
|
||||
|
||||
public static final String PREF_DISPLAY_ITEMS = "display_items";
|
||||
|
||||
+13
-3
@@ -77,7 +77,7 @@ import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.zeppos.service
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.FileUtils;
|
||||
|
||||
public abstract class ZeppOsCoordinator extends HuamiCoordinator {
|
||||
public abstract String getDeviceBluetoothName();
|
||||
public abstract List<String> getDeviceBluetoothNames();
|
||||
|
||||
public abstract Set<Integer> getDeviceSources();
|
||||
|
||||
@@ -100,7 +100,17 @@ public abstract class ZeppOsCoordinator extends HuamiCoordinator {
|
||||
// only be used for calls, and Gadgetbridge can't use for pairing.
|
||||
// **Additionally**, it was also reported on some issues such as #4827 that some devices
|
||||
// only broadcast the one with the mac address, which Gadgetbridge can use for pairing...
|
||||
return Pattern.compile("^" + Pattern.quote(getDeviceBluetoothName()) + "([- ]+[A-Z0-9]{4})?$");
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
sb.append("^(");
|
||||
final List<String> deviceBluetoothNames = getDeviceBluetoothNames();
|
||||
for (String name : deviceBluetoothNames) {
|
||||
sb.append(Pattern.quote(name)).append("|");
|
||||
}
|
||||
sb.setLength(sb.length() - 1); // remove last |
|
||||
sb.append(")");
|
||||
sb.append("([- ]+[A-Z0-9]{4})?$");
|
||||
|
||||
return Pattern.compile(sb.toString());
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@@ -149,7 +159,7 @@ public abstract class ZeppOsCoordinator extends HuamiCoordinator {
|
||||
final ZeppOsFwInstallHandler fwInstallHandler = new ZeppOsFwInstallHandler(
|
||||
uri,
|
||||
context,
|
||||
getDeviceBluetoothName(),
|
||||
getDeviceBluetoothNames(),
|
||||
getDeviceSources()
|
||||
);
|
||||
return fwInstallHandler.isValid() ? fwInstallHandler : null;
|
||||
|
||||
+11
-7
@@ -38,6 +38,7 @@ import java.io.InputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.zip.CRC32;
|
||||
@@ -60,7 +61,7 @@ public class ZeppOsFwHelper {
|
||||
|
||||
private final Uri uri;
|
||||
private final Context context;
|
||||
private final String deviceName;
|
||||
private final List<String> deviceNames;
|
||||
private final Set<Integer> deviceSources;
|
||||
|
||||
private HuamiFirmwareType firmwareType = HuamiFirmwareType.INVALID;
|
||||
@@ -69,10 +70,10 @@ public class ZeppOsFwHelper {
|
||||
private String version = "Unknown";
|
||||
private GBDeviceApp gbDeviceApp = null;
|
||||
|
||||
public ZeppOsFwHelper(final Uri uri, final Context context, final String deviceName, final Set<Integer> deviceSources) {
|
||||
public ZeppOsFwHelper(final Uri uri, final Context context, final List<String> deviceNames, final Set<Integer> deviceSources) {
|
||||
this.uri = uri;
|
||||
this.context = context;
|
||||
this.deviceName = deviceName;
|
||||
this.deviceNames = deviceNames;
|
||||
this.deviceSources = deviceSources;
|
||||
|
||||
processUri();
|
||||
@@ -445,12 +446,15 @@ public class ZeppOsFwHelper {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!searchString(firmwareBin, deviceName)) {
|
||||
LOG.warn("Failed to find {} in fwBytes", deviceName);
|
||||
return false;
|
||||
for (String deviceName : deviceNames) {
|
||||
if (searchString(firmwareBin, deviceName)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
LOG.warn("Failed to find any known device names {} in fwBytes", deviceNames);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static String getFirmwareVersion(final byte[] firmwareBin) {
|
||||
|
||||
+3
-2
@@ -17,6 +17,7 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.straps;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
@@ -30,8 +31,8 @@ public class AmazfitHelioStrapCoordinator extends ZeppOsCoordinator {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return "Amazfit Helio Strap"; // no mac address at the end
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit Helio Strap"); // no mac address at the end
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+6
-3
@@ -16,8 +16,10 @@
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
|
||||
/**
|
||||
* This seems to be the same as the Active 2, but with NFC. The bluetooth name is different, but the
|
||||
@@ -25,8 +27,9 @@ import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
*/
|
||||
public class AmazfitActive2NfcCoordinator extends AmazfitActive2RoundCoordinator {
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_ACTIVE_2_NFC_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
// FIXME migrate device type to normal active 2
|
||||
return Collections.singletonList("Active 2 NFC (Round)");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+5
-3
@@ -18,17 +18,19 @@ package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
public class AmazfitActive2RoundCoordinator extends ZeppOsCoordinator {
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_ACTIVE_2_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Arrays.asList(
|
||||
"Active 2 (Round)"
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+9
-2
@@ -17,7 +17,9 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
@@ -32,8 +34,13 @@ public class AmazfitActive2SquareCoordinator extends ZeppOsCoordinator {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return "Active 2 (Square)";
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Arrays.asList(
|
||||
"Active 2 (Square)", // never seen, assumption following the Round one
|
||||
"Active 2 NFC (Square)", // never seen, assumption following the Round one
|
||||
"Active 2 Square", // never seen
|
||||
"Active 2 NFC Square" // #5056
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,18 +17,19 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
public class AmazfitActiveCoordinator extends ZeppOsCoordinator {
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_ACTIVE_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit Active");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,11 +17,12 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
@@ -32,8 +33,8 @@ public class AmazfitActiveEdgeCoordinator extends ZeppOsCoordinator {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_ACTIVE_EDGE_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit Active Edge");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,11 +17,12 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
@@ -32,8 +33,8 @@ public class AmazfitBalance2Coordinator extends ZeppOsCoordinator {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_BALANCE_2_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit Balance 2");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,18 +17,19 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
public class AmazfitBalanceCoordinator extends ZeppOsCoordinator {
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_BALANCE_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit Balance");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,18 +17,19 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
public class AmazfitBand7Coordinator extends ZeppOsCoordinator {
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_BAND7_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit Band 7");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,18 +17,19 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
public class AmazfitBip5Coordinator extends ZeppOsCoordinator {
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_BIP5_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit Bip 5");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,18 +17,19 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
public class AmazfitBip5UnityCoordinator extends ZeppOsCoordinator {
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_BIP5_UNITY_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit Bip 5 Unity");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,18 +17,19 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
public class AmazfitBip6Coordinator extends ZeppOsCoordinator {
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_BIP6_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit Bip 6");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,18 +17,19 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
public class AmazfitCheetahProCoordinator extends ZeppOsCoordinator {
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_CHEETAH_PRO_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit Cheetah Pro");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,18 +17,19 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
public class AmazfitCheetahRoundCoordinator extends ZeppOsCoordinator {
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_CHEETAH_ROUND_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit Cheetah R");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+3
-3
@@ -18,17 +18,17 @@ package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
public class AmazfitCheetahSquareCoordinator extends ZeppOsCoordinator {
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_CHEETAH_SQUARE_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit Cheetah S");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,11 +17,12 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
@@ -32,8 +33,8 @@ public class AmazfitFalconCoordinator extends ZeppOsCoordinator {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_FALCON_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit Falcon");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,18 +17,19 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
public class AmazfitGTR3Coordinator extends ZeppOsCoordinator {
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_GTR3_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit GTR 3");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,18 +17,19 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
public class AmazfitGTR3ProCoordinator extends ZeppOsCoordinator {
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_GTR3_PRO_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit GTR 3 Pro");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,20 +17,21 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
public class AmazfitGTR4Coordinator extends ZeppOsCoordinator {
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_GTR4_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit GTR 4");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,18 +17,19 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
public class AmazfitGTRMiniCoordinator extends ZeppOsCoordinator {
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_GTR_MINI_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit GTR Mini");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,18 +17,19 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
public class AmazfitGTS3Coordinator extends ZeppOsCoordinator {
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_GTS3_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit GTS 3");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,18 +17,19 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
public class AmazfitGTS4Coordinator extends ZeppOsCoordinator {
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_GTS4_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit GTS 4");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,18 +17,19 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
public class AmazfitGTS4MiniCoordinator extends ZeppOsCoordinator {
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_GTS4_MINI_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit GTS 4 Mini");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,18 +17,19 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
public class AmazfitTRex2Coordinator extends ZeppOsCoordinator {
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_TREX_2_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit T-Rex 2");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,11 +17,12 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
@@ -33,8 +34,8 @@ public class AmazfitTRex3Coordinator extends ZeppOsCoordinator {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_TREX_3_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit T-Rex 3");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,18 +17,19 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
public class AmazfitTRexUltraCoordinator extends ZeppOsCoordinator {
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.AMAZFIT_TREX_ULTRA;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Amazfit T-Rex Ultra");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -17,13 +17,14 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.ZeppOsCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
|
||||
@@ -35,8 +36,8 @@ public class MiBand7Coordinator extends ZeppOsCoordinator {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDeviceBluetoothName() {
|
||||
return HuamiConst.XIAOMI_SMART_BAND7_NAME;
|
||||
public List<String> getDeviceBluetoothNames() {
|
||||
return Collections.singletonList("Xiaomi Smart Band 7");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+3
-2
@@ -32,6 +32,7 @@ import java.io.FileOutputStream;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.Writer;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
@@ -52,10 +53,10 @@ public class ZeppOsFwInstallHandler implements InstallHandler {
|
||||
|
||||
private final ZeppOsFwHelper mHelper;
|
||||
|
||||
public ZeppOsFwInstallHandler(final Uri uri, final Context context, final String deviceName, final Set<Integer> deviceSources) {
|
||||
public ZeppOsFwInstallHandler(final Uri uri, final Context context, final List<String> deviceNames, final Set<Integer> deviceSources) {
|
||||
mUri = uri;
|
||||
mContext = context;
|
||||
mHelper = new ZeppOsFwHelper(uri, context, deviceName, deviceSources);
|
||||
mHelper = new ZeppOsFwHelper(uri, context, deviceNames, deviceSources);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-2
@@ -94,7 +94,7 @@ public class ZeppOsFirmwareUpdateOperation extends AbstractZeppOsOperation<ZeppO
|
||||
fwHelper = new ZeppOsFwHelper(
|
||||
uri,
|
||||
getContext(),
|
||||
((ZeppOsCoordinator) coordinator).getDeviceBluetoothName(),
|
||||
((ZeppOsCoordinator) coordinator).getDeviceBluetoothNames(),
|
||||
((ZeppOsCoordinator) coordinator).getDeviceSources()
|
||||
);
|
||||
|
||||
@@ -150,7 +150,7 @@ public class ZeppOsFirmwareUpdateOperation extends AbstractZeppOsOperation<ZeppO
|
||||
// break;
|
||||
case UpdateFirmwareOperation2020.REPLY_UPDATE_PROGRESS:
|
||||
int offset = (value[2] & 0xff) | ((value[3] & 0xff) << 8) | ((value[4] & 0xff) << 16) | ((value[5] & 0xff) << 24);
|
||||
LOG.info("update progress " + offset + " bytes");
|
||||
LOG.info("update progress {} bytes", offset);
|
||||
sendFirmwareDataChunk(offset);
|
||||
break;
|
||||
case UpdateFirmwareOperation2020.COMMAND_COMPLETE_TRANSFER:
|
||||
|
||||
Reference in New Issue
Block a user