From 9a114f640bb977c113a40ef8ce45ca63f653fd21 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Mon, 24 Feb 2020 14:19:06 +0100 Subject: [PATCH 1/3] 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 From 2580a0b818dc0cc217d8db0cd8f5cd0d74d9cede Mon Sep 17 00:00:00 2001 From: Fabio Parri Date: Fri, 21 Feb 2020 07:59:28 +0000 Subject: [PATCH 2/3] Translated using Weblate (Italian) Currently translated at 96.4% (724 of 751 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/it/ --- app/src/main/res/values-it/strings.xml | 106 ++++++++++++++++++++----- 1 file changed, 87 insertions(+), 19 deletions(-) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 7c48102b8..a297aa0ee 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -140,9 +140,9 @@ Tentativi di riconessione Unità - Formato dell\'orario + Formato orario Durata dell\'accensione dello schermo - Misura il battito cardiaco continuativamente + Misurazione della frequenza cardiaca per tutto il giorno Impostazioni HPlus/Makibes Non connesso In collegamento @@ -225,7 +225,7 @@ Passi al minuto Trova dispositivo smarrito Annulla per fermare la vibrazione. - Le tue attività + Attività e Sonno Configurazione sveglia Configurazione sveglia Sveglia @@ -253,11 +253,11 @@ %1$s batteria rimanente: %2$s%% Ultima ricarica: %s \n Numero di ricariche: %s - Il tuo sonno + Sonno Sonno settimanale Sonno di oggi, obiettivo: %1$s Passi della settimana - Attività e sonno + Attività Aggiornamento del Firmware… Il file non può essere installato, il dispositivo non è pronto. %1$s: %2$s %3$s @@ -430,11 +430,11 @@ ogni ora Esportazione del database fallita! Per favore controlla le impostazioni. Azioni tasto - Specifica le azioni alla pressione del pulsante del Mi Band 2 + Specifica le azioni alla pressione del pulsante Conteggio pressione tasto - Numero di volte che il tasto deve essere premuto per inviare un messaggio in broadcast + Numero di volte che il tasto deve essere premuto per generare un Evento 1. Successivo medesimo numero di volte che il tasto deve essere premuto per un Evento 2 e così via. Messaggio da inviare in broadcast - Numero di pressioni del tasto per il messaggio in broadcast raggiunto + Messaggio inviato con l\'evento. Il parametro `button_id` è aggiunto automaticamente al ogni messaggio. Abilita azioni tasto Abilita azioni selezionando un numero specifico di pressioni del tasto Abilita vibrazione band @@ -484,7 +484,7 @@ Notifiche Gadgetbridge XWatch Acceso - Blocca le notifiche da tutte le applicazioni + Blocca tutte le notifiche Consenti le notifiche da tutte le applicazioni Si sta per installare il firmware %s sul Mi Band 3. \n @@ -602,7 +602,7 @@ Passi mancanti: %1$d Passi eccedenti: %1$d Vuoi ripristinare alle impostazioni di fabbrica\? - Effettuare il ripristino delle impostazioni di fabbrica cancellerà tutti i dati presenti sul dispositivo connesso (se supportato). I dispositivi Xiaomi/Huami cambieranno anche il proprio MAC Address Bluetooth, in modo da risultare dispositivi nuovi per Gadgetbrige. + Effettuare il ripristino delle impostazioni di fabbrica cancellerà tutti i dati presenti sul dispositivo connesso (se supportato). I dispositivi Xiaomi/Huami cambiano anche MAC Address Bluetooth, e in modo risultano dispositivi nuovi per Gadgetbrige. Casio GB-6900 Filtro Notifiche L\'app non deve trovarsi nella blacklist per essere configurata @@ -676,15 +676,15 @@ Obiettivo giornaliero: tempo di attività in minuti Mi Scale 2 BFH-16 - Stai per installare il firmware %s sul tuo Amazfit Cor 2. -\n -\nAssicurati di installare il file .fw e successivamente il file .res. L\' Amazfit Cor 2 si riavvierà dopo aver installato il file .fw. -\n -\nNota: non è necessario installare .res se è esattamente lo stesso di quello precedentemente installato. -\n -\nPROCEDI A TUO RISCHIO! -\n -\nNON COMPLETAMENTE TESTATO, PROBABILMENTE DOVRAI FLASHARE IL FIRMWARE BEATS_W SE IL NOME DEL TUO DISPOSITIVO è \"Amazfit Band 2\" + Stai per installare il firmware %s sul tuo Amazfit Cor 2. +\n +\nAssicurati di installare il file .fw e successivamente il file .res. La band si riavvierà dopo aver installato il file .fw. +\n +\nNota: non è necessario installare .res se è esattamente lo stesso di quello installato in precedenza. +\n +\nPROCEDI A TUO RISCHIO! +\n +\nCOMPLETAMENTE NON TESTATO, PROBABILMENTE DOVRAI FLASHARE IL FIRMWARE BEATS_W SE IL NOME DEL TUO DISPOSITIVO è \"Amazfit Band 2\" Olandese Turco Ucraino @@ -706,4 +706,72 @@ Limite inferiore Limite Superiore nodomain.freeyourgadget.gadgetbridge.ButtonPressed + Impostazioni dei grafici + Mostra le medie nei grafici + Intervallo dei grafici + L\'intervallo dei grafici è impostato su di un mese + L\'intervallo dei grafici è impostato su di una settimana + Passi al mese + Sonno per mese + NFC + Consente ad altre applicazioni di accedere ai dati cardiaci in tempo reale mentre Gadgetbridge è collegato + Accesso ai dati cardiaci in tempo reale a terze parti + Utilizza un font personalizzato + Abilita questa opzione se il tuo dispositivo ha un firmware dei caratteri personalizzato per il supporto emoji + Il percorso di esportazione automatica del database è stato impostato su: + Esportazione automatica + Esporta DB + Importa DB + Esegui esportazione automatica ora + Esportazione database in corso… + Elimina db precedente + DB vuoto + Database vuoto + Esportazione e importazione + Attenzione! Premendo questo pulsante si cancella il database e si riparte da zero. + Passi: %1$02d + Riposo:% 1 $ s + Imposta sveglia dopo: + 5 minuti + 10 minuti + 20 minuti + 1 ora + Sempre visibile + Visibile solo se non viene aggiunto alcun dispositivo + Per visualizzare la traccia delle attività, installare un\'applicazione in grado di gestire i file GPX. + Impostazioni Makibes HR3 + Makibes HR3 + Amazfit Bip Lite + Trova telefono + Attivare \'\'Trova telefono\' + Usa la tua band per riprodurre la suoneria del tuo telefono. + Durata dello squillo in secondi + Durata + Questo dispositivo ha bisogno di una chiave di autenticazione segreta, premere a lungo sul dispositivo per inserirla. Leggi il wiki. + Amazfit GTR + Rosso + Arancione + Colore della frequenza cardiaca + Intervallo di sonno + Ultime 24 ore + Da mezzogiorno a mezzogiorno + Amazfit GTS + Fossil Q Hybrid + Orologio non connesso + forza della vibrazione: + Obiettivo in passi + Il cambiamento potrebbe richiedere qualche secondo… + Disattivare nuove scansioni BLE + Selezionare questa opzione se il dispositivo non può essere trovato durante il rilevamento + Bangle.js + Y5 + Evento 1 azione + Evento 2 azione + Evento 3 azione + Azione di pressione prolungata del pulsante + Snooze + Per il corretto funzionamento della scansione dei dispositivi occorre concedere e abilitare l\'accesso alla posizione + iTag + Consenti MTU elevato + Aumenta la velocità di trasferimento, ma potrebbe non funzionare su alcuni dispositivi Android. \ No newline at end of file From 8f0a407db9e54514535d55f3d49216574acc2b29 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Mon, 24 Feb 2020 14:29:11 +0100 Subject: [PATCH 3/3] bump version, add changelog, commit missing file --- CHANGELOG.md | 4 ++++ app/build.gradle | 4 ++-- app/src/main/res/xml/changelog_master.xml | 4 ++++ app/src/main/res/xml/devicesettings_sync_calendar.xml | 8 ++++++++ fastlane/metadata/android/en-US/changelogs/168.txt | 2 ++ 5 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/xml/devicesettings_sync_calendar.xml create mode 100644 fastlane/metadata/android/en-US/changelogs/168.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e2e9014d..99c2ca323 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ### Changelog +#### Version 0.42.1 +* Fix accepting/rejecting calls on Android 9 +* Mi Band 3/4, Amazfit Bip/Cor/GTS/GTR: Option to sync calender events as reminder + #### Version 0.42.0 * Initial iTag support * Fix indefinitely lasting bluetooth scans when location permission has not been granted diff --git a/app/build.gradle b/app/build.gradle index a1b545e45..cb0ec42ec 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -25,8 +25,8 @@ android { targetSdkVersion 28 // Note: always bump BOTH versionCode and versionName! - versionName "0.42.0" - versionCode 167 + versionName "0.42.1" + versionCode 168 vectorDrawables.useSupportLibrary = true } buildTypes { diff --git a/app/src/main/res/xml/changelog_master.xml b/app/src/main/res/xml/changelog_master.xml index c9deff023..5f6349d9b 100644 --- a/app/src/main/res/xml/changelog_master.xml +++ b/app/src/main/res/xml/changelog_master.xml @@ -1,5 +1,9 @@ + + Fix accepting/rejecting calls on Android 9 + Mi Band 3/4, Amazfit Bip/Cor/GTS/GTR: Option to sync calender events as reminder + Initial iTag support Fix indefinitely lasting bluetooth scans when location permission has not been granted diff --git a/app/src/main/res/xml/devicesettings_sync_calendar.xml b/app/src/main/res/xml/devicesettings_sync_calendar.xml new file mode 100644 index 000000000..58c66b1b9 --- /dev/null +++ b/app/src/main/res/xml/devicesettings_sync_calendar.xml @@ -0,0 +1,8 @@ + + + + diff --git a/fastlane/metadata/android/en-US/changelogs/168.txt b/fastlane/metadata/android/en-US/changelogs/168.txt new file mode 100644 index 000000000..087149a1b --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/168.txt @@ -0,0 +1,2 @@ +* Fix accepting/rejecting calls on Android 9 +* Mi Band 3/4, Amazfit Bip/Cor/GTS/GTR: Option to sync calender events as reminder