From 50338052b62a7b5840592025361a55cb100a845b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Mon, 9 Mar 2026 22:46:06 +0000 Subject: [PATCH] Zepp OS: Add setting to disable calendar event reminders --- .../devicesettings/DeviceSettingsPreferenceConst.java | 1 + .../DeviceSpecificSettingsFragment.java | 1 + .../devices/huami/zeppos/ZeppOsCoordinator.java | 4 ++++ .../gadgetbridge/service/AbstractDeviceSupport.java | 1 + .../huami/zeppos/services/ZeppOsCalendarService.java | 4 +++- app/src/main/res/values/strings.xml | 2 ++ .../devicesettings_sync_calendar_event_reminders.xml | 11 +++++++++++ 7 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/xml/devicesettings_sync_calendar_event_reminders.xml 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 68b9dbea69..ed32612310 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 @@ -95,6 +95,7 @@ public class DeviceSettingsPreferenceConst { public static final String PREF_CALENDAR_SYNC_ALL_DAY = "calendar_sync_all_day"; public static final String PREF_CALENDAR_SYNC_WORKING_LOCATION = "calendar_sync_working_location"; public static final String PREF_CALENDAR_SYNC_COLOR_BLACKLIST = "calendar_sync_color_blacklist"; + public static final String PREF_CALENDAR_SYNC_EVENT_REMINDERS = "calendar_sync_event_reminders"; public static final String PREF_TIME_SYNC = "time_sync"; public static final String PREF_WEIGHT_SCALE_UNIT = "pref_weight_scale_unit"; public static final String PREF_USE_CUSTOM_DEVICEICON = "use_custom_deviceicon"; 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 05e96dc71f..ea0144533c 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 @@ -1045,6 +1045,7 @@ public class DeviceSpecificSettingsFragment extends AbstractPreferenceFragment i addPreferenceHandlerFor(PREF_CALENDAR_SYNC_FOCUS_TIME); addPreferenceHandlerFor(PREF_CALENDAR_SYNC_ALL_DAY); addPreferenceHandlerFor(PREF_CALENDAR_SYNC_WORKING_LOCATION); + addPreferenceHandlerFor(PREF_CALENDAR_SYNC_EVENT_REMINDERS); } addPreferenceHandlerFor(PREF_ATC_BLE_OEPL_MODEL); 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 2ab796b011..cc38c6fbaf 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 @@ -498,6 +498,10 @@ public abstract class ZeppOsCoordinator extends HuamiCoordinator { DeviceSpecificSettingsScreen.CALENDAR, R.xml.devicesettings_sync_calendar ); + deviceSpecificSettings.addRootScreen( + DeviceSpecificSettingsScreen.CALENDAR, + R.xml.devicesettings_sync_calendar_event_reminders + ); } // diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/AbstractDeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/AbstractDeviceSupport.java index b76f75932f..f9a5e60c3a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/AbstractDeviceSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/AbstractDeviceSupport.java @@ -571,6 +571,7 @@ public abstract class AbstractDeviceSupport implements DeviceSupport { case DeviceSettingsPreferenceConst.PREF_CALENDAR_SYNC_ALL_DAY: case DeviceSettingsPreferenceConst.PREF_CALENDAR_SYNC_WORKING_LOCATION: case DeviceSettingsPreferenceConst.PREF_CALENDAR_SYNC_COLOR_BLACKLIST: + case DeviceSettingsPreferenceConst.PREF_CALENDAR_SYNC_EVENT_REMINDERS: CalendarReceiver.forceSync(getDevice()); break; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/zeppos/services/ZeppOsCalendarService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/zeppos/services/ZeppOsCalendarService.java index 3f0e44754b..9198f0775b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/zeppos/services/ZeppOsCalendarService.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/zeppos/services/ZeppOsCalendarService.java @@ -23,6 +23,7 @@ import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.charset.StandardCharsets; +import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst; import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventUpdatePreferences; import nodomain.freeyourgadget.gadgetbridge.model.CalendarEventSpec; import nodomain.freeyourgadget.gadgetbridge.service.btle.BLETypeConversions; @@ -143,7 +144,8 @@ public class ZeppOsCalendarService extends AbstractZeppOsService { buf.putInt(calendarEventSpec.timestamp + calendarEventSpec.durationInSeconds); // Remind - if (calendarEventSpec.reminders != null && !calendarEventSpec.reminders.isEmpty()) { + final boolean syncReminders = getDevicePrefs().getBoolean(DeviceSettingsPreferenceConst.PREF_CALENDAR_SYNC_EVENT_REMINDERS, false); + if (syncReminders && calendarEventSpec.reminders != null && !calendarEventSpec.reminders.isEmpty()) { buf.putInt((int) (calendarEventSpec.reminders.get(0) / 1000L)); } else { buf.putInt(0); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3c4ae16d12..19f6280c6c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -464,6 +464,8 @@ Sync all day events Calendar events that are special \"Working Locations\" will be synced to the device Sync working location events + Event reminder notifications will be synced to the device + Sync event reminders Relax firmware checks Enable this if you want to flash a firmware not intended for your device (at your own risk) Vibration strength diff --git a/app/src/main/res/xml/devicesettings_sync_calendar_event_reminders.xml b/app/src/main/res/xml/devicesettings_sync_calendar_event_reminders.xml new file mode 100644 index 0000000000..0607c942d9 --- /dev/null +++ b/app/src/main/res/xml/devicesettings_sync_calendar_event_reminders.xml @@ -0,0 +1,11 @@ + + + +