From 09fbc2665bf603e9f639fa5cb224ffd4ae8dc439 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Sun, 24 Dec 2023 16:38:11 +0000 Subject: [PATCH] Redmi Watch 2 Lite: Experimental support --- .../redmiwatch2lite/RedmiWatch2Lite.java | 63 +++++++++++++++++++ .../gadgetbridge/model/DeviceType.java | 2 + .../devices/xiaomi/XiaomiBleUuids.java | 1 + app/src/main/res/values/strings.xml | 1 + 4 files changed, 67 insertions(+) create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xiaomi/redmiwatch2lite/RedmiWatch2Lite.java diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xiaomi/redmiwatch2lite/RedmiWatch2Lite.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xiaomi/redmiwatch2lite/RedmiWatch2Lite.java new file mode 100644 index 000000000..a1a4ee3a9 --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xiaomi/redmiwatch2lite/RedmiWatch2Lite.java @@ -0,0 +1,63 @@ +/* Copyright (C) 2023 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.xiaomi.redmiwatch2lite; + +import android.content.Context; +import android.net.Uri; + +import androidx.annotation.Nullable; + +import java.util.regex.Pattern; + +import nodomain.freeyourgadget.gadgetbridge.R; +import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler; +import nodomain.freeyourgadget.gadgetbridge.devices.xiaomi.XiaomiCoordinator; +import nodomain.freeyourgadget.gadgetbridge.devices.xiaomi.XiaomiInstallHandler; + +public class RedmiWatch2Lite extends XiaomiCoordinator { + @Override + public boolean isExperimental() { + return true; + } + + @Override + protected Pattern getSupportedDeviceName() { + return Pattern.compile("^Redmi Watch 2 Lite [A-Z0-9]{4}$"); + } + + @Nullable + @Override + public InstallHandler findInstallHandler(final Uri uri, final Context context) { + final XiaomiInstallHandler handler = new XiaomiInstallHandler(uri, context); + return handler.isValid() ? handler : null; + } + + @Override + public int getDeviceNameResource() { + return R.string.devicetype_redmi_watch_2_lite; + } + + @Override + public int getDefaultIconResource() { + return R.drawable.ic_device_amazfit_bip; + } + + @Override + public int getDisabledIconResource() { + return R.drawable.ic_device_amazfit_bip_disabled; + } +} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java index d482e1a99..2daf3be23 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java @@ -148,6 +148,7 @@ import nodomain.freeyourgadget.gadgetbridge.devices.xiaomi.miband7pro.MiBand7Pro import nodomain.freeyourgadget.gadgetbridge.devices.xiaomi.miband8.MiBand8Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.xiaomi.miwatchcolorsport.MiWatchColorSportCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.xiaomi.redmismartband2.RedmiSmartBand2Coordinator; +import nodomain.freeyourgadget.gadgetbridge.devices.xiaomi.redmiwatch2lite.RedmiWatch2Lite; import nodomain.freeyourgadget.gadgetbridge.devices.xiaomi.watchs1active.XiaomiWatchS1ActiveCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.xwatch.XWatchCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.zetime.ZeTimeCoordinator; @@ -209,6 +210,7 @@ public enum DeviceType { MIWATCHCOLORSPORT(MiWatchColorSportCoordinator.class), REDMIWATCH3ACTIVE(RedmiWatch3ActiveCoordinator.class), REDMISMARTBAND2(RedmiSmartBand2Coordinator.class), + REDMIWATCH2LITE(RedmiWatch2Lite.class), XIAOMI_WATCH_S1_ACTIVE(XiaomiWatchS1ActiveCoordinator.class), AMAZFITGTS3(AmazfitGTS3Coordinator.class), AMAZFITGTR3(AmazfitGTR3Coordinator.class), diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiBleUuids.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiBleUuids.java index 5e9b4b93b..feef9bddc 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiBleUuids.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiBleUuids.java @@ -27,6 +27,7 @@ public class XiaomiBleUuids { // Redmi Watch 3 Active // Xiaomi Watch S1 Active // Redmi Smart Band 2 + // Redmi Watch 2 Lite put(UUID.fromString("0000fe95-0000-1000-8000-00805f9b34fb"), new XiaomiBleUuidSet( true, UUID.fromString("00000051-0000-1000-8000-00805f9b34fb"), diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fb9df11c6..06cc32d84 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1427,6 +1427,7 @@ Xiaomi Watch Lite Redmi Watch 3 Active Redmi Smart Band 2 + Redmi Watch 2 Lite Choose export location General High-priority