1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-11-09 03:37:03 +01:00

[Huawei] Add Huawei Band 9 gadget

This commit is contained in:
Damien 'Psolyca' Gaignon 2024-05-08 22:46:46 +02:00 committed by José Rebelo
parent f2c360ae8a
commit 39ea1774a4
4 changed files with 75 additions and 0 deletions

View File

@ -62,6 +62,7 @@ public final class HuaweiConstants {
public static final String HU_TALKBANDB6_NAME = "huawei b6-"; public static final String HU_TALKBANDB6_NAME = "huawei b6-";
public static final String HU_BAND7_NAME = "huawei band 7-"; public static final String HU_BAND7_NAME = "huawei band 7-";
public static final String HU_BAND8_NAME = "huawei band 8-"; public static final String HU_BAND8_NAME = "huawei band 8-";
public static final String HU_BAND9_NAME = "huawei band 9-";
public static final String HU_WATCHGT3_NAME = "huawei watch gt 3-"; public static final String HU_WATCHGT3_NAME = "huawei watch gt 3-";
public static final String HU_WATCHGT3PRO_NAME = "huawei watch gt 3 pro-"; public static final String HU_WATCHGT3PRO_NAME = "huawei watch gt 3 pro-";
public static final String HU_WATCHGT4_NAME = "huawei watch gt 4-"; public static final String HU_WATCHGT4_NAME = "huawei watch gt 4-";

View File

@ -0,0 +1,71 @@
/* Copyright (C) 2024 Damien Gaignon, Martin.JM
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.huawei.huaweiband9;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.regex.Pattern;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.devices.TimeSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiConstants;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiLECoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiSpo2SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
import nodomain.freeyourgadget.gadgetbridge.model.Spo2Sample;
public class HuaweiBand9Coordinator extends HuaweiLECoordinator {
private static final Logger LOG = LoggerFactory.getLogger(HuaweiBand9Coordinator.class);
@Override
public boolean isExperimental() {
return true;
}
@Override
public DeviceType getDeviceType() {
return DeviceType.HUAWEIBAND9;
}
@Override
protected Pattern getSupportedDeviceName() {
return Pattern.compile(HuaweiConstants.HU_BAND9_NAME + ".*", Pattern.CASE_INSENSITIVE);
}
@Override
public boolean supportsHeartRateMeasurement(GBDevice device) {
return true;
}
@Override
public boolean supportsSpo2() {
return true;
}
@Override
public TimeSampleProvider<? extends Spo2Sample> getSpo2SampleProvider(GBDevice device, DaoSession session) {
return new HuaweiSpo2SampleProvider(device, session);
}
@Override
public int getDeviceNameResource() {
return R.string.devicetype_huawei_band8;
}
}

View File

@ -116,6 +116,7 @@ import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiband4pro.Huawei
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiband6.HuaweiBand6Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiband6.HuaweiBand6Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiband7.HuaweiBand7Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiband7.HuaweiBand7Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiband8.HuaweiBand8Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiband8.HuaweiBand8Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiband9.HuaweiBand9Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweibandaw70.HuaweiBandAw70Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweibandaw70.HuaweiBandAw70Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweitalkbandb6.HuaweiTalkBandB6Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweitalkbandb6.HuaweiTalkBandB6Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiwatch4pro.HuaweiWatch4ProCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiwatch4pro.HuaweiWatch4ProCoordinator;
@ -370,6 +371,7 @@ public enum DeviceType {
HUAWEIWATCHGT3(HuaweiWatchGT3Coordinator.class), HUAWEIWATCHGT3(HuaweiWatchGT3Coordinator.class),
HUAWEIWATCHGT4(HuaweiWatchGT4Coordinator.class), HUAWEIWATCHGT4(HuaweiWatchGT4Coordinator.class),
HUAWEIBAND8(HuaweiBand8Coordinator.class), HUAWEIBAND8(HuaweiBand8Coordinator.class),
HUAWEIBAND9(HuaweiBand9Coordinator.class),
HUAWEIWATCHFIT(HuaweiWatchFitCoordinator.class), HUAWEIWATCHFIT(HuaweiWatchFitCoordinator.class),
HUAWEIWATCHFIT2(HuaweiWatchFit2Coordinator.class), HUAWEIWATCHFIT2(HuaweiWatchFit2Coordinator.class),
HUAWEIWATCHFIT3(HuaweiWatchFit3Coordinator.class), HUAWEIWATCHFIT3(HuaweiWatchFit3Coordinator.class),

View File

@ -1549,6 +1549,7 @@
<string name="devicetype_huawei_band6">Huawei Band 6</string> <string name="devicetype_huawei_band6">Huawei Band 6</string>
<string name="devicetype_huawei_band7">Huawei Band 7</string> <string name="devicetype_huawei_band7">Huawei Band 7</string>
<string name="devicetype_huawei_band8">Huawei Band 8</string> <string name="devicetype_huawei_band8">Huawei Band 8</string>
<string name="devicetype_huawei_band9">Huawei Band 9</string>
<string name="devicetype_huawei_watch_gt">Huawei Watch GT</string> <string name="devicetype_huawei_watch_gt">Huawei Watch GT</string>
<string name="devicetype_huawei_band4pro">Huawei Band 4 (Pro)</string> <string name="devicetype_huawei_band4pro">Huawei Band 4 (Pro)</string>
<string name="devicetype_huawei_watchgt2">Huawei Watch GT 2 (Pro)</string> <string name="devicetype_huawei_watchgt2">Huawei Watch GT 2 (Pro)</string>