mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-11-03 17:02:13 +01:00
[Huawei] Add Huawei Watch Fit gadget
This commit is contained in:
parent
d637b9263c
commit
6a576202a9
@ -63,6 +63,7 @@ public final class HuaweiConstants {
|
|||||||
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_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_WATCHFIT_NAME = "huawei watch fit-";
|
||||||
|
|
||||||
public static final String PREF_HUAWEI_ADDRESS = "huawei_address";
|
public static final String PREF_HUAWEI_ADDRESS = "huawei_address";
|
||||||
public static final String PREF_HUAWEI_WORKMODE = "workmode";
|
public static final String PREF_HUAWEI_WORKMODE = "workmode";
|
||||||
|
@ -0,0 +1,76 @@
|
|||||||
|
/* 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.huaweiwatchfit;
|
||||||
|
|
||||||
|
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 HuaweiWatchFitCoordinator extends HuaweiLECoordinator {
|
||||||
|
private static final Logger LOG = LoggerFactory.getLogger(HuaweiWatchFitCoordinator.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DeviceType getDeviceType() {
|
||||||
|
return DeviceType.HUAWEIWATCHFIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Pattern getSupportedDeviceName() {
|
||||||
|
return Pattern.compile(HuaweiConstants.HU_WATCHFIT_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[] getSupportedDeviceSpecificSettings(GBDevice device) {
|
||||||
|
return getHuaweiCoordinator().genericHuaweiSupportedDeviceSpecificSettings(new int[]{
|
||||||
|
R.xml.devicesettings_heartrate_automatic_enable,
|
||||||
|
R.xml.devicesettings_spo_automatic_enable,
|
||||||
|
R.xml.devicesettings_find_phone,
|
||||||
|
R.xml.devicesettings_disable_find_phone_with_dnd,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getDeviceNameResource() {
|
||||||
|
return R.string.devicetype_huawei_watchfit;
|
||||||
|
}
|
||||||
|
}
|
@ -117,6 +117,7 @@ import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiband7.HuaweiBan
|
|||||||
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiband8.HuaweiBand8Coordinator;
|
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiband8.HuaweiBand8Coordinator;
|
||||||
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.huaweiwatchfit.HuaweiWatchFitCoordinator;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiwatchgt.HuaweiWatchGTCoordinator;
|
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiwatchgt.HuaweiWatchGTCoordinator;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiwatchgt2.HuaweiWatchGT2Coordinator;
|
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiwatchgt2.HuaweiWatchGT2Coordinator;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiwatchgt2e.HuaweiWatchGT2eCoordinator;
|
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.huaweiwatchgt2e.HuaweiWatchGT2eCoordinator;
|
||||||
@ -350,6 +351,7 @@ public enum DeviceType {
|
|||||||
HONORMAGICWATCH2(HonorMagicWatch2Coordinator.class),
|
HONORMAGICWATCH2(HonorMagicWatch2Coordinator.class),
|
||||||
HUAWEIWATCHGT3(HuaweiWatchGT3Coordinator.class),
|
HUAWEIWATCHGT3(HuaweiWatchGT3Coordinator.class),
|
||||||
HUAWEIBAND8(HuaweiBand8Coordinator.class),
|
HUAWEIBAND8(HuaweiBand8Coordinator.class),
|
||||||
|
HUAWEIWATCHFIT(HuaweiWatchFitCoordinator.class),
|
||||||
VESC(VescCoordinator.class),
|
VESC(VescCoordinator.class),
|
||||||
BINARY_SENSOR(BinarySensorCoordinator.class),
|
BINARY_SENSOR(BinarySensorCoordinator.class),
|
||||||
FLIPPER_ZERO(FlipperZeroCoordinator.class),
|
FLIPPER_ZERO(FlipperZeroCoordinator.class),
|
||||||
|
@ -1535,6 +1535,7 @@
|
|||||||
<string name="devicetype_huawei_watchgt2e">Huawei Watch GT 2e</string>
|
<string name="devicetype_huawei_watchgt2e">Huawei Watch GT 2e</string>
|
||||||
<string name="devicetype_huawei_talk_band_b6">Huawei Talk Band B6</string>
|
<string name="devicetype_huawei_talk_band_b6">Huawei Talk Band B6</string>
|
||||||
<string name="devicetype_huawei_watchgt3">Huawei Watch GT 3 (Pro)</string>
|
<string name="devicetype_huawei_watchgt3">Huawei Watch GT 3 (Pro)</string>
|
||||||
|
<string name="devicetype_huawei_watchfit">Huawei Watch Fit</string>
|
||||||
<string name="devicetype_femometer_vinca2">Femometer Vinca II</string>
|
<string name="devicetype_femometer_vinca2">Femometer Vinca II</string>
|
||||||
<string name="devicetype_xiaomi_watch_lite">Xiaomi Watch Lite</string>
|
<string name="devicetype_xiaomi_watch_lite">Xiaomi Watch Lite</string>
|
||||||
<string name="devicetype_redmiwatch3active">Redmi Watch 3 Active</string>
|
<string name="devicetype_redmiwatch3active">Redmi Watch 3 Active</string>
|
||||||
|
Loading…
Reference in New Issue
Block a user