Amazfit T-Rex 3 Pro: Initial support

This commit is contained in:
José Rebelo
2025-11-20 19:15:47 +00:00
parent c892a86ac5
commit 8138ae55c9
4 changed files with 186 additions and 0 deletions
@@ -0,0 +1,90 @@
/* Copyright (C) 2025 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 <https://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
import androidx.annotation.NonNull;
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.zeppos.ZeppOsCoordinator;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class AmazfitTRex3Pro44mmCoordinator extends ZeppOsCoordinator {
@Override
public List<String> getDeviceBluetoothNames() {
return Collections.singletonList("Amazfit T-Rex 3 Pro (44mm)");
}
@Override
public Set<Integer> getDeviceSources() {
return new HashSet<>(Arrays.asList(
10682624, // chinese mainland version
10682625,
10682627
));
}
@Override
public int getDeviceNameResource() {
return R.string.devicetype_amazfit_trex_3_pro_44mm;
}
@Override
public boolean mainMenuHasMoreSection() {
return true;
}
@Override
public boolean supportsGpxUploads(final GBDevice device) {
return true;
}
@Override
public boolean supportsControlCenter() {
return true;
}
@Override
public boolean supportsToDoList() {
return true;
}
@Override
public boolean supportsWifiHotspot(final GBDevice device) {
return true;
}
@Override
public boolean supportsFtpServer(final GBDevice device) {
return true;
}
@Override
public boolean supportsBluetoothPhoneCalls(final GBDevice device) {
return true;
}
@Override
public DeviceKind getDeviceKind(@NonNull GBDevice device) {
return DeviceKind.WATCH;
}
}
@@ -0,0 +1,90 @@
/* Copyright (C) 2025 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 <https://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches;
import androidx.annotation.NonNull;
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.zeppos.ZeppOsCoordinator;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class AmazfitTRex3Pro48mmCoordinator extends ZeppOsCoordinator {
@Override
public List<String> getDeviceBluetoothNames() {
return Collections.singletonList("Amazfit T-Rex 3 Pro (48mm)");
}
@Override
public Set<Integer> getDeviceSources() {
return new HashSet<>(Arrays.asList(
10551552, // chinese mainland version
10551553,
10551555
));
}
@Override
public int getDeviceNameResource() {
return R.string.devicetype_amazfit_trex_3_pro_48mm;
}
@Override
public boolean mainMenuHasMoreSection() {
return true;
}
@Override
public boolean supportsGpxUploads(final GBDevice device) {
return true;
}
@Override
public boolean supportsControlCenter() {
return true;
}
@Override
public boolean supportsToDoList() {
return true;
}
@Override
public boolean supportsWifiHotspot(final GBDevice device) {
return true;
}
@Override
public boolean supportsFtpServer(final GBDevice device) {
return true;
}
@Override
public boolean supportsBluetoothPhoneCalls(final GBDevice device) {
return true;
}
@Override
public DeviceKind getDeviceKind(@NonNull GBDevice device) {
return DeviceKind.WATCH;
}
}
@@ -225,6 +225,8 @@ import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches.Amazfit
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches.AmazfitGTS4MiniNewCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches.AmazfitTRex2Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches.AmazfitTRex3Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches.AmazfitTRex3Pro44mmCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches.AmazfitTRex3Pro48mmCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches.AmazfitTRexUltraCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppos.watches.MiBand7Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.freearc.HuaweiFreearcCoordinator;
@@ -504,6 +506,8 @@ public enum DeviceType {
AMAZFITGTS4MININEW(AmazfitGTS4MiniNewCoordinator.class),
AMAZFITTREX2(AmazfitTRex2Coordinator.class),
AMAZFITTREX3(AmazfitTRex3Coordinator.class),
AMAZFITTREX3PRO44MM(AmazfitTRex3Pro44mmCoordinator.class),
AMAZFITTREX3PRO48MM(AmazfitTRex3Pro48mmCoordinator.class),
AMAZFITGTR3PRO(AmazfitGTR3ProCoordinator.class),
AMAZFITBIP3(AmazfitBip3Coordinator.class),
AMAZFITBIP3PRO(AmazfitBip3ProCoordinator.class),
+2
View File
@@ -1860,6 +1860,8 @@
<string name="devicetype_amazfit_gtr4" translatable="false">Amazfit GTR 4</string>
<string name="devicetype_amazfit_trex_2" translatable="false">Amazfit T-Rex 2</string>
<string name="devicetype_amazfit_trex_3" translatable="false">Amazfit T-Rex 3</string>
<string name="devicetype_amazfit_trex_3_pro_44mm" translatable="false">Amazfit T-Rex 3 Pro (44mm)</string>
<string name="devicetype_amazfit_trex_3_pro_48mm" translatable="false">Amazfit T-Rex 3 Pro (48mm)</string>
<string name="devicetype_amazfit_trex_ultra" translatable="false">Amazfit T-Rex Ultra</string>
<string name="devicetype_amazfit_band5" translatable="false">Amazfit Band 5</string>
<string name="devicetype_amazfit_band7" translatable="false">Amazfit Band 7</string>