From 04460fc3f4fed3b401a63b4a80fcc439634abd70 Mon Sep 17 00:00:00 2001 From: MrYoranimo Date: Fri, 15 Dec 2023 22:24:30 +0100 Subject: [PATCH] Xiaomi Watch S1 Pro: add experimental support --- .../XiaomiWatchS1ProCoordinator.java | 61 +++++++++++++++++++ .../gadgetbridge/model/DeviceType.java | 2 + app/src/main/res/values/strings.xml | 1 + 3 files changed, 64 insertions(+) create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xiaomi/watchs1pro/XiaomiWatchS1ProCoordinator.java diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xiaomi/watchs1pro/XiaomiWatchS1ProCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xiaomi/watchs1pro/XiaomiWatchS1ProCoordinator.java new file mode 100644 index 000000000..9abf358ca --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xiaomi/watchs1pro/XiaomiWatchS1ProCoordinator.java @@ -0,0 +1,61 @@ +/* Copyright (C) 2023 Yoran Vulker + + 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.watchs1pro; + +import java.util.regex.Pattern; + +import nodomain.freeyourgadget.gadgetbridge.R; +import nodomain.freeyourgadget.gadgetbridge.devices.xiaomi.XiaomiCoordinator; + +public class XiaomiWatchS1ProCoordinator extends XiaomiCoordinator { + + @Override + protected Pattern getSupportedDeviceName() { + // TODO confirm that the secondary name is actually used in prod somewhere + return Pattern.compile("^(Xiaomi Watch S1 Pro [0-9A-F]{4}|[Ll]61.*[0-9A-F]{4})$"); + } + + @Override + public ConnectionType getConnectionType() { + return ConnectionType.BT_CLASSIC; + } + + @Override + public int getDeviceNameResource() { + return R.string.devicetype_xiaomi_watch_s1_pro; + } + + @Override + public boolean isExperimental() { + return true; + } + + @Override + public int getDefaultIconResource() { + return R.drawable.ic_device_miwatch; + } + + @Override + public int getDisabledIconResource() { + return R.drawable.ic_device_miwatch_disabled; + } + + @Override + public boolean supportsFindDevice() { + return false; + } +} 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 10d295a98..905633ee8 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java @@ -175,6 +175,7 @@ import nodomain.freeyourgadget.gadgetbridge.devices.xiaomi.redmismartband2.Redmi import nodomain.freeyourgadget.gadgetbridge.devices.xiaomi.redmismartbandpro.RedmiSmartBandProCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.xiaomi.redmiwatch2lite.RedmiWatch2Lite; import nodomain.freeyourgadget.gadgetbridge.devices.xiaomi.watchs1active.XiaomiWatchS1ActiveCoordinator; +import nodomain.freeyourgadget.gadgetbridge.devices.xiaomi.watchs1pro.XiaomiWatchS1ProCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.xwatch.XWatchCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.zetime.ZeTimeCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.xiaomi.miwatch.MiWatchLiteCoordinator; @@ -238,6 +239,7 @@ public enum DeviceType { REDMIWATCH2LITE(RedmiWatch2Lite.class), REDMISMARTBANDPRO(RedmiSmartBandProCoordinator.class), XIAOMI_WATCH_S1_ACTIVE(XiaomiWatchS1ActiveCoordinator.class), + XIAOMI_WATCH_S1_PRO(XiaomiWatchS1ProCoordinator.class), AMAZFITGTS3(AmazfitGTS3Coordinator.class), AMAZFITGTR3(AmazfitGTR3Coordinator.class), AMAZFITGTR4(AmazfitGTR4Coordinator.class), diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 596d51c85..ee828d7ac 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2539,6 +2539,7 @@ Sleep Mode Schedule Send a reminder and enter sleep mode at bedtime. At the scheduled wake-up time, the wake-up alarm will sound. Xiaomi Watch S1 Active + Xiaomi Watch S1 Pro Mi Watch Color Sport Pixoo Not set