1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-08-24 16:21:16 +02:00

[Huawei] Add enable HeartRate force option

This commit is contained in:
Damien 'Psolyca' Gaignon 2024-03-31 10:33:52 +02:00
parent 23c39280c7
commit fd5cab2b4c
No known key found for this signature in database
GPG Key ID: 9E9404E5D9E11843
5 changed files with 28 additions and 1 deletions

View File

@ -418,6 +418,7 @@ public class DeviceSettingsPreferenceConst {
public static final String PREF_FORCE_ENABLE_SMART_ALARM = "pref_force_enable_smart_alarm";
public static final String PREF_FORCE_ENABLE_WEAR_LOCATION = "pref_force_enable_wear_location";
public static final String PREF_FORCE_DND_SUPPORT = "pref_force_dnd_support";
public static final String PREF_FORCE_ENABLE_HEARTRATE_SUPPORT = "pref_force_enable_heartrate_support";
public static final String PREF_IGNORE_WAKEUP_STATUS_START = "pref_force_ignore_wakeup_status_start";
public static final String PREF_IGNORE_WAKEUP_STATUS_END = "pref_force_ignore_wakeup_status_end";

View File

@ -322,6 +322,10 @@ public class HuaweiCoordinator {
return supportsCommandForService(0x07, 0x17);
}
public boolean supportsHeartRate(GBDevice gbDevice) {
return supportsHeartRate() || getForceOption(gbDevice, PREF_FORCE_ENABLE_HEARTRATE_SUPPORT);
}
public boolean supportsFitnessRestHeartRate() {
return supportsCommandForService(0x07, 0x23);
}

View File

@ -98,6 +98,11 @@ public class HuaweiSettingsCustomizer implements DeviceSpecificSettingsCustomize
if (this.coordinator.supportsWearLocation(handler.getDevice())) {
wearLocation.setVisible(true);
}
final ListPreference heartRate = handler.findPreference(PREF_HEARTRATE_AUTOMATIC_ENABLE);
heartRate.setVisible(false);
if (this.coordinator.supportsHeartRate(handler.getDevice())) {
heartRate.setVisible(true);
}
}
}
@ -107,6 +112,7 @@ public class HuaweiSettingsCustomizer implements DeviceSpecificSettingsCustomize
handler.addPreferenceHandlerFor(PREF_FORCE_OPTIONS);
handler.addPreferenceHandlerFor(PREF_FORCE_ENABLE_SMART_ALARM);
handler.addPreferenceHandlerFor(PREF_FORCE_ENABLE_WEAR_LOCATION);
handler.addPreferenceHandlerFor(PREF_FORCE_ENABLE_HEARTRATE_SUPPORT);
handler.addPreferenceHandlerFor(PREF_HUAWEI_WORKMODE);
handler.addPreferenceHandlerFor(PREF_HUAWEI_TRUSLEEP);
@ -117,7 +123,8 @@ public class HuaweiSettingsCustomizer implements DeviceSpecificSettingsCustomize
forceOptions.setVisible(false);
boolean supportsSmartAlarm = this.coordinator.supportsSmartAlarm();
boolean supportsWearLocation = this.coordinator.supportsWearLocation();
if (!supportsSmartAlarm || !supportsWearLocation) {
boolean supportsHeartRate = this.coordinator.supportsHeartRate();
if (!supportsSmartAlarm || !supportsWearLocation || !supportsHeartRate) {
forceOptions.setVisible(true);
final SwitchPreferenceCompat forceSmartAlarm = handler.findPreference(PREF_FORCE_ENABLE_SMART_ALARM);
forceSmartAlarm.setVisible(false);
@ -129,6 +136,11 @@ public class HuaweiSettingsCustomizer implements DeviceSpecificSettingsCustomize
if (!supportsWearLocation) {
forceWearLocation.setVisible(true);
}
final SwitchPreferenceCompat forceHeartRate = handler.findPreference(PREF_FORCE_ENABLE_HEARTRATE_SUPPORT);
forceHeartRate.setVisible(false);
if (!supportsHeartRate) {
forceHeartRate.setVisible(true);
}
}
}

View File

@ -2406,6 +2406,8 @@
<string name="pref_force_wear_location_summary">Force wear location support.\nUSE AT YOUR OWN RISK</string>
<string name="pref_force_dnd_support">Force Do Not Disturb support</string>
<string name="pref_force_dnd_support_summary">Force Do Not Disturb support.\nUSE AT YOUR OWN RISK</string>
<string name="pref_force_enable_heartrate_support">Force heart rate support</string>
<string name="pref_force_enable_heartrate_support_summary">Force enable heart rate support.\nUSE AT YOUR OWN RISK</string>
<string name="huawei_ignore_wakeup_status_start">Ignore wakeup start status</string>
<string name="huawei_ignore_wakeup_status_start_description">May help with proper sleep detection. Visible immediately in the daily activities view.</string>
<string name="huawei_ignore_wakeup_status_end">Ignore wakeup end status</string>

View File

@ -47,6 +47,14 @@
android:title="@string/pref_force_dnd_support"
android:summary="@string/pref_force_dnd_support_summary" />
<SwitchPreferenceCompat
android:icon="@drawable/ic_heartrate"
android:defaultValue="false"
android:key="pref_force_enable_heartrate_support"
android:layout="@layout/preference_checkbox"
android:title="@string/pref_force_enable_heartrate_support"
android:summary="@string/pref_force_enable_heartrate_support_summary" />
<SwitchPreferenceCompat
android:icon="@drawable/ic_activity_sleep"
android:defaultValue="false"