From 9a114f640bb977c113a40ef8ce45ca63f653fd21 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Mon, 24 Feb 2020 14:19:06 +0100 Subject: [PATCH] Huami: Make experimental calendar sync feature optional --- .../devicesettings/DeviceSettingsPreferenceConst.java | 1 + .../devices/huami/amazfitbip/AmazfitBipCoordinator.java | 1 + .../devices/huami/amazfitcor/AmazfitCorCoordinator.java | 1 + .../huami/amazfitcor2/AmazfitCor2Coordinator.java | 1 + .../devices/huami/amazfitgtr/AmazfitGTRCoordinator.java | 1 + .../devices/huami/amazfitgts/AmazfitGTSCoordinator.java | 1 + .../devices/huami/miband3/MiBand3Coordinator.java | 1 + .../devices/huami/miband4/MiBand4Coordinator.java | 1 + .../gadgetbridge/service/devices/huami/HuamiSupport.java | 9 +++++++-- app/src/main/res/values/strings.xml | 2 ++ 10 files changed, 17 insertions(+), 2 deletions(-) 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 8963da73a..027ecca5d 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 @@ -23,4 +23,5 @@ public class DeviceSettingsPreferenceConst { public static final String PREF_SCREEN_ORIENTATION = "screen_orientation"; public static final String PREF_RESERVER_ALARMS_CALENDAR = "reserve_alarms_calendar"; public static final String PREF_ALLOW_HIGH_MTU = "allow_high_mtu"; + public static final String PREF_SYNC_CALENDAR = "sync_calendar"; } \ No newline at end of file diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipCoordinator.java index e6988a13d..c462a6cbf 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipCoordinator.java @@ -86,6 +86,7 @@ public class AmazfitBipCoordinator extends HuamiCoordinator { R.xml.devicesettings_custom_emoji_font, R.xml.devicesettings_liftwrist_display, R.xml.devicesettings_disconnectnotification, + R.xml.devicesettings_sync_calendar, R.xml.devicesettings_expose_hr_thirdparty, R.xml.devicesettings_buttonactions_with_longpress, R.xml.devicesettings_pairingkey diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitcor/AmazfitCorCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitcor/AmazfitCorCoordinator.java index 8c334c33d..6c5b7e839 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitcor/AmazfitCorCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitcor/AmazfitCorCoordinator.java @@ -89,6 +89,7 @@ public class AmazfitCorCoordinator extends HuamiCoordinator { R.xml.devicesettings_custom_emoji_font, R.xml.devicesettings_liftwrist_display, R.xml.devicesettings_disconnectnotification, + R.xml.devicesettings_sync_calendar, R.xml.devicesettings_expose_hr_thirdparty, R.xml.devicesettings_pairingkey }; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitcor2/AmazfitCor2Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitcor2/AmazfitCor2Coordinator.java index ea7f55431..56209f6be 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitcor2/AmazfitCor2Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitcor2/AmazfitCor2Coordinator.java @@ -91,6 +91,7 @@ public class AmazfitCor2Coordinator extends HuamiCoordinator { R.xml.devicesettings_custom_emoji_font, R.xml.devicesettings_liftwrist_display, R.xml.devicesettings_disconnectnotification, + R.xml.devicesettings_sync_calendar, R.xml.devicesettings_expose_hr_thirdparty, R.xml.devicesettings_pairingkey }; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgtr/AmazfitGTRCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgtr/AmazfitGTRCoordinator.java index f253838e1..b4bfdcafe 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgtr/AmazfitGTRCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgtr/AmazfitGTRCoordinator.java @@ -93,6 +93,7 @@ public class AmazfitGTRCoordinator extends HuamiCoordinator { R.xml.devicesettings_timeformat, R.xml.devicesettings_liftwrist_display, R.xml.devicesettings_disconnectnotification, + R.xml.devicesettings_sync_calendar, R.xml.devicesettings_expose_hr_thirdparty, R.xml.devicesettings_pairingkey }; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgts/AmazfitGTSCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgts/AmazfitGTSCoordinator.java index 77fa1d61c..1c244bd6a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgts/AmazfitGTSCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgts/AmazfitGTSCoordinator.java @@ -93,6 +93,7 @@ public class AmazfitGTSCoordinator extends HuamiCoordinator { R.xml.devicesettings_timeformat, R.xml.devicesettings_liftwrist_display, R.xml.devicesettings_disconnectnotification, + R.xml.devicesettings_sync_calendar, R.xml.devicesettings_expose_hr_thirdparty, R.xml.devicesettings_pairingkey }; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband3/MiBand3Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband3/MiBand3Coordinator.java index 30c3a9ffb..3dc835b4a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband3/MiBand3Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband3/MiBand3Coordinator.java @@ -110,6 +110,7 @@ public class MiBand3Coordinator extends HuamiCoordinator { R.xml.devicesettings_donotdisturb_withauto, R.xml.devicesettings_liftwrist_display, R.xml.devicesettings_swipeunlock, + R.xml.devicesettings_sync_calendar, R.xml.devicesettings_expose_hr_thirdparty, R.xml.devicesettings_pairingkey }; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband4/MiBand4Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband4/MiBand4Coordinator.java index b1e22b125..883322d0d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband4/MiBand4Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/miband4/MiBand4Coordinator.java @@ -96,6 +96,7 @@ public class MiBand4Coordinator extends HuamiCoordinator { R.xml.devicesettings_nightmode, R.xml.devicesettings_liftwrist_display, R.xml.devicesettings_swipeunlock, + R.xml.devicesettings_sync_calendar, R.xml.devicesettings_expose_hr_thirdparty, R.xml.devicesettings_pairingkey, R.xml.devicesettings_high_mtu diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/HuamiSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/HuamiSupport.java index 8c6a6e745..5d7ddbb20 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/HuamiSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/HuamiSupport.java @@ -137,6 +137,7 @@ import nodomain.freeyourgadget.gadgetbridge.util.Version; import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_ALLOW_HIGH_MTU; import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_DATEFORMAT; import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_RESERVER_ALARMS_CALENDAR; +import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_SYNC_CALENDAR; import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_TIMEFORMAT; import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_WEARLOCATION; import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.DEFAULT_VALUE_VIBRATION_COUNT; @@ -738,11 +739,10 @@ public class HuamiSupport extends AbstractBTLEDeviceSupport { setCurrentTimeWithService(builder); //TODO: once we have a common strategy for sending events (e.g. EventHandler), remove this call from here. Meanwhile it does no harm. // = we should genaralize the pebble calender code - if (characteristicChunked == null) { + if (characteristicChunked == null) { // all except Mi Band 2 sendCalendarEvents(builder); } else { - // TODO: make this configurable sendCalendarEventsAsReminder(builder); } builder.queue(getQueue()); @@ -1707,6 +1707,11 @@ public class HuamiSupport extends AbstractBTLEDeviceSupport { } private HuamiSupport sendCalendarEventsAsReminder(TransactionBuilder builder) { + boolean syncCalendar = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getBoolean(PREF_SYNC_CALENDAR, false); + if (!syncCalendar) { + return this; + } + CalendarEvents upcomingEvents = new CalendarEvents(); List calendarEvents = upcomingEvents.getCalendarEventList(getContext()); Calendar calendar = Calendar.getInstance(); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8adcb7e08..970e55ae5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -182,6 +182,8 @@ Enable this if your device has a custom font firmware for emoji support Allow high MTU Increases transfer speed, but might not work on some Android devices. + Enables calendar alerts, even when disconnected + Sync calendar events Connect new device button Always visible Visible only if no device is added