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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+