mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
Zepp OS: Fix AGPS section not available on some devices
This commit is contained in:
+1
@@ -47,6 +47,7 @@ public class DeviceSettingsPreferenceConst {
|
||||
public static final String PREF_SCREEN_SLEEP_MODE = "pref_screen_sleep_mode";
|
||||
public static final String PREF_SCREEN_LIFT_WRIST = "pref_screen_lift_wrist";
|
||||
public static final String PREF_SCREEN_PASSWORD = "pref_screen_password";
|
||||
public static final String PREF_SCREEN_GPS = "pref_screen_gps";
|
||||
public static final String PREF_SCREEN_ALWAYS_ON_DISPLAY = "pref_screen_always_on_display";
|
||||
public static final String PREF_SCREEN_HEARTRATE_MONITORING = "pref_screen_heartrate_monitoring";
|
||||
public static final String PREF_SCREEN_INACTIVITY_EXTENDED = "pref_screen_inactivity_extended";
|
||||
|
||||
+1
-1
@@ -577,7 +577,7 @@ public abstract class ZeppOsCoordinator extends HuamiCoordinator {
|
||||
}
|
||||
|
||||
public boolean hasGps(final GBDevice device) {
|
||||
return supportsConfig(device, ZeppOsConfigService.ConfigArg.WORKOUT_GPS_PRESET);
|
||||
return supportsConfig(device, ZeppOsConfigService.ConfigArg.AGPS_UPDATE_TIME);
|
||||
}
|
||||
|
||||
public boolean supportsAutoBrightness(final GBDevice device) {
|
||||
|
||||
+16
-4
@@ -25,6 +25,7 @@ import androidx.preference.EditTextPreference;
|
||||
import androidx.preference.ListPreference;
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -229,12 +230,18 @@ public class ZeppOsSettingsCustomizer extends HuamiSettingsCustomizer {
|
||||
DeviceSettingsPreferenceConst.PREF_USER_FITNESS_GOAL_NOTIFICATION
|
||||
));
|
||||
hidePrefIfNoneVisible(handler, DeviceSettingsPreferenceConst.PREF_HEADER_WORKOUT, Arrays.asList(
|
||||
DeviceSettingsPreferenceConst.PREF_HEADER_GPS,
|
||||
DeviceSettingsPreferenceConst.PREF_SCREEN_GPS,
|
||||
DeviceSettingsPreferenceConst.PREF_WORKOUT_START_ON_PHONE,
|
||||
DeviceSettingsPreferenceConst.PREF_WORKOUT_SEND_GPS_TO_BAND,
|
||||
DeviceSettingsPreferenceConst.PREF_HEADER_WORKOUT_DETECTION,
|
||||
DeviceSettingsPreferenceConst.PREF_WORKOUT_KEEP_SCREEN_ON
|
||||
));
|
||||
hidePrefIfNoneVisible(handler, DeviceSettingsPreferenceConst.PREF_HEADER_GPS, Arrays.asList(
|
||||
DeviceSettingsPreferenceConst.PREF_GPS_MODE_PRESET,
|
||||
DeviceSettingsPreferenceConst.PREF_GPS_BAND,
|
||||
DeviceSettingsPreferenceConst.PREF_GPS_COMBINATION,
|
||||
DeviceSettingsPreferenceConst.PREF_GPS_SATELLITE_SEARCH
|
||||
));
|
||||
hidePrefIfNoneVisible(handler, DeviceSettingsPreferenceConst.PREF_HEADER_AGPS, Arrays.asList(
|
||||
DeviceSettingsPreferenceConst.PREF_AGPS_EXPIRY_REMINDER_ENABLED,
|
||||
DeviceSettingsPreferenceConst.PREF_AGPS_EXPIRY_REMINDER_TIME,
|
||||
@@ -327,7 +334,9 @@ public class ZeppOsSettingsCustomizer extends HuamiSettingsCustomizer {
|
||||
};
|
||||
|
||||
handler.addPreferenceHandlerFor(DeviceSettingsPreferenceConst.PREF_GPS_MODE_PRESET, onGpsPresetUpdated);
|
||||
onGpsPresetUpdated.onPreferenceChange(prefGpsPreset, prefGpsPreset.getValue());
|
||||
if (!StringUtils.isBlank(prefGpsPreset.getValue())) {
|
||||
onGpsPresetUpdated.onPreferenceChange(prefGpsPreset, prefGpsPreset.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
// The gps combination can only be chosen if the gps band is single band
|
||||
@@ -408,8 +417,7 @@ public class ZeppOsSettingsCustomizer extends HuamiSettingsCustomizer {
|
||||
}
|
||||
|
||||
for (final String prefKey : supportedPref) {
|
||||
final boolean deviceHasConfig = prefs.getBoolean(DeviceSettingsUtils.getPrefKnownConfig(prefKey), false);
|
||||
if (deviceHasConfig) {
|
||||
if (supportsConfig(prefs, prefKey)) {
|
||||
// This preference is supported, don't hide
|
||||
return;
|
||||
}
|
||||
@@ -419,6 +427,10 @@ public class ZeppOsSettingsCustomizer extends HuamiSettingsCustomizer {
|
||||
pref.setVisible(false);
|
||||
}
|
||||
|
||||
private boolean supportsConfig(final Prefs prefs, final String prefKey) {
|
||||
return prefs.getBoolean(DeviceSettingsUtils.getPrefKnownConfig(prefKey), false);
|
||||
}
|
||||
|
||||
private void enforceMinMax(final DeviceSpecificSettingsHandler handler, final Prefs prefs, final ZeppOsConfigService.ConfigArg config) {
|
||||
final String prefKey = config.getPrefKey();
|
||||
final Preference pref = handler.findPreference(prefKey);
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<PreferenceScreen
|
||||
android:icon="@drawable/ic_gps_location"
|
||||
android:key="pref_header_gps"
|
||||
android:key="pref_screen_gps"
|
||||
android:persistent="false"
|
||||
android:title="@string/pref_gps_header">
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="pref_gps_header_category"
|
||||
android:key="pref_header_gps"
|
||||
android:title="@string/pref_gps_header">
|
||||
|
||||
<ListPreference
|
||||
|
||||
Reference in New Issue
Block a user