diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsPreferenceConst.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsPreferenceConst.java index 3e11637f7b..2414e36b8a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsPreferenceConst.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsPreferenceConst.java @@ -152,6 +152,7 @@ public class DeviceSettingsPreferenceConst { public static final String PREF_DISPLAY_ON_LIFT_END = "display_on_lift_end"; public static final String PREF_DISPLAY_ON_LIFT_SENSITIVITY = "display_on_lift_sensitivity"; + public static final String PREF_ALWAYS_ON_DISPLAY = "always_on_display"; public static final String PREF_ALWAYS_ON_DISPLAY_MODE = "always_on_display_mode"; public static final String PREF_ALWAYS_ON_DISPLAY_START = "always_on_display_start"; public static final String PREF_ALWAYS_ON_DISPLAY_END = "always_on_display_end"; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsFragment.java index 87cd804a0a..76e999a9b7 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsFragment.java @@ -953,6 +953,7 @@ public class DeviceSpecificSettingsFragment extends AbstractPreferenceFragment i addPreferenceHandlerFor(PREF_GPS_SATELLITE_SEARCH); addPreferenceHandlerFor(PREF_AGPS_EXPIRY_REMINDER_ENABLED); addPreferenceHandlerFor(PREF_AGPS_EXPIRY_REMINDER_TIME); + addPreferenceHandlerFor(PREF_ALWAYS_ON_DISPLAY); addPreferenceHandlerFor(PREF_ALWAYS_ON_DISPLAY_FOLLOW_WATCHFACE); addPreferenceHandlerFor(PREF_ALWAYS_ON_DISPLAY_STYLE); addPreferenceHandlerFor(PREF_WEARDIRECTION); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/zeppos/ZeppOsCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/zeppos/ZeppOsCoordinator.java index ef16212e61..7520015850 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/zeppos/ZeppOsCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/zeppos/ZeppOsCoordinator.java @@ -444,7 +444,7 @@ public abstract class ZeppOsCoordinator extends HuamiCoordinator { display.add(R.xml.devicesettings_liftwrist_display_sensitivity_with_smart); display.add(R.xml.devicesettings_password); display.add(R.xml.devicesettings_huami2021_watchface); - display.add(R.xml.devicesettings_always_on_display); + display.add(R.xml.devicesettings_always_on_display_mode); display.add(R.xml.devicesettings_screen_timeout); if (supportsAutoBrightness(device)) { display.add(R.xml.devicesettings_screen_brightness_withauto); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zendure/SolarFlowDeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zendure/SolarFlowDeviceCoordinator.java index 19da52dfcb..d87054123f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zendure/SolarFlowDeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zendure/SolarFlowDeviceCoordinator.java @@ -97,7 +97,8 @@ public class SolarFlowDeviceCoordinator extends AbstractBLEDeviceCoordinator { R.xml.devicesettings_battery_minimum_charge, R.xml.devicesettings_battery_maximum_charge, R.xml.devicesettings_output_power_grid, - R.xml.devicesettings_offgrid_mode_on_off_eco + R.xml.devicesettings_offgrid_mode_on_off_eco, + R.xml.devicesettings_always_on_display, }; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/zendure/SolarFlowDeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/zendure/SolarFlowDeviceSupport.java index 9fb332107d..c344501d30 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/zendure/SolarFlowDeviceSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/zendure/SolarFlowDeviceSupport.java @@ -16,6 +16,7 @@ along with this program. If not, see . */ package nodomain.freeyourgadget.gadgetbridge.service.devices.zendure; +import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_ALWAYS_ON_DISPLAY; import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_BATTERY_MAXIMUM_CHARGE; import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_BATTERY_MINIMUM_CHARGE; import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_OFFGRID_MODE; @@ -69,6 +70,8 @@ public class SolarFlowDeviceSupport extends AbstractBTLESingleDeviceSupport { private int electricLevel = -1; private String deviceId; private int firmwareVersion = -1; + private int lampSwitch = -1; + private boolean isSettingsSynced = false; @@ -189,6 +192,10 @@ public class SolarFlowDeviceSupport extends AbstractBTLESingleDeviceSupport { }; sendWriteProperty("gridOffMode", gridOffMode); } + case PREF_ALWAYS_ON_DISPLAY -> { + boolean lampSwitch = devicePrefs.getBoolean(PREF_ALWAYS_ON_DISPLAY, true); + sendWriteProperty("lampSwitch", lampSwitch ? 1 : 0); + } default -> LOG.warn("Unknown config changed: {}", config); } } @@ -266,6 +273,9 @@ public class SolarFlowDeviceSupport extends AbstractBTLESingleDeviceSupport { getDevice().sendDeviceUpdateIntent(getContext()); } } + if (properties.has("lampSwitch")) { + lampSwitch = properties.getInt("lampSwitch"); + } } catch (JSONException e) { LOG.error("JSON error while parsing report: {}", e.getMessage()); @@ -319,6 +329,7 @@ public class SolarFlowDeviceSupport extends AbstractBTLESingleDeviceSupport { devicePrefsEdit.putString(PREF_BATTERY_MINIMUM_CHARGE, String.valueOf(minSoc/10)); devicePrefsEdit.putString(PREF_BATTERY_MAXIMUM_CHARGE, String.valueOf(socSet/10)); devicePrefsEdit.putString(PREF_OUTPUT_POWER_GRID, String.valueOf(outputLimit)); + devicePrefsEdit.putBoolean(PREF_ALWAYS_ON_DISPLAY, lampSwitch != 0); String offGridMode = switch (gridOffMode) { case 0 -> "on"; case 1 -> "eco"; diff --git a/app/src/main/res/xml/devicesettings_always_on_display.xml b/app/src/main/res/xml/devicesettings_always_on_display.xml index ed0fe6e43d..aa7846de47 100644 --- a/app/src/main/res/xml/devicesettings_always_on_display.xml +++ b/app/src/main/res/xml/devicesettings_always_on_display.xml @@ -1,46 +1,9 @@ - - + - - - - - - - - - - - - - - - + android:key="always_on_display" + android:layout="@layout/preference_checkbox" + android:title="@string/prefs_always_on_display" /> + \ No newline at end of file diff --git a/app/src/main/res/xml/devicesettings_always_on_display_mode.xml b/app/src/main/res/xml/devicesettings_always_on_display_mode.xml new file mode 100644 index 0000000000..ed0fe6e43d --- /dev/null +++ b/app/src/main/res/xml/devicesettings_always_on_display_mode.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + +