From 5caa8e909774506e4c103cd6b1ed9f03be86f950 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Tue, 15 Oct 2019 20:30:01 +0200 Subject: [PATCH 001/112] Amazfip Bip Lite: Support firmware installation Closes #1681 Closes #1682 --- .../amazfitbip/AmazfitBipLiteCoordinator.java | 3 +- .../amazfitbip/AmazfitBipLiteFWHelper.java | 44 +++++++++ .../AmazfitBipLiteFWInstallHandler.java | 49 ++++++++++ .../AmazfitBipLiteFirmwareInfo.java | 94 +++++++++++++++++++ .../amazfitbip/AmazfitBipLiteSupport.java | 7 +- app/src/main/res/values/strings.xml | 1 + 6 files changed, 195 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipLiteFWHelper.java create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipLiteFWInstallHandler.java create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitbip/AmazfitBipLiteFirmwareInfo.java diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipLiteCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipLiteCoordinator.java index b2ce87a0b..7a252c054 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipLiteCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipLiteCoordinator.java @@ -55,7 +55,8 @@ public class AmazfitBipLiteCoordinator extends AmazfitBipCoordinator { @Override public InstallHandler findInstallHandler(Uri uri, Context context) { - return null; + AmazfitBipLiteFWInstallHandler handler = new AmazfitBipLiteFWInstallHandler(uri, context); + return handler.isValid() ? handler : null; } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipLiteFWHelper.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipLiteFWHelper.java new file mode 100644 index 000000000..812ce5bda --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipLiteFWHelper.java @@ -0,0 +1,44 @@ +/* Copyright (C) 2016-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele + Gobbetti + + This file is part of Gadgetbridge. + + Gadgetbridge is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Gadgetbridge is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . */ +package nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitbip; + +import android.content.Context; +import android.net.Uri; + +import androidx.annotation.NonNull; + +import java.io.IOException; + +import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiFWHelper; +import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip.AmazfitBipLiteFirmwareInfo; + +public class AmazfitBipLiteFWHelper extends HuamiFWHelper { + + public AmazfitBipLiteFWHelper(Uri uri, Context context) throws IOException { + super(uri, context); + } + + @NonNull + @Override + protected void determineFirmwareInfo(byte[] wholeFirmwareBytes) { + firmwareInfo = new AmazfitBipLiteFirmwareInfo(wholeFirmwareBytes); + if (!firmwareInfo.isHeaderValid()) { + throw new IllegalArgumentException("Not a an Amazifit Bip Lite firmware"); + } + } +} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipLiteFWInstallHandler.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipLiteFWInstallHandler.java new file mode 100644 index 000000000..0266eb49a --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipLiteFWInstallHandler.java @@ -0,0 +1,49 @@ +/* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer + + This file is part of Gadgetbridge. + + Gadgetbridge is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Gadgetbridge is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . */ +package nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitbip; + +import android.content.Context; +import android.net.Uri; + +import java.io.IOException; + +import nodomain.freeyourgadget.gadgetbridge.R; +import nodomain.freeyourgadget.gadgetbridge.devices.miband.AbstractMiBandFWHelper; +import nodomain.freeyourgadget.gadgetbridge.devices.miband.AbstractMiBandFWInstallHandler; +import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; +import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; + +class AmazfitBipLiteFWInstallHandler extends AbstractMiBandFWInstallHandler { + AmazfitBipLiteFWInstallHandler(Uri uri, Context context) { + super(uri, context); + } + + @Override + protected String getFwUpgradeNotice() { + return mContext.getString(R.string.fw_upgrade_notice_amazfitbip_lite, helper.getHumanFirmwareVersion()); + } + + @Override + protected AbstractMiBandFWHelper createHelper(Uri uri, Context context) throws IOException { + return new AmazfitBipLiteFWHelper(uri, context); + } + + @Override + protected boolean isSupportedDeviceType(GBDevice device) { + return device.getType() == DeviceType.AMAZFITBIP_LITE; + } +} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitbip/AmazfitBipLiteFirmwareInfo.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitbip/AmazfitBipLiteFirmwareInfo.java new file mode 100644 index 000000000..f567362f4 --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitbip/AmazfitBipLiteFirmwareInfo.java @@ -0,0 +1,94 @@ +/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer + + This file is part of Gadgetbridge. + + Gadgetbridge is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Gadgetbridge is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . */ +package nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip; + +import java.util.HashMap; +import java.util.Map; + +import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; +import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; +import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.HuamiFirmwareInfo; +import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.HuamiFirmwareType; +import nodomain.freeyourgadget.gadgetbridge.util.ArrayUtils; + +public class AmazfitBipLiteFirmwareInfo extends HuamiFirmwareInfo { + + // this is the same as Bip and Cor + private static final byte[] FW_HEADER = new byte[]{ + 0x00, (byte) 0x98, 0x00, 0x20, (byte) 0xA5, 0x04, 0x00, 0x20, (byte) 0xAD, 0x04, 0x00, 0x20, (byte) 0xC5, 0x04, 0x00, 0x20 + }; + + + private static Map crcToVersion = new HashMap<>(); + + static { + // firmware + crcToVersion.put(11059, "1.1.6.02"); + + // Latin Firmware + + + // resources + crcToVersion.put(57510, "1.1.6.02"); + + // font + crcToVersion.put(61054, "8"); + crcToVersion.put(59577, "9 (Latin)"); + } + + public AmazfitBipLiteFirmwareInfo(byte[] bytes) { + super(bytes); + } + + @Override + protected HuamiFirmwareType determineFirmwareType(byte[] bytes) { + if (ArrayUtils.startsWith(bytes, NEWRES_HEADER)) { + if ((bytes.length <= 100000) || (bytes.length > 700000)) { // dont know how to distinguish from Cor/Mi Band 3 .res + return HuamiFirmwareType.INVALID; + } + return HuamiFirmwareType.RES; + } + if (ArrayUtils.startsWith(bytes, FW_HEADER)) { + if (searchString32BitAligned(bytes, "Amazfit Bip Lite")) { + return HuamiFirmwareType.FIRMWARE; + } + return HuamiFirmwareType.INVALID; + } + if (ArrayUtils.startsWith(bytes, WATCHFACE_HEADER)) { + return HuamiFirmwareType.WATCHFACE; + } + if (ArrayUtils.startsWith(bytes, NEWFT_HEADER)) { + if (bytes[10] == 0x01) { + return HuamiFirmwareType.FONT; + } else if (bytes[10] == 0x02 || bytes[10] == 0x0A) { + return HuamiFirmwareType.FONT_LATIN; + } + } + + return HuamiFirmwareType.INVALID; + } + + @Override + public boolean isGenerallyCompatibleWith(GBDevice device) { + return isHeaderValid() && device.getType() == DeviceType.AMAZFITBIP_LITE; + } + + @Override + protected Map getCrcMap() { + return crcToVersion; + } +} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitbip/AmazfitBipLiteSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitbip/AmazfitBipLiteSupport.java index fb6c6bb61..339e9317d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitbip/AmazfitBipLiteSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitbip/AmazfitBipLiteSupport.java @@ -20,7 +20,10 @@ package nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip; import android.content.Context; import android.net.Uri; +import java.io.IOException; + import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiFWHelper; +import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitbip.AmazfitBipLiteFWHelper; public class AmazfitBipLiteSupport extends AmazfitBipSupport { @@ -35,7 +38,7 @@ public class AmazfitBipLiteSupport extends AmazfitBipSupport { } @Override - public HuamiFWHelper createFWHelper(Uri uri, Context context) { - return null; + public HuamiFWHelper createFWHelper(Uri uri, Context context) throws IOException { + return new AmazfitBipLiteFWHelper(uri, context); } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index bbe2a38f4..76abbe50a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -55,6 +55,7 @@ FW/App installer You are about to install the %s. You are about to install the %s firmware on your Amazfit Bip.\n\nPlease make sure to install the .fw file, then the .res file, and finally the .gps file. Your watch will reboot after installing the .fw file.\n\nNote: You do not have to install .res and .gps if these files are exactly the same as the ones previously installed.\n\nPROCEED AT YOUR OWN RISK! + You are about to install the %s firmware on your Amazfit Bip Lite.\n\nPlease make sure to install the .fw file, and after that the .res file. Your watch will reboot after installing the .fw file.\n\nNote: You do not have to install .res if it is exactly the same as the one previously installed.\n\nPROCEED AT YOUR OWN RISK! You are about to install the %s firmware on your Amazfit Cor.\n\nPlease make sure to install the .fw file, and after that the .res file. Your band will reboot after installing the .fw file.\n\nNote: You do not have to install .res if it is exactly the same as the one previously installed.\n\nPROCEED AT YOUR OWN RISK! You are about to install the %s firmware on your Amazfit Cor 2. \n From 97d6827ca00e16afa73fc5324e8b913784c2b4f1 Mon Sep 17 00:00:00 2001 From: Rafael Fontenelle Date: Sat, 12 Oct 2019 21:52:39 +0000 Subject: [PATCH 002/112] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (711 of 711 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/pt_BR/ --- app/src/main/res/values-pt-rBR/strings.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 3cf8f2bce..db4592514 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -765,8 +765,9 @@ Makibes HR3 Amazfit Bip Lite Encontrar telefone - Ativar encontrar telefone + Ativar \"Encontrar telefone\" Use sua pulseira para reproduzir o toque sonoro do seu celular. Duração do toque sonoro em segundos Duração + Esse dispositivo precisa de sua chave de autenticação secreta, realize pressionamento longo no dispositivo para inseri-lo. Leia o wiki. \ No newline at end of file From 368505eb4150629db9adddc8755254da4a246bea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sat, 12 Oct 2019 19:43:20 +0000 Subject: [PATCH 003/112] Translated using Weblate (English) Currently translated at 100.0% (711 of 711 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/en/ --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 76abbe50a..3d7ab28a1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -448,7 +448,7 @@ Use heart rate sensor to improve sleep detection Device time offset in hours (for detecting sleep of shift workers) Find phone - Enable find phone + Turn on \\\'Find phone\\\' Use your band to play your phone\'s ringtone. Ring duration in seconds Date format From 591b35732ae549badb5f79e46a1582510ecdf2b3 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Sat, 12 Oct 2019 19:00:14 +0000 Subject: [PATCH 004/112] Translated using Weblate (Hebrew) Currently translated at 99.9% (710 of 711 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/he/ --- app/src/main/res/values-he/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index d60ff5c45..2a292a311 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -759,4 +759,5 @@ ניתן להשתמש בצמיד כדי שהטלפון שלך ישמיע צלצול. משך זמן הצלצול בשניות משך + למכשיר זה נדרש מפתח אימות סודי, יש לגעת נגיעה ארוכה על המכשיר כדי להזין אותו. פרטים נוספים בוויקי. \ No newline at end of file From 06e8e2833c829d2025c462aafb7a157a23c122ce Mon Sep 17 00:00:00 2001 From: FransM Date: Sat, 12 Oct 2019 18:43:53 +0000 Subject: [PATCH 005/112] Translated using Weblate (Dutch) Currently translated at 99.2% (705 of 711 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/nl/ --- app/src/main/res/values-nl/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 2fb2246c2..af03566fd 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -347,7 +347,7 @@ Tijd Tijd & datum Knoppen acties - Specificeer actie voor de Mi Band knopdruk + Specificeer actie voor de Mi Band 2 knopdruk Aantal knopdrukken Aantal knopdrukken nodig om een bericht te sturen Uit te sturen bericht From 17a35901c603417ada7f50176bc1ee67bee63b39 Mon Sep 17 00:00:00 2001 From: ButterflyOfFire Date: Sat, 12 Oct 2019 21:05:12 +0000 Subject: [PATCH 006/112] Translated using Weblate (French) Currently translated at 100.0% (711 of 711 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/fr/ --- app/src/main/res/values-fr/strings.xml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 20c321318..566ef10bc 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -433,7 +433,7 @@ Temps de sommeil préféré en heures Activer tâche de fond JS Si activé, autorise l\'affichage de la météo, niveau de batterie, etc. Activité Web View - Connexion + Connexion … Vous êtes sur le point d\'installer le micrologiciel %s sur votre Amazfit Cor. \n \nVeuillez installer le fichier .fw, puis le fichier .res. Votre montre redémarrera après installation du fichier .fw. @@ -626,7 +626,7 @@ Temps de sommeil préféré en heures Mode Filtre Mode Configuration Sauvegarder la configuration - Non connecté, l\'alarme n\'est pas définie + Non connecté, l’alarme n’est pas définie. Notification de déconnexion Paramètres ZeTime Paramètres Fréquence Cardiaque @@ -720,4 +720,19 @@ Temps de sommeil préféré en heures Gamme des graphiques Pas par mois Sommeil par mois + NFC + Utiliser une police personnalisée + Exportation de la base de données … + Exportation et importation + Étapes : %1$02d + État et alarmes + Régler l’alarme après : + 5 minutes + 10 minutes + 20 minutes + 1 heure + Toujours visible + Visible uniquement si aucun appareil n\'est ajouté + Durée de la sonnerie en secondes + Durée \ No newline at end of file From 63de6634cd62d2a9170090348931733780e56cd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9bastien=20Robespi?= Date: Sat, 12 Oct 2019 21:35:47 +0000 Subject: [PATCH 007/112] Translated using Weblate (French) Currently translated at 100.0% (711 of 711 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/fr/ --- app/src/main/res/values-fr/strings.xml | 40 ++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 566ef10bc..7609c9530 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -684,14 +684,14 @@ Temps de sommeil préféré en heures Changez la clé auteur à une clé générale sur tous vos appareils Android sur lesquels vous souhaitez vous connecter. La précédente clé par défaut était 0123456789@ABCDE BFH-16 Vous êtes sur le point d\'installer le micrologiciel %s sur votre Amazfit Cor 2. -\n +\n \nVeuillez installer le fichier .fw, puis le fichier .res. Votre montre redémarrera après installation du .fw. \n -\nNote : Il n\'est pas nécessaire d\'installer le fichier .res si celui-ci est identique à celui installé précédemment. -\n -\nCONTINUEZ À VOS RISQUES ! +\nNote : il n\'est pas nécessaire d\'installer le fichier .res si celui-ci est identique à celui installé précédemment. \n -\nNON TESTÉ, IL PEUT ÊTRE NÉCESSAIRE DE FLASH UN micrologiciel BEATS_W SI LE NOM DE L\'APPAREIL EST \"Amazfit Band 2\" +\nCONTINUEZ À VOS RISQUES ! +\n +\nNON TESTÉ, IL PEUT ÊTRE NÉCESSAIRE DE FLASHER UN MICROLOGICIEL BEATS_W SI LE NOM DE L\'APPAREIL EST « Amazfit Band 2 » Néerlandais Turc Ukrainien @@ -735,4 +735,34 @@ Temps de sommeil préféré en heures Visible uniquement si aucun appareil n\'est ajouté Durée de la sonnerie en secondes Durée + La portée des graphs est réglée sur un mois + La portée des graphs est réglée sur une semaine + Mijia Smart Clock + Permettre aux autres applis d\'accéder aux données de fréquence cardiaque en temps réel lorsque Gadgetbridge est connecté + Accès tiers fréq. cardiaque + À activer si votre appareil a une police spéciale embarquée pour prendre en charge les émoticônes + L\'export automatique des données est réglé vers : + Export auto + Export de données + Import de données + Lancer l\'export maintenant + Supprimer les anciennes données + Vider la base de données + Vide la base de données + Attention ! Ce bouton détruit votre base de données et réinitialise. + Réveil + "Dormir %1$ s" + + %d heure + %d heures + + Bouton pour connecter un nouvel appareil + Pour visualiser votre géolocalisation, installez une appli qui lit les fichiers GPX. + Réglages Makibes HR3 + Makibes HR3 + Amazfit Bip Lite + Trouver le téléphone + Activer « Trouver le tél. » + Utilisez votre bande pour lire l\'alarme de votre téléphone. + Cet appareil a besoin d\'une clé d\'auth. Pression longue sur celui-ci pour la saisir. Lisez le wiki. \ No newline at end of file From 9f60d49bee00aa61a6daed135ac5314d195f4ed2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=B0=91=E4=B8=BE?= Date: Sun, 13 Oct 2019 03:20:53 +0000 Subject: [PATCH 008/112] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (711 of 711 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/ --- app/src/main/res/values-zh-rCN/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 3bf151cf2..3cdd4d045 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -766,4 +766,5 @@ 使用您的手环以在手机上播放铃声。 铃声将持续数秒 持续 + 此设备需要认证密钥,请在设备上长按以输入密钥。具体请阅读 Wiki 。 \ No newline at end of file From 92780f5abde9af08d0b246c571f0948312ca0991 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sat, 12 Oct 2019 19:41:30 +0000 Subject: [PATCH 009/112] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 97.9% (696 of 711 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/nb_NO/ --- app/src/main/res/values-nb-rNO/strings.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 8670be201..2d903e5a1 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -755,4 +755,11 @@ For å vise aktivitetsspor, installer et program som kan håndtere GPX-filer. Makibes HR3-innstillinger Makibes HR3 + Amazfit Bip Lite + Finn telefon + Skru på \"Finn telefon\" + Bruk båndet ditt til å spille av telefonens ringetone. + Anropsvarighet i sekunder + Varighet + Denne enheten trenger en hemmelig identitetsbekreftelsesnøkkel. Trykk lenge på enheten for å skrive den inn. Les wiki-en. \ No newline at end of file From 408bcda087a875c14535e6978225b5ec355d3238 Mon Sep 17 00:00:00 2001 From: Marc Laporte Date: Tue, 15 Oct 2019 12:14:36 -0400 Subject: [PATCH 010/112] Fix a typo --- CHANGELOG.md | 2 +- app/src/main/res/xml/changelog_master.xml | 2 +- fastlane/metadata/android/en-US/changelogs/158.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 748b070ab..314a28176 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ #### Version 0.37.0 * Initial Makibes HR3 support -* Amazfit Bip Lite: Inittal working support, firmware update is disabled for now (we do not have any firmware for testing) +* Amazfit Bip Lite: Initial working support, firmware update is disabled for now (we do not have any firmware for testing) * Amazfit Cor 2: Enable Emoji Font setting and 3rd party HR access * Find Phone now also vibration in addition to playing the ring tone * ID115: All settings are now per-device diff --git a/app/src/main/res/xml/changelog_master.xml b/app/src/main/res/xml/changelog_master.xml index de4646768..fd13a1b16 100644 --- a/app/src/main/res/xml/changelog_master.xml +++ b/app/src/main/res/xml/changelog_master.xml @@ -2,7 +2,7 @@ Initial Makibes HR3 support - Amazfit Bip Lite: Inittal working support, firmware update is disabled for now (we do not have any firmware for testing) + Amazfit Bip Lite: Initial working support, firmware update is disabled for now (we do not have any firmware for testing) Amazfit Cor 2: Enable Emoji Font setting and 3rd party HR access Find Phone now also vibration in addition to playing the ring tone ID115: All settings are now per-device diff --git a/fastlane/metadata/android/en-US/changelogs/158.txt b/fastlane/metadata/android/en-US/changelogs/158.txt index ea026740a..7cefbc2e6 100644 --- a/fastlane/metadata/android/en-US/changelogs/158.txt +++ b/fastlane/metadata/android/en-US/changelogs/158.txt @@ -1,5 +1,5 @@ * Initial Makibes HR3 support -* Amazfit Bip Lite: Inittal working support, firmware update is disabled for now (we do not have any firmware for testing) +* Amazfit Bip Lite: Initial working support, firmware update is disabled for now (we do not have any firmware for testing) * Amazfit Cor 2: Enable Emoji Font setting and 3rd party HR access * Find Phone now also vibration in addition to playing the ring tone * ID115: All settings are now per-device From 2c718ecd0153c74d264b74b174c95967f302fcd6 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Tue, 15 Oct 2019 20:46:39 +0200 Subject: [PATCH 011/112] bump version, add changelog --- CHANGELOG.md | 3 +++ app/build.gradle | 4 ++-- app/src/main/res/xml/changelog_master.xml | 3 +++ fastlane/metadata/android/en-US/changelogs/159.txt | 1 + 4 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/159.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 314a28176..a25b8ee75 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ ### Changelog +#### Version 0.37.1 +* Amazfit Bip Lite: Support flashing firmware and watchfaces + #### Version 0.37.0 * Initial Makibes HR3 support * Amazfit Bip Lite: Initial working support, firmware update is disabled for now (we do not have any firmware for testing) diff --git a/app/build.gradle b/app/build.gradle index f20bebb8f..90b1f97e1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -25,8 +25,8 @@ android { targetSdkVersion 27 // Note: always bump BOTH versionCode and versionName! - versionName "0.37.0" - versionCode 158 + versionName "0.37.1" + versionCode 159 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 fd13a1b16..3b07ec6db 100644 --- a/app/src/main/res/xml/changelog_master.xml +++ b/app/src/main/res/xml/changelog_master.xml @@ -1,5 +1,8 @@ + + Amazfit Bip Lite: Support flashing firmware and watchfaces + Initial Makibes HR3 support Amazfit Bip Lite: Initial working support, firmware update is disabled for now (we do not have any firmware for testing) diff --git a/fastlane/metadata/android/en-US/changelogs/159.txt b/fastlane/metadata/android/en-US/changelogs/159.txt new file mode 100644 index 000000000..7aba1f760 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/159.txt @@ -0,0 +1 @@ +* Amazfit Bip Lite: Support flashing firmware and watchfaces From 45184c4bbc73de9ea7b7842da01eef372b1a3d78 Mon Sep 17 00:00:00 2001 From: Cre3per Date: Wed, 16 Oct 2019 15:37:29 +0200 Subject: [PATCH 012/112] makibes hr3 should now support the english version --- .../devices/makibeshr3/MakibesHR3Constants.java | 2 +- .../devices/makibeshr3/MakibesHR3Coordinator.java | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/makibeshr3/MakibesHR3Constants.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/makibeshr3/MakibesHR3Constants.java index 7a717c18b..ef022af65 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/makibeshr3/MakibesHR3Constants.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/makibeshr3/MakibesHR3Constants.java @@ -216,7 +216,7 @@ public final class MakibesHR3Constants { public static final byte ARG_SEND_NOTIFICATION_SOURCE_WEIBO = (byte) 0x13; public static final byte ARG_SEND_NOTIFICATION_SOURCE_KAKOTALK = (byte) 0x14; // ARG_SET_NOTIFICATION_SOURCE_* - // 02 (This is 00 and 01 during connection. I don't know what it does. Maybe clears notifications?) + // 02 (This is 00 and 01 during connection. Doesn't seem to do anything.) // ASCII public static final byte CMD_SEND_NOTIFICATION = (byte) 0x72; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/makibeshr3/MakibesHR3Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/makibeshr3/MakibesHR3Coordinator.java index d17f535e1..6187db77b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/makibeshr3/MakibesHR3Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/makibeshr3/MakibesHR3Coordinator.java @@ -18,7 +18,9 @@ package nodomain.freeyourgadget.gadgetbridge.devices.makibeshr3; import java.text.DateFormat; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Calendar; +import java.util.List; import android.app.Activity; import android.content.Context; @@ -145,9 +147,15 @@ public class MakibesHR3Coordinator extends AbstractDeviceCoordinator { public DeviceType getSupportedType(GBDeviceCandidate candidate) { String name = candidate.getDevice().getName(); - // TODO: Device discovery - if ((name != null) && name.equals("Y808")) { - return DeviceType.MAKIBESHR3; + List deviceNames = new ArrayList(){{ + add("Y808"); // Chinese version + add("MAKIBES HR3"); // English version + }}; + + if (name != null) { + if (deviceNames.contains(name)) { + return DeviceType.MAKIBESHR3; + } } return DeviceType.UNKNOWN; From 395f63d3c19bf11d02a868544889bab4252ad178 Mon Sep 17 00:00:00 2001 From: Cre3per Date: Wed, 16 Oct 2019 16:41:32 +0200 Subject: [PATCH 013/112] makibes hr3 now pairs/bonds. that way gb can reconnect after the band was disconnected. --- .../devices/makibeshr3/MakibesHR3Coordinator.java | 2 +- .../service/devices/makibeshr3/MakibesHR3DeviceSupport.java | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/makibeshr3/MakibesHR3Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/makibeshr3/MakibesHR3Coordinator.java index 6187db77b..ca023bc5c 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/makibeshr3/MakibesHR3Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/makibeshr3/MakibesHR3Coordinator.java @@ -170,7 +170,7 @@ public class MakibesHR3Coordinator extends AbstractDeviceCoordinator { @Override public int getBondingStyle() { - return BONDING_STYLE_NONE; + return BONDING_STYLE_BOND; } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/makibeshr3/MakibesHR3DeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/makibeshr3/MakibesHR3DeviceSupport.java index bc6830e25..cb78d9629 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/makibeshr3/MakibesHR3DeviceSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/makibeshr3/MakibesHR3DeviceSupport.java @@ -1,7 +1,3 @@ -// TODO: GB sometimes fails to connect until a connection with WearFit was made. This must be caused -// TODO: by GB, not by Makibes hr3 support. Charging the watch, attempting to pair, delete and -// TODO: re-add, scan for devices and go back, might also help. This needs further research. - // TODO: All the commands that aren't supported by GB should be added to device specific settings. // TODO: It'd be cool if we could change the language. There's no official way to do so, but the From b5e3374a9ee17f8e4a6752badca8202c5dec1b31 Mon Sep 17 00:00:00 2001 From: vanous Date: Sat, 12 Oct 2019 07:22:13 +0200 Subject: [PATCH 014/112] Limit sleep charts range --- .../charts/AbstractChartFragment.java | 23 +++++++++++++++++++ .../activities/charts/SleepChartFragment.java | 13 +++++++++-- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java index 3c49dbfa2..411c74293 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java @@ -712,6 +712,29 @@ public abstract class AbstractChartFragment extends AbstractGBFragment { return samples; } + protected List getSamplesofSleep(DBHandler db, GBDevice device) { + int SLEEP_HOUR_LIMIT = 13; + + int tsStart = getTSStart(); + Calendar day = GregorianCalendar.getInstance(); + day.setTimeInMillis(tsStart * 1000L); + day.set(Calendar.HOUR_OF_DAY, SLEEP_HOUR_LIMIT); + day.set(Calendar.MINUTE, 0); + day.set(Calendar.SECOND, 0); + tsStart = toTimestamp(day.getTime()); + + int tsEnd = getTSEnd(); + day.setTimeInMillis(tsEnd* 1000L); + day.set(Calendar.HOUR_OF_DAY, SLEEP_HOUR_LIMIT); + day.set(Calendar.MINUTE, 0); + day.set(Calendar.SECOND, 0); + tsEnd = toTimestamp(day.getTime()); + + List samples = (List) getSamples(db, device, tsStart, tsEnd); + ensureStartAndEndSamples(samples, tsStart, tsEnd); + return samples; + } + protected void ensureStartAndEndSamples(List samples, int tsStart, int tsEnd) { if (samples == null || samples.isEmpty()) { return; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SleepChartFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SleepChartFragment.java index 3d388c846..c5fb6529b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SleepChartFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SleepChartFragment.java @@ -44,6 +44,7 @@ import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Iterator; import java.util.List; import java.util.concurrent.TimeUnit; @@ -52,7 +53,6 @@ import nodomain.freeyourgadget.gadgetbridge.activities.HeartRateUtils; import nodomain.freeyourgadget.gadgetbridge.activities.charts.SleepAnalysis.SleepSession; import nodomain.freeyourgadget.gadgetbridge.database.DBHandler; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.ActivityAmount; import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind; import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample; import nodomain.freeyourgadget.gadgetbridge.util.DateTimeUtils; @@ -72,9 +72,18 @@ public class SleepChartFragment extends AbstractChartFragment { @Override protected ChartsData refreshInBackground(ChartsHost chartsHost, DBHandler db, GBDevice device) { - List samples = getSamples(db, device); + List samples = getSamplesofSleep(db, device); MySleepChartsData mySleepChartsData = refreshSleepAmounts(device, samples); + long tstart = mySleepChartsData.sleepSessions.get(0).getSleepStart().getTime() / 1000; + long tend = mySleepChartsData.sleepSessions.get(mySleepChartsData.sleepSessions.size() - 1).getSleepEnd().getTime() / 1000; + + for (Iterator iterator = (Iterator) samples.iterator(); iterator.hasNext(); ) { + ActivitySample sample = iterator.next(); + if (sample.getTimestamp() < tstart || sample.getTimestamp() > tend) { + iterator.remove(); + } + } DefaultChartsData chartsData = refresh(device, samples); return new MyChartsData(mySleepChartsData, chartsData); From 5c0c5ed952e93b80c6848f80de2fe07d24f42ec8 Mon Sep 17 00:00:00 2001 From: vanous Date: Tue, 15 Oct 2019 21:32:27 +0200 Subject: [PATCH 015/112] Check for non empty list of sleep sessions --- .../activities/charts/SleepChartFragment.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SleepChartFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SleepChartFragment.java index c5fb6529b..a4588850f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SleepChartFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SleepChartFragment.java @@ -75,13 +75,15 @@ public class SleepChartFragment extends AbstractChartFragment { List samples = getSamplesofSleep(db, device); MySleepChartsData mySleepChartsData = refreshSleepAmounts(device, samples); - long tstart = mySleepChartsData.sleepSessions.get(0).getSleepStart().getTime() / 1000; - long tend = mySleepChartsData.sleepSessions.get(mySleepChartsData.sleepSessions.size() - 1).getSleepEnd().getTime() / 1000; + if (mySleepChartsData.sleepSessions.size()>0) { + long tstart = mySleepChartsData.sleepSessions.get(0).getSleepStart().getTime() / 1000; + long tend = mySleepChartsData.sleepSessions.get(mySleepChartsData.sleepSessions.size() - 1).getSleepEnd().getTime() / 1000; - for (Iterator iterator = (Iterator) samples.iterator(); iterator.hasNext(); ) { - ActivitySample sample = iterator.next(); - if (sample.getTimestamp() < tstart || sample.getTimestamp() > tend) { - iterator.remove(); + for (Iterator iterator = (Iterator) samples.iterator(); iterator.hasNext(); ) { + ActivitySample sample = iterator.next(); + if (sample.getTimestamp() < tstart || sample.getTimestamp() > tend) { + iterator.remove(); + } } } DefaultChartsData chartsData = refresh(device, samples); From 7ed2c26b2f66d5fd42aeb82208a0bf9ef13dbe8c Mon Sep 17 00:00:00 2001 From: vanous Date: Mon, 21 Oct 2019 21:08:09 +0200 Subject: [PATCH 016/112] Catch crash during ChangeLog displaying --- .../gadgetbridge/activities/ControlCenterv2.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenterv2.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenterv2.java index 7afc7bc3a..0b75e6b72 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenterv2.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenterv2.java @@ -31,6 +31,7 @@ import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; import android.view.MenuItem; import android.view.View; +import android.widget.Toast; import androidx.annotation.NonNull; import androidx.appcompat.app.ActionBarDrawerToggle; @@ -202,7 +203,12 @@ public class ControlCenterv2 extends AppCompatActivity ChangeLog cl = createChangeLog(); if (cl.isFirstRun()) { - cl.getLogDialog().show(); + try { + cl.getLogDialog().show(); + } catch (Exception ignored){ + GB.toast(getBaseContext(), "Error showing Changelog", Toast.LENGTH_LONG, GB.ERROR); + + } } GBApplication.deviceService().start(); From 21525adaaeaf5b4031ad1efe513a3fc7cd0e5136 Mon Sep 17 00:00:00 2001 From: vanous Date: Mon, 21 Oct 2019 21:12:07 +0200 Subject: [PATCH 017/112] Add uncommited second occurance of the same --- .../gadgetbridge/activities/ControlCenterv2.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenterv2.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenterv2.java index 0b75e6b72..a9a0fd3be 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenterv2.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenterv2.java @@ -291,7 +291,11 @@ public class ControlCenterv2 extends AppCompatActivity return true; case R.id.external_changelog: ChangeLog cl = createChangeLog(); - cl.getFullLogDialog().show(); + try { + cl.getLogDialog().show(); + } catch (Exception ignored) { + GB.toast(getBaseContext(), "Error showing Changelog", Toast.LENGTH_LONG, GB.ERROR); + } return true; } From d627577e6fd3dada8a6bb1d53829c1090b8f6801 Mon Sep 17 00:00:00 2001 From: HardLight Date: Wed, 23 Oct 2019 20:11:52 +0300 Subject: [PATCH 018/112] Mi Band 4: Enable Emoji Font setting --- .../gadgetbridge/devices/huami/miband4/MiBand4Coordinator.java | 1 + 1 file changed, 1 insertion(+) 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 c451e8d49..b21acc66a 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 @@ -89,6 +89,7 @@ public class MiBand4Coordinator extends HuamiCoordinator { return new int[]{ R.xml.devicesettings_miband3, R.xml.devicesettings_wearlocation, + R.xml.devicesettings_custom_emoji_font, R.xml.devicesettings_dateformat, R.xml.devicesettings_nightmode, R.xml.devicesettings_liftwrist_display, From cbd47a81cc04ce15195959813a5a1a310cd92351 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Tue, 22 Oct 2019 21:53:38 +0200 Subject: [PATCH 019/112] Amazfit GTR: initial support for testing --- .../amazfitgtr/AmazfitGTRCoordinator.java | 61 +++++++++++++++++++ .../gadgetbridge/model/DeviceType.java | 1 + .../service/DeviceSupportFactory.java | 4 ++ .../huami/amazfitgtr/AmazfitGTRSupport.java | 44 +++++++++++++ .../gadgetbridge/util/DeviceHelper.java | 2 + app/src/main/res/values/strings.xml | 1 + 6 files changed, 113 insertions(+) create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgtr/AmazfitGTRCoordinator.java create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRSupport.java 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 new file mode 100644 index 000000000..5d9fc3ad7 --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgtr/AmazfitGTRCoordinator.java @@ -0,0 +1,61 @@ +/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele + Gobbetti, João Paulo Barraca + + This file is part of Gadgetbridge. + + Gadgetbridge is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Gadgetbridge is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . */ +package nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitgtr; + +import android.bluetooth.BluetoothDevice; +import android.content.Context; +import android.net.Uri; + +import androidx.annotation.NonNull; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler; +import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitbip.AmazfitBipCoordinator; +import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate; +import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; + +public class AmazfitGTRCoordinator extends AmazfitBipCoordinator { + private static final Logger LOG = LoggerFactory.getLogger(AmazfitGTRCoordinator.class); + + @Override + public DeviceType getDeviceType() { + return DeviceType.AMAZFITGTR; + } + + @NonNull + @Override + public DeviceType getSupportedType(GBDeviceCandidate candidate) { + try { + BluetoothDevice device = candidate.getDevice(); + String name = device.getName(); + if (name != null && name.equalsIgnoreCase("Amazfit GTR")) { + return DeviceType.AMAZFITGTR; + } + } catch (Exception ex) { + LOG.error("unable to check device support", ex); + } + return DeviceType.UNKNOWN; + } + + @Override + public InstallHandler findInstallHandler(Uri uri, Context context) { + return null; + } +} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java index 8e3bf22ea..22da2501c 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java @@ -40,6 +40,7 @@ public enum DeviceType { AMAZFITCOR2(15, R.drawable.ic_device_default, R.drawable.ic_device_default_disabled, R.string.devicetype_amazfit_cor2), MIBAND4(16, R.drawable.ic_device_miband2, R.drawable.ic_device_miband2_disabled, R.string.devicetype_miband4), AMAZFITBIP_LITE(17, R.drawable.ic_device_hplus, R.drawable.ic_device_hplus_disabled, R.string.devicetype_amazfit_bip_lite), + AMAZFITGTR(18, R.drawable.ic_device_hplus, R.drawable.ic_device_hplus_disabled, R.string.devicetype_amazfit_gtr), VIBRATISSIMO(20, R.drawable.ic_device_lovetoy, R.drawable.ic_device_lovetoy_disabled, R.string.devicetype_vibratissimo), LIVEVIEW(30, R.drawable.ic_device_default, R.drawable.ic_device_default_disabled, R.string.devicetype_liveview), HPLUS(40, R.drawable.ic_device_hplus, R.drawable.ic_device_hplus_disabled, R.string.devicetype_hplus), diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceSupportFactory.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceSupportFactory.java index ce3f7a039..4efede4db 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceSupportFactory.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceSupportFactory.java @@ -35,6 +35,7 @@ import nodomain.freeyourgadget.gadgetbridge.service.devices.hplus.HPlusSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.HuamiSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip.AmazfitBipLiteSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip.AmazfitBipSupport; +import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitgtr.AmazfitGTRSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitcor.AmazfitCorSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitcor2.AmazfitCor2Support; import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.miband3.MiBand3Support; @@ -141,6 +142,9 @@ public class DeviceSupportFactory { case AMAZFITBIP_LITE: deviceSupport = new ServiceDeviceSupport(new AmazfitBipLiteSupport(), EnumSet.of(ServiceDeviceSupport.Flags.BUSY_CHECKING)); break; + case AMAZFITGTR: + deviceSupport = new ServiceDeviceSupport(new AmazfitGTRSupport(), EnumSet.of(ServiceDeviceSupport.Flags.BUSY_CHECKING)); + break; case AMAZFITCOR: deviceSupport = new ServiceDeviceSupport(new AmazfitCorSupport(), EnumSet.of(ServiceDeviceSupport.Flags.BUSY_CHECKING)); break; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRSupport.java new file mode 100644 index 000000000..08183be60 --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRSupport.java @@ -0,0 +1,44 @@ +/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer, Matthieu + Baerts, Roi Greenberg + + This file is part of Gadgetbridge. + + Gadgetbridge is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Gadgetbridge is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . */ +package nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitgtr; + +import android.content.Context; +import android.net.Uri; + +import java.io.IOException; + +import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiFWHelper; +import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip.AmazfitBipSupport; + +public class AmazfitGTRSupport extends AmazfitBipSupport { + + @Override + public byte getCryptFlags() { + return (byte) 0x80; + } + + @Override + protected byte getAuthFlags() { + return 0x00; + } + + @Override + public HuamiFWHelper createFWHelper(Uri uri, Context context) throws IOException { + return null; + } +} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DeviceHelper.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DeviceHelper.java index e1af93727..096933338 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DeviceHelper.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DeviceHelper.java @@ -46,6 +46,7 @@ import nodomain.freeyourgadget.gadgetbridge.devices.hplus.EXRIZUK8Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.hplus.HPlusCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.hplus.MakibesF68Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitbip.AmazfitBipLiteCoordinator; +import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitgtr.AmazfitGTRCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.makibeshr3.MakibesHR3Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.hplus.Q8Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitbip.AmazfitBipCoordinator; @@ -207,6 +208,7 @@ public class DeviceHelper { result.add(new AmazfitBipLiteCoordinator()); result.add(new AmazfitCorCoordinator()); result.add(new AmazfitCor2Coordinator()); + result.add(new AmazfitGTRCoordinator()); result.add(new MiBand3Coordinator()); result.add(new MiBand4Coordinator()); result.add(new MiBand2HRXCoordinator()); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3d7ab28a1..adb4c79d4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -657,6 +657,7 @@ Amazfit Bip Lite Amazfit Cor Amazfit Cor 2 + Amazfit GTR Vibratissimo LiveView HPlus From c2c240d7beb8eb7faa6f3e340ae08f2d2546aec1 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Thu, 24 Oct 2019 21:51:10 +0200 Subject: [PATCH 020/112] Amazfit GTR: Enforce auth key input when pairing, try to fix notifications --- .../devices/huami/amazfitgtr/AmazfitGTRCoordinator.java | 5 +++++ .../service/devices/huami/amazfitbip/AmazfitBipSupport.java | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) 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 5d9fc3ad7..50cc3345b 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 @@ -58,4 +58,9 @@ public class AmazfitGTRCoordinator extends AmazfitBipCoordinator { public InstallHandler findInstallHandler(Uri uri, Context context) { return null; } + + @Override + public int getBondingStyle() { + return BONDING_STYLE_REQUIRE_KEY; + } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitbip/AmazfitBipSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitbip/AmazfitBipSupport.java index 469e360c7..e2fc11879 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitbip/AmazfitBipSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitbip/AmazfitBipSupport.java @@ -124,7 +124,7 @@ public class AmazfitBipSupport extends HuamiSupport { appSuffix = appName.getBytes(); suffixlength = appSuffix.length; } - if (gbDevice.getType() == DeviceType.MIBAND4) { + if (gbDevice.getType() == DeviceType.MIBAND4 || gbDevice.getType() == DeviceType.AMAZFITGTR) { prefixlength += 4; } @@ -134,7 +134,7 @@ public class AmazfitBipSupport extends HuamiSupport { byte[] command = new byte[length + prefixlength + suffixlength]; int pos = 0; command[pos++] = (byte) alertCategory.getId(); - if (gbDevice.getType() == DeviceType.MIBAND4) { + if (gbDevice.getType() == DeviceType.MIBAND4 || gbDevice.getType() == DeviceType.AMAZFITGTR) { command[pos++] = 0; // TODO command[pos++] = 0; command[pos++] = 0; From 4110f0764a2a7be55885f0bcd799d0eab42a7357 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Thu, 24 Oct 2019 22:35:57 +0200 Subject: [PATCH 021/112] Amazfit GTR: enable firmware flashing for those who dare (untested) --- .../amazfitgtr/AmazfitGTRCoordinator.java | 3 +- .../huami/amazfitgtr/AmazfitGTRFWHelper.java | 44 +++++++ .../AmazfitGTRFWInstallHandler.java | 49 ++++++++ .../amazfitgtr/AmazfitGTRFirmwareInfo.java | 116 ++++++++++++++++++ .../huami/amazfitgtr/AmazfitGTRSupport.java | 3 +- app/src/main/res/values/strings.xml | 1 + 6 files changed, 214 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgtr/AmazfitGTRFWHelper.java create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgtr/AmazfitGTRFWInstallHandler.java create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRFirmwareInfo.java 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 50cc3345b..568c167fc 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 @@ -56,7 +56,8 @@ public class AmazfitGTRCoordinator extends AmazfitBipCoordinator { @Override public InstallHandler findInstallHandler(Uri uri, Context context) { - return null; + AmazfitGTRFWInstallHandler handler = new AmazfitGTRFWInstallHandler(uri, context); + return handler.isValid() ? handler : null; } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgtr/AmazfitGTRFWHelper.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgtr/AmazfitGTRFWHelper.java new file mode 100644 index 000000000..ea770d694 --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgtr/AmazfitGTRFWHelper.java @@ -0,0 +1,44 @@ +/* Copyright (C) 2016-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele + Gobbetti + + This file is part of Gadgetbridge. + + Gadgetbridge is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Gadgetbridge is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . */ +package nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitgtr; + +import android.content.Context; +import android.net.Uri; + +import androidx.annotation.NonNull; + +import java.io.IOException; + +import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiFWHelper; +import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitgtr.AmazfitGTRFirmwareInfo; + +public class AmazfitGTRFWHelper extends HuamiFWHelper { + + public AmazfitGTRFWHelper(Uri uri, Context context) throws IOException { + super(uri, context); + } + + @NonNull + @Override + protected void determineFirmwareInfo(byte[] wholeFirmwareBytes) { + firmwareInfo = new AmazfitGTRFirmwareInfo(wholeFirmwareBytes); + if (!firmwareInfo.isHeaderValid()) { + throw new IllegalArgumentException("Not a an Amazifit GTR firmware"); + } + } +} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgtr/AmazfitGTRFWInstallHandler.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgtr/AmazfitGTRFWInstallHandler.java new file mode 100644 index 000000000..0b997c9de --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgtr/AmazfitGTRFWInstallHandler.java @@ -0,0 +1,49 @@ +/* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer + + This file is part of Gadgetbridge. + + Gadgetbridge is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Gadgetbridge is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . */ +package nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitgtr; + +import android.content.Context; +import android.net.Uri; + +import java.io.IOException; + +import nodomain.freeyourgadget.gadgetbridge.R; +import nodomain.freeyourgadget.gadgetbridge.devices.miband.AbstractMiBandFWHelper; +import nodomain.freeyourgadget.gadgetbridge.devices.miband.AbstractMiBandFWInstallHandler; +import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; +import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; + +class AmazfitGTRFWInstallHandler extends AbstractMiBandFWInstallHandler { + AmazfitGTRFWInstallHandler(Uri uri, Context context) { + super(uri, context); + } + + @Override + protected String getFwUpgradeNotice() { + return mContext.getString(R.string.fw_upgrade_notice_amazfitgtr, helper.getHumanFirmwareVersion()); + } + + @Override + protected AbstractMiBandFWHelper createHelper(Uri uri, Context context) throws IOException { + return new AmazfitGTRFWHelper(uri, context); + } + + @Override + protected boolean isSupportedDeviceType(GBDevice device) { + return device.getType() == DeviceType.AMAZFITGTR; + } +} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRFirmwareInfo.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRFirmwareInfo.java new file mode 100644 index 000000000..d4830455b --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRFirmwareInfo.java @@ -0,0 +1,116 @@ +/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer + + This file is part of Gadgetbridge. + + Gadgetbridge is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Gadgetbridge is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . */ +package nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitgtr; + +import java.util.HashMap; +import java.util.Map; + +import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; +import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; +import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.HuamiFirmwareInfo; +import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.HuamiFirmwareType; +import nodomain.freeyourgadget.gadgetbridge.util.ArrayUtils; + +public class AmazfitGTRFirmwareInfo extends HuamiFirmwareInfo { + private static final int FW_OFFSET = 2; + + private static final byte[] FW_HEADER = new byte[]{ + 0x09, 0x20, (byte) 0x99, 0x12, 0x01, 0x08 // completely nonsense probably + }; + + private static final byte[] GPS_ALMANAC_HEADER = new byte[]{ // probably wrong + (byte) 0xa0, (byte) 0x80, 0x08, 0x00, (byte) 0x8b, 0x07 + }; + + private static final byte[] GPS_CEP_HEADER = new byte[]{ // probably wrong + 0x2a, 0x12, (byte) 0xa0, 0x02 + }; + + // gps detection is totally bogus, just the first 16 bytes + private static final byte[][] GPS_HEADERS = { + new byte[]{ + 0x73, 0x75, 0x68, (byte) 0xd0, 0x70, 0x73, (byte) 0xbb, 0x5a, + 0x3e, (byte) 0xc3, (byte) 0xd3, 0x09, (byte) 0x9e, 0x1d, (byte) 0xd3, (byte) 0xc9 + } + }; + private static Map crcToVersion = new HashMap<>(); + + static { + // firmware + + // Latin Firmware + + // resources + + // font + + // gps + crcToVersion.put(62532, "18344,eb2f43f,126"); + } + + public AmazfitGTRFirmwareInfo(byte[] bytes) { + super(bytes); + } + + @Override + protected HuamiFirmwareType determineFirmwareType(byte[] bytes) { + if (ArrayUtils.equals(bytes, NEWRES_HEADER, COMPRESSED_RES_HEADER_OFFSET_NEW)) { + return HuamiFirmwareType.RES_COMPRESSED; + } + if (ArrayUtils.equals(bytes, FW_HEADER, FW_OFFSET)) { + if (searchString32BitAligned(bytes, "Amazfit GTR")) { + return HuamiFirmwareType.FIRMWARE; + } + return HuamiFirmwareType.INVALID; + } + if (ArrayUtils.startsWith(bytes, WATCHFACE_HEADER)) { + return HuamiFirmwareType.WATCHFACE; + } + if (ArrayUtils.startsWith(bytes, NEWFT_HEADER)) { + if (bytes[10] == 0x01) { + return HuamiFirmwareType.FONT; + } else if (bytes[10] == 0x02) { + return HuamiFirmwareType.FONT_LATIN; + } + } + + if (ArrayUtils.startsWith(bytes, GPS_ALMANAC_HEADER)) { + return HuamiFirmwareType.GPS_ALMANAC; + } + if (ArrayUtils.startsWith(bytes, GPS_CEP_HEADER)) { + return HuamiFirmwareType.GPS_CEP; + } + + for (byte[] gpsHeader : GPS_HEADERS) { + if (ArrayUtils.startsWith(bytes, gpsHeader)) { + return HuamiFirmwareType.GPS; + } + } + + return HuamiFirmwareType.INVALID; + } + + @Override + public boolean isGenerallyCompatibleWith(GBDevice device) { + return isHeaderValid() && device.getType() == DeviceType.AMAZFITGTR; + } + + @Override + protected Map getCrcMap() { + return crcToVersion; + } +} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRSupport.java index 08183be60..7b064a973 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRSupport.java @@ -23,6 +23,7 @@ import android.net.Uri; import java.io.IOException; import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiFWHelper; +import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitgtr.AmazfitGTRFWHelper; import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip.AmazfitBipSupport; public class AmazfitGTRSupport extends AmazfitBipSupport { @@ -39,6 +40,6 @@ public class AmazfitGTRSupport extends AmazfitBipSupport { @Override public HuamiFWHelper createFWHelper(Uri uri, Context context) throws IOException { - return null; + return new AmazfitGTRFWHelper(uri, context); } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index adb4c79d4..4101e3e37 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -66,6 +66,7 @@ \nPROCEED AT YOUR OWN RISK! \n \nCOMPLETELY UNTESTED, PROBABLY YOU NEED TO FLASH A BEATS_W FIRMWARE IF YOUR DEVICE NAME IS \"Amazfit Band 2\" + You are about to install the %s firmware on your Amazfit GTR.\n\nPlease make sure to install the .fw file, then the .res file, and finally the .gps file. Your watch will reboot after installing the .fw file.\n\nNote: You do not have to install .res and .gps if these files are exactly the same as the ones previously installed.\n\nPROCEED AT YOUR OWN RISK! You are about to install the %s firmware on your Mi Band 3.\n\nPlease make sure to install the .fw file, and after that the .res file. Your band will reboot after installing the .fw file.\n\nNote: You do not have to install .res if it is exactly the same as the one previously installed.\n\nPROCEED AT YOUR OWN RISK! You are about to install the %s firmware on your Mi Band 4.\n\nPlease make sure to install the .fw file, and after that the .res file. Your band will reboot after installing the .fw file.\n\nNote: You do not have to install .res if it is exactly the same as the one previously installed.\n\nPROCEED AT YOUR OWN RISK! You are about to install the %1$s and %2$s firmware, instead of the ones currently on your Mi Band. From 953f7b2850a43a9a361afddd698e726d6d857133 Mon Sep 17 00:00:00 2001 From: Rafael Fontenelle Date: Wed, 16 Oct 2019 20:22:19 +0000 Subject: [PATCH 022/112] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (712 of 712 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/pt_BR/ --- app/src/main/res/values-pt-rBR/strings.xml | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index db4592514..19bda4831 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -367,12 +367,12 @@ Conectando… Tirar captura de tela do dispositivo Blacklist do Calendário - Você está prestes a instalar o firmware %s no seu Amazip Bip. -\n -\nCertifique-se de instalar o firmware .gps, depois o arquivo .res e, finalmente, o arquivo .fw. Seu relógio será reiniciado após a instalação do arquivo .fw. -\n -\nNota: você não precisa instalar .res e .gps se esses arquivos forem exatamente os mesmos que os instalados anteriormente. -\n + Você está prestes a instalar o firmware %s no seu Amazfit Bip. +\n +\nCertifique-se de instalar o firmware .fw, depois o arquivo .res e finalmente o arquivo .gps. Seu relógio será reiniciado após a instalação do arquivo .fw. +\n +\nNota: você não precisa instalar .res e .gps se esses arquivos forem exatamente os mesmos que os instalados anteriormente. +\n \nPROSSIGA POR SUA CONTA E RISCO! Você está prestes a instalar o firmware %s no seu Amazfit Cor. \n @@ -770,4 +770,11 @@ Duração do toque sonoro em segundos Duração Esse dispositivo precisa de sua chave de autenticação secreta, realize pressionamento longo no dispositivo para inseri-lo. Leia o wiki. + Você está prestes a instalar o firmware %s no seu Amazit Bip Lite. +\n +\nCertifique-se de instalar o arquivo .fw, e depois o arquivo .res. Seu relógio será reiniciado após a instalação do arquivo .fw. +\n +\nNota: você não precisa instalar .res se esse arquivo for exatamente o mesmo que os instalados anteriormente. +\n +\nPROSSIGA POR SUA CONTA E RISCO! \ No newline at end of file From 6b25ce3b9e14c9649749516344b61ac69f7d653c Mon Sep 17 00:00:00 2001 From: FransM Date: Thu, 17 Oct 2019 16:46:55 +0000 Subject: [PATCH 023/112] Translated using Weblate (Dutch) Currently translated at 100.0% (712 of 712 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/nl/ --- app/src/main/res/values-nl/strings.xml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index af03566fd..7ff82a5ed 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -758,4 +758,17 @@ Makibes HR3 instellingen Makibes HR3 Amazfit Bip Lite + Vind telefoon + Zet \\\'Vind telefoon\\\' aan + Gebruik je band om de beltoon van je telefoon af te spelen. + Belduur in seconden + Duur + Dit apparaat heeft een geheime verificatiesleutel nodig, druk lang op het apparaat om deze in te voeren. Lees de wiki. + U staat op het punt om de firmware %s te installeren op uw Amazfit Bip Lite. +\n +\nZorg ervoor dat u het .fw-bestand installeert, daarna het .res-bestand en als laatste het .gps-bestand. Uw horloge wordt opnieuw gestart na het installeren van het .fw-bestand. +\n +\nOpmerking: U hoeft de .res niet te installeren als deze exact dezelfde is als degene die ervoor al was geïnstalleerd. +\n +\nGA VERDER OP EIGEN RISICO! \ No newline at end of file From 01d2dfe5a17c874cbd058a27b4dabd90db34c936 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=B0=91=E4=B8=BE?= Date: Thu, 17 Oct 2019 02:01:13 +0000 Subject: [PATCH 024/112] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (712 of 712 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/ --- app/src/main/res/values-zh-rCN/strings.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 3cdd4d045..8ff3f3c29 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -767,4 +767,11 @@ 铃声将持续数秒 持续 此设备需要认证密钥,请在设备上长按以输入密钥。具体请阅读 Wiki 。 + "您即将在米动手表青春版 Lite(Amazfit Bip Lite)上安装 %s 版本的固件 +\n +\n请确保先安装 .fw 文件,再安装 .res 文件。您的手环将会在安装了 .fw 文件后重启 +\n +\n备注:如果您安装的 .res 文件和之前相同,则无需安装 .res 文件 +\n +\n风险自担!" \ No newline at end of file From 5ca648ad83f211bdfae67aa8f53e62e67ced86fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Tue, 15 Oct 2019 22:58:07 +0000 Subject: [PATCH 025/112] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 97.9% (697 of 712 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/nb_NO/ --- app/src/main/res/values-nb-rNO/strings.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 2d903e5a1..290e78c39 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -762,4 +762,11 @@ Anropsvarighet i sekunder Varighet Denne enheten trenger en hemmelig identitetsbekreftelsesnøkkel. Trykk lenge på enheten for å skrive den inn. Les wiki-en. + Du er i ferd med å installere %s-fastvaren på din Amazfit Bip Lite. +\n +\nForsikre deg om at du installerer ..fw-fila, så .res-fila, og til sist gps-fila. Armbåndsuret ditt vil starte på nytt etter at .fw-fila er installert. +\n +\nMerk: Du trenger ikke å installere .res-filen hvis den er akkurat den samme som den som allerede er installert. +\n +\nFORTSETT PÅ EGEN RISIKO! \ No newline at end of file From d56dae0ca955d196777119462b114ccd9e18aa42 Mon Sep 17 00:00:00 2001 From: nautilusx Date: Sat, 19 Oct 2019 12:26:43 +0000 Subject: [PATCH 026/112] Translated using Weblate (German) Currently translated at 100.0% (712 of 712 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/de/ --- app/src/main/res/values-de/strings.xml | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index e37211021..c87748522 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -419,11 +419,11 @@ Nicht koppeln Geschwindigkeitszonen Du bist dabei, die Firmware %s auf deine Amazfit Bip zu installieren. -\n +\n \nBitte stelle sicher, dass du die .fw Datei, dann die .res Datei und schließlich die .gps Datei installierst. Deine Uhr wird nach der Installation der .fw Datei neu gestartet. -\n +\n \nHinweis: Du musst die .res und .gps nicht installieren, wenn diese Dateien genau die gleichen sind wie die zuvor installierten. -\n +\n \nINSTALLATION AUF EIGENE GEFAHR! Tastenaktionen Bestimmte Aktion bei Tastendruck auf dem Mi Band 2 @@ -446,7 +446,7 @@ Englisch Du bist dabei, die Firmware %s auf deine Amazfit Cor zu installieren. \n -\nBitte stelle sicher, dass du die .fw Datei und die .res Datei installierst. Dein Band wird nach der Installation der .fw Datei neu gestartet. +\nBitte stelle sicher, dass du die .fw Datei und danach die .res Datei installierst. Dein Band wird nach der Installation der .fw Datei neu gestartet. \n \nHinweis: Du musst .res nicht installieren, wenn es genau das gleiche ist, wie die zuvor installierte. \n @@ -694,17 +694,13 @@ Ändere den Authentifizierungsschlüssel in einen gemeinsamen Schlüssel auf all deinen Android-Geräten, von denen aus du eine Verbindung herstellen möchtet. Der bisherige Standardschlüssel für alle Geräte ist 0123456789@ABCDE BFH-16 Du bist dabei, die %s-Firmware auf deine Amazfit Cor 2 zu installieren. -\n -\n -\nBitte stelle sicher, dass Du die .fw-Datei und danach die .res-Datei installierst. Dein Band wird nach der Installation der.fw-Datei neu gestartet: -\n \n +\nBitte stelle sicher, dass Du die .fw-Datei und danach die .res-Datei installierst. Dein Band wird nach der Installation der.fw-Datei neu gestartet. +\n \nHinweis: Du musst .res nicht installieren, wenn es genau das gleiche ist, wie die zuvor installierte. \n -\n \nAUF EIGENE GEFAHR! \n -\n \nVOLLSTÄNDIG UNGETESTET, WAHRSCHEINLICH MUSST DU EINE BEATS_W FIRMWARE FLASHEN, WENN DEIN GERÄTENAME \"Amazfit Band 2\" IST Niederländisch Türkisch @@ -775,4 +771,12 @@ Verwende dein Band, um den Klingelton deines Handys wiederzugeben. Klingeldauer in Sekunden Dauer + Dieses Gerät benötigt eine geheime Authentifikationstaste, die du mit einem langen Druck auf das Gerät eingeben kannst. Lies das Wiki. + Du bist dabei, die Firmware %s auf deine Amazfit Bip Lite zu installieren. +\n +\nBitte stelle sicher, dass du die .fw Datei und danach die .res Datei installierst. Dein Uhr wird nach der Installation der .fw Datei neu gestartet. +\n +\nHinweis: Du musst .res nicht installieren, wenn es genau das gleiche ist, wie die zuvor installierte. +\n +\nINSTALLATION AUF EIGENE GEFAHR! \ No newline at end of file From 7a1a2ddd278c9e7e1528a64076d0856a2640085d Mon Sep 17 00:00:00 2001 From: Full Name Date: Sun, 20 Oct 2019 11:44:21 +0000 Subject: [PATCH 027/112] Translated using Weblate (Czech) Currently translated at 100.0% (712 of 712 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/cs/ --- app/src/main/res/values-cs/strings.xml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 0f4602f2d..f29a689bd 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -757,8 +757,16 @@ Makibes HR3 Amazfit Bip Lite Vyhledat telefon - Povolit vyhledání telefonu + Zapnout \\\'Vyhledání telefonu\\\' Použijte náramek/hodinky k prozvonění telefonu. Délka zvonění ve vteřinách Délka + Toto zařízení vyžaduje tajný klíč, podržte dlouze na jménu zařízení pro jeho vložení. pro více detailů čtěte wiki. + Chystáte se nainstalovat firmvér %s na vašem Amazfit Bip Lite. +\n +\nProsím nezapomeňte nainstalovat soubor .fw, a poté soubor .res . Vaše hodinky se po instalaci souboru .fw restartují. +\n +\nPoznámka: Nemusíte instalovat soubory .res , pokud je tento soubor přesně stejný jako ten, který byl nainstalován dříve. +\n +\nPOKRAČUJTE TO NA VLASTNÍ NEBEZPEČÍ! \ No newline at end of file From 5b35247feee4527587c31b0c5447832b4b0cfaca Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Sat, 19 Oct 2019 08:57:38 +0000 Subject: [PATCH 028/112] Translated using Weblate (Hebrew) Currently translated at 100.0% (712 of 712 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/he/ --- app/src/main/res/values-he/strings.xml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index 2a292a311..d710c1282 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -755,9 +755,16 @@ Makibes HR3 Amazfit Bip Lite איתור הטלפון - הפעלת איתור הטלפון + הפעלת ‚איתור הטלפון’ ניתן להשתמש בצמיד כדי שהטלפון שלך ישמיע צלצול. משך זמן הצלצול בשניות משך למכשיר זה נדרש מפתח אימות סודי, יש לגעת נגיעה ארוכה על המכשיר כדי להזין אותו. פרטים נוספים בוויקי. + פעולה זו תתקין את הקושחה %s על ה־Amazfit Bip Lite שלך. +\n +\nנא לוודא את התקנת קושחת ה־‎.fw בהתחלה, לאחר מכן את קובץ ה־‎.res השעון שלך יופעל מחדש לאחר התקנת קובץ ה־fw. +\n +\nלתשומת לבך: אין צורך בהתקנת קובץ ה־‎.res אם הוא כבר זהה לזה שהתקנת בעבר. +\n +\nהמשך התהליך הוא על אחריותך! \ No newline at end of file From 81321f27be17e9d54974fec29c601b1b92dcfa14 Mon Sep 17 00:00:00 2001 From: Rafael Fontenelle Date: Thu, 24 Oct 2019 19:59:36 +0000 Subject: [PATCH 029/112] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (713 of 713 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/pt_BR/ --- app/src/main/res/values-pt-rBR/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 19bda4831..99a4f3e6e 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -777,4 +777,5 @@ \nNota: você não precisa instalar .res se esse arquivo for exatamente o mesmo que os instalados anteriormente. \n \nPROSSIGA POR SUA CONTA E RISCO! + Amazfit GTR \ No newline at end of file From 877a9be2717ae7fc6dc073c0bb7fd0eed1fa1be9 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Thu, 24 Oct 2019 22:57:39 +0200 Subject: [PATCH 030/112] draft changelog --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a25b8ee75..abe86b871 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ ### Changelog +#### NEXT +* Amazfit GTR: Initial and incomplete support +* Mi Band 4: Enable emoji font setting +* Makibes HR3: Support the english version +* Makibes HR3: Enable bluetooth pairing for working reconnection +* Work around crash when trying to display changelog +* "Limit sleep charts range" (FIXME) +* " Check for non empty list of sleep sessions" (FIXME) + #### Version 0.37.1 * Amazfit Bip Lite: Support flashing firmware and watchfaces From 31ce36e335f9b1d77824917084dfbbfe4f80829f Mon Sep 17 00:00:00 2001 From: vanous Date: Thu, 24 Oct 2019 21:48:51 +0200 Subject: [PATCH 031/112] Add alternative color to heartrate in charts --- .../activities/charts/AbstractChartFragment.java | 9 ++++++++- app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/strings.xml | 3 +++ app/src/main/res/xml/charts_preferences.xml | 9 +++++++++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java index 411c74293..6a08744ec 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java @@ -69,6 +69,7 @@ import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind; import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample; import nodomain.freeyourgadget.gadgetbridge.util.DateTimeUtils; import nodomain.freeyourgadget.gadgetbridge.util.DeviceHelper; +import nodomain.freeyourgadget.gadgetbridge.util.Prefs; /** * A base class fragment to be used with ChartsActivity. The fragment can supply @@ -170,12 +171,18 @@ public abstract class AbstractChartFragment extends AbstractGBFragment { } protected void init() { + Prefs prefs = GBApplication.getPrefs(); TypedValue runningColor = new TypedValue(); BACKGROUND_COLOR = GBApplication.getBackgroundColor(getContext()); LEGEND_TEXT_COLOR = DESCRIPTION_COLOR = GBApplication.getTextColor(getContext()); CHART_TEXT_COLOR = ContextCompat.getColor(getContext(), R.color.secondarytext); - HEARTRATE_COLOR = ContextCompat.getColor(getContext(), R.color.chart_heartrate); + if (prefs.getBoolean("chart_heartrate_color", false)) { + HEARTRATE_COLOR = ContextCompat.getColor(getContext(), R.color.chart_heartrate_alternative); + }else{ + HEARTRATE_COLOR = ContextCompat.getColor(getContext(), R.color.chart_heartrate); + } HEARTRATE_FILL_COLOR = ContextCompat.getColor(getContext(), R.color.chart_heartrate_fill); + getContext().getTheme().resolveAttribute(R.attr.chart_activity, runningColor, true); AK_ACTIVITY_COLOR = runningColor.data; getContext().getTheme().resolveAttribute(R.attr.chart_deep_sleep, runningColor, true); diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index cf32627f0..c73916a5f 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -18,6 +18,7 @@ #1f000000 #ffab40 + #8B0000 #fadab1 #0071b7 #4c5aff diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4101e3e37..0103a073b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -527,6 +527,9 @@ Charts Range Charts range is set to a Month Charts range is set to a Week + Red + Orange + Heart rate color Steps per month Sleep per month Authenticating diff --git a/app/src/main/res/xml/charts_preferences.xml b/app/src/main/res/xml/charts_preferences.xml index 95d7453d0..c3cbd2971 100644 --- a/app/src/main/res/xml/charts_preferences.xml +++ b/app/src/main/res/xml/charts_preferences.xml @@ -17,6 +17,15 @@ android:maxLength="3" android:defaultValue="10" android:title="@string/activity_prefs_chart_min_heart_rate" /> + + + Date: Sat, 26 Oct 2019 10:39:15 +0200 Subject: [PATCH 032/112] Add switch to set old/new style of sleep detection range --- CHANGELOG.md | 3 +-- .../charts/AbstractChartFragment.java | 2 +- .../activities/charts/SleepChartFragment.java | 27 +++++++++++++------ app/src/main/res/values/strings.xml | 4 +++ app/src/main/res/xml/charts_preferences.xml | 11 ++++++++ 5 files changed, 36 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index abe86b871..647bb40bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,7 @@ * Makibes HR3: Support the english version * Makibes HR3: Enable bluetooth pairing for working reconnection * Work around crash when trying to display changelog -* "Limit sleep charts range" (FIXME) -* " Check for non empty list of sleep sessions" (FIXME) +* Sleep detection settings: Rolling 24 hours (existing style) or Noon to noon #### Version 0.37.1 * Amazfit Bip Lite: Support flashing firmware and watchfaces diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java index 6a08744ec..ff2174330 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java @@ -720,7 +720,7 @@ public abstract class AbstractChartFragment extends AbstractGBFragment { } protected List getSamplesofSleep(DBHandler db, GBDevice device) { - int SLEEP_HOUR_LIMIT = 13; + int SLEEP_HOUR_LIMIT = 12; int tsStart = getTSStart(); Calendar day = GregorianCalendar.getInstance(); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SleepChartFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SleepChartFragment.java index a4588850f..b8c24d649 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SleepChartFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SleepChartFragment.java @@ -48,6 +48,7 @@ import java.util.Iterator; import java.util.List; import java.util.concurrent.TimeUnit; +import nodomain.freeyourgadget.gadgetbridge.GBApplication; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.activities.HeartRateUtils; import nodomain.freeyourgadget.gadgetbridge.activities.charts.SleepAnalysis.SleepSession; @@ -56,6 +57,7 @@ import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind; import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample; import nodomain.freeyourgadget.gadgetbridge.util.DateTimeUtils; +import nodomain.freeyourgadget.gadgetbridge.util.Prefs; public class SleepChartFragment extends AbstractChartFragment { @@ -72,17 +74,26 @@ public class SleepChartFragment extends AbstractChartFragment { @Override protected ChartsData refreshInBackground(ChartsHost chartsHost, DBHandler db, GBDevice device) { - List samples = getSamplesofSleep(db, device); + Prefs prefs = GBApplication.getPrefs(); + List samples; + if (prefs.getBoolean("chart_sleep_range_24h", false)) { + samples = getSamples(db, device); + }else{ + samples = getSamplesofSleep(db, device); + } MySleepChartsData mySleepChartsData = refreshSleepAmounts(device, samples); - if (mySleepChartsData.sleepSessions.size()>0) { - long tstart = mySleepChartsData.sleepSessions.get(0).getSleepStart().getTime() / 1000; - long tend = mySleepChartsData.sleepSessions.get(mySleepChartsData.sleepSessions.size() - 1).getSleepEnd().getTime() / 1000; - for (Iterator iterator = (Iterator) samples.iterator(); iterator.hasNext(); ) { - ActivitySample sample = iterator.next(); - if (sample.getTimestamp() < tstart || sample.getTimestamp() > tend) { - iterator.remove(); + if (!prefs.getBoolean("chart_sleep_range_24h", false)) { + if (mySleepChartsData.sleepSessions.size() > 0) { + long tstart = mySleepChartsData.sleepSessions.get(0).getSleepStart().getTime() / 1000; + long tend = mySleepChartsData.sleepSessions.get(mySleepChartsData.sleepSessions.size() - 1).getSleepEnd().getTime() / 1000; + + for (Iterator iterator = (Iterator) samples.iterator(); iterator.hasNext(); ) { + ActivitySample sample = iterator.next(); + if (sample.getTimestamp() < tstart || sample.getTimestamp() > tend) { + iterator.remove(); + } } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0103a073b..25ab31ab3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -532,6 +532,10 @@ Heart rate color Steps per month Sleep per month + Sleep range + Past 24 hours + Noon to noon + Authenticating Authentication required Preferred sleep duration in hours diff --git a/app/src/main/res/xml/charts_preferences.xml b/app/src/main/res/xml/charts_preferences.xml index c3cbd2971..675fee091 100644 --- a/app/src/main/res/xml/charts_preferences.xml +++ b/app/src/main/res/xml/charts_preferences.xml @@ -31,6 +31,15 @@ android:defaultValue="true" android:key="charts_allow_swipe" android:title="@string/pref_title_charts_swipe" /> + + + + + From 363b4512e5a92f676bb3152e5771542ca19e4472 Mon Sep 17 00:00:00 2001 From: Full Name Date: Fri, 25 Oct 2019 20:37:06 +0000 Subject: [PATCH 033/112] Translated using Weblate (Czech) Currently translated at 100.0% (717 of 717 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/cs/ --- app/src/main/res/values-cs/strings.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index f29a689bd..e1b26ea53 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -769,4 +769,15 @@ \nPoznámka: Nemusíte instalovat soubory .res , pokud je tento soubor přesně stejný jako ten, který byl nainstalován dříve. \n \nPOKRAČUJTE TO NA VLASTNÍ NEBEZPEČÍ! + Amazfit GTR + Chystáte se nainstalovat firmvér %s na vašem Amazfit GTR. +\n +\nProsím nezapomeňte nainstalovat soubor .fw, potom soubor .res a nakonec soubor .gps. Vaše hodinky se po instalaci souboru .fw restartují. +\n +\nPoznámka: Nemusíte instalovat .res a .gps, pokud jsou tyto soubory přesně stejné jako ty, které byly nainstalovány dříve. +\n +\nPOKRAČUJTE TO NA VLASTNÍ NEBEZPEČÍ! + Červená + Oranžová + Barva tepové frekvence \ No newline at end of file From 2acc1983358e240c92d99270deadea4ffdb04a61 Mon Sep 17 00:00:00 2001 From: Rafael Fontenelle Date: Fri, 25 Oct 2019 00:31:33 +0000 Subject: [PATCH 034/112] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (717 of 717 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/pt_BR/ --- app/src/main/res/values-pt-rBR/strings.xml | 38 ++++++++++++++-------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 99a4f3e6e..f1a9eab57 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -367,16 +367,16 @@ Conectando… Tirar captura de tela do dispositivo Blacklist do Calendário - Você está prestes a instalar o firmware %s no seu Amazfit Bip. -\n -\nCertifique-se de instalar o firmware .fw, depois o arquivo .res e finalmente o arquivo .gps. Seu relógio será reiniciado após a instalação do arquivo .fw. -\n -\nNota: você não precisa instalar .res e .gps se esses arquivos forem exatamente os mesmos que os instalados anteriormente. -\n + Você está prestes a instalar o firmware %s no seu Amazfit Bip. +\n +\nCertifique-se de instalar o firmware .fw, depois o arquivo .res e finalmente o arquivo .gps. Seu relógio será reiniciado após a instalação do arquivo .fw. +\n +\nNota: você não precisa instalar .res e .gps se esses arquivos forem exatamente os mesmos que os instalados anteriormente. +\n \nPROSSIGA POR SUA CONTA E RISCO! Você está prestes a instalar o firmware %s no seu Amazfit Cor. \n -\nCertifique-se de instalar o arquivo .fw, e depois disso o arquivo .res. Sua pulseira será reiniciado após a instalação do arquivo .fw. +\nCertifique-se de instalar o arquivo .fw, e depois disso o arquivo .res. Sua pulseira será reiniciada após a instalação do arquivo .fw. \n \nNota: você não precisa instalar .res se for exatamente o mesmo que o instalado anteriormente. \n @@ -692,7 +692,7 @@ BFH-16 Você está prestes a instalar o firmware %s no seu Amazfit Cor 2. \n -\nCertifique-se de instalar o arquivo .fw, e depois disso o arquivo .res. Sua pulseira será reiniciado após a instalação do arquivo .fw. +\nCertifique-se de instalar o arquivo .fw, e depois disso o arquivo .res. Sua pulseira será reiniciada após a instalação do arquivo .fw. \n \nNota: você não precisa instalar .res se for exatamente o mesmo que o instalado anteriormente. \n @@ -770,12 +770,22 @@ Duração do toque sonoro em segundos Duração Esse dispositivo precisa de sua chave de autenticação secreta, realize pressionamento longo no dispositivo para inseri-lo. Leia o wiki. - Você está prestes a instalar o firmware %s no seu Amazit Bip Lite. -\n -\nCertifique-se de instalar o arquivo .fw, e depois o arquivo .res. Seu relógio será reiniciado após a instalação do arquivo .fw. -\n -\nNota: você não precisa instalar .res se esse arquivo for exatamente o mesmo que os instalados anteriormente. -\n + Você está prestes a instalar o firmware %s no seu Amazit Bip Lite. +\n +\nCertifique-se de instalar o arquivo .fw, e depois o arquivo .res. Seu relógio será reiniciado após a instalação do arquivo .fw. +\n +\nNota: você não precisa instalar .res se esse arquivo for exatamente o mesmo que os instalados anteriormente. +\n \nPROSSIGA POR SUA CONTA E RISCO! Amazfit GTR + Você está prestes a instalar o firmware %s no seu Amazfit GTR. +\n +\nCertifique-se de instalar o arquivo .fw, depois disso o arquivo .res e finalmente o arquivo .gps. Seu relógio será reiniciado após a instalação do arquivo .fw. +\n +\nNota: você não precisa instalar .res e .gps se esses arquivos forem exatamente os mesmos que os instalados anteriormente. +\n +\nPROSSIGA AO SEU PRÓPRIO RISCO! + Vermelho + Laranja + Cor da frequência cardíaca \ No newline at end of file From 6c950c8c842d314221af3c1ae6573fed5bc1ef59 Mon Sep 17 00:00:00 2001 From: nautilusx Date: Thu, 24 Oct 2019 21:01:05 +0000 Subject: [PATCH 035/112] Translated using Weblate (German) Currently translated at 100.0% (717 of 717 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/de/ --- app/src/main/res/values-de/strings.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index c87748522..1f7e4ff51 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -779,4 +779,15 @@ \nHinweis: Du musst .res nicht installieren, wenn es genau das gleiche ist, wie die zuvor installierte. \n \nINSTALLATION AUF EIGENE GEFAHR! + Amazfit GTR + Du bist dabei, die Firmware %s auf deine Amazfit GTR zu installieren. +\n +\nBitte stelle sicher, dass du die .fw Datei, dann die .res Datei und schließlich die .gps Datei installierst. Deine Uhr wird nach der Installation der .fw Datei neu gestartet. +\n +\nHinweis: Du musst die .res und .gps nicht installieren, wenn diese Dateien genau die gleichen sind wie die zuvor installierten. +\n +\nINSTALLATION AUF EIGENE GEFAHR! + Rot + Orange + Farbe der Herzfrequenz \ No newline at end of file From 86588259e659c7eb22b3cc062da2c84421dd531a Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Fri, 25 Oct 2019 07:42:06 +0000 Subject: [PATCH 036/112] Translated using Weblate (Hebrew) Currently translated at 100.0% (717 of 717 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/he/ --- app/src/main/res/values-he/strings.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index d710c1282..7d2faa8e1 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -767,4 +767,15 @@ \nלתשומת לבך: אין צורך בהתקנת קובץ ה־‎.res אם הוא כבר זהה לזה שהתקנת בעבר. \n \nהמשך התהליך הוא על אחריותך! + Amazfit GTR + פעולה זו תתקין את הקושחה %s במקום זו שכרגע מותקנת ב־Amazfit GTR שלך. +\n +\nנא לוודא את התקנת קושחת ה־‎.fw בהתחלה, לאחר מכן את קובץ ה־‎.res ולבסוף קובץ ה־‎.gps השעון שלך יופעל מחדש לאחר התקנת קובץ ה־fw. +\n +\nלתשומת לבך: אין צורך בהתקנת קובצי ה־‎.res וה־‎.gps אם הם כבר זהים לאלו שהתקנת בעבר. +\n +\nהמשך התהליך הוא על אחריותך! + אדום + כתום + צבע דופק \ No newline at end of file From 31d2d60beb291bfe678fa9a0e4748c7868203bc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sat, 26 Oct 2019 16:21:37 +0000 Subject: [PATCH 037/112] Translated using Weblate (Polish) Currently translated at 70.9% (508 of 717 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/pl/ --- app/src/main/res/values-pl/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 7ec7bc8e0..dc2e2732e 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -550,4 +550,5 @@ Błąd tworzenia folderu na pliki log: %1$s "Puls: " Pokazuj gdy zawiera słowa + Czerwony \ No newline at end of file From b8bc2c3b68dfb455624582157b9756f6e06e88cc Mon Sep 17 00:00:00 2001 From: FransM Date: Fri, 25 Oct 2019 09:03:48 +0000 Subject: [PATCH 038/112] Translated using Weblate (Dutch) Currently translated at 100.0% (717 of 717 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/nl/ --- app/src/main/res/values-nl/strings.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 7ff82a5ed..e031cb0e8 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -771,4 +771,15 @@ \nOpmerking: U hoeft de .res niet te installeren als deze exact dezelfde is als degene die ervoor al was geïnstalleerd. \n \nGA VERDER OP EIGEN RISICO! + Amazfit GTR + U staat op het punt om de firmware %s te installeren op uw Amazfit GTR. +\n +\nZorg ervoor dat u het .fw-bestand installeert, daarna het .res-bestand en als laatste het .gps-bestand. Uw horloge wordt opnieuw gestart na het installeren van het .fw-bestand. +\n +\nOpmerking: U hoeft de .res niet te installeren als deze exact dezelfde is als degene die ervoor al was geïnstalleerd. +\n +\nGA VERDER OP EIGEN RISICO! + Rood + Oranje + Kleur hartslag \ No newline at end of file From 3a49e4d65fc2ab1615bc0a259bb92d22b9fcab3a Mon Sep 17 00:00:00 2001 From: Olivier Bloch Date: Fri, 25 Oct 2019 13:43:25 +0000 Subject: [PATCH 039/112] Translated using Weblate (Dutch) Currently translated at 100.0% (717 of 717 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/nl/ --- app/src/main/res/values-nl/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index e031cb0e8..0b84a3afe 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -752,7 +752,7 @@ %d uren Verbind nieuw apparaat knop - Altijkd zichtbaar + Altijd zichtbaar Alleen zichtbaar als er geen apparaat toegevoegd is Om de route van de activiteit te zien: installeer een app die GPX bestanden kan tonen. Makibes HR3 instellingen From 8f0af80e09edde5ea8e548e7032fef86b5eae228 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sat, 26 Oct 2019 16:16:44 +0000 Subject: [PATCH 040/112] Translated using Weblate (Swedish) Currently translated at 4.3% (31 of 717 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/sv/ --- app/src/main/res/values-sv/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 49334a6ea..40f9f3a1f 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -43,4 +43,5 @@ Svartlista alla notifieringar Svartlistade kalendrar FW/App-installerare + Röd \ No newline at end of file From ddc3b8ddd02717080864b0f3b33a19004371c6fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=B0=91=E4=B8=BE?= Date: Fri, 25 Oct 2019 06:57:12 +0000 Subject: [PATCH 041/112] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (717 of 717 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/ --- app/src/main/res/values-zh-rCN/strings.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 8ff3f3c29..8c0a670ad 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -774,4 +774,15 @@ \n备注:如果您安装的 .res 文件和之前相同,则无需安装 .res 文件 \n \n风险自担!" + 华米 GTR + 即将在您的 华米 GTR (Amazfit GTR) 上安装固件 %s 。 +\n +\n请确保先安装 .fw 文件,然后再安装 .res 文件,最后再安装 .gps 文件。您的手表将会安装了 .fw 文件后重启。 +\n +\n注意:如果 .res 和 .gps 文件和上一个版本相同,您则无需安装。 +\n +\n风险自担! + + + 心率颜色 \ No newline at end of file From d18108b30231862c667e54958c372585f22a9ee2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sat, 26 Oct 2019 16:14:08 +0000 Subject: [PATCH 042/112] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 97.8% (701 of 717 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/nb_NO/ --- app/src/main/res/values-nb-rNO/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 290e78c39..c943376b8 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -769,4 +769,8 @@ \nMerk: Du trenger ikke å installere .res-filen hvis den er akkurat den samme som den som allerede er installert. \n \nFORTSETT PÅ EGEN RISIKO! + Amazfit GTR + Rød + Oransje + Pulsfarge \ No newline at end of file From 3b42bdd42a39d5ad2d7e985220f691ffed98b4fa Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Sat, 26 Oct 2019 23:56:04 +0200 Subject: [PATCH 043/112] Amazfit Bip: Whitelist FW 1.1.6.34 (non-latin)and 1.1.6.32 (latin) --- .../devices/huami/amazfitbip/AmazfitBipFirmwareInfo.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitbip/AmazfitBipFirmwareInfo.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitbip/AmazfitBipFirmwareInfo.java index 2a49b1b6e..9b446278d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitbip/AmazfitBipFirmwareInfo.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitbip/AmazfitBipFirmwareInfo.java @@ -109,10 +109,12 @@ public class AmazfitBipFirmwareInfo extends HuamiFirmwareInfo { crcToVersion.put(32576, "1.1.5.16"); crcToVersion.put(28893, "1.1.5.24"); crcToVersion.put(61710, "1.1.5.56"); + crcToVersion.put(23387, "1.1.6.34"); // Latin Firmware crcToVersion.put(52828, "1.1.5.36 (Latin)"); crcToVersion.put(60625, "1.1.6.30 (Latin)"); + crcToVersion.put(17913, "1.1.6.32 (Latin)"); // resources crcToVersion.put(12586, "0.0.8.74"); @@ -139,7 +141,8 @@ public class AmazfitBipFirmwareInfo extends HuamiFirmwareInfo { crcToVersion.put(5341, "1.1.5.02-24"); crcToVersion.put(22662, "1.1.5.36"); crcToVersion.put(24045, "1.1.5.56"); - crcToVersion.put(37677, "1.1.6.30"); + crcToVersion.put(37677, "1.1.6.30-32"); + crcToVersion.put(26735, "1.1.6.34"); // gps crcToVersion.put(61520, "9367,8f79a91,0,0,"); From 3c6d34ff3001ab70c012a3b5c3b1c20552252120 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Sun, 27 Oct 2019 08:35:09 +0100 Subject: [PATCH 044/112] try to re-add issue template, maybe needed if someone clicks "other" button or something --- .github/ISSUE_TEMPLATE.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 000000000..c027cfdfb --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,31 @@ +--- +name: Bug report +about: Create a report to help us improve + +--- + +#### Before reporting a bug, please confirm the following: +- [ ] I have read the [wiki](https://github.com/Freeyourgadget/Gadgetbridge/wiki), and I didn't find a solution to my problem / an answer to my question. +- [ ] I have searched the [issues](https://github.com/Freeyourgadget/Gadgetbridge/issues), and I didn't find a solution to my problem / an answer to my question. +- [ ] If you upload an image or other content, please make sure you have read and understood the [github policies and terms of services](https://help.github.com/articles/github-terms-of-service/#1-responsibility-for-user-generated-content) + +### I got Gadgetbridge from: +* [ ] F-Droid +* [ ] I built it myself from source code (specify tag / commit) + +If you got it from Google Play, please note [that version](https://github.com/TaaviE/Gadgetbridge) is unofficial and not supported here; it's also often quite outdated. Please switch to one of the above versions if you can. + +#### Your issue is: +*If possible, please attach [logs](https://github.com/Freeyourgadget/Gadgetbridge/wiki/Log-Files)! that might help identifying the problem.* + +#### Your wearable device is: + +*Please specify model and firmware version if possible* + +#### Your android version is: + +#### Your Gadgetbridge version is: + + + +*New issues about already solved/documented topics could be closed without further comments. Same for too generic or incomplete reports.* From 42312bba60f2427822c0b5424ee062d334a1dfa7 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Mon, 28 Oct 2019 15:39:23 +0100 Subject: [PATCH 045/112] Amazfit GTR: remove menu item settings, since we do not know how to do this yet --- .../devices/huami/amazfitgtr/AmazfitGTRSupport.java | 7 +++++++ app/src/main/res/values/arrays.xml | 2 ++ app/src/main/res/xml/devicesettings_amazfitgtr.xml | 11 +++++++++++ 3 files changed, 20 insertions(+) create mode 100644 app/src/main/res/xml/devicesettings_amazfitgtr.xml diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRSupport.java index 7b064a973..13f520b06 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRSupport.java @@ -24,6 +24,7 @@ import java.io.IOException; import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiFWHelper; import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitgtr.AmazfitGTRFWHelper; +import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder; import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip.AmazfitBipSupport; public class AmazfitGTRSupport extends AmazfitBipSupport { @@ -42,4 +43,10 @@ public class AmazfitGTRSupport extends AmazfitBipSupport { public HuamiFWHelper createFWHelper(Uri uri, Context context) throws IOException { return new AmazfitGTRFWHelper(uri, context); } + + @Override + protected AmazfitGTRSupport setDisplayItems(TransactionBuilder builder) { + // not supported yet + return this; + } } diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 6a38a6e9b..a779f45fa 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -397,6 +397,7 @@ @string/german @string/italian @string/french + @string/portuguese @string/turkish @string/russian @@ -410,6 +411,7 @@ de_DE it_IT fr_FR + pt_BR tr_TR ru_RU diff --git a/app/src/main/res/xml/devicesettings_amazfitgtr.xml b/app/src/main/res/xml/devicesettings_amazfitgtr.xml new file mode 100644 index 000000000..c63cc0699 --- /dev/null +++ b/app/src/main/res/xml/devicesettings_amazfitgtr.xml @@ -0,0 +1,11 @@ + + + + From d97b44819870034e33e957446e524f58cbde583a Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Mon, 28 Oct 2019 15:44:44 +0100 Subject: [PATCH 046/112] bump version --- CHANGELOG.md | 6 ++++-- app/build.gradle | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 647bb40bb..f8949a94f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,14 @@ ### Changelog -#### NEXT -* Amazfit GTR: Initial and incomplete support +#### Version 0.38.0 +* Amazfit GTR: Initial and incomplete support, mostly untested +* Amazfit Bip: add Portuguese to the list of selectable languages * Mi Band 4: Enable emoji font setting * Makibes HR3: Support the english version * Makibes HR3: Enable bluetooth pairing for working reconnection * Work around crash when trying to display changelog * Sleep detection settings: Rolling 24 hours (existing style) or Noon to noon +* Add alternative color to heartrate in chart settings #### Version 0.37.1 * Amazfit Bip Lite: Support flashing firmware and watchfaces diff --git a/app/build.gradle b/app/build.gradle index 90b1f97e1..5a4a99a0b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -25,8 +25,8 @@ android { targetSdkVersion 27 // Note: always bump BOTH versionCode and versionName! - versionName "0.37.1" - versionCode 159 + versionName "0.38.0" + versionCode 160 vectorDrawables.useSupportLibrary = true } buildTypes { From 2a09c1f7812f01cad2a6e2ebc273caa2e71c8439 Mon Sep 17 00:00:00 2001 From: nautilusx Date: Sun, 27 Oct 2019 08:27:22 +0000 Subject: [PATCH 047/112] Translated using Weblate (German) Currently translated at 100.0% (720 of 720 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/de/ --- app/src/main/res/values-de/strings.xml | 57 ++++++++++++++------------ 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 1f7e4ff51..a20ea5bc6 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -35,7 +35,7 @@ HRM deaktivieren System Wetter-App aktivieren System Wetter-App deaktivieren - Installiere die Wetterbenachrichtigungs-App + Wetterbenachrichtigungs-App installieren Konfigurieren Nach oben @@ -47,8 +47,8 @@ Du installierst jetzt %s. Du bist dabei, die %1$s und %2$s Firmware zu installieren, anstatt die, die sich derzeit auf deinem Mi Band befinden. Diese Firmware wurde getestet und ist bekanntlich mit Gadgetbridge kompatibel. - Diese Firmware ist nicht getestet und ist möglicherweise nicht mit Gadgetbridge kompatibel. -\n + Diese Firmware ist nicht getestet und ist möglicherweise nicht mit Gadgetbridge kompatibel. +\n \nDu wirst GEBETEN, diese nicht zu flashen! Wenn du dennoch fortfahren möchtest und das Gerät anschließend korrekt funktioniert, melde bitte den Gadgetbridge-Entwicklern, das sie die Firmwareversion %s auf die Whitelist setzen sollen. @@ -92,7 +92,7 @@ Name und Telefonnummer ausblenden Apps-Blacklist Kalender-Blacklist - Nachrichtenvorlagen + Gespeicherte Nachrichten Antworten Gemeinsame Endung Anrufabweisung @@ -110,15 +110,15 @@ Zugriff auf Android Drittanbieter-Apps zulassen Experimentelle Unterstützung für Android-Apps mit PebbleKit aktivieren Pebble-Zeitleiste - Sonnenauf- und Untergänge - Sende Sonnenauf- und -untergangszeiten abhängig vom Standort auf die Pebble-Zeitleiste - Synchronisiere Kalender - Sende Kalenderereignisse an die Zeitleiste + Sonnenauf- und -untergang + Sonnenauf- und -untergangszeiten abhängig vom Standort auf die Pebble-Zeitleiste senden + Kalender synchronisieren + Kalenderereignisse an die Zeitleiste senden Abgewiesene Benachrichtigungen automatisch entfernen Wenn Benachrichtigungen vom Android-Gerät entfernt werden, geschieht das auch automatisch auf der Pebble Datenschutzmodus Normale Benachrichtigungen - Verschiebe den Benachrichtigungstext außerhalb des Bildschirms + Benachrichtigungstext außerhalb des Bildschirms verschieben Nur das Benachrichtigungssymbol anzeigen Standort Standort ermitteln @@ -187,7 +187,7 @@ Kopple dein Mi Band Koppeln mit %s… Verbindung mit %1$s (%2$s) herstellen - Kein koppeln mit %1$s (%2$s) möglich + Kein Koppeln mit %1$s (%2$s) möglich Verbindung wird hergestellt: %1$s (%2$s) Bereits an %1$s (%2$s) gebunden, verbinden… Keine MAC-Adresse erhalten, koppeln nicht möglich. @@ -199,7 +199,7 @@ Links Rechts Keine gültigen Benutzerdaten angegeben, für die jetzt Dummy-Benutzerdaten verwendet werden. - Wenn Dein Mi Band vibriert und blinkt, tippe ein paar Mal hintereinander darauf. + Wenn dein Mi Band vibriert und blinkt, tippe ein paar Mal hintereinander darauf. Installieren Mache dein Gerät auffindbar. Derzeit verbundene Geräte werden wahrscheinlich nicht erkannt. Standort aktivieren (zum Beispiel GPS) in Android 6+. Deaktiviere den Privatsphäreschutz für Gadgetbridge, da er zu Abstürzen und Neustarts deines Telefons führen kann. Wenn nach einigen Minuten kein Gerät erkannt wird, versuche es nach dem Neustart deines mobilen Gerätes erneut. Hinweis: @@ -254,7 +254,7 @@ Fehler beim Ausführen \'%1$s\' Deine Aktivität (ALPHA) Keine Verbindung möglich: %1$s - Kann keinen Handler finden, um diese Datei zu installieren. + Es konnte kein Programm gefunden werden, das diese Datei installiert. Angegebene Datei kann nicht installiert werden: %1$s Angegebene Firmware kann nicht installiert werden: Sie passt nicht zur Hardware-Revision deiner Pebble. Bitte warten, Installationsstatus wird ermittelt… @@ -275,13 +275,13 @@ Ungetestete Version! Verbindung zum Gerät: %1$s Pebble Firmware %1$s - Korrekte Hardware-Revision - Falsche Hardware-Revision! + Korrekte Hardwarerevision + Falsche Hardwarerevision! %1$s (%2$s) Problem mit der Firmwareübertragung. DEIN MI BAND NICHT NEU STARTEN! Problem bei der Firmware-Metadatenübertragung - Firmware-Installation abgeschlossen - Firmware-Installation erfolgreich beendet, Gerät wird neu gestartet… + Firmwareinstallation abgeschlossen + Firmwareinstallation erfolgreich beendet, Gerät wird neu gestartet… Firmware aktualisieren fehlgeschlagen Schritte Kalorien @@ -343,8 +343,8 @@ Widget hinzufügen Gewünschte Schlafdauer in Stunden Ein Wecker wurde auf %1$02d:%2$02d gestellt - Entwicklungsstand: %1$s - Firmware-Version: %1$s + Hardwarerevision: %1$s + Firmwareversion: %1$s Fehler beim Erstellen des Verzeichnisses für Protokolldateien: %1$s "HF: " Firmwareupdate wird durchgeführt @@ -369,7 +369,7 @@ Fehler beim Importieren der DB: %1$s Fehler beim Importieren der Einstellungen: %1$s Aktivitätsdaten löschen? - Die gesamte Datenbank wirklich löschen\? Alle Aktivitätsdaten und Informationen über Deine Geräte gehen verloren. + Die gesamte Datenbank wirklich löschen\? Alle Aktivitätsdaten und Informationen über deine Geräte gehen verloren. Daten gelöscht. Datenbank löschen fehlgeschlagen. Alte Aktivitätsdatenbank löschen? @@ -389,7 +389,7 @@ \nHier ist Keine Konfiguration nötig. \n \nDu kannst die Systemwetter-App deiner Pebble in App-Verwaltung aktivieren. -\n +\n \nUnterstützte Zifferblätter zeigen das Wetter automatisch an. Bluetooth-Kopplung aktivieren Deaktiviere dies, wenn du Probleme beim Verbinden hast @@ -562,7 +562,7 @@ Koreanisch Japanisch LED-Farbe ändern - Ändere die Radio Frequenz + Radio-Frequenz ändern Zeitabstand zwischen den Benachrichtigungen Rechts-nach-Links Aktivieren, wenn dein Gerät keine Sprachen von rechts-nach-links anzeigen kann @@ -690,13 +690,13 @@ alle 45 Minuten VoIP App-Anrufe aktivieren Gerätespezifische Einstellungen - Auth-Schlüssel + Authentifizierungsschlüssel Ändere den Authentifizierungsschlüssel in einen gemeinsamen Schlüssel auf all deinen Android-Geräten, von denen aus du eine Verbindung herstellen möchtet. Der bisherige Standardschlüssel für alle Geräte ist 0123456789@ABCDE BFH-16 Du bist dabei, die %s-Firmware auf deine Amazfit Cor 2 zu installieren. \n \nBitte stelle sicher, dass Du die .fw-Datei und danach die .res-Datei installierst. Dein Band wird nach der Installation der.fw-Datei neu gestartet. -\n +\n \nHinweis: Du musst .res nicht installieren, wenn es genau das gleiche ist, wie die zuvor installierte. \n \nAUF EIGENE GEFAHR! @@ -738,9 +738,9 @@ Aktiviere das, wenn dein Gerät über eine benutzerdefinierte Schriftarten-Firmware für die Emoji-Unterstützung verfügt Datenbank exportieren Datenbank importieren - alte Datenbank löschen + Alte Datenbank löschen leere Datenbank - leere Datenbank + Leere Datenbank Exportieren und Importieren 5 Minuten 10 Minuten @@ -753,7 +753,7 @@ Automatischer Export Automatischer Export jetzt starten Datenbank exportieren… - Achtung! Wenn Du auf diese Schaltfläche klickst, löschst Du deine Datenbank und beginnst von Grund auf neu. + Achtung! Wenn Du auf diese Schaltfläche klickst, löschst du deine Datenbank und beginnst von Grund auf neu. Schlafalarm Schritte: %1$02d Schlaf: %1$s @@ -768,7 +768,7 @@ Amazfit Bip Lite Telefon finden Telefon finden aktivieren - Verwende dein Band, um den Klingelton deines Handys wiederzugeben. + Verwende dein Band, um den Klingelton deines Telefons wiederzugeben. Klingeldauer in Sekunden Dauer Dieses Gerät benötigt eine geheime Authentifikationstaste, die du mit einem langen Druck auf das Gerät eingeben kannst. Lies das Wiki. @@ -790,4 +790,7 @@ Rot Orange Farbe der Herzfrequenz + Schlafbereich + Letzten 24 Stunden + Mittag bis Mittag \ No newline at end of file From 7d2c8e181de5ad6e6e1c30a6c7affc6b5499eec9 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Sat, 26 Oct 2019 20:37:02 +0000 Subject: [PATCH 048/112] Translated using Weblate (Hebrew) Currently translated at 100.0% (720 of 720 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/he/ --- app/src/main/res/values-he/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index 7d2faa8e1..0a2d5b857 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -778,4 +778,7 @@ אדום כתום צבע דופק + טווח שינה + 24 השעות האחרונות + צהריים עד צהריים \ No newline at end of file From 238c55138b25afdbf9bd0232abceae0cd1fc6b1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20M=C3=BCnster?= Date: Sun, 27 Oct 2019 10:25:54 +0000 Subject: [PATCH 049/112] Translated using Weblate (Swedish) Currently translated at 4.6% (33 of 720 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/sv/ --- app/src/main/res/values-sv/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 40f9f3a1f..2a885130e 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -13,7 +13,7 @@ Anslut… Koppla ifrån Ta bort enhet - Tar bort %1$s + Ta bort %1$s Detta kommer att ta bort enheten och radera all tillhörande information! Öppna navigationspanel Stäng navigationspanel From c1f9f66143fb7766c8de049dde48d7523ea57c19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=B0=91=E4=B8=BE?= Date: Sun, 27 Oct 2019 09:44:58 +0000 Subject: [PATCH 050/112] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (720 of 720 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/ --- app/src/main/res/values-zh-rCN/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 8c0a670ad..cff2b5ece 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -785,4 +785,7 @@ 心率颜色 + 睡眠范围 + 过去 24 小时 + 中午到中午 \ No newline at end of file From 0ac08ec32eaf8b5296316e0176dc429167e4db95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sat, 26 Oct 2019 20:22:17 +0000 Subject: [PATCH 051/112] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 97.8% (704 of 720 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/nb_NO/ --- app/src/main/res/values-nb-rNO/strings.xml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index c943376b8..8a1d21eab 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -353,8 +353,8 @@ Kjønn Høyde i cm Vekt i kg - Autentiserer - Autentisering kreves + Identitetsbekrefter + Identitetsbekreftelse kreves Zzz Legg til miniprogram Foretrukket søvn i timer @@ -773,4 +773,14 @@ Rød Oransje Pulsfarge + Du er i ferd med å installere %s-fastvaren på din Amazfit GTR. +\n +\nForsikre deg om at du installerer ..fw-fila, så .res-fila, og til sist gps-fila. Armbåndsuret ditt vil starte på nytt etter at .fw-fila er installert. +\n +\nMerk: Du trenger ikke å installere .res-filen hvis den er akkurat den samme som den som allerede er installert. +\n +\nFORTSETT PÅ EGEN RISIKO! + Søvnperiode + Siste 24 timer + 12:00 til 12:00 \ No newline at end of file From 5c8bd867886ff8d73cd3fb3f9a106478ad77da35 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Mon, 28 Oct 2019 16:02:28 +0100 Subject: [PATCH 052/112] add fastlane and xml changelog --- app/src/main/res/xml/changelog_master.xml | 10 ++++++++++ fastlane/metadata/android/en-US/changelogs/160.txt | 8 ++++++++ 2 files changed, 18 insertions(+) create mode 100644 fastlane/metadata/android/en-US/changelogs/160.txt diff --git a/app/src/main/res/xml/changelog_master.xml b/app/src/main/res/xml/changelog_master.xml index 3b07ec6db..dfa5b85cd 100644 --- a/app/src/main/res/xml/changelog_master.xml +++ b/app/src/main/res/xml/changelog_master.xml @@ -1,5 +1,15 @@ + + Amazfit GTR: Initial and incomplete support, mostly untested + Amazfit Bip: add Portuguese to the list of selectable languages + Mi Band 4: Enable emoji font setting + Makibes HR3: Support the english version + Makibes HR3: Enable bluetooth pairing for working reconnection + Work around crash when trying to display changelog + Sleep detection settings: Rolling 24 hours (existing style) or Noon to noon + Add alternative color to heartrate in chart settings + Amazfit Bip Lite: Support flashing firmware and watchfaces diff --git a/fastlane/metadata/android/en-US/changelogs/160.txt b/fastlane/metadata/android/en-US/changelogs/160.txt new file mode 100644 index 000000000..0b5b1cb15 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/160.txt @@ -0,0 +1,8 @@ +* Amazfit GTR: Initial and incomplete support, mostly untested +* Amazfit Bip: add Portuguese to the list of selectable languages +* Mi Band 4: Enable emoji font setting +* Makibes HR3: Support the english version +* Makibes HR3: Enable bluetooth pairing for working reconnection +* Work around crash when trying to display changelog +* Sleep detection settings: Rolling 24 hours (existing style) or Noon to noon +* Add alternative color to heartrate in chart settings From f226f37ade85367003efc503876c96b6660e92fe Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Mon, 28 Oct 2019 16:06:30 +0100 Subject: [PATCH 053/112] update gradle plugin --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index ec00336cc..dd0732416 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ buildscript { } } dependencies { - classpath 'com.android.tools.build:gradle:3.5.0' + classpath 'com.android.tools.build:gradle:3.5.1' classpath "gradle.plugin.com.github.spotbugs:spotbugs-gradle-plugin:2.0.0" // NOTE: Do not place your application dependencies here; they belong From 0159657bd5ac9426e6b5061b47f4b326f6602d15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Ru=C3=9F?= Date: Mon, 28 Oct 2019 22:40:07 +0100 Subject: [PATCH 054/112] - AmazfitGTS Run basic functionalities (read data, ...) --- .../amazfitgts/AmazfitGTSCoordinator.java | 71 +++++++++++++++++++ .../gadgetbridge/model/DeviceType.java | 1 + .../service/DeviceSupportFactory.java | 4 ++ .../huami/amazfitgts/AmazfitGTSSupport.java | 11 +++ .../gadgetbridge/util/DeviceHelper.java | 2 + app/src/main/res/values/strings.xml | 1 + 6 files changed, 90 insertions(+) create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgts/AmazfitGTSCoordinator.java create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgts/AmazfitGTSSupport.java 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 new file mode 100644 index 000000000..7f9414456 --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgts/AmazfitGTSCoordinator.java @@ -0,0 +1,71 @@ +package nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitgts; + +import android.bluetooth.BluetoothDevice; +import android.content.Context; +import android.net.Uri; + +import androidx.annotation.NonNull; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler; +import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiCoordinator; +import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; +import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate; +import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; + +public class AmazfitGTSCoordinator extends HuamiCoordinator { + private static final Logger LOG = LoggerFactory.getLogger(AmazfitGTSCoordinator.class); + + @NonNull + @Override + public DeviceType getSupportedType(GBDeviceCandidate candidate) { + try { + BluetoothDevice device = candidate.getDevice(); + String name = device.getName(); + if (name != null && name.equalsIgnoreCase("Amazfit GTS")) { + return DeviceType.AMAZFITGTS; + } + } catch (Exception ex) { + LOG.error("unable to check device support", ex); + } + return DeviceType.UNKNOWN; + } + + @Override + public DeviceType getDeviceType() { + return DeviceType.AMAZFITGTS; + } + + @Override + public int getBondingStyle() { + return BONDING_STYLE_REQUIRE_KEY; + } + + @Override + public InstallHandler findInstallHandler(Uri uri, Context context) { + return null; + } + + @Override + public boolean supportsHeartRateMeasurement(GBDevice device) { + return true; + } + + @Override + public boolean supportsWeather() { + return true; + } + + @Override + public boolean supportsActivityTracks() { + return true; + } + + @Override + public boolean supportsMusicInfo() { + return true; + } + +} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java index 22da2501c..ca86228de 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java @@ -41,6 +41,7 @@ public enum DeviceType { MIBAND4(16, R.drawable.ic_device_miband2, R.drawable.ic_device_miband2_disabled, R.string.devicetype_miband4), AMAZFITBIP_LITE(17, R.drawable.ic_device_hplus, R.drawable.ic_device_hplus_disabled, R.string.devicetype_amazfit_bip_lite), AMAZFITGTR(18, R.drawable.ic_device_hplus, R.drawable.ic_device_hplus_disabled, R.string.devicetype_amazfit_gtr), + AMAZFITGTS(19, R.drawable.ic_device_hplus, R.drawable.ic_device_hplus_disabled, R.string.devicetype_amazfit_gts), VIBRATISSIMO(20, R.drawable.ic_device_lovetoy, R.drawable.ic_device_lovetoy_disabled, R.string.devicetype_vibratissimo), LIVEVIEW(30, R.drawable.ic_device_default, R.drawable.ic_device_default_disabled, R.string.devicetype_liveview), HPLUS(40, R.drawable.ic_device_hplus, R.drawable.ic_device_hplus_disabled, R.string.devicetype_hplus), diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceSupportFactory.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceSupportFactory.java index 4efede4db..f6514719f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceSupportFactory.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceSupportFactory.java @@ -38,6 +38,7 @@ import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip.Ama import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitgtr.AmazfitGTRSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitcor.AmazfitCorSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitcor2.AmazfitCor2Support; +import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitgts.AmazfitGTSSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.miband3.MiBand3Support; import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.miband4.MiBand4Support; import nodomain.freeyourgadget.gadgetbridge.service.devices.id115.ID115Support; @@ -145,6 +146,9 @@ public class DeviceSupportFactory { case AMAZFITGTR: deviceSupport = new ServiceDeviceSupport(new AmazfitGTRSupport(), EnumSet.of(ServiceDeviceSupport.Flags.BUSY_CHECKING)); break; + case AMAZFITGTS: + deviceSupport = new ServiceDeviceSupport(new AmazfitGTSSupport(), EnumSet.of(ServiceDeviceSupport.Flags.BUSY_CHECKING)); + break; case AMAZFITCOR: deviceSupport = new ServiceDeviceSupport(new AmazfitCorSupport(), EnumSet.of(ServiceDeviceSupport.Flags.BUSY_CHECKING)); break; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgts/AmazfitGTSSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgts/AmazfitGTSSupport.java new file mode 100644 index 000000000..493c3a318 --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgts/AmazfitGTSSupport.java @@ -0,0 +1,11 @@ +package nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitgts; + +import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.miband3.MiBand3Support; + +public class AmazfitGTSSupport extends MiBand3Support { + @Override + public byte getCryptFlags() { + return (byte) 0x80; + } + +} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DeviceHelper.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DeviceHelper.java index 096933338..696242041 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DeviceHelper.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DeviceHelper.java @@ -47,6 +47,7 @@ import nodomain.freeyourgadget.gadgetbridge.devices.hplus.HPlusCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.hplus.MakibesF68Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitbip.AmazfitBipLiteCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitgtr.AmazfitGTRCoordinator; +import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitgts.AmazfitGTSCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.makibeshr3.MakibesHR3Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.hplus.Q8Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitbip.AmazfitBipCoordinator; @@ -209,6 +210,7 @@ public class DeviceHelper { result.add(new AmazfitCorCoordinator()); result.add(new AmazfitCor2Coordinator()); result.add(new AmazfitGTRCoordinator()); + result.add(new AmazfitGTSCoordinator()); result.add(new MiBand3Coordinator()); result.add(new MiBand4Coordinator()); result.add(new MiBand2HRXCoordinator()); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 25ab31ab3..60cb70bc3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -687,6 +687,7 @@ Makibes HR3 Choose export location Gadgetbridge notifications + Amazfit GTS Alipay (Shortcut) Weather (Shortcut) From 03be8d43c7e88427114b3b8548c9f069116cd664 Mon Sep 17 00:00:00 2001 From: Rafael Fontenelle Date: Tue, 29 Oct 2019 08:05:41 +0000 Subject: [PATCH 055/112] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (720 of 720 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/pt_BR/ --- app/src/main/res/values-pt-rBR/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index f1a9eab57..9718ed09b 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -788,4 +788,7 @@ Vermelho Laranja Cor da frequência cardíaca + Intervalo de sono + Últimas 24 horas + Meio-dia ao meio-dia \ No newline at end of file From 602d1d88a667e3a7093cc9c9589f9c6b0ddca889 Mon Sep 17 00:00:00 2001 From: HenRy Date: Mon, 28 Oct 2019 22:57:26 +0000 Subject: [PATCH 056/112] Translated using Weblate (German) Currently translated at 100.0% (720 of 720 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/de/ --- app/src/main/res/values-de/strings.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index a20ea5bc6..e23d9f2cb 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -278,7 +278,7 @@ Korrekte Hardwarerevision Falsche Hardwarerevision! %1$s (%2$s) - Problem mit der Firmwareübertragung. DEIN MI BAND NICHT NEU STARTEN! + Problem mit der Firmware-Übertragung. DEIN MI BAND NICHT NEU STARTEN! Problem bei der Firmware-Metadatenübertragung Firmwareinstallation abgeschlossen Firmwareinstallation erfolgreich beendet, Gerät wird neu gestartet… @@ -384,9 +384,9 @@ Pebble koppeln Auf deinem Android-Gerät erscheint ein Koppeln-Dialog. Wenn nicht, schaue in die Benachrichtigungsübersicht und akzeptiere die Kopplungsanforderung. Akzeptiere es auch danach auf deiner Pebble. - Stelle sicher, dass dieses Skin in der Wetterbenachrichtigungsapp aktiviert ist, damit du Wetterdaten auf deiner Pebble erhältst. + Stelle sicher, dass dieses Skin in der Wetterbenachrichtigungs-App aktiviert ist, damit du Wetterdaten auf deiner Pebble erhältst. \n -\nHier ist Keine Konfiguration nötig. +\nHier ist keine Konfiguration nötig. \n \nDu kannst die Systemwetter-App deiner Pebble in App-Verwaltung aktivieren. \n @@ -695,7 +695,7 @@ BFH-16 Du bist dabei, die %s-Firmware auf deine Amazfit Cor 2 zu installieren. \n -\nBitte stelle sicher, dass Du die .fw-Datei und danach die .res-Datei installierst. Dein Band wird nach der Installation der.fw-Datei neu gestartet. +\nBitte stelle sicher, dass du die .fw-Datei und danach die .res-Datei installierst. Dein Band wird nach der Installation der .fw-Datei neu gestartet. \n \nHinweis: Du musst .res nicht installieren, wenn es genau das gleiche ist, wie die zuvor installierte. \n @@ -753,7 +753,7 @@ Automatischer Export Automatischer Export jetzt starten Datenbank exportieren… - Achtung! Wenn Du auf diese Schaltfläche klickst, löschst du deine Datenbank und beginnst von Grund auf neu. + Achtung! Wenn du auf diese Schaltfläche klickst, löschst du deine Datenbank und beginnst von Grund auf neu. Schlafalarm Schritte: %1$02d Schlaf: %1$s @@ -767,14 +767,14 @@ Makibes HR3 Amazfit Bip Lite Telefon finden - Telefon finden aktivieren + \'Telefon finden\' einschalten Verwende dein Band, um den Klingelton deines Telefons wiederzugeben. Klingeldauer in Sekunden Dauer Dieses Gerät benötigt eine geheime Authentifikationstaste, die du mit einem langen Druck auf das Gerät eingeben kannst. Lies das Wiki. Du bist dabei, die Firmware %s auf deine Amazfit Bip Lite zu installieren. \n -\nBitte stelle sicher, dass du die .fw Datei und danach die .res Datei installierst. Dein Uhr wird nach der Installation der .fw Datei neu gestartet. +\nBitte stelle sicher, dass du die .fw Datei und danach die .res Datei installierst. Deine Uhr wird nach der Installation der .fw Datei neu gestartet. \n \nHinweis: Du musst .res nicht installieren, wenn es genau das gleiche ist, wie die zuvor installierte. \n From a3cd99a4a354ddc3b33a8e0759543bf7c135bcf5 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Thu, 31 Oct 2019 14:28:24 +0100 Subject: [PATCH 057/112] Huami: move notification code from AmazfitBipSupport to HuamiSupport probably fix notifications on GTS --- .../service/devices/huami/HuamiSupport.java | 103 ++++++++++++++++++ .../huami/amazfitbip/AmazfitBipSupport.java | 92 +--------------- .../huami/amazfitgtr/AmazfitGTRSupport.java | 6 + .../huami/amazfitgts/AmazfitGTSSupport.java | 16 ++- .../devices/huami/miband3/MiBand3Support.java | 1 + .../devices/huami/miband4/MiBand4Support.java | 7 ++ 6 files changed, 132 insertions(+), 93 deletions(-) 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 7b726360b..bf728fdc8 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 @@ -22,6 +22,8 @@ import android.bluetooth.BluetoothGatt; import android.bluetooth.BluetoothGattCharacteristic; import android.content.Context; import android.content.Intent; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; import android.net.Uri; import android.text.format.DateFormat; import android.widget.Toast; @@ -112,6 +114,8 @@ import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.ConditionalWrit import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.SetDeviceStateAction; import nodomain.freeyourgadget.gadgetbridge.service.btle.profiles.IntentListener; import nodomain.freeyourgadget.gadgetbridge.service.btle.profiles.alertnotification.AlertCategory; +import nodomain.freeyourgadget.gadgetbridge.service.btle.profiles.alertnotification.AlertNotificationProfile; +import nodomain.freeyourgadget.gadgetbridge.service.btle.profiles.alertnotification.NewAlert; import nodomain.freeyourgadget.gadgetbridge.service.btle.profiles.deviceinfo.DeviceInfoProfile; import nodomain.freeyourgadget.gadgetbridge.service.devices.common.SimpleNotification; import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.actions.StopNotificationAction; @@ -128,6 +132,7 @@ import nodomain.freeyourgadget.gadgetbridge.util.DeviceHelper; import nodomain.freeyourgadget.gadgetbridge.util.GB; import nodomain.freeyourgadget.gadgetbridge.util.NotificationUtils; import nodomain.freeyourgadget.gadgetbridge.util.Prefs; +import nodomain.freeyourgadget.gadgetbridge.util.StringUtils; import nodomain.freeyourgadget.gadgetbridge.util.Version; import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.DEFAULT_VALUE_VIBRATION_COUNT; @@ -585,6 +590,104 @@ public class HuamiSupport extends AbstractBTLEDeviceSupport { } } + + /* + This works on all Huami devices except Mi Band 2 + */ + protected void sendNotificationNew(NotificationSpec notificationSpec, boolean hasExtraHeader) { + if (notificationSpec.type == NotificationType.GENERIC_ALARM_CLOCK) { + onAlarmClock(notificationSpec); + return; + } + + String senderOrTitle = StringUtils.getFirstOf(notificationSpec.sender, notificationSpec.title); + + String message = StringUtils.truncate(senderOrTitle, 32) + "\0"; + if (notificationSpec.subject != null) { + message += StringUtils.truncate(notificationSpec.subject, 128) + "\n\n"; + } + if (notificationSpec.body != null) { + message += StringUtils.truncate(notificationSpec.body, 128); + } + + try { + TransactionBuilder builder = performInitialized("new notification"); + + byte customIconId = HuamiIcon.mapToIconId(notificationSpec.type); + AlertCategory alertCategory = AlertCategory.CustomHuami; + + // The SMS icon for AlertCategory.SMS is unique and not available as iconId + if (notificationSpec.type == NotificationType.GENERIC_SMS) { + alertCategory = AlertCategory.SMS; + } + // EMAIL icon does not work in FW 0.0.8.74, it did in 0.0.7.90 + else if (customIconId == HuamiIcon.EMAIL) { + alertCategory = AlertCategory.Email; + } + + int maxLength = 230; + if (characteristicChunked != null) { + int prefixlength = 2; + + // We also need a (fake) source name for Mi Band 3 for SMS/EMAIL, else the message is not displayed + byte[] appSuffix = "\0 \0".getBytes(); + int suffixlength = appSuffix.length; + + if (alertCategory == AlertCategory.CustomHuami) { + String appName; + prefixlength = 3; + final PackageManager pm = getContext().getPackageManager(); + ApplicationInfo ai = null; + try { + ai = pm.getApplicationInfo(notificationSpec.sourceAppId, 0); + } catch (PackageManager.NameNotFoundException ignored) { + } + + if (ai != null) { + appName = "\0" + pm.getApplicationLabel(ai) + "\0"; + } else { + appName = "\0" + "UNKNOWN" + "\0"; + } + appSuffix = appName.getBytes(); + suffixlength = appSuffix.length; + } + if (hasExtraHeader) { + prefixlength += 4; + } + + byte[] rawmessage = message.getBytes(); + int length = Math.min(rawmessage.length, maxLength - prefixlength); + + byte[] command = new byte[length + prefixlength + suffixlength]; + int pos = 0; + command[pos++] = (byte) alertCategory.getId(); + if (hasExtraHeader) { + command[pos++] = 0; // TODO + command[pos++] = 0; + command[pos++] = 0; + command[pos++] = 0; + } + command[pos++] = 1; + if (alertCategory == AlertCategory.CustomHuami) { + command[pos] = customIconId; + } + + System.arraycopy(rawmessage, 0, command, prefixlength, length); + System.arraycopy(appSuffix, 0, command, prefixlength + length, appSuffix.length); + + writeToChunked(builder, 0, command); + } else { + AlertNotificationProfile profile = new AlertNotificationProfile(this); + NewAlert alert = new NewAlert(alertCategory, 1, message, customIconId); + profile.setMaxLength(maxLength); + profile.newAlert(builder, alert); + } + builder.queue(getQueue()); + } catch (IOException ex) { + LOG.error("Unable to send notification to device", ex); + } + } + @Override public void onNotification(NotificationSpec notificationSpec) { if (notificationSpec.type == NotificationType.GENERIC_ALARM_CLOCK) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitbip/AmazfitBipSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitbip/AmazfitBipSupport.java index e2fc11879..e152872c0 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitbip/AmazfitBipSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitbip/AmazfitBipSupport.java @@ -68,97 +68,7 @@ public class AmazfitBipSupport extends HuamiSupport { @Override public void onNotification(NotificationSpec notificationSpec) { - if (notificationSpec.type == NotificationType.GENERIC_ALARM_CLOCK) { - onAlarmClock(notificationSpec); - return; - } - - String senderOrTitle = StringUtils.getFirstOf(notificationSpec.sender, notificationSpec.title); - - String message = StringUtils.truncate(senderOrTitle, 32) + "\0"; - if (notificationSpec.subject != null) { - message += StringUtils.truncate(notificationSpec.subject, 128) + "\n\n"; - } - if (notificationSpec.body != null) { - message += StringUtils.truncate(notificationSpec.body, 128); - } - - try { - TransactionBuilder builder = performInitialized("new notification"); - - byte customIconId = HuamiIcon.mapToIconId(notificationSpec.type); - AlertCategory alertCategory = AlertCategory.CustomHuami; - - // The SMS icon for AlertCategory.SMS is unique and not available as iconId - if (notificationSpec.type == NotificationType.GENERIC_SMS) { - alertCategory = AlertCategory.SMS; - } - // EMAIL icon does not work in FW 0.0.8.74, it did in 0.0.7.90 - else if (customIconId == HuamiIcon.EMAIL) { - alertCategory = AlertCategory.Email; - } - - int maxLength = 230; - if (characteristicChunked != null) { - int prefixlength = 2; - - // We also need a (fake) source name for Mi Band 3 for SMS/EMAIL, else the message is not displayed - byte[] appSuffix = "\0 \0".getBytes(); - int suffixlength = appSuffix.length; - - if (alertCategory == AlertCategory.CustomHuami) { - String appName; - prefixlength = 3; - final PackageManager pm = getContext().getPackageManager(); - ApplicationInfo ai = null; - try { - ai = pm.getApplicationInfo(notificationSpec.sourceAppId, 0); - } catch (PackageManager.NameNotFoundException ignored) { - } - - if (ai != null) { - appName = "\0" + pm.getApplicationLabel(ai) + "\0"; - } else { - appName = "\0" + "UNKNOWN" + "\0"; - } - appSuffix = appName.getBytes(); - suffixlength = appSuffix.length; - } - if (gbDevice.getType() == DeviceType.MIBAND4 || gbDevice.getType() == DeviceType.AMAZFITGTR) { - prefixlength += 4; - } - - byte[] rawmessage = message.getBytes(); - int length = Math.min(rawmessage.length, maxLength - prefixlength); - - byte[] command = new byte[length + prefixlength + suffixlength]; - int pos = 0; - command[pos++] = (byte) alertCategory.getId(); - if (gbDevice.getType() == DeviceType.MIBAND4 || gbDevice.getType() == DeviceType.AMAZFITGTR) { - command[pos++] = 0; // TODO - command[pos++] = 0; - command[pos++] = 0; - command[pos++] = 0; - } - command[pos++] = 1; - if (alertCategory == AlertCategory.CustomHuami) { - command[pos] = customIconId; - } - - System.arraycopy(rawmessage, 0, command, prefixlength, length); - System.arraycopy(appSuffix, 0, command, prefixlength + length, appSuffix.length); - - writeToChunked(builder, 0, command); - } else { - AlertNotificationProfile profile = new AlertNotificationProfile(this); - NewAlert alert = new NewAlert(alertCategory, 1, message, customIconId); - profile.setMaxLength(maxLength); - profile.newAlert(builder, alert); - } - builder.queue(getQueue()); - } catch (IOException ex) { - LOG.error("Unable to send notification to Amazfit Bip", ex); - } + super.sendNotificationNew(notificationSpec, false); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRSupport.java index 13f520b06..791776c84 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRSupport.java @@ -24,6 +24,7 @@ import java.io.IOException; import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiFWHelper; import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitgtr.AmazfitGTRFWHelper; +import nodomain.freeyourgadget.gadgetbridge.model.NotificationSpec; import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder; import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip.AmazfitBipSupport; @@ -39,6 +40,11 @@ public class AmazfitGTRSupport extends AmazfitBipSupport { return 0x00; } + @Override + public void onNotification(NotificationSpec notificationSpec) { + super.sendNotificationNew(notificationSpec, true); + } + @Override public HuamiFWHelper createFWHelper(Uri uri, Context context) throws IOException { return new AmazfitGTRFWHelper(uri, context); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgts/AmazfitGTSSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgts/AmazfitGTSSupport.java index 493c3a318..8b1fa09ee 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgts/AmazfitGTSSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgts/AmazfitGTSSupport.java @@ -1,11 +1,23 @@ package nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitgts; -import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.miband3.MiBand3Support; +import nodomain.freeyourgadget.gadgetbridge.model.NotificationSpec; +import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip.AmazfitBipSupport; + +public class AmazfitGTSSupport extends AmazfitBipSupport { -public class AmazfitGTSSupport extends MiBand3Support { @Override public byte getCryptFlags() { return (byte) 0x80; } + @Override + protected byte getAuthFlags() { + return 0x00; + } + + @Override + public void onNotification(NotificationSpec notificationSpec) { + super.sendNotificationNew(notificationSpec, true); + } + } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/miband3/MiBand3Support.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/miband3/MiBand3Support.java index 8fab17d14..a3c99e0e3 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/miband3/MiBand3Support.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/miband3/MiBand3Support.java @@ -36,6 +36,7 @@ import nodomain.freeyourgadget.gadgetbridge.devices.huami.miband3.MiBand3Coordin import nodomain.freeyourgadget.gadgetbridge.devices.huami.miband3.MiBand3FWHelper; import nodomain.freeyourgadget.gadgetbridge.devices.huami.miband3.MiBand3Service; import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst; +import nodomain.freeyourgadget.gadgetbridge.model.NotificationSpec; import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder; import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip.AmazfitBipSupport; import nodomain.freeyourgadget.gadgetbridge.util.GB; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/miband4/MiBand4Support.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/miband4/MiBand4Support.java index 7e687932c..a19185050 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/miband4/MiBand4Support.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/miband4/MiBand4Support.java @@ -23,6 +23,8 @@ import java.io.IOException; import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiFWHelper; import nodomain.freeyourgadget.gadgetbridge.devices.huami.miband4.MiBand4FWHelper; +import nodomain.freeyourgadget.gadgetbridge.model.NotificationSpec; +import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.HuamiSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.miband3.MiBand3Support; import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.operations.UpdateFirmwareOperationNew; @@ -33,6 +35,11 @@ public class MiBand4Support extends MiBand3Support { return (byte) 0x80; } + @Override + public void onNotification(NotificationSpec notificationSpec) { + super.sendNotificationNew(notificationSpec, true); + } + @Override public HuamiFWHelper createFWHelper(Uri uri, Context context) throws IOException { return new MiBand4FWHelper(uri, context); From 2b0656c9c035ebb3047c6d43004bdc2e7d3d9172 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Thu, 31 Oct 2019 15:30:05 +0100 Subject: [PATCH 058/112] Amazfit GTS: Enable flashing firmware (untested) --- .../amazfitgtr/AmazfitGTRCoordinator.java | 36 +++++- .../huami/amazfitgtr/AmazfitGTRFWHelper.java | 1 - .../amazfitgts/AmazfitGTSCoordinator.java | 26 ++-- .../huami/amazfitgts/AmazfitGTSFWHelper.java | 41 +++++++ .../AmazfitGTSFWInstallHandler.java | 50 ++++++++ .../service/devices/huami/HuamiSupport.java | 6 +- .../amazfitgtr/AmazfitGTRFirmwareInfo.java | 4 +- .../amazfitgts/AmazfitGTSFirmwareInfo.java | 116 ++++++++++++++++++ .../huami/amazfitgts/AmazfitGTSSupport.java | 21 ++++ app/src/main/res/values/strings.xml | 1 + 10 files changed, 287 insertions(+), 15 deletions(-) create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgts/AmazfitGTSFWHelper.java create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgts/AmazfitGTSFWInstallHandler.java create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgts/AmazfitGTSFirmwareInfo.java 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 568c167fc..352353451 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 @@ -26,12 +26,14 @@ import androidx.annotation.NonNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler; -import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitbip.AmazfitBipCoordinator; +import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiCoordinator; +import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate; import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; -public class AmazfitGTRCoordinator extends AmazfitBipCoordinator { +public class AmazfitGTRCoordinator extends HuamiCoordinator { private static final Logger LOG = LoggerFactory.getLogger(AmazfitGTRCoordinator.class); @Override @@ -64,4 +66,34 @@ public class AmazfitGTRCoordinator extends AmazfitBipCoordinator { public int getBondingStyle() { return BONDING_STYLE_REQUIRE_KEY; } + + @Override + public boolean supportsHeartRateMeasurement(GBDevice device) { + return true; + } + + @Override + public boolean supportsActivityTracks() { + return true; + } + + @Override + public boolean supportsWeather() { + return true; + } + + @Override + public boolean supportsMusicInfo() { + return true; + } + public int[] getSupportedDeviceSpecificSettings(GBDevice device) { + return new int[]{ + R.xml.devicesettings_amazfitgtr, + R.xml.devicesettings_wearlocation, + R.xml.devicesettings_liftwrist_display, + R.xml.devicesettings_disconnectnotification, + R.xml.devicesettings_expose_hr_thirdparty, + R.xml.devicesettings_pairingkey + }; + } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgtr/AmazfitGTRFWHelper.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgtr/AmazfitGTRFWHelper.java index ea770d694..a24d8e26e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgtr/AmazfitGTRFWHelper.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgtr/AmazfitGTRFWHelper.java @@ -33,7 +33,6 @@ public class AmazfitGTRFWHelper extends HuamiFWHelper { super(uri, context); } - @NonNull @Override protected void determineFirmwareInfo(byte[] wholeFirmwareBytes) { firmwareInfo = new AmazfitGTRFirmwareInfo(wholeFirmwareBytes); 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 7f9414456..cd13cbc87 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 @@ -9,6 +9,7 @@ import androidx.annotation.NonNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler; import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiCoordinator; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; @@ -18,6 +19,11 @@ import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; public class AmazfitGTSCoordinator extends HuamiCoordinator { private static final Logger LOG = LoggerFactory.getLogger(AmazfitGTSCoordinator.class); + @Override + public DeviceType getDeviceType() { + return DeviceType.AMAZFITGTS; + } + @NonNull @Override public DeviceType getSupportedType(GBDeviceCandidate candidate) { @@ -34,8 +40,9 @@ public class AmazfitGTSCoordinator extends HuamiCoordinator { } @Override - public DeviceType getDeviceType() { - return DeviceType.AMAZFITGTS; + public InstallHandler findInstallHandler(Uri uri, Context context) { + AmazfitGTSFWInstallHandler handler = new AmazfitGTSFWInstallHandler(uri, context); + return handler.isValid() ? handler : null; } @Override @@ -43,11 +50,6 @@ public class AmazfitGTSCoordinator extends HuamiCoordinator { return BONDING_STYLE_REQUIRE_KEY; } - @Override - public InstallHandler findInstallHandler(Uri uri, Context context) { - return null; - } - @Override public boolean supportsHeartRateMeasurement(GBDevice device) { return true; @@ -68,4 +70,14 @@ public class AmazfitGTSCoordinator extends HuamiCoordinator { return true; } + public int[] getSupportedDeviceSpecificSettings(GBDevice device) { + return new int[]{ + R.xml.devicesettings_amazfitgtr, + R.xml.devicesettings_wearlocation, + R.xml.devicesettings_liftwrist_display, + R.xml.devicesettings_disconnectnotification, + R.xml.devicesettings_expose_hr_thirdparty, + R.xml.devicesettings_pairingkey + }; + } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgts/AmazfitGTSFWHelper.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgts/AmazfitGTSFWHelper.java new file mode 100644 index 000000000..78a9a2c5b --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgts/AmazfitGTSFWHelper.java @@ -0,0 +1,41 @@ +/* Copyright (C) 2016-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele + Gobbetti + + This file is part of Gadgetbridge. + + Gadgetbridge is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Gadgetbridge is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . */ +package nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitgts; + +import android.content.Context; +import android.net.Uri; + +import java.io.IOException; + +import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiFWHelper; +import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitgts.AmazfitGTSFirmwareInfo; + +public class AmazfitGTSFWHelper extends HuamiFWHelper { + + public AmazfitGTSFWHelper(Uri uri, Context context) throws IOException { + super(uri, context); + } + + @Override + protected void determineFirmwareInfo(byte[] wholeFirmwareBytes) { + firmwareInfo = new AmazfitGTSFirmwareInfo(wholeFirmwareBytes); + if (!firmwareInfo.isHeaderValid()) { + throw new IllegalArgumentException("Not a an Amazifit GTS firmware"); + } + } +} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgts/AmazfitGTSFWInstallHandler.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgts/AmazfitGTSFWInstallHandler.java new file mode 100644 index 000000000..8b0957ddf --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitgts/AmazfitGTSFWInstallHandler.java @@ -0,0 +1,50 @@ +/* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer + + This file is part of Gadgetbridge. + + Gadgetbridge is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Gadgetbridge is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . */ +package nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitgts; + +import android.content.Context; +import android.net.Uri; + +import java.io.IOException; + +import nodomain.freeyourgadget.gadgetbridge.R; +import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitgtr.AmazfitGTRFWHelper; +import nodomain.freeyourgadget.gadgetbridge.devices.miband.AbstractMiBandFWHelper; +import nodomain.freeyourgadget.gadgetbridge.devices.miband.AbstractMiBandFWInstallHandler; +import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; +import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; + +class AmazfitGTSFWInstallHandler extends AbstractMiBandFWInstallHandler { + AmazfitGTSFWInstallHandler(Uri uri, Context context) { + super(uri, context); + } + + @Override + protected String getFwUpgradeNotice() { + return mContext.getString(R.string.fw_upgrade_notice_amazfitgts, helper.getHumanFirmwareVersion()); + } + + @Override + protected AbstractMiBandFWHelper createHelper(Uri uri, Context context) throws IOException { + return new AmazfitGTRFWHelper(uri, context); + } + + @Override + protected boolean isSupportedDeviceType(GBDevice device) { + return device.getType() == DeviceType.AMAZFITGTS; + } +} 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 bf728fdc8..92c0e49c9 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 @@ -1645,11 +1645,11 @@ public class HuamiSupport extends AbstractBTLEDeviceSupport { LOG.warn("Device not initialized yet, so not sending weather info"); return; } - boolean supportsConditionString = false; + boolean supportsConditionString = true; Version version = new Version(gbDevice.getFirmwareVersion()); - if (version.compareTo(new Version("0.0.8.74")) >= 0) { - supportsConditionString = true; + if (gbDevice.getType() == DeviceType.AMAZFITBIP && version.compareTo(new Version("0.0.8.74")) < 0) { + supportsConditionString = false; } MiBandConst.DistanceUnit unit = HuamiCoordinator.getDistanceUnit(); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRFirmwareInfo.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRFirmwareInfo.java index d4830455b..4c15f6b9e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRFirmwareInfo.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgtr/AmazfitGTRFirmwareInfo.java @@ -26,10 +26,10 @@ import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.HuamiFirmwareT import nodomain.freeyourgadget.gadgetbridge.util.ArrayUtils; public class AmazfitGTRFirmwareInfo extends HuamiFirmwareInfo { - private static final int FW_OFFSET = 2; + private static final int FW_OFFSET = 3; private static final byte[] FW_HEADER = new byte[]{ - 0x09, 0x20, (byte) 0x99, 0x12, 0x01, 0x08 // completely nonsense probably + 0x20, (byte) 0x99, 0x12, 0x01, 0x08 // completely nonsense probably }; private static final byte[] GPS_ALMANAC_HEADER = new byte[]{ // probably wrong diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgts/AmazfitGTSFirmwareInfo.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgts/AmazfitGTSFirmwareInfo.java new file mode 100644 index 000000000..d61e3bec0 --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgts/AmazfitGTSFirmwareInfo.java @@ -0,0 +1,116 @@ +/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer + + This file is part of Gadgetbridge. + + Gadgetbridge is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Gadgetbridge is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . */ +package nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitgts; + +import java.util.HashMap; +import java.util.Map; + +import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; +import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; +import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.HuamiFirmwareInfo; +import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.HuamiFirmwareType; +import nodomain.freeyourgadget.gadgetbridge.util.ArrayUtils; + +public class AmazfitGTSFirmwareInfo extends HuamiFirmwareInfo { + private static final int FW_OFFSET = 3; + + private static final byte[] FW_HEADER = new byte[]{ + 0x20, (byte) 0x99, 0x12, 0x01, 0x08 // completely nonsense probably + }; + + private static final byte[] GPS_ALMANAC_HEADER = new byte[]{ // probably wrong + (byte) 0xa0, (byte) 0x80, 0x08, 0x00, (byte) 0x8b, 0x07 + }; + + private static final byte[] GPS_CEP_HEADER = new byte[]{ // probably wrong + 0x2a, 0x12, (byte) 0xa0, 0x02 + }; + + // gps detection is totally bogus, just the first 16 bytes + private static final byte[][] GPS_HEADERS = { + new byte[]{ + 0x73, 0x75, 0x68, (byte) 0xd0, 0x70, 0x73, (byte) 0xbb, 0x5a, + 0x3e, (byte) 0xc3, (byte) 0xd3, 0x09, (byte) 0x9e, 0x1d, (byte) 0xd3, (byte) 0xc9 + } + }; + private static Map crcToVersion = new HashMap<>(); + + static { + // firmware + + // Latin Firmware + + // resources + + // font + + // gps + crcToVersion.put(62532, "18344,eb2f43f,126"); + } + + public AmazfitGTSFirmwareInfo(byte[] bytes) { + super(bytes); + } + + @Override + protected HuamiFirmwareType determineFirmwareType(byte[] bytes) { + if (ArrayUtils.equals(bytes, NEWRES_HEADER, COMPRESSED_RES_HEADER_OFFSET_NEW)) { + return HuamiFirmwareType.RES_COMPRESSED; + } + if (ArrayUtils.equals(bytes, FW_HEADER, FW_OFFSET)) { + if (searchString32BitAligned(bytes, "Amazfit GTS")) { + return HuamiFirmwareType.FIRMWARE; + } + return HuamiFirmwareType.INVALID; + } + if (ArrayUtils.startsWith(bytes, WATCHFACE_HEADER)) { + return HuamiFirmwareType.WATCHFACE; + } + if (ArrayUtils.startsWith(bytes, NEWFT_HEADER)) { + if (bytes[10] == 0x01) { + return HuamiFirmwareType.FONT; + } else if (bytes[10] == 0x02) { + return HuamiFirmwareType.FONT_LATIN; + } + } + + if (ArrayUtils.startsWith(bytes, GPS_ALMANAC_HEADER)) { + return HuamiFirmwareType.GPS_ALMANAC; + } + if (ArrayUtils.startsWith(bytes, GPS_CEP_HEADER)) { + return HuamiFirmwareType.GPS_CEP; + } + + for (byte[] gpsHeader : GPS_HEADERS) { + if (ArrayUtils.startsWith(bytes, gpsHeader)) { + return HuamiFirmwareType.GPS; + } + } + + return HuamiFirmwareType.INVALID; + } + + @Override + public boolean isGenerallyCompatibleWith(GBDevice device) { + return isHeaderValid() && device.getType() == DeviceType.AMAZFITGTS; + } + + @Override + protected Map getCrcMap() { + return crcToVersion; + } +} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgts/AmazfitGTSSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgts/AmazfitGTSSupport.java index 8b1fa09ee..bc7fb2dfa 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgts/AmazfitGTSSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/amazfitgts/AmazfitGTSSupport.java @@ -1,6 +1,15 @@ package nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitgts; +import android.content.Context; +import android.net.Uri; + +import java.io.IOException; + +import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiFWHelper; +import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitgtr.AmazfitGTRFWHelper; +import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitgts.AmazfitGTSFWHelper; import nodomain.freeyourgadget.gadgetbridge.model.NotificationSpec; +import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder; import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip.AmazfitBipSupport; public class AmazfitGTSSupport extends AmazfitBipSupport { @@ -20,4 +29,16 @@ public class AmazfitGTSSupport extends AmazfitBipSupport { super.sendNotificationNew(notificationSpec, true); } + + @Override + public HuamiFWHelper createFWHelper(Uri uri, Context context) throws IOException { + return new AmazfitGTSFWHelper(uri, context); + } + + @Override + protected AmazfitGTSSupport setDisplayItems(TransactionBuilder builder) { + // not supported yet + return this; + } + } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 60cb70bc3..121563b01 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -67,6 +67,7 @@ \n \nCOMPLETELY UNTESTED, PROBABLY YOU NEED TO FLASH A BEATS_W FIRMWARE IF YOUR DEVICE NAME IS \"Amazfit Band 2\" You are about to install the %s firmware on your Amazfit GTR.\n\nPlease make sure to install the .fw file, then the .res file, and finally the .gps file. Your watch will reboot after installing the .fw file.\n\nNote: You do not have to install .res and .gps if these files are exactly the same as the ones previously installed.\n\nPROCEED AT YOUR OWN RISK! + You are about to install the %s firmware on your Amazfit GTS.\n\nPlease make sure to install the .fw file, then the .res file, and finally the .gps file. Your watch will reboot after installing the .fw file.\n\nNote: You do not have to install .res and .gps if these files are exactly the same as the ones previously installed.\n\nPROCEED AT YOUR OWN RISK! You are about to install the %s firmware on your Mi Band 3.\n\nPlease make sure to install the .fw file, and after that the .res file. Your band will reboot after installing the .fw file.\n\nNote: You do not have to install .res if it is exactly the same as the one previously installed.\n\nPROCEED AT YOUR OWN RISK! You are about to install the %s firmware on your Mi Band 4.\n\nPlease make sure to install the .fw file, and after that the .res file. Your band will reboot after installing the .fw file.\n\nNote: You do not have to install .res if it is exactly the same as the one previously installed.\n\nPROCEED AT YOUR OWN RISK! You are about to install the %1$s and %2$s firmware, instead of the ones currently on your Mi Band. From 394091c89a8e04acd2f8b7013e136f7487537718 Mon Sep 17 00:00:00 2001 From: Rafael Fontenelle Date: Wed, 30 Oct 2019 13:10:47 +0000 Subject: [PATCH 059/112] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (721 of 721 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/pt_BR/ --- app/src/main/res/values-pt-rBR/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 9718ed09b..5facc105c 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -791,4 +791,5 @@ Intervalo de sono Últimas 24 horas Meio-dia ao meio-dia + Amazfit GTS \ No newline at end of file From 6a33e2abb347f017d12b6b1c15d4dba40537c1d6 Mon Sep 17 00:00:00 2001 From: nautilusx Date: Wed, 30 Oct 2019 07:04:15 +0000 Subject: [PATCH 060/112] Translated using Weblate (German) Currently translated at 100.0% (721 of 721 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/de/ --- app/src/main/res/values-de/strings.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index e23d9f2cb..dadcbfa7a 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -384,12 +384,12 @@ Pebble koppeln Auf deinem Android-Gerät erscheint ein Koppeln-Dialog. Wenn nicht, schaue in die Benachrichtigungsübersicht und akzeptiere die Kopplungsanforderung. Akzeptiere es auch danach auf deiner Pebble. - Stelle sicher, dass dieses Skin in der Wetterbenachrichtigungs-App aktiviert ist, damit du Wetterdaten auf deiner Pebble erhältst. + Stelle sicher, dass dieser Skin in der Wetterbenachrichtigungs-App aktiviert ist, damit du Wetterdaten auf deiner Pebble erhältst. \n \nHier ist keine Konfiguration nötig. -\n -\nDu kannst die Systemwetter-App deiner Pebble in App-Verwaltung aktivieren. \n +\nDu kannst die Systemwetter-App deiner Pebble in App-Verwaltung aktivieren. +\n \nUnterstützte Zifferblätter zeigen das Wetter automatisch an. Bluetooth-Kopplung aktivieren Deaktiviere dies, wenn du Probleme beim Verbinden hast @@ -793,4 +793,5 @@ Schlafbereich Letzten 24 Stunden Mittag bis Mittag + Amazfit GTS \ No newline at end of file From c16dc545b75fe37c6a7ab1ace9c04490340c89fb Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Wed, 30 Oct 2019 11:44:02 +0000 Subject: [PATCH 061/112] Translated using Weblate (Hebrew) Currently translated at 100.0% (721 of 721 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/he/ --- app/src/main/res/values-he/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index 0a2d5b857..46bfe3426 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -781,4 +781,5 @@ טווח שינה 24 השעות האחרונות צהריים עד צהריים + Amazfit GTS \ No newline at end of file From 54ef69e523548cc7f17c601bfe297194507801a6 Mon Sep 17 00:00:00 2001 From: FransM Date: Wed, 30 Oct 2019 16:09:20 +0000 Subject: [PATCH 062/112] Translated using Weblate (Dutch) Currently translated at 100.0% (721 of 721 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/nl/ --- app/src/main/res/values-nl/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 0b84a3afe..279b531b0 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -782,4 +782,8 @@ Rood Oranje Kleur hartslag + Slaapbereik + Afgelopen 24 uur + Van middag tot middag + Amazfit GTS \ No newline at end of file From abc02349a3912833eac115fc620388434b11a070 Mon Sep 17 00:00:00 2001 From: Adolfo Jayme Barrientos Date: Thu, 31 Oct 2019 11:00:32 +0000 Subject: [PATCH 063/112] Translated using Weblate (Spanish) Currently translated at 98.1% (707 of 721 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/es/ --- app/src/main/res/values-es/strings.xml | 160 ++++++++++++++++--------- 1 file changed, 106 insertions(+), 54 deletions(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index a7249841a..b5897b7b5 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -44,8 +44,8 @@ Calendarios en lista negra Instalador de FW/App - Estás a punto de instalar el firmware %s del que tu Mi Band. - Estás a punto de instalar los firmware %1$s y %2$s en lugar de los que están en tu MiBand. + Está a punto de instalar el %s. + Está a punto de instalar los «firmwares» %1$s y %2$s en sustitución de los que hay actualmente en su Mi Band. Este firmware ha sido probado y se sabe que es compatible con Gadgetbridge. Este firmware no ha sido probado y puede que no sea compatible con Gadgetbridge. \n @@ -74,11 +74,11 @@ Llamadas telefónicas SMS Mensajes de Pebble - Soporte para aplicaciones que envían notificaciones a Pebble a través de PebbleKit. + Compatibilidad con aplicaciones que envían notificaciones al Pebble mediante PebbleKit. Soporte para notificaciones genéricas …también con pantalla encendida No Molestar - Las notificaciones no deseadas se detienen en este modo + Se detendrán notificaciones no deseadas en este modo Transcripción Utilizar en caso de que tu dispositivo no soporte la fuente de tu idioma Siempre @@ -180,7 +180,7 @@ %1$s (%2$s) Emparejar dispositivo Usar el menú de emparejamiento Bluetooth de Android para vincular el dispositivo. - Emparejar tu MiBand + Empareje la Mi Band Emparejando con %s… Creando emparejamiento con %1$s (%2$s) No se ha podido emparejar con %1$s (%2$s) @@ -194,7 +194,7 @@ Otro Izquierda Derecha - No se han proporcionado datos de usuario válidos, se usarán datos de usuario por defecto. + No se proporcionaron datos de usuario válidos. Por ahora se emplearán datos ficticios. Cuando tu MiBand vibre y parpadee, púlsala repetidas veces. Instalar Haga su dispositivo detectable. Los dispositivos conectados no serán detectables. En Android 6 o superior, necesita activar la localización (ej. GPS). Desactive Privacy Guard para Gadgetbridge, debido a que podría detener y reiniciar su teléfono. Si su dispositivo no aparece en dos minutos, vuelva a intentarlo tras reiniciar su teléfono. @@ -243,8 +243,8 @@ Vie Sáb Alarma inteligente - Hubo un error al configurar las alarmas, ¡Por favor, inténtalo de nuevo! - ¡Alarmas enviadas al dispositivo! + Se produjo un error al fijar las alarmas. Inténtelo de nuevo. + Se enviaron las alarmas al dispositivo. Sin datos. ¿Sincronizar dispositivo? A punto de transferir %1$s de datos desde %2$s Objetivo de pasos diarios @@ -323,7 +323,7 @@ Alerta de inactividad La pulsera vibrará cuando hayas estado inactivo por un tiempo Umbral de inactividad (en minutos) - Desactivar las alarmas de inactividad por un intervalo de tiempo + Desactivar alarmas de inactividad por un intervalo de tiempo Hora de inicio Hora de fin A punto de transferir datos desde %1$s @@ -338,7 +338,7 @@ Zzz Añadir widget Horas de sueño deseadas - Una alarma ha sido fijada para %1$02d:%2$02d + Se fijó una alarma a las %1$02d:%2$02d Revisión de hardware: %1$s Versión de firmware: %1$s Error creando un directorio para los archivos de registro: %1$s @@ -405,19 +405,13 @@ Selecciona Emparejar para emparejar tus dispositivos. Si esto falla, prueba de nuevo sin emparejar. Emparejar No emparejar - Estás a punto de instalar el firmware %s en tu Amazfit Bip. -\n -\nPor favor, asegúrate de instalar el archivo .fw, entonces el archivo .res, y finalmente el archivo .gps. Tu reloj se reiniciará después de instalar el archivo .fw. -\n -\nNota: no tienes que instalar los .res y .gps si ya están instalados en su última versión. -\n -\n¡PROCEDE BAJO TU RESPONSABILIDAD! -\n -\nPor favor, asegúrate de instalar el firmware .gps, luego el archivo .res, y finalmente el binario .fw. Tu reloj reiniciará después de instalar el archivo .fw. -\n -\nNota: no tienes que instalar .res y .gps si estos archivos son los mismos que los previamente instalados. -\n -\nPROCEDE BAJO TU PROPIA RESPONSABILIDAD ! + Está a punto de instalar el «firmware» %s en su Amazfit Bip. +\n +\nAsegúrese de instalar el archivo .fw y, a continuación, el archivo .res. Se reiniciará el reloj tras instalar el archivo .fw. +\n +\nNota: no es necesario instalar los archivos .res y .gps si son idénticos a los instalados previamente. +\n +\nPROCEDA BAJO SU PROPIA CUENTA Y RIESGO. Acciones del botón Especificar acción para pulsación del botón del Mi Band 2 Número de presiones @@ -440,13 +434,13 @@ Permite a las watchfaces mostrar el tiempo, información de batería, etc. Actividad Web View Conectar… - Estás a punto de instalar el firmware %s en tu Amazfit Cor. -\n -\nPor favor, asegúrate de instalar el archivo .fw, y finalmente el archivo .res. Tu reloj reiniciará después de instalar el archivo .fw. -\n -\nNota: no tienes que instalar .res si este archivo es el mismo que el previamente instalado. -\n -\n¡PROCEDE BAJO TU PROPIA RESPONSABILIDAD ! + Está a punto de instalar el «firmware» %s en su Amazfit Cor. +\n +\nAsegúrese de instalar el archivo .fw y, a continuación, el archivo .res. Se reiniciará la pulsera tras instalar el archivo .fw. +\n +\nNota: no es necesario instalar el archivo .res si es idéntico al instalado previamente. +\n +\nPROCEDA BAJO SU PROPIA CUENTA Y RIESGO. Permitir deslizar hacia izquierda/derecha en los gráficos de actividad Automático Chino simplificado @@ -519,13 +513,13 @@ Al hacer un restablecimiento de fábrica se eliminarán todos los datos del dispositivo conectado (si se admite). Los dispositivos Xiaomi / Huami también cambian la dirección MAC de Bluetooth, por lo que aparecen como nuevos dispositivos para Gadgetbrige. Lista negra para todas las notificaciones Lista blanca para todas las notificaciones - Estás a punto de instalar el firmware %s en su Mi Band 3. -\n -\nAsegúrate de instalar el archivo .fw y, a continuación, el archivo .res. Tu reloj se reiniciará después de instalar el archivo .fw. -\n -\nNota: No tienes que instalar el archivo .res si es el mismo que ha sido instalado previamente. -\n -\nNO PROBADO, PODRÍAS BRICKEAR TU DISPOSITIVO, ¡PROCEDE BAJO TU PROPIA RESPONSABILIDAD! + Está a punto de instalar el «firmware» %s en su Mi Band 3. +\n +\nAsegúrese de instalar el archivo .fw y, a continuación, el archivo .res. Se reiniciará la pulsera tras instalar el archivo .fw. +\n +\nNota: no es necesario instalar el archivo .res si es idéntico al instalado previamente. +\n +\nPROCEDA BAJO SU PROPIA CUENTA Y RIESGO. Tiempo mínimo entre notificaciones Derecha a Izquierda Habilite esto si su dispositivo no puede mostrar idiomas de derecha a izquierda @@ -602,10 +596,10 @@ Establezca la hora que su dispositivo le está mostrando en este momento. Tenga en cuenta que Gadgetbridge registra archivos que pueden contener mucha información personal, incluidos, entre otros, datos de salud, identificadores únicos (como la dirección MAC de un dispositivo), preferencias de música, etc. Considere editar el archivo y eliminar esta información antes de enviar el archivo a un informe público. No hay datos - Color LED + Color de LED Frecuencia FM Frecuencia no válida - Por favor ingrese una frecuencia entre 87.5 y 108.0 + Proporcione una frecuencia entre 87,5 y 108,0 Configuración de idioma y región Filtro de Notificaciones La aplicación no debe estar en la lista negra para ser configurada @@ -617,13 +611,13 @@ Al menos una de estas palabras Todas las palabras Ingrese al menos una palabra - Modo de Filtro - Modo de Configuración - Guardar Configuración + Modo de filtro + Configuración de modo + Guardar configuración No conectado, alarma no configurada. - Emparejando Watch 9 - Calibrando Watch 9 - Soporte para Derecha a Izquierda + Emparejamiento del Watch 9 + Calibración del Watch 9 + Compatibilidad con escrituras de derecha a izquierda Compartir registro ¡Advertencia! Configuraciones de ZeTime @@ -669,25 +663,27 @@ Configuraciones específicas del dispositivo Clave de autenticación Cambie la clave de autenticación a una clave común en todos sus dispositivos Android desde los que desea conectarse. La clave predeterminada anterior para todos los dispositivos es 0123456789@ABCDE - "Estás a punto de instalar el firmware para su Amazfit Cor 2. + Está a punto de instalar el «firmware» %s en su Amazfit Cor 2. \n -\nAsegúrate de instalar el archivo .fw y luego el archivo .res. Tu banda se reiniciará después de instalar el archivo .fw. +\nAsegúrese de instalar el archivo .fw y, a continuación, el archivo .res. Se reiniciará la pulsera tras instalar el archivo .fw. \n -\nNota: No tienes que instalar el archivo .res si es el mismo que ya ha sido previamente instalado. +\nNota: no es necesario instalar el archivo .res si es idéntico al instalado previamente. \n -\n¡PROCEDE BAJO TU PROPIO RIESGO!." - Estás a punto de instalar el firmware% s en tu Mi Band 4. +\nPROCEDA BAJO SU PROPIA CUENTA Y RIESGO. \n -\nAsegúrate de instalar el archivo .fw y luego el archivo .res. Tu banda se reiniciará después de instalar el archivo .fw. +\nNO SE HA REALIZADO NINGUNA PRUEBA. QUIZÁ NECESITE INSTALAR UN «FIRMWARE» BEATS_W SI EL NOMBRE DE SU DISPOSITIVO ES «Amazfit Band 2» + Está a punto de instalar el «firmware» %s en su Mi Band 4. \n -\nNota: No tienes que instalar el archivo .res si es el mismo que ha sido previamente instalado. +\nAsegúrese de instalar el archivo .fw y, a continuación, el archivo .res. Se reiniciará la pulsera tras instalar el archivo .fw. \n -\n¡PROCEDE BAJO TU PROPIO RIESGO! +\nNota: no es necesario instalar el archivo .res si es idéntico al instalado previamente. +\n +\nPROCEDA BAJO SU PROPIA CUENTA Y RIESGO. Alarma de frecuencia cardíaca durante actividad deportiva. Límite Bajo Límite Alto Notificación de llamada perdida - Notificación de Calendario + Notificación de calendario Notificación de inactividad Cada 15 minutos Cada 45 minutos @@ -722,4 +718,60 @@ El rango de gráficos está configurado para un mes El rango de gráficos está configurado para una semana Mijia Smart Clock + Permite a otras aplicaciones acceder a los datos de frecuencia cardíaca en tiempo real mientras Gadgetbridge está conectado + Acceso terceros frec. cardíaca + Utilizar tipo de letra personalizado + Actívelo si su dispositivo incluye «firmware» de tipo de letra personalizado para admitir emoyis + La ubicación de exportación automática se definió en: + Exportación automática + Exportar BD + Importar BD + Ejecutar exportación automática ahora + Exportando base de datos… + Eliminar BD anterior + Vaciar BD + Vaciar base de datos + Exportar e importar + Atención: al pulsar en este botón se borrará la base de datos y comenzará de cero. + Pasos: %1$02d + Estado y alarmas + Fijar alarma tras: + 5 minutos + 10 minutos + 20 minutos + 1 hora + + %d hora + %d horas + + Siempre visible + Visible solo si no se añade ningún dispositivo + Para ver el rastro de actividad, instale una aplicación que maneje archivos GPX. + Configuración de Makibes HR3 + Encontrar teléfono + Encender «Encontrar teléfono» + Utilice su pulsera para reproducir el tono del teléfono. + Duración del tono en segundos + Duración + Este dispositivo necesita una clave de autenticación secreta. Mantenga presionado el dispositivo para introducirla. Consulte el wiki. + Está a punto de instalar el «firmware» %s en su Amazfit Bip Lite. +\n +\nAsegúrese de instalar el archivo .fw y, a continuación, el archivo .res. Se reiniciará el reloj tras instalar el archivo .fw. +\n +\nNota: no es necesario instalar el archivo .res si es idéntico al instalado previamente. +\n +\nPROCEDA BAJO SU PROPIA CUENTA Y RIESGO. + Está a punto de instalar el «firmware» %s en su Amazfit GTR. +\n +\nAsegúrese de instalar el archivo .fw y, a continuación, el archivo .res. Se reiniciará el reloj tras instalar el archivo .fw. +\n +\nNota: no es necesario instalar los archivos .res y .gps si son idénticos a los instalados previamente. +\n +\nPROCEDA BAJO SU PROPIA CUENTA Y RIESGO. + Rojo + Naranja + Color de frecuencia cardíaca + Intervalo de sueño + Últimas 24 horas + De mediodía a mediodía \ No newline at end of file From 3b2044d94340d8ff2b11649f3fe5cf2737cdc7c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=B0=91=E4=B8=BE?= Date: Wed, 30 Oct 2019 02:41:31 +0000 Subject: [PATCH 064/112] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (721 of 721 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/ --- app/src/main/res/values-zh-rCN/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index cff2b5ece..e26024277 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -788,4 +788,5 @@ 睡眠范围 过去 24 小时 中午到中午 + 米动 GTS \ No newline at end of file From ed57852c5921a11e162eced42e0e1b31992d41de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Wed, 30 Oct 2019 02:27:09 +0000 Subject: [PATCH 065/112] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 97.8% (705 of 721 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/nb_NO/ --- app/src/main/res/values-nb-rNO/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 8a1d21eab..fa42bfc46 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -783,4 +783,5 @@ Søvnperiode Siste 24 timer 12:00 til 12:00 + Amazfit GTS \ No newline at end of file From 3f602034e1db9135ec8e33626db71cd7fb309ff9 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Thu, 31 Oct 2019 15:15:43 +0000 Subject: [PATCH 066/112] Translated using Weblate (Hebrew) Currently translated at 99.9% (723 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/he/ --- app/src/main/res/values-he/strings.xml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index 46bfe3426..f595d0d1d 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -385,7 +385,7 @@ השבתת אזהרות חוסר פעילות לפרק זמן מסוים מועד ההתחלה מועד הסיום - פעולה זו תתקין את הקושחה %s במקום זו שכרגע מותקנת ב־Amazfit Bip שלך. + פעולה זו תתקין את הקושחה %s ב־Amazfit Bip שלך. \n \nנא לוודא את התקנת קושחת ה־‎.fw בהתחלה, לאחר מכן את קובץ ה־‎.res ולבסוף קובץ ה־‎.gps השעון שלך יופעל מחדש לאחר התקנת קובץ ה־fw. \n @@ -782,4 +782,11 @@ 24 השעות האחרונות צהריים עד צהריים Amazfit GTS + פעולה זו תתקין את הקושחה %s ב־Amazfit GTS שלך. +\n +\nנא לוודא את התקנת קושחת ה־‎.fw בהתחלה, לאחר מכן את קובץ ה־‎.res ולבסוף קובץ ה־‎.gps השעון שלך יופעל מחדש לאחר התקנת קובץ ה־fw. +\n +\nלתשומת לבך: אין צורך בהתקנת קובצי ה־‎.res וה־‎.gps אם הם כבר זהים לאלו שהתקנת בעבר. +\n +\nהמשך התהליך הוא על אחריותך! \ No newline at end of file From 30e48609071d5fae067f7925c7fffefbe420da78 Mon Sep 17 00:00:00 2001 From: FransM Date: Thu, 31 Oct 2019 22:00:11 +0000 Subject: [PATCH 067/112] Translated using Weblate (Dutch) Currently translated at 100.0% (724 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/nl/ --- app/src/main/res/values-nl/strings.xml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 279b531b0..87caf41f3 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -690,9 +690,9 @@ \n \nOpmerking: U hoeft de .res niet te installeren als deze exact dezelfde is als degene die ervoor al was geïnstalleerd. \n -\nGA VERDER OP EIGEN RISICO! -\n -\nVOLLEDIG ONGETEST, MISSCHIEN MET JE EEN BEATS_W_FIRMWARE INSTALLEREN ALS JE DEVICE NAAM \"Amazfit Band 2\" IS +\nGA VERDER OP EIGEN RISICO! +\n +\nVOLLEDIG ONGETEST, MISSCHIEN MOET JE EEN BEATS_W_FIRMWARE INSTALLEREN ALS JE DEVICE NAAM \"Amazfit Band 2\" IS Nederlands Turks Oekraïens @@ -786,4 +786,11 @@ Afgelopen 24 uur Van middag tot middag Amazfit GTS + U staat op het punt om de firmware %s te installeren op uw Amazfit GTS. +\n +\nZorg ervoor dat u het .fw-bestand installeert, daarna het .res-bestand en als laatste het .gps-bestand. Uw horloge wordt opnieuw gestart na het installeren van het .fw-bestand. +\n +\nOpmerking: U hoeft de .res niet te installeren als deze exact dezelfde is als degene die ervoor al was geïnstalleerd. +\n +\nGA VERDER OP EIGEN RISICO! \ No newline at end of file From 20ff60598ece61f52328e5b319fe6ffd5deecff8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 1 Nov 2019 00:32:54 +0000 Subject: [PATCH 068/112] Translated using Weblate (Dutch) Currently translated at 100.0% (724 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/nl/ --- app/src/main/res/values-nl/strings.xml | 36 +++++++++++++------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 87caf41f3..99c103fff 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -36,12 +36,12 @@ Verplaats naar de top Melding zwarte lijst U staat op het punt om firmware %s te installeren. - U staat op het punt om de firmware %s te installeren op uw Amazfit Bip. -\n -\nZorg ervoor dat u het .fw-bestand installeert, daarna het .res-bestand en als laatste het .gps-bestand. Uw horloge wordt opnieuw gestart na het installeren van het .fw-bestand. -\n -\nOpmerking: U hoeft de .res niet te installeren als deze exact dezelfde is als degene die ervoor al was geïnstalleerd. -\n + U staat op het punt om de firmware %s te installeren op uw Amazfit Bip. +\n +\nZorg ervoor dat u het .fw-bestand installeert, daarna het .res-bestand en als laatste het .gps-bestand. Uw horloge wordt opnieuw gestart na het installeren van het .fw-bestand. +\n +\nOpmerking: U hoeft de .res niet te installeren als deze exact dezelfde is als degene die ervoor al was geïnstalleerd. +\n \nGA VERDER OP EIGEN RISICO! U staat op het punt om de %1$s en %2$s firmware te installeren in plaats van degene die momenteel op uw Mi Band staat. Deze firmware is getest en is compatibel met Gadgetbridge. @@ -136,12 +136,12 @@ Deactiveer de systeem weer app Kalenders op de zwarte lijst Firmware/Apps installeren - U staat op het punt om de firmware %s te installeren op uw Amazfit Cor. -\n -\nZorg ervoor dat u het .fw-bestand installeert en daarna het .res-bestand. Uw band wordt opnieuw gestart na het installeren van het .fw-bestand. -\n -\nOpmerking: U hoeft de .res niet te installeren als deze exact dezelfde is als degene die ervoor al was geïnstalleerd. -\n + U staat op het punt om de firmware %s te installeren op uw Amazfit Cor. +\n +\nZorg ervoor dat u het .fw-bestand installeert en daarna het .res-bestand. Uw band wordt opnieuw gestart na het installeren van het .fw-bestand. +\n +\nOpmerking: U hoeft de .res niet te installeren als deze exact dezelfde is als degene die ervoor al was geïnstalleerd. +\n \nGA VERDER OP EIGEN RISICO! Activeer links/rechts vegen in grafiek schermen Weer @@ -764,12 +764,12 @@ Belduur in seconden Duur Dit apparaat heeft een geheime verificatiesleutel nodig, druk lang op het apparaat om deze in te voeren. Lees de wiki. - U staat op het punt om de firmware %s te installeren op uw Amazfit Bip Lite. -\n -\nZorg ervoor dat u het .fw-bestand installeert, daarna het .res-bestand en als laatste het .gps-bestand. Uw horloge wordt opnieuw gestart na het installeren van het .fw-bestand. -\n -\nOpmerking: U hoeft de .res niet te installeren als deze exact dezelfde is als degene die ervoor al was geïnstalleerd. -\n + U staat op het punt om de firmware %s te installeren op uw Amazfit Bip Lite. +\n +\nZorg ervoor dat u het .fw-bestand installeert, daarna het .res-bestand en als laatste het .gps-bestand. Uw horloge wordt opnieuw gestart na het installeren van het .fw-bestand. +\n +\nOpmerking: U hoeft de .res niet te installeren als deze exact dezelfde is als degene die ervoor al was geïnstalleerd. +\n \nGA VERDER OP EIGEN RISICO! Amazfit GTR U staat op het punt om de firmware %s te installeren op uw Amazfit GTR. From 52c31fbe85e8fba9dec7b5c5af153ca421d8a93f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 1 Nov 2019 00:33:40 +0000 Subject: [PATCH 069/112] Translated using Weblate (Chinese (Simplified)) Currently translated at 99.7% (722 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/ --- app/src/main/res/values-zh-rCN/strings.xml | 56 ++++++++++------------ 1 file changed, 26 insertions(+), 30 deletions(-) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index e26024277..418c32b8a 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -41,19 +41,19 @@ 阻止记录 FW/App 安装器 您即将安装 %s 。 - 即将在您的米动手表青春版(Amazfit Bip)上安装固件 %s 。 -\n -\n请确保安装.fw文件,然后安装.res文件,最后安装.gps文件。 安装.fw文件后,手表将重新启动。 -\n -\n注意:如果这些文件与之前安装的完全一样,则不必安装.res和.gps文件。 -\n + 即将在您的米动手表青春版(Amazfit Bip)上安装固件 %s 。 +\n +\n请确保安装.fw文件,然后安装.res文件,最后安装.gps文件。 安装.fw文件后,手表将重新启动。 +\n +\n注意:如果这些文件与之前安装的完全一样,则不必安装.res和.gps文件。 +\n \n***继续需要您自担风险! - 您即将在您的米动手环(Amazfit Cor)上安装固件 %s 。 -\n -\n请确保安装了 .fw 文件,然后安装 .rec 文件。 安装 .fw 文件后,手表将重新启动。 -\n -\n注意:如果这些文件与之前安装的完全一样,则不必安装 .res 。 -\n + 您即将在您的米动手环(Amazfit Cor)上安装固件 %s 。 +\n +\n请确保安装了 .fw 文件,然后安装 .rec 文件。 安装 .fw 文件后,手表将重新启动。 +\n +\n注意:如果这些文件与之前安装的完全一样,则不必安装 .res 。 +\n \n您需要自行承担风险! 您即将安装固件 %1$s 和 %2$s,代替当前在小米手环上的固件。 该固件已经过测试,并且已知与 Gadgetbridge 兼容。 @@ -484,12 +484,12 @@ 校准设备 添加所有通知到黑名单 添加所有通知到白名单 - 您即将安装 小米手环3 的固件 %s 。 -\n -\n请确保先安装 .fw 文件,再安装 .res 文件。您的手环将会在安装 .fw 文件后重启。 -\n -\n注意:如果您已经安装相同版本的 .res 文件了,则无需安装。 -\n + 您即将安装 小米手环3 的固件 %s 。 +\n +\n请确保先安装 .fw 文件,再安装 .res 文件。您的手环将会在安装 .fw 文件后重启。 +\n +\n注意:如果您已经安装相同版本的 .res 文件了,则无需安装。 +\n \n风险自担! 通知间隔最短时间 从右到左 @@ -685,16 +685,12 @@ 将您想要连接的所有 Android 设备上的认证密钥更改为通用的密钥。默认所有设备的密钥是 0123456789@ABCDE BFH-16 您即将在米动手环2(Amazfit Cor 2)上安装 %s 版本的固件 -\n \n \n请确保先安装 .fw 文件,再安装 .res 文件。您的手环将会在安装了 .fw 文件后重启 -\n \n \n备注:如果您安装的 .res 文件和之前相同,则无需安装 .res 文件 -\n \n -\n风险自担! -\n +\n风险自担! \n \n此功能未经测试,如果您的设备名为“Amazfit Band 2”,您可能需要刷入 BEATS_W 固件 荷兰语 @@ -767,13 +763,13 @@ 铃声将持续数秒 持续 此设备需要认证密钥,请在设备上长按以输入密钥。具体请阅读 Wiki 。 - "您即将在米动手表青春版 Lite(Amazfit Bip Lite)上安装 %s 版本的固件 -\n -\n请确保先安装 .fw 文件,再安装 .res 文件。您的手环将会在安装了 .fw 文件后重启 -\n -\n备注:如果您安装的 .res 文件和之前相同,则无需安装 .res 文件 -\n -\n风险自担!" + 您即将在米动手表青春版 Lite(Amazfit Bip Lite)上安装 %s 版本的固件 +\n +\n请确保先安装 .fw 文件,再安装 .res 文件。您的手环将会在安装了 .fw 文件后重启 +\n +\n备注:如果您安装的 .res 文件和之前相同,则无需安装 .res 文件 +\n +\n风险自担! 华米 GTR 即将在您的 华米 GTR (Amazfit GTR) 上安装固件 %s 。 \n From 19e6f532cf297f5b9ca1db4a0cd11c9cfd2bf212 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 1 Nov 2019 00:30:21 +0000 Subject: [PATCH 070/112] Translated using Weblate (Czech) Currently translated at 99.2% (718 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/cs/ --- app/src/main/res/values-cs/strings.xml | 72 +++++++++++++------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index e1b26ea53..2ead7f17c 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -421,20 +421,20 @@ Maximální zpoždění mezi stisknutím tlačítka v milisekundách Zpoždění po provedení akce tlačítka Zpoždění po provedení akce tlačítka (číslo je v button_id) nebo 0 pro okamžitě - Chystáte se nainstalovat firmvér %s na vašem Amazfit Bip. -\n -\nProsím nezapomeňte nainstalovat soubor .fw, potom soubor .res a nakonec soubor .gps. Vaše hodinky se po instalaci souboru .fw restartují. -\n -\nPoznámka: Nemusíte instalovat .res a .gps, pokud jsou tyto soubory přesně stejné jako ty, které byly nainstalovány dříve. -\n + Chystáte se nainstalovat firmvér %s na vašem Amazfit Bip. +\n +\nProsím nezapomeňte nainstalovat soubor .fw, potom soubor .res a nakonec soubor .gps. Vaše hodinky se po instalaci souboru .fw restartují. +\n +\nPoznámka: Nemusíte instalovat .res a .gps, pokud jsou tyto soubory přesně stejné jako ty, které byly nainstalovány dříve. +\n \nPOKRAČUJTE TO NA VLASTNÍ NEBEZPEČÍ! Připojit… - Chystáte se nainstalovat firmvér %s do vašeho Amazfit Cor. -\n -\nProsím, ujistěte se, že jste nainstalovali soubor .fw a potom soubor .res. Váš se po instalaci souboru .fw restartuje. -\n -\nPoznámka: Nemusíte instalovat soubor .res, pokud je stejný jako nainstalován dříve. -\n + Chystáte se nainstalovat firmvér %s do vašeho Amazfit Cor. +\n +\nProsím, ujistěte se, že jste nainstalovali soubor .fw a potom soubor .res. Váš se po instalaci souboru .fw restartuje. +\n +\nPoznámka: Nemusíte instalovat soubor .res, pokud je stejný jako nainstalován dříve. +\n \nPOKRAČUJTE NA VLASTNÍ NEBEZPEČÍ! Zapnout možnost potažení mezi grafy aktivit Počasí @@ -520,12 +520,12 @@ Kalibrovat zařízení Zakázat všechny aplikace Povolit všechny aplikace - Chystáte se nainstalovat firmvér %s do vašeho Mi Band 3. -\n -\nProsím, ujistěte se, že jste nainstalovali soubor .fw a potom soubor .res. Váš pásek se po instalaci souboru .fw restartuje. -\n -\nPoznámka: Nemusíte instalovat soubor .res, pokud je stejný jako nainstalován dříve. -\n + Chystáte se nainstalovat firmvér %s do vašeho Mi Band 3. +\n +\nProsím, ujistěte se, že jste nainstalovali soubor .fw a potom soubor .res. Váš pásek se po instalaci souboru .fw restartuje. +\n +\nPoznámka: Nemusíte instalovat soubor .res, pokud je stejný jako nainstalován dříve. +\n \nPOKRAČUJTE NA VLASTNÍ NEBEZPEČÍ! Minimální doba mezi upozorněními Zprava doleva @@ -681,12 +681,12 @@ Autorizační Klíč Nastavte stejný klíč na všech Vašich zařízeních s Androidem, ze kterých se budete připojovat. Výchozí klíč pro všechna zařízení je 0123456789@ABCDE BFH-16 - Chystáte se nainstalovat firmvér %s do vašeho Amazfit Cor 2. -\n -\nProsím, ujistěte se, že jste nainstalovali soubor .fw a potom soubor .res. Váš se po instalaci souboru .fw restartuje. -\n -\nPoznámka: Nemusíte instalovat soubor .res, pokud je stejný jako nainstalován dříve. -\n + Chystáte se nainstalovat firmvér %s do vašeho Amazfit Cor 2. +\n +\nProsím, ujistěte se, že jste nainstalovali soubor .fw a potom soubor .res. Váš se po instalaci souboru .fw restartuje. +\n +\nPoznámka: Nemusíte instalovat soubor .res, pokud je stejný jako nainstalován dříve. +\n \nPOKRAČUJTE NA VLASTNÍ NEBEZPEČÍ! \n \nABSOLUTNĚ NETESTOVÁNO, S VELKOU PRAVDĚPODOBNOSTÍ MUSÍTE NAINSTALOVAT BEATS_W FIRMVÉR, JMENUJE-LI SE VAŠE ZAŘÍZENÍ \"Amazfit Band 2\" @@ -700,12 +700,12 @@ Portugalsky Amazfit Cor 2 Mi Band 4 - Chystáte se nainstalovat firmvér %s do vašeho Mi Band 4. -\n -\nProsím, ujistěte se, že jste nainstalovali soubor .fw a potom soubor .res. Váš pásek se po instalaci souboru .fw restartuje. -\n -\nPoznámka: Nemusíte instalovat soubor .res, pokud je stejný jako nainstalován dříve. -\n + Chystáte se nainstalovat firmvér %s do vašeho Mi Band 4. +\n +\nProsím, ujistěte se, že jste nainstalovali soubor .fw a potom soubor .res. Váš pásek se po instalaci souboru .fw restartuje. +\n +\nPoznámka: Nemusíte instalovat soubor .res, pokud je stejný jako nainstalován dříve. +\n \nPOKRAČUJTE NA VLASTNÍ NEBEZPEČÍ! Alarm měření tepu při sportovní aktivitě Spodní hodnota @@ -762,12 +762,12 @@ Délka zvonění ve vteřinách Délka Toto zařízení vyžaduje tajný klíč, podržte dlouze na jménu zařízení pro jeho vložení. pro více detailů čtěte wiki. - Chystáte se nainstalovat firmvér %s na vašem Amazfit Bip Lite. -\n -\nProsím nezapomeňte nainstalovat soubor .fw, a poté soubor .res . Vaše hodinky se po instalaci souboru .fw restartují. -\n -\nPoznámka: Nemusíte instalovat soubory .res , pokud je tento soubor přesně stejný jako ten, který byl nainstalován dříve. -\n + Chystáte se nainstalovat firmvér %s na vašem Amazfit Bip Lite. +\n +\nProsím nezapomeňte nainstalovat soubor .fw, a poté soubor .res . Vaše hodinky se po instalaci souboru .fw restartují. +\n +\nPoznámka: Nemusíte instalovat soubory .res , pokud je tento soubor přesně stejný jako ten, který byl nainstalován dříve. +\n \nPOKRAČUJTE TO NA VLASTNÍ NEBEZPEČÍ! Amazfit GTR Chystáte se nainstalovat firmvér %s na vašem Amazfit GTR. From 5019f417ad12f77a8613119a0596ff592692c0b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 1 Nov 2019 00:40:47 +0000 Subject: [PATCH 071/112] Translated using Weblate (Galician) Currently translated at 63.3% (458 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/gl/ --- app/src/main/res/values-gl/strings.xml | 89 ++++---------------------- 1 file changed, 14 insertions(+), 75 deletions(-) diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index ed2418825..caa8307c1 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -1,6 +1,6 @@ - -Gadgetbridge - + + + Gadgetbridge Gadgetbridge Axustes Depuración @@ -19,10 +19,7 @@ Desconectando Conectando Capturando pantalla do dispositivo - - Depurar - Xestor de App Apps en caché Apps instaladas @@ -40,11 +37,8 @@ Instalar a app de notificacións do clima Configurar Mover para arriba - Bloqueo de notificacións - Calendarios bloqueados - Instalador de FW/App Está a piques de instalar o firmware %s no lugar do actual na súa Mi Band. Está a piques de instalar os firmwares %1$s e %2$s no canto dos que están actualmente na súa Mi Band. @@ -53,30 +47,23 @@ \n \nRECOMENDASE QUE NON o instale na súa Mi Band! Se aínda así quere proceder e todo continúa a funcionar normalmente, por favor avise aos programadores do Gadgetbridge para que permitan a versión %s do firmware - Axustes - Axustes xerais Conectar ao dispositivo ao activar o Bluetooth Iniciar automaticamente Reconectar automaticamente Reprodutor de audio preferido Predefinido - Data e Hora Sincronizar hora Sincronizar hora ao conectar e ao cambiar o fuso horario no android - Tema Claro Escuro - Idioma - Ocultar a notificación de Gadgetbridge Amosar icono na barra de estado e notificación na pantalla de bloqueo Ocultar icono na barra de estado e notificación na pantalla de bloqueo - Notificacións Repeticións Chamadas telefónicas @@ -89,43 +76,33 @@ Parar notificacións indesexadas no modo Non Molestar Transliteración Activar isto se o dispositivo non ten soporte para o seu idioma - Sempre Cando a pantalla está apagada Nunca - Privacidade Modo de privacidade de chamada Amosar nome e número Ocultar nome pero amosar número Ocultar número pero amosar nome Ocultar nome e número - - Bloquear Apps Bloquear Calendarios - Histórico de mensaxes Respostas Sufixo común Rexeitar chamada Actualizar no Pebble - Opcións de desenvolvedor Enderezo do MiBand - Axustes do Pebble - Monitores de actividade Monitor de actividade preferido Sincronizar con Pebble Health Sincronizar con Misfit Sincronizar con Morpheuz - Soporte para chamadas saíntes Permitir acceso a Apps Android de terceiros Habilitar soporte experimental para Apps Android que usen PebbleKit - Mencer e solpor Enviar mencer e solpor baseado na localización do Pebble Sincronizar calendario @@ -133,7 +110,6 @@ Modo de privacidade Notificacións normais Só amosar o icono de notificación - Localización Obter ubicación Latitude @@ -141,7 +117,6 @@ Manter actualizada a ubicación Por favor, active a ubicación por rede ubicación obtida - Forzar o protocolo de notificación Esta opción forza o uso do protocolo de notificación máis recente dependendo da versión do firmware. HABILITE SE SABE O QUE ESTÁ FACENDO! Habilitar características non probadas @@ -149,7 +124,6 @@ Activar rexistro das Apps do dispositivo Causa que os rexistros das apps do reloxo sexan gardados polo Gadgetbridge (necesita reconectar) Intentos de reconexión - Unidades Formato de hora Tempo de pantalla acesa @@ -176,7 +150,6 @@ inicializado %1$s de %2$s Descubrir dispositivos - Parar a busca Comezar a busca Conectar novo dispositivo @@ -189,21 +162,16 @@ Incapaz de emparellar con %1$s (%2$s) Axustes específicos do dispositivo Deshabilitar isto tamén impedirá o Pebble 2/LE vibrar en chamadas saíntes - Timeline do Pebble Enviar os eventos do calendario ao timeline - As notificacións borranse automáticamente do Pebble cando se rexeitan en Android - Desplaza a notificación fora da pantalla Intentar obter a ubicación durante a execución, usar a ubicación almacenada como respaldo - Activar características non probadas. ¡ACTIVAO SÓ SE SABES O QUE FAS! Pebble 2/LE límite de GATT MTU Se o teu Pebble 2/Pebble LE non funciona correctamente, proba esta opción para limitar o MTU (rango válido 20–512) Anticipar confirmacións do PebbleKit Axustes de HPlus/Makibes - ESTÁS INTENTANDO INSTALAR UN FIRMWARE, CONTINÚA BAIXO A TÚA RESPONSABILIDADE \n \n @@ -231,7 +199,6 @@ Imaxe do dispositivo Nome/Alcume Cantidade de vibracións - Monitor de sono Escreber arquivos de rexistro Inicializando @@ -239,7 +206,6 @@ De %1$s até %2$s De que lado a usa? Perfil de vibración - Moi curto Curto Medio @@ -248,7 +214,6 @@ Timbre Alarma Vibración - Probar Notificación de SMS Axustes de vibración @@ -258,11 +223,9 @@ Conversas Navegación Rede social - Zonas de velocidade Minutos totais Pasos por minuto - Atopar dispositivo perdido Cancelar para deter a vibración. A túa actividade @@ -327,7 +290,6 @@ Manterá os datos na Mi Band mesmo despois da sincronización. Útil se o GB é utilizado en simultáneo con outras aplicacións. Usar modo de baixa latencia para anovacións de Firmware Isto pode axudar en dispositivos nos que fallen as actualizacións de firmware - Historial de pasos Pasos/min actuais Pasos totais @@ -344,7 +306,7 @@ Este firmware non é compatíbel co dispositivo Alarmas reservadas para próximos eventos Usar sensor de ritmo cardíaco para mellorar a detección de sono - Mi2: Formato de data + Mi2: Formato de data Hora Hora e data Accións do botón @@ -374,18 +336,14 @@ Hora de inicio Hora de fin A piques de transferir dados desde %1$s - Agardando reconexión - Sobre ti Ano de nacemento Xénero Altura en cm Peso en kg - Autenticando Requerida autenticación - ZzZ Engadir widget Duración de sono preferida en horas @@ -398,7 +356,6 @@ Firmware non enviado Ritmo cardíaco Ritmo cardíaco - Almacenar rexistro en bruto na base de datos Xestión da base de datos Xestión da base de datos @@ -426,16 +383,12 @@ Sobreescribir Cancelar Borrar - Vibración - Emparellando co Pebble Activar o emparellamento Bluetooth Desactiva isto se tes problemas de conexión - Métrico Imperial - 24H AM/PM Espertador @@ -457,11 +410,10 @@ Emparellar con %1$s? Emparellar Non emparellar - Abrir no teléfono Silenciar Responder -Estás a piques de instalar firmware %s no teu Amazfit Bip. + Estás a piques de instalar firmware %s no teu Amazfit Bip. \n \nPor favor, asegúrate de instalar o ficheiro .fw, despois o arquivo .res, e finalmente o ficheiro .gps . O teu reloxo reiniciará despois de instalar o arquivo .fw. \n @@ -470,13 +422,11 @@ \nPROCEDE BAIXO A TÚA PROPIA RESPONSABILIDADE! Use soporte experimental do Pebble LE para todos os Pebble nas veces do Bluetooth clásico. Isto require vincular primeiro con Pebble non LE, e despois Pebble LE Isto fará que as mensaxes enviadas para apps de terceiros sexan recoñecidas sempre e inmediatamente - Compensación da hora do dispositivo en horas (para detectar o sono de traballadores a turnos) Enviar mensaxe despois dun número definido de pulsacións Retardo despois dunha acción do botón (o número está en button_id intent extra) ou ben 0 para efecto inmediato Se marcado, os datos son almacenados no seu formato orixinal ficando disponíbeis para posterior interpretación. Nota: A base de datos será máis grande! Verá unha notificación de emparellamento no seu dispositivo Android. Se non, acceda ás notificacións e acepte a solicitude de emparellamento. posteriormente a solicitude de emparellamento no seu Pebble - Asegúrate de que este tema esté activado na aplicación de notificación do clima para obter a información no teu Pebble. \n \nNon se require configuración. @@ -487,33 +437,27 @@ Selecciona Emparellar para emparellar os teus dispositivos. Se isto falla, proba de novo sen emparellar. Conectar Estás a piques de instalar firmware %s no teu Amazfit Cor. -\n -\nPor favor, asegúrate de instalar o ficheiro .fw, e despois diso o ficheiro .res. O teu reloxo reiniciará despois de instalar o arquivo .fw. -\n -\nNota: non tes que instalar .res se este arquivo é exactamente o mesmo que o previamente instalado. -\n +\n +\nPor favor, asegúrate de instalar o ficheiro .fw, e despois diso o ficheiro .res. O teu reloxo reiniciará despois de instalar o arquivo .fw. +\n +\nNota: non tes que instalar .res se este arquivo é exactamente o mesmo que o previamente instalado. +\n \nNON PROBADO, PODERÍA BLOQUEAR O TEU DISPOSITIVO, PROCEDE BAIXO A TÚA PROPIA RESPONSABILIDADE! Habilitar JS de fondo "Permite ás watchfaces amosar o tempo, información de batería, etc." - Actividade Vista Web - Permitir deslizar a esquerda/dereita nas gráficas de actividade - Automático Chinés simplificado Chinés tradicional Inglés - Localización para Méteoroloxía (CM/LOS) - Medición de pulso todo o día cada minuto cada 5 minutos cada 10 minutos cada 30 minutos cada hora - Firmware Datos inválidos Fonte @@ -529,16 +473,14 @@ Amazfit Bip Amazfit Cor Teclast H30 -Meteoroloxía + Meteoroloxía Autoexportación Autoexportación habilitada Exportar localización Exportar intervalo Exportar cada %d horas - Fallou a exportación da base de datos! Por favor, comproba os teus axustes. Watchface - Vibratissimo Vista en Vivo HPlus @@ -546,12 +488,10 @@ Exrizu K8 No.1 F1 Escolle lugar para exportar -Castelán - + Castelán XWatch - Notificacións do Gadgetbridge -Aceso + Aceso Os teus rexistros de actividade Sen medir Actividade @@ -568,7 +508,6 @@ Seleccionar todas Compartir Restablecer a data de obtención - Estado Actividade Meteoroloxía @@ -577,4 +516,4 @@ Compás Axustes Alipay - + \ No newline at end of file From c5c07b2a1539dcadd830a283d92baa7d7a6e09a7 Mon Sep 17 00:00:00 2001 From: Rafael Fontenelle Date: Thu, 31 Oct 2019 20:17:57 +0000 Subject: [PATCH 072/112] Translated using Weblate (Portuguese (Brazil)) Currently translated at 99.9% (723 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/pt_BR/ --- app/src/main/res/values-pt-rBR/strings.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 5facc105c..233320849 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -792,4 +792,11 @@ Últimas 24 horas Meio-dia ao meio-dia Amazfit GTS + Você está prestes a instalar o firmware %s no seu Amazfit GTS. +\n +\nCertifique-se de instalar o arquivo .fw, depois disso o arquivo .res e finalmente o arquivo .gps. Seu relógio será reiniciado após a instalação do arquivo .fw. +\n +\nNota: você não precisa instalar .res e .gps se esses arquivos forem exatamente os mesmos que os instalados anteriormente. +\n +\nPROSSIGA AO SEU PRÓPRIO RISCO! \ No newline at end of file From a5fce67ea702be458b27ad6bfa565ccffff38c2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 1 Nov 2019 00:32:07 +0000 Subject: [PATCH 073/112] Translated using Weblate (Portuguese (Brazil)) Currently translated at 99.9% (723 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/pt_BR/ --- app/src/main/res/values-pt-rBR/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 233320849..912540b7b 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -427,12 +427,12 @@ Calibrar Dispositivo Bloquear todas as notificações Desbloquear todas as notificações - Você está prestes a instalar o firmware %s na sua Mi Band 3. -\n -\nCertifique-se de instalar o arquivo .fw, e depois o arquivo .res. Sua pulseira será reiniciada após instalar o arquivo .fw. -\n -\nNota:Vvocê não precisa instalar .res se esse arquivo é exatamente o mesmo instalado anteriormente. -\n + Você está prestes a instalar o firmware %s na sua Mi Band 3. +\n +\nCertifique-se de instalar o arquivo .fw, e depois o arquivo .res. Sua pulseira será reiniciada após instalar o arquivo .fw. +\n +\nNota:Vvocê não precisa instalar .res se esse arquivo é exatamente o mesmo instalado anteriormente. +\n \nPROSSIGA POR SUA CONTA E RISCO! Tempo mínimo entre notificações Direita para a esquerda From edb5d4b68a8238ce9794d93b1d8f017ede21cebe Mon Sep 17 00:00:00 2001 From: nautilusx Date: Thu, 31 Oct 2019 15:20:07 +0000 Subject: [PATCH 074/112] Translated using Weblate (German) Currently translated at 99.9% (723 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/de/ --- app/src/main/res/values-de/strings.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index dadcbfa7a..681f729a5 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -794,4 +794,11 @@ Letzten 24 Stunden Mittag bis Mittag Amazfit GTS + Du bist dabei, die Firmware %s auf deine Amazfit GTS zu installieren. +\n +\nBitte stelle sicher, dass du die .fw Datei, dann die .res Datei und schließlich die .gps Datei installierst. Deine Uhr wird nach der Installation der .fw Datei neu gestartet. +\n +\nHinweis: Du musst die .res und .gps nicht installieren, wenn diese Dateien genau die gleichen sind wie die zuvor installierten. +\n +\nINSTALLATION AUF EIGENE GEFAHR! \ No newline at end of file From b43f2b7ca57ffa120c979df2995f90c272203b6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 1 Nov 2019 00:40:20 +0000 Subject: [PATCH 075/112] Translated using Weblate (Greek) Currently translated at 96.4% (698 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/el/ --- app/src/main/res/values-el/strings.xml | 44 ++++++++++++-------------- 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index c574e2a3c..337cdab51 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -41,23 +41,19 @@ Αποκλεισμένα ημερολόγια Εγκαταστάτης εφαρμογών/FW Πρόκειται να εγκαταστήσετε την έκδοση λογισμικού %s. - "Πρόκειται να εγκαταστήστε το λογισμικό έκδοσης %s στο Amazfit Bip σας. -\n + Πρόκειται να εγκαταστήστε το λογισμικό έκδοσης %s στο Amazfit Bip σας. \n -\nΠαρακαλώ να είστε σίγουροι ότι θα εγκαταστήσετε το αρχείο .fw, μετά το αρχείο .res και τέλος το αρχείο .gps. Το smartwatch θα κάνει επανεκκίνηση μετά την εγκατάσταση του .fw αρχείου. +\nΠαρακαλώ να είστε σίγουροι ότι θα εγκαταστήσετε το αρχείο .fw, μετά το αρχείο .res και τέλος το αρχείο .gps. Το smartwatch θα κάνει επανεκκίνηση μετά την εγκατάσταση του .fw αρχείου. \n -\n -\nΣημείωση: Δεν χρειάζεται η εγκατάσταση των αρχείων .res και .gps αν αυτά είναι ακριβώς τα ίδια με αυτά που έχουν εγκατασταθεί προηγουμένως. +\nΣημείωση: Δεν χρειάζεται η εγκατάσταση των αρχείων .res και .gps αν αυτά είναι ακριβώς τα ίδια με αυτά που έχουν εγκατασταθεί προηγουμένως. \n -\n +\nΠΡΟΧΩΡΗΣΤΕ ΜΕ ΔΙΚΗ ΣΑΣ ΕΥΘΥΝΗ! + —Πρόκειται να εγκαταστήσετε το λογισμικό %s για το Amazfit Cor. +\n +\nΠαρακαλώ βεβαιωθείτε ότι θα εγκαταστήσετε το αρχείο .fw και μετά το αρχείο .res. Το smartwatch θα επανεκκινήσει μετά την εγκατάσταση του .fw αρχείου. +\n +\nΣημείωση: Το αρχείο .res δεν χρειάζεται εγκατάσταση αν είναι ακριβώς το ίδιο με αυτό που έχει εγκατασταθεί προηγούμενα. \n -\nΠΡΟΧΩΡΗΣΤΕ ΜΕ ΔΙΚΗ ΣΑΣ ΕΥΘΥΝΗ!" - —Πρόκειται να εγκαταστήσετε το λογισμικό %s για το Amazfit Cor. -\n -\nΠαρακαλώ βεβαιωθείτε ότι θα εγκαταστήσετε το αρχείο .fw και μετά το αρχείο .res. Το smartwatch θα επανεκκινήσει μετά την εγκατάσταση του .fw αρχείου. -\n -\nΣημείωση: Το αρχείο .res δεν χρειάζεται εγκατάσταση αν είναι ακριβώς το ίδιο με αυτό που έχει εγκατασταθεί προηγούμενα. -\n \nΠΡΟΧΩΡΗΣΤΕ ΜΕ ΔΙΚΗ ΣΑΣ ΕΥΘΥΝΗ! Πρόκειται να εγκαταστήσετε τα λογισμικά %1$s και %2$s αντ\'αυτών που υπάρχουν στο Mi Band σας. Αυτό το λογισμικό έχει δοκιμαστεί και είναι συμβατό με το Gadgetbridge. @@ -528,11 +524,11 @@ Μαύρη λίστα για όλες τις ειδοποιήσεις Να ειδοποιήσει όλες οι ειδοποιήσεις —Πρόκειται να εγκαταστήσετε το λογισμικό %s για το Mi Band 3. -\n -\nΠαρακαλώ βεβαιωθείτε ότι θα εγκαταστήσετε το αρχείο .fw και μετά το αρχείο .res. Το smartwatch θα επανεκκινήσει μετά την εγκατάσταση του .fw αρχείου. -\n -\nΣημείωση: Το αρχείο .res δεν χρειάζεται εγκατάσταση αν είναι ακριβώς το ίδιο με αυτό που έχει εγκατασταθεί προηγούμενα. -\n +\n +\nΠαρακαλώ βεβαιωθείτε ότι θα εγκαταστήσετε το αρχείο .fw και μετά το αρχείο .res. Το smartwatch θα επανεκκινήσει μετά την εγκατάσταση του .fw αρχείου. +\n +\nΣημείωση: Το αρχείο .res δεν χρειάζεται εγκατάσταση αν είναι ακριβώς το ίδιο με αυτό που έχει εγκατασταθεί προηγούμενα. +\n \nΠΡΟΧΩΡΗΣΤΕ ΜΕ ΔΙΚΗ ΣΑΣ ΕΥΘΥΝΗ! Αυτόματη λήψη δεδομένων δραστηριότητας "Mi Band 3 " @@ -689,12 +685,12 @@ Κλειδί εξουσιοδότησης Αλλαγή του κλειδιού εξουσιοδότησης σε ένα κοινό για όλες σας τις συσκευές Android από τις οποίες θέλετε να συνδεθείτε. Το προηγούμενο προεπιλεγμένο κλειδί για όλες τις συσκευές είναι 0123456789@ABCDE BFH - 16 - —Πρόκειται να εγκαταστήσετε το λογισμικό %s για το Amazfit Cor 2. -\n -\nΠαρακαλώ βεβαιωθείτε ότι θα εγκαταστήσετε το αρχείο .fw και μετά το αρχείο .res. Το smartwatch θα επανεκκινήσει μετά την εγκατάσταση του .fw αρχείου. -\n -\nΣημείωση: Το αρχείο .res δεν χρειάζεται εγκατάσταση αν είναι ακριβώς το ίδιο με αυτό που έχει εγκατασταθεί προηγούμενα. -\n + —Πρόκειται να εγκαταστήσετε το λογισμικό %s για το Amazfit Cor 2. +\n +\nΠαρακαλώ βεβαιωθείτε ότι θα εγκαταστήσετε το αρχείο .fw και μετά το αρχείο .res. Το smartwatch θα επανεκκινήσει μετά την εγκατάσταση του .fw αρχείου. +\n +\nΣημείωση: Το αρχείο .res δεν χρειάζεται εγκατάσταση αν είναι ακριβώς το ίδιο με αυτό που έχει εγκατασταθεί προηγούμενα. +\n \nΠΡΟΧΩΡΗΣΤΕ ΜΕ ΔΙΚΗ ΣΑΣ ΕΥΘΥΝΗ! \nΔΕΝ ΕΧΕΙ ΔΟΚΙΜΑΣΤΕΙ, ΠΙΘΑΝΟΝ ΝΑ ΠΡΕΠΕΙ ΝΑ ΕΓΚΑΤΑΣΤΕΙΣΕΤΕ ΤΟ ΛΟΓΙΣΜΙΚΟ \"BEATS_W\" ΑΝ ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ SMARTWATCH ΣΑΣ ΟΝΟΜΑΖΕΤΑΙ \"Amazfit Band 2\" Ολλανδικά From 60528c5be3f983ed3c70193717153a7634a984e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Thu, 31 Oct 2019 19:23:04 +0000 Subject: [PATCH 076/112] Translated using Weblate (English) Currently translated at 100.0% (724 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/en/ --- app/src/main/res/values/strings.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 121563b01..323bf2f2c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -536,7 +536,6 @@ Sleep range Past 24 hours Noon to noon - Authenticating Authentication required Preferred sleep duration in hours From ae09a2a68fcfaa7ff7ce3178509bf418cad0bae5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 1 Nov 2019 00:33:50 +0000 Subject: [PATCH 077/112] Translated using Weblate (Estonian) Currently translated at 34.3% (248 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/et/ --- app/src/main/res/values-et/strings.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index bebc6d35e..3825ea828 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -49,12 +49,12 @@ \nNote: .res ja .gps faili ei pea installima kui tegu on samade failidega mis eelmisel uuendusel. \n \nJÄTKATE OMAL RIISIKOL! - Olete paigaldamas %s püsivara enda Amazfit Cor\'ile. -\n -\nPalun veenduge, et enne paigaldate .res faili ja pärast seda .fw faili. Teie kell taaskäivitub pärast .fw faili paigaldust. -\n -\nNote: .res faili ei pea paigaldama kui tegu on sama failiga mis eelmisel uuendusel. -\n + Olete paigaldamas %s püsivara enda Amazfit Cor\'ile. +\n +\nPalun veenduge, et enne paigaldate .res faili ja pärast seda .fw faili. Teie kell taaskäivitub pärast .fw faili paigaldust. +\n +\nNote: .res faili ei pea paigaldama kui tegu on sama failiga mis eelmisel uuendusel. +\n \nVÕIB TEIE SEADME PABERIRASKUSEKS MUUTA, JÄTKATE OMAL RIISIKOL! Olete installimas %1$s ja %2$s püsivara selle asemel, mis praegu teie Mi Band\'il on. See püsivara on testitud ja on teadaolevalt sobiv koos Gadgetbridge\'iga kasutamiseks. @@ -120,7 +120,7 @@ Lisa kõikide nende teatised musta nimekirja Lisa kõikide nende teatised valgesse nimekirja Te kavatsete installida %s püsivara enda Mi Band 3le. -\n +\n \nVeenduge, et installite .fw faili ja seejärel .res fail. Kell taaskäivitub pärast .fw faili installimist. \n \nMärkus: Sa ei pea installima .res faili kui see on täpselt sama, mis eelnevalt installitud. From 5b5f6cb38e25614ac22ff0d6dbc4ba65f5be5806 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 1 Nov 2019 00:32:32 +0000 Subject: [PATCH 078/112] Translated using Weblate (Russian) Currently translated at 80.4% (582 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ru/ --- app/src/main/res/values-ru/strings.xml | 32 +++++++++++++------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 46e057de4..0310b265a 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -394,19 +394,19 @@ Пожертвовать Подключить… Заблокированные календари - Вы собираетесь установить прошивку %s на ваш Amazfit Bip. -\n -\nСоблюдайте последовательность: вначале установите файл .fw, затем .res, и затем .gps. После установки файла .fw часы перезагрузятся. + Вы собираетесь установить прошивку %s на ваш Amazfit Bip. +\n +\nСоблюдайте последовательность: вначале установите файл .fw, затем .res, и затем .gps. После установки файла .fw часы перезагрузятся. +\n +\nОбратите внимание: если файлы .gps и .res такие же, как в текущей версии, их не нужно переустанавливать. \n -\nОбратите внимание: если файлы .gps и .res такие же, как в текущей версии, их не нужно переустанавливать. -\n \nВЫ ДЕЙСТВУЕТЕ НА СВОЙ СТРАХ И РИСК! - Вы собираетесь установить прошивку %s на ваш Amazfit Cor. -\n -\nСоблюдайте последовательность: вначале установите файл .fw, затем .res. После установки файла .fw часы перезагрузятся. -\n -\nОбратите внимание: если версия файла .res совпадает с установленной, его не нужно переустанавливать. -\n + Вы собираетесь установить прошивку %s на ваш Amazfit Cor. +\n +\nСоблюдайте последовательность: вначале установите файл .fw, затем .res. После установки файла .fw часы перезагрузятся. +\n +\nОбратите внимание: если версия файла .res совпадает с установленной, его не нужно переустанавливать. +\n \nВЫ ДЕЙСТВУЕТЕ НА СВОЙ СТРАХ И РИСК! Включить жесты \"провести направо и налево\" в графиках активности Заблокировать Календари @@ -479,12 +479,12 @@ Настройки Заблокировать все уведомления Разблокировать все уведомления - Вы собираетесь установить прошивку %s на ваш Mi Band 3. -\n -\nСоблюдайте последовательность: вначале установите файл .fw, затем .res. После установки файла .fw часы перезагрузятся. + Вы собираетесь установить прошивку %s на ваш Mi Band 3. +\n +\nСоблюдайте последовательность: вначале установите файл .fw, затем .res. После установки файла .fw часы перезагрузятся. +\n +\nОбратите внимание: если версия файла .res совпадает с установленной, его не нужно переустанавливать. \n -\nОбратите внимание: если версия файла .res совпадает с установленной, его не нужно переустанавливать. -\n \nНЕ ПРОВЕРЯЛОСЬ, ЕСТЬ ВЕРОЯТНОСТЬ СЛОМАТЬ ВАШЕ УСТРОЙСТВО. ВЫ ДЕЙСТВУЕТЕ НА СВОЙ СТРАХ И РИСК! Местоположение для погоды (CM/LOS) Подключаться только в режиме GATT-клиента From 5df4b1d33817e5a4dceebd72504a9511b7c4bfa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 1 Nov 2019 00:34:10 +0000 Subject: [PATCH 079/112] Translated using Weblate (Romanian) Currently translated at 13.5% (98 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ro/ --- app/src/main/res/values-ro/strings.xml | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 114123bea..f23224b1c 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -1,6 +1,6 @@ -Gadgetbridge - + + Gadgetbridge Gadgetbridge Setari Depaneaza @@ -28,15 +28,11 @@ Notificari blocate Blocheaza toate notificarile Permite toate notificarile - - Calendare blocate - Instalare firmware Esti pe punctul de a instala firmware-ul %1$s si %2$s, in locul celor deja instalate pe Mi Band. Firmware-ul a fost testat si este compatibil cu Gadgetbridge. Setari - Setari generale Conectare la bratara cand Bluetooth este pornit Porneste automat @@ -47,9 +43,7 @@ Tema Deschis Intunecat - Limba - Notificari Apeluri telefonice SMS @@ -58,28 +52,22 @@ Intotdeauna Cand ecranul este oprit Niciodata - Afiseaza numele si numarul Ascunde numele, afiseaza numarul Afiseaza numele, ascunde numarul Ascunde numele si numarul - Meteo Captura ecran Se deconecteaza Conectare… Capturez ecranul dispozitivului - - Depanare - Aplicatii instalate Fete de ceas instalate Sterge Cauta in magazinul Pebble Instalare aplicație Notificări Meteo Muta la inceput - Ești pe punctul de a instala firmware-ul %s în locul celui deja instalat pe Mi Band. Esti pe punctul de a instala firmware-ul %s pe Amazfit Bip. \n @@ -107,12 +95,9 @@ \nTe DESCURAJAM sa-l instalezi pe Mi Band! Optiuni dezvoltator Adresa Mi Band - Setari Pebble - Sincronizeaza Misfit Dezactivand aceasta optiune va opri Pebble 2/LE sa vibreze la apeluri - Notificari normale Latitudine Longitudine From edd2dd90defd3c39290884bd8bde4d007b974874 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 1 Nov 2019 00:34:22 +0000 Subject: [PATCH 080/112] Translated using Weblate (Bulgarian) Currently translated at 51.7% (374 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/bg/ --- app/src/main/res/values-bg/strings.xml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index b519a3802..dac7c603d 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -56,19 +56,19 @@ \nНе е необходимо да се инсталират .res и .gps файловете ако те са същите като инсталираните по-рано. \n \nПРОДЪЛЖАВАТЕ НА СВОЯ ОТГОВОРНОСТ! - Ще се инсталира %s firmware на вашия Amazfit Cor. -\n -\nПърво трябва да се инсталира .fw file и след това .res file. Устройството ще се рестартира след инсталирането на .fw file. -\n -\nНе е необходимо да се инсталира .res файл, ако е същия като инсталирания по-рано. -\n + Ще се инсталира %s firmware на вашия Amazfit Cor. +\n +\nПърво трябва да се инсталира .fw file и след това .res file. Устройството ще се рестартира след инсталирането на .fw file. +\n +\nНе е необходимо да се инсталира .res файл, ако е същия като инсталирания по-рано. +\n \nПРОДЪЛЖАВАТЕ НА СВОЯ ОТГОВОРНОСТ! - Ще се инсталира %s firmware на вашия Mi Band 3. -\n -\nПърво трябва да се инсталира .fw file и след това .res file. Устройството ще се рестартира след инсталирането на .fw file. -\n -\nНе е необходимо да се инсталира .res файл, ако е същия като инсталирания по-рано. -\n + Ще се инсталира %s firmware на вашия Mi Band 3. +\n +\nПърво трябва да се инсталира .fw file и след това .res file. Устройството ще се рестартира след инсталирането на .fw file. +\n +\nНе е необходимо да се инсталира .res файл, ако е същия като инсталирания по-рано. +\n \nПРОДЪЛЖАВАТЕ НА СВОЯ ОТГОВОРНОСТ! Ще се инсталира %1$s и %2$s firmware, вместо текущия на вашия Mi Band. Този firmware е тестван и е съвместим с Gadgetbridge. From be31209cf8b8aae1c14c5fd02c6aa3a5368f5e23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 1 Nov 2019 00:31:40 +0000 Subject: [PATCH 081/112] Translated using Weblate (Japanese) Currently translated at 68.5% (496 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ja/ --- app/src/main/res/values-ja/strings.xml | 34 +++++++++++++------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 379394634..12c03b33e 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -403,11 +403,11 @@ ペア ペアにしない Amazfit Bip に %s のファームウェアをインストールしようとしています。 -\n -\n.fw ファイル、その後 .res ファイル、最後に .gps ファイルをインストールしてください。お使いのウォッチは、.fw ファイルをインストールした後に再起動します。 -\n -\n注: これらのファイルが以前インストールされているのものと完全に同じ場合、.res と .gps をインストールする必要はありません。 -\n +\n +\n.fw ファイル、その後 .res ファイル、最後に .gps ファイルをインストールしてください。お使いのウォッチは、.fw ファイルをインストールした後に再起動します。 +\n +\n注: これらのファイルが以前インストールされているのものと完全に同じ場合、.res と .gps をインストールする必要はありません。 +\n \nご自身の責任で行ってください! ボタンの動作 Mi Band 2 ボタンを押した動作を指定します @@ -428,12 +428,12 @@ ミュート 返信 接続… - Amazfit Cor に %s のファームウェアをインストールしようとしています。 -\n -\n.fw ファイルをインストールし、その後 .res ファイルをインストールしください。お使いの band は、.fw ファイルをインストールした後に再起動します。 -\n -\n注: 以前にインストールされたものと同じ場合は、.res をインストールする必要はありません。 -\n + Amazfit Cor に %s のファームウェアをインストールしようとしています。 +\n +\n.fw ファイルをインストールし、その後 .res ファイルをインストールしください。お使いの band は、.fw ファイルをインストールした後に再起動します。 +\n +\n注: 以前にインストールされたものと同じ場合は、.res をインストールする必要はありません。 +\n \nご自身の責任で行って下さい! バックグラウンド JS を有効にします 有効にすると、ウォッチフェースに天気、バッテリー情報等を表示することができます。 @@ -520,12 +520,12 @@ 工場出荷値にリセットすると、(サポートされている場合) 接続されているデバイスからすべてのデータを削除します。Xiaomi/Huamiデバイスでは、BluetoothのMACアドレスも変更するので、GadgetBligeに新しいデバイスとして表示されます。 すべて通知のブラックリストにする すべて通知のホワイトリストにする - Mi Band 3 に %s ファームウェアをインストールします。 -\n -\n.fw ファイルをインストールして、その後 .res ファイルをインストールするようにしてください。 .fw ファイルをインストールした後、お使いの band は再起動します。 -\n -\n注意: .res が以前にインストールしたものと全く同じ場合は、インストールする必要はありません。 -\n + Mi Band 3 に %s ファームウェアをインストールします。 +\n +\n.fw ファイルをインストールして、その後 .res ファイルをインストールするようにしてください。 .fw ファイルをインストールした後、お使いの band は再起動します。 +\n +\n注意: .res が以前にインストールしたものと全く同じ場合は、インストールする必要はありません。 +\n \nご自身の責任で行ってください! 通知の間の最小時間 右から左へ From feb20df4f0615658b220736fef3e72fbc1830eea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 1 Nov 2019 00:33:03 +0000 Subject: [PATCH 082/112] Translated using Weblate (Catalan) Currently translated at 91.2% (660 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ca/ --- app/src/main/res/values-ca/strings.xml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 547dff325..b532288c0 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -42,19 +42,19 @@ Calendaris bloquejats Instal·lador de microprogramari i aplicacions Sou a punt d\'instal·lar el %s. - Esteu a punt d\'instal·lar el microprogramari %s en el vostre Amazfit Bip. -\n -\nSi us plau, assegure-vos d\'instal·lar el fitxer .fw, el fitxer .res i, finalment, el fitxer .gps. El vostre rellotge reiniciarà després d\'instal·lar l\'arxiu .fw. -\n -\nNota: no heu d\'instal·lar els fitxers .res i .gps si aquests fitxers són exactament els mateixos que els prèviament instal·lats. -\n + Esteu a punt d\'instal·lar el microprogramari %s en el vostre Amazfit Bip. +\n +\nSi us plau, assegure-vos d\'instal·lar el fitxer .fw, el fitxer .res i, finalment, el fitxer .gps. El vostre rellotge reiniciarà després d\'instal·lar l\'arxiu .fw. +\n +\nNota: no heu d\'instal·lar els fitxers .res i .gps si aquests fitxers són exactament els mateixos que els prèviament instal·lats. +\n \nPROCEDIU SOTA LA VOSTRA PRÒPIA RESPONSABILITAT! - Sou a punt d\'instal·lar el microprogramari %s en el vostre Amazfit Cor. -\n -\nSi us plau, assegure-vos d\'instal·lar el fitxer .fw i el fitxer .res. La vostra polsera reiniciarà després d\'instal·lar l\'arxiu .fw. -\n -\nNota: no heu d\'instal·lar el fitxer .res si és exactament el mateix que el prèviament instal·lat. -\n + Sou a punt d\'instal·lar el microprogramari %s en el vostre Amazfit Cor. +\n +\nSi us plau, assegure-vos d\'instal·lar el fitxer .fw i el fitxer .res. La vostra polsera reiniciarà després d\'instal·lar l\'arxiu .fw. +\n +\nNota: no heu d\'instal·lar el fitxer .res si és exactament el mateix que el prèviament instal·lat. +\n \nPROCEDIU SOTA LA VOSTRA PRÒPIA RESPONSABILITAT! "Sou a punt d\'instal·lar els microprogramaris %1$s i %2$s en lloc dels que hi ha actualment a la vostra Mi Band." Aquest microprogramari ha estat provat i se sap que és compatible amb el Gadgetbridge. From c6261502ea483cf93f38faa7c1805868f8c3affa Mon Sep 17 00:00:00 2001 From: Full Name Date: Fri, 1 Nov 2019 21:04:16 +0000 Subject: [PATCH 083/112] Translated using Weblate (Czech) Currently translated at 100.0% (724 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/cs/ --- app/src/main/res/values-cs/strings.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 2ead7f17c..ce510bb04 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -780,4 +780,15 @@ Červená Oranžová Barva tepové frekvence + Rozsah pro spánek + Předchozích 24 hodin + Od poledne k poledni + Amazfit GTS + Chystáte se nainstalovat firmvér %s do vašeho Amazfit GTS. +\n +\nProsím, ujistěte se, že jste nainstalovali soubor .fw a potom soubor .res. Váš se po instalaci souboru .fw restartuje. +\n +\nPoznámka: Nemusíte instalovat soubor .res a .gps, pokud jsou stejné jako soubory nainstalovány dříve. +\n +\nPOKRAČUJTE NA VLASTNÍ NEBEZPEČÍ! \ No newline at end of file From 51b3c9ef84bb8f2dff857a3c23f794a02cdb92b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 1 Nov 2019 00:32:24 +0000 Subject: [PATCH 084/112] Translated using Weblate (Portuguese) Currently translated at 54.7% (396 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/pt/ --- app/src/main/res/values-pt/strings.xml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 54c0d4ff2..2566082f9 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -389,18 +389,18 @@ Doar Conectar… Calendários bloqueados - Está prestes a instalar o firmware %s na sua Amazfit Bip. + Está prestes a instalar o firmware %s na sua Amazfit Bip. \n -\nPor favor garanta que instala o firmware .fw, o ficheiro .res e finalmente o ficheiro .gps. O seu relógio vai reiniciar depois de instalar o ficheiro .fw . +\nPor favor garanta que instala o firmware .fw, o ficheiro .res e finalmente o ficheiro .gps. O seu relógio vai reiniciar depois de instalar o ficheiro .fw. \n -\nNota: Não necessita de instalar .res e .gps se os ficheiros forem os mesmos da última instalação. +\nNota: Não necessita de instalar .res e .gps se os ficheiros forem os mesmos da última instalação. \n \nCONTINUE A SEU PRÓPRIO RISCO! - Está prestes a instalar o firmware %s na sua Amazfit Cor. -\n + Está prestes a instalar o firmware %s na sua Amazfit Cor. +\n \nPor favor garanta que instala o ficheiro .fw e depois o ficheiro .res. O seu relógio vai reiniciar depois de instalar o ficheiro .fw. \n -\nNota: Não necessita de instalar .res se os ficheiro for o mesmo da última instalação. +\nNota: Não necessita de instalar .res se os ficheiro for o mesmo da última instalação. \n \nCONTINUE A SEU PRÓPRIO RISCO! "Ativar deslizar para esquerda/direita nos gráficos de atividade" @@ -410,11 +410,11 @@ Calibrar dispositivo Bloquear todas as notificações Desbloquear todas as notificações - Está prestes a instalar o firmware %s na sua Mi Band 3. -\n + Está prestes a instalar o firmware %s na sua Mi Band 3. +\n \nPor favor garanta que instala o ficheiro .fw e depois o ficheiro .res. O seu relógio vai reiniciar depois de instalar o ficheiro .fw. \n -\nNota: Não necessita de instalar .res se os ficheiro for o mesmo da última instalação. +\nNota: Não necessita de instalar .res se os ficheiro for o mesmo da última instalação. \n \nNÃO FOI TESTADO, PODERÁ DANIFICAR O SEU DISPOSITIVO. CONTINUE A SEU PRÓPRIO RISCO! Sincronizar calendário From 2f0ed16bf93f27e83adc982e06f840a6cb99959d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 1 Nov 2019 00:31:15 +0000 Subject: [PATCH 085/112] Translated using Weblate (Hebrew) Currently translated at 100.0% (724 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/he/ --- app/src/main/res/values-he/strings.xml | 86 +++++++++++++------------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index f595d0d1d..f05be9bf7 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -385,12 +385,12 @@ השבתת אזהרות חוסר פעילות לפרק זמן מסוים מועד ההתחלה מועד הסיום - פעולה זו תתקין את הקושחה %s ב־Amazfit Bip שלך. -\n -\nנא לוודא את התקנת קושחת ה־‎.fw בהתחלה, לאחר מכן את קובץ ה־‎.res ולבסוף קובץ ה־‎.gps השעון שלך יופעל מחדש לאחר התקנת קובץ ה־fw. -\n -\nלתשומת לבך: אין צורך בהתקנת קובצי ה־‎.res וה־‎.gps אם הם כבר זהים לאלו שהתקנת בעבר. -\n + פעולה זו תתקין את הקושחה %s ב־Amazfit Bip שלך. +\n +\nנא לוודא את התקנת קושחת ה־‎.fw בהתחלה, לאחר מכן את קובץ ה־‎.res ולבסוף קובץ ה־‎.gps השעון שלך יופעל מחדש לאחר התקנת קובץ ה־fw. +\n +\nלתשומת לבך: אין צורך בהתקנת קובצי ה־‎.res וה־‎.gps אם הם כבר זהים לאלו שהתקנת בעבר. +\n \nהמשך התהליך הוא על אחריותך! יש להפעיל אפשרות זו אם להתקן אין תמיכה בגופן השפה שלך שגיאה בייצוא ההעדפה: %1$s @@ -432,12 +432,12 @@ פעילות תצוגת דפדפן התחבר … כשאפשרות זו פעילה, יתאפשר למסיכות השעון להציג מזג אוויר, סוללה וכו׳. - פעולה זו תתקין את הקושחה %s במקום הנוכחית שעל ה־Amazfit Cor שלך. -\n -\nנא לוודא את התקנת קובץ ה־‎.fw, ולאחר מכן את קובץ ה־‎.res. הצמיד שלך יופעל מחדש לאחר התקנת קובץ ה־‎.fw -\n -\nלתשומת לבך: אין צורך להתקין את קובץ ה־‎.res אם הוא זהה לקובץ שהתקנת בעבר. -\n + פעולה זו תתקין את הקושחה %s במקום הנוכחית שעל ה־Amazfit Cor שלך. +\n +\nנא לוודא את התקנת קובץ ה־‎.fw, ולאחר מכן את קובץ ה־‎.res. הצמיד שלך יופעל מחדש לאחר התקנת קובץ ה־‎.fw +\n +\nלתשומת לבך: אין צורך להתקין את קובץ ה־‎.res אם הוא זהה לקובץ שהתקנת בעבר. +\n \nהמשך מעבר לנקודה זו הוא על אחריותך! הפעלת הסטה לימין/שמאל בפעילות התרשימים הגדרות Amazfit Bip @@ -515,12 +515,12 @@ Alipay (קיצור דרך) מזג אוויר (קיצור דרך) Q8 - פעולה זו תתקין את הקושחה %s במקום זו שכרגע מותקנת ב־Mi Band 3 שלך. -\n -\nנא לוודא את התקנת קובץ ה־‎.fw בהתחלה, לאחר מכן את קובץ ה־‎.res הרצועה שלך תופעל מחדש לאחר התקנת קובץ ה־fw. -\n -\nלתשומת לבך: אין צורך בהתקנת קובץ ה־‎.res אם הוא כבר זהה לזה שהתקנת בעבר. -\n + פעולה זו תתקין את הקושחה %s במקום זו שכרגע מותקנת ב־Mi Band 3 שלך. +\n +\nנא לוודא את התקנת קובץ ה־‎.fw בהתחלה, לאחר מכן את קובץ ה־‎.res הרצועה שלך תופעל מחדש לאחר התקנת קובץ ה־fw. +\n +\nלתשומת לבך: אין צורך בהתקנת קובץ ה־‎.res אם הוא כבר זהה לזה שהתקנת בעבר. +\n \nהמשך התהליך הוא על אחריותך! Mi Band 3 הוספת כולם לרשימה השחורה של ההתראות @@ -679,13 +679,13 @@ ניתן להחליף את מפתח האימות למפתח משותף בכל מכשירי ה־Android שלך מהם ברצונך להתחבר. מפתח בררת המחדל הקודם לכל המכשירים הוא 0123456789@ABCDE BFH-16 פעולה זו תתקין את הקושחה %s במקום זו שכרגע מותקנת ב־Amazfit Cor 2 שלך. -\n -\nנא לוודא את התקנת קושחת ה־‎.fw בהתחלה, לאחר מכן את קובץ ה־‎.res. הצמיד שלך יופעל מחדש לאחר התקנת קובץ ה־fw. -\n -\nלתשומת לבך: אין צורך בהתקנת קובצי ה־‎.res אם הוא כבר זהים לזה שהתקנת בעבר. -\n -\nהמשך התהליך הוא על אחריותך! -\n +\n +\nנא לוודא את התקנת קושחת ה־‎.fw בהתחלה, לאחר מכן את קובץ ה־‎.res. הצמיד שלך יופעל מחדש לאחר התקנת קובץ ה־fw. +\n +\nלתשומת לבך: אין צורך בהתקנת קובצי ה־‎.res אם הוא כבר זהים לזה שהתקנת בעבר. +\n +\nהמשך התהליך הוא על אחריותך! +\n \nתהליך זה לא נבדק, כנראה שיהיה עליך להתקין קושחה מסוג BEATS_W אם שם המכשיר שלך הוא „Amazfit Band 2” הולנדית טורקית @@ -697,12 +697,12 @@ פורטוגלית Amazfit Cor 2 Mi Band 4 - פעולה זו תתקין את הקושחה %s ב־Mi Band 4 שלך. -\n -\nנא לוודא את התקנת קובץ ה־‎.fw בהתחלה, לאחר מכן את קובץ ה־‎.res השעון שלך יופעל מחדש לאחר התקנת קובץ ה־fw. -\n -\nלתשומת לבך: אין צורך בהתקנת קובץ ה־‎.res אם הוא כבר זהה לזה שהתקנת בעבר. -\n + פעולה זו תתקין את הקושחה %s ב־Mi Band 4 שלך. +\n +\nנא לוודא את התקנת קובץ ה־‎.fw בהתחלה, לאחר מכן את קובץ ה־‎.res השעון שלך יופעל מחדש לאחר התקנת קובץ ה־fw. +\n +\nלתשומת לבך: אין צורך בהתקנת קובץ ה־‎.res אם הוא כבר זהה לזה שהתקנת בעבר. +\n \nהמשך התהליך הוא על אחריותך! התראת דופק במהלך פעילות ספורטיבית גבול תחתון @@ -768,12 +768,12 @@ \n \nהמשך התהליך הוא על אחריותך! Amazfit GTR - פעולה זו תתקין את הקושחה %s במקום זו שכרגע מותקנת ב־Amazfit GTR שלך. -\n -\nנא לוודא את התקנת קושחת ה־‎.fw בהתחלה, לאחר מכן את קובץ ה־‎.res ולבסוף קובץ ה־‎.gps השעון שלך יופעל מחדש לאחר התקנת קובץ ה־fw. -\n -\nלתשומת לבך: אין צורך בהתקנת קובצי ה־‎.res וה־‎.gps אם הם כבר זהים לאלו שהתקנת בעבר. -\n + פעולה זו תתקין את הקושחה %s במקום זו שכרגע מותקנת ב־Amazfit GTR שלך. +\n +\nנא לוודא את התקנת קושחת ה־‎.fw בהתחלה, לאחר מכן את קובץ ה־‎.res ולבסוף קובץ ה־‎.gps השעון שלך יופעל מחדש לאחר התקנת קובץ ה־fw. +\n +\nלתשומת לבך: אין צורך בהתקנת קובצי ה־‎.res וה־‎.gps אם הם כבר זהים לאלו שהתקנת בעבר. +\n \nהמשך התהליך הוא על אחריותך! אדום כתום @@ -782,11 +782,11 @@ 24 השעות האחרונות צהריים עד צהריים Amazfit GTS - פעולה זו תתקין את הקושחה %s ב־Amazfit GTS שלך. -\n -\nנא לוודא את התקנת קושחת ה־‎.fw בהתחלה, לאחר מכן את קובץ ה־‎.res ולבסוף קובץ ה־‎.gps השעון שלך יופעל מחדש לאחר התקנת קובץ ה־fw. -\n -\nלתשומת לבך: אין צורך בהתקנת קובצי ה־‎.res וה־‎.gps אם הם כבר זהים לאלו שהתקנת בעבר. -\n + פעולה זו תתקין את הקושחה %s ב־Amazfit GTS שלך. +\n +\nנא לוודא את התקנת קושחת ה־‎.fw בהתחלה, לאחר מכן את קובץ ה־‎.res ולבסוף קובץ ה־‎.gps השעון שלך יופעל מחדש לאחר התקנת קובץ ה־fw. +\n +\nלתשומת לבך: אין צורך בהתקנת קובצי ה־‎.res וה־‎.gps אם הם כבר זהים לאלו שהתקנת בעבר. +\n \nהמשך התהליך הוא על אחריותך! \ No newline at end of file From a5ae0fdd30abccb1fb63c59e19ef94adcd4bde78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 1 Nov 2019 00:31:58 +0000 Subject: [PATCH 086/112] Translated using Weblate (Polish) Currently translated at 70.4% (510 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/pl/ --- app/src/main/res/values-pl/strings.xml | 34 +++++++++++++------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index dc2e2732e..8aa0dbd2a 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -352,26 +352,26 @@ Kalibracja urządzenia Zablokuj wszystkie powiadomienia Zezwól na wszystkie powiadomienia - Zamierzasz zainstalować firmware %s na Twoim Amazfit Bip. -\n -\nPamiętaj, aby instalować pliki w kolejności: .fw, potem .res i na końcu .gps. Twój zegarek zresetuje się po instalacji pliku .fw. -\n + Zamierzasz zainstalować firmware %s na Twoim Amazfit Bip. +\n +\nPamiętaj, aby instalować pliki w kolejności: .fw, potem .res i na końcu .gps. Twój zegarek zresetuje się po instalacji pliku .fw. +\n \nUwaga: Nie instaluj plików .res i .gps jeśli są takie same jak poprzednio zainstalowane w zegarku. -\n +\n \nROBISZ TO NA WŁASNE RYZYKO! - Zamierzasz zainstalować firmware %s na Twoim Amazfit Cor. -\n -\nPamiętaj, aby najpierw zainstalować plik .fw, a następnie plik .res. Twój zegarek zresetuje się po instalacji pliku .fw. -\n -\nUwaga: Nie instaluj pliku .res jeśli jest taki sam jak poprzednio zainstalowany. -\n + Zamierzasz zainstalować firmware %s na Twoim Amazfit Cor. +\n +\nPamiętaj, aby najpierw zainstalować plik .fw, a następnie plik .res. Twój zegarek zresetuje się po instalacji pliku .fw. +\n +\nUwaga: Nie instaluj pliku .res jeśli jest taki sam jak poprzednio zainstalowany. +\n \nROBISZ TO NA WŁASNE RYZYKO! - Zamierzasz zainstalować oprogramowanie %s na Twoim Mi Band 3. -\n -\nPamiętaj, aby najpierw zainstalować plik .fw, a następnie .res. Twój zegarek zresetuje się po instalacji pliku .fw -\n -\nUwaga: Nie instaluj plików .res jeśli jest taki sam jak poprzednio zainstalowany. -\n + Zamierzasz zainstalować oprogramowanie %s na Twoim Mi Band 3. +\n +\nPamiętaj, aby najpierw zainstalować plik .fw, a następnie .res. Twój zegarek zresetuje się po instalacji pliku .fw. +\n +\nUwaga: Nie instaluj plików .res jeśli jest taki sam jak poprzednio zainstalowany. +\n \nROBISZ TO NA WŁASNE RYZYKO! Zamierzasz zainstalować oprogramowanie %1$s oraz %2$s, na miejsce obecnie zainstalowanego na Twoim Mi Band. Włącz gest przesuwania w lewo/prawo na wykresach aktywności From 24fab46f7361e53bf671858c914f82e5fc977cd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 1 Nov 2019 00:31:24 +0000 Subject: [PATCH 087/112] Translated using Weblate (Italian) Currently translated at 91.7% (664 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/it/ --- app/src/main/res/values-it/strings.xml | 32 +++++++++++++------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 8633491e3..dc30c2083 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -401,12 +401,12 @@ \nNota: Non è necessario installare i file .res e .gps se questi sono gli stessi della versione precedentemente installata. \n \nPROCEDI A TUO RISCHIO E PERICOLO! - Si sta per installare il firmware %s sul Amazfit Cor. -\n -\nSi prega di installare prima il file .fw e successivamente il file .res. La tua band si riavvierà dopo l\'installazione del file .fw. -\n -\nNOTA: Non è necessario installare il file .res se risulta essere uguale a quello precedentemente installato. -\n + Si sta per installare il firmware %s sul Amazfit Cor. +\n +\nSi prega di installare prima il file .fw e successivamente il file .res. La tua band si riavvierà dopo l\'installazione del file .fw. +\n +\nNOTA: Non è necessario installare il file .res se risulta essere uguale a quello precedentemente installato. +\n \nPROCEDI A TUO RISCHIO E PERICOLO! Abilita swipe Sinistra/Destra nel grafico delle attività Meteo @@ -486,11 +486,11 @@ Acceso Blocca le notifiche da tutte le applicazioni Consenti le notifiche da tutte le applicazioni - Si sta per installare il firmware %s sul Mi Band 3. -\n -\nSi prega di installare prima il file .fw e successivamente il file .res. La Miband3 si riavvierà dopo l\'installazione del file .fw. -\n -\nNOTA: Non è necessario installare il file .res se risulta essere uguale a quello precedentemente installato. + Si sta per installare il firmware %s sul Mi Band 3. +\n +\nSi prega di installare prima il file .fw e successivamente il file .res. La Miband3 si riavvierà dopo l\'installazione del file .fw. +\n +\nNOTA: Non è necessario installare il file .res se risulta essere uguale a quello precedentemente installato. \n \nPROCEDI A TUO RISCHIO E PERICOLO! Modalità GATT client @@ -695,11 +695,11 @@ Portoghese Amazfit Cor 2 Mi Band 4 - Si sta per installare il firmware %s sul Mi Band 4. -\n -\nSi prega di installare prima il file .fw e successivamente il file .res. La Mi Band 4 si riavvierà dopo l\'installazione del file .fw. -\n -\nNOTA: Non è necessario installare il file .res se risulta essere uguale a quello precedentemente installato. + Si sta per installare il firmware %s sul Mi Band 4. +\n +\nSi prega di installare prima il file .fw e successivamente il file .res. La Mi Band 4 si riavvierà dopo l\'installazione del file .fw. +\n +\nNOTA: Non è necessario installare il file .res se risulta essere uguale a quello precedentemente installato. \n \nPROCEDI A TUO RISCHIO E PERICOLO! Imposta allarme frequenza cardiaca durante l\'attività sportiva From c9d961232539026f2a57939d15d8bd53e9a7518b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 1 Nov 2019 00:47:40 +0000 Subject: [PATCH 088/112] Translated using Weblate (Dutch) Currently translated at 100.0% (724 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/nl/ --- app/src/main/res/values-nl/strings.xml | 64 +++++++++++++------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 99c103fff..22c3d59d4 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -492,12 +492,12 @@ Gadgetbridge meldingen Zwarte lijst voor alle meldingen Witte lijst voor alle meldingen - U staat op het punt om de %s-firmware op je Mi Band 3 te installeren. -\n -\nZorg ervoor dat u het .fw bestand installeert, en daarna het .res bestand. Uw band wordt opnieuw opgestart na het installeren van het .fw-bestand. -\n -\nOpmerking: U hoeft .res niet te installeren als het precies hetzelfde is als het eerder geïnstalleerde .res. -\n + U staat op het punt om de %s-firmware op je Mi Band 3 te installeren. +\n +\nZorg ervoor dat u het .fw bestand installeert, en daarna het .res bestand. Uw band wordt opnieuw opgestart na het installeren van het .fw-bestand. +\n +\nOpmerking: U hoeft .res niet te installeren als het precies hetzelfde is als het eerder geïnstalleerde .res. +\n \nGA VERDER OP EIGEN RISICO! Alleen GATT-cliënt Dit is alleen voor Pebble 2 en experimenteel, probeer dit als je connectiviteitsproblemen hebt @@ -684,14 +684,14 @@ Authorisatie sleutel Wijzig de authorisatie sleutel in een algemene sleutel op al uw Android-apparaten waarmee u verbinding wilt maken. De vorige standaardsleutel voor alle apparaten is 0123456789 @ ABCDE BFH-16 - U staat op het punt om de firmware %s te installeren op uw Amazfit Cor 2. -\n -\nZorg ervoor dat u het .fw-bestand installeert, daarna het .res-bestand. Uw horloge wordt opnieuw gestart na het installeren van het .fw-bestand. -\n -\nOpmerking: U hoeft de .res niet te installeren als deze exact dezelfde is als degene die ervoor al was geïnstalleerd. -\n -\nGA VERDER OP EIGEN RISICO! -\n + U staat op het punt om de firmware %s te installeren op uw Amazfit Cor 2. +\n +\nZorg ervoor dat u het .fw-bestand installeert, daarna het .res-bestand. Uw horloge wordt opnieuw gestart na het installeren van het .fw-bestand. +\n +\nOpmerking: U hoeft de .res niet te installeren als deze exact dezelfde is als degene die ervoor al was geïnstalleerd. +\n +\nGA VERDER OP EIGEN RISICO! +\n \nVOLLEDIG ONGETEST, MISSCHIEN MOET JE EEN BEATS_W_FIRMWARE INSTALLEREN ALS JE DEVICE NAAM \"Amazfit Band 2\" IS Nederlands Turks @@ -703,12 +703,12 @@ Portugees Amazfit Cor 2 Mi Band 4 - U staat op het punt om de %s-firmware op je Mi Band 4 te installeren. -\n -\nZorg ervoor dat u het .fw bestand installeert, en daarna het .res bestand. Uw band wordt opnieuw opgestart na het installeren van het .fw-bestand. -\n -\nOpmerking: U hoeft .res niet te installeren als het precies hetzelfde is als het eerder geïnstalleerde .res. -\n + U staat op het punt om de %s-firmware op je Mi Band 4 te installeren. +\n +\nZorg ervoor dat u het .fw bestand installeert, en daarna het .res bestand. Uw band wordt opnieuw opgestart na het installeren van het .fw-bestand. +\n +\nOpmerking: U hoeft .res niet te installeren als het precies hetzelfde is als het eerder geïnstalleerde .res. +\n \nGA VERDER OP EIGEN RISICO! Hartslag alarm tijdens sportactiviteit Ondergrens @@ -772,12 +772,12 @@ \n \nGA VERDER OP EIGEN RISICO! Amazfit GTR - U staat op het punt om de firmware %s te installeren op uw Amazfit GTR. -\n -\nZorg ervoor dat u het .fw-bestand installeert, daarna het .res-bestand en als laatste het .gps-bestand. Uw horloge wordt opnieuw gestart na het installeren van het .fw-bestand. -\n -\nOpmerking: U hoeft de .res niet te installeren als deze exact dezelfde is als degene die ervoor al was geïnstalleerd. -\n + U staat op het punt om de firmware %s te installeren op uw Amazfit GTR. +\n +\nZorg ervoor dat u het .fw-bestand installeert, daarna het .res-bestand en als laatste het .gps-bestand. Uw horloge wordt opnieuw gestart na het installeren van het .fw-bestand. +\n +\nOpmerking: U hoeft de .res niet te installeren als deze exact dezelfde is als degene die ervoor al was geïnstalleerd. +\n \nGA VERDER OP EIGEN RISICO! Rood Oranje @@ -786,11 +786,11 @@ Afgelopen 24 uur Van middag tot middag Amazfit GTS - U staat op het punt om de firmware %s te installeren op uw Amazfit GTS. -\n -\nZorg ervoor dat u het .fw-bestand installeert, daarna het .res-bestand en als laatste het .gps-bestand. Uw horloge wordt opnieuw gestart na het installeren van het .fw-bestand. -\n -\nOpmerking: U hoeft de .res niet te installeren als deze exact dezelfde is als degene die ervoor al was geïnstalleerd. -\n + U staat op het punt om de firmware %s te installeren op uw Amazfit GTS. +\n +\nZorg ervoor dat u het .fw-bestand installeert, daarna het .res-bestand en als laatste het .gps-bestand. Uw horloge wordt opnieuw gestart na het installeren van het .fw-bestand. +\n +\nOpmerking: U hoeft de .res niet te installeren als deze exact dezelfde is als degene die ervoor al was geïnstalleerd. +\n \nGA VERDER OP EIGEN RISICO! \ No newline at end of file From b64fa9eba93b2747fc98aae16b043b242c67a10f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Thu, 31 Oct 2019 19:20:12 +0000 Subject: [PATCH 089/112] Translated using Weblate (Spanish) Currently translated at 97.8% (708 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/es/ --- app/src/main/res/values-es/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index b5897b7b5..3b5005954 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -667,7 +667,7 @@ \n \nAsegúrese de instalar el archivo .fw y, a continuación, el archivo .res. Se reiniciará la pulsera tras instalar el archivo .fw. \n -\nNota: no es necesario instalar el archivo .res si es idéntico al instalado previamente. +\nNota: no es necesario instalar el archivo .res si es idéntico al instalado previamente. \n \nPROCEDA BAJO SU PROPIA CUENTA Y RIESGO. \n From ccfd800d6a596aea19a0818800c690aed60cf275 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 1 Nov 2019 00:30:59 +0000 Subject: [PATCH 090/112] Translated using Weblate (French) Currently translated at 98.5% (713 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/fr/ --- app/src/main/res/values-fr/strings.xml | 52 ++++++++++++-------------- 1 file changed, 23 insertions(+), 29 deletions(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 7609c9530..4d2b2b2f1 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -405,12 +405,12 @@ Temps de sommeil préféré en heures Sélectionnez Jumeler pour associer vos dispositifs. Si cela échoue, essayez à nouveau sans jumelage. Appairer Ne pas appairer - Vous êtes sur le point d\'installer le micrologiciel %s sur votre Amazfit Bip. -\n -\nVeuillez installer le fichier .fw, puis le fichier .res, puis le fichier.gps.. Votre montre redémarrera après installation du .fw. -\n -\nNote : vous ne devez pas installer .res et .gps si ceux-ci sont identiques à ceux installés précédemment. -\n + Vous êtes sur le point d\'installer le micrologiciel %s sur votre Amazfit Bip. +\n +\nVeuillez installer le fichier .fw, puis le fichier .res, puis le fichier.gps.. Votre montre redémarrera après installation du .fw. +\n +\nNote : vous ne devez pas installer .res et .gps si ceux-ci sont identiques à ceux installés précédemment. +\n \nCONTINUEZ À VOS RISQUES ! Actions du bouton Spécifier les actions par pression du bouton du Mi Band 2 @@ -434,12 +434,12 @@ Temps de sommeil préféré en heures Si activé, autorise l\'affichage de la météo, niveau de batterie, etc. Activité Web View Connexion … - Vous êtes sur le point d\'installer le micrologiciel %s sur votre Amazfit Cor. -\n -\nVeuillez installer le fichier .fw, puis le fichier .res. Votre montre redémarrera après installation du fichier .fw. -\n -\nNote : Il n\'est pas nécessaire d\'installer le fichier .res si celui-ci est identique à celui installé précédemment. -\n + Vous êtes sur le point d\'installer le micrologiciel %s sur votre Amazfit Cor. +\n +\nVeuillez installer le fichier .fw, puis le fichier .res. Votre montre redémarrera après installation du fichier .fw. +\n +\nNote : Il n\'est pas nécessaire d\'installer le fichier .res si celui-ci est identique à celui installé précédemment. +\n \nCONTINUEZ À VOS RISQUES ! Permettre le balayage gauche/droite dans les graphiques d\'activité Automatique @@ -513,19 +513,13 @@ Temps de sommeil préféré en heures Alipay Mettre toutes les notifications en liste noire Mettre toutes les notifications en liste blanche - "Vous allez installer le micrologiciel %s dans votre Mi Band 3. + Vous allez installer le micrologiciel %s dans votre Mi Band 3. \n -\n +\nAssurez-vous d\'installer d\'abord le fichier .fw, et ensuite le fichiers .res. Votre bracelet redémarrera après l\'installation du fichiers .fw. \n -\nAssurez-vous d\'installer d\'abord le fichier .fw, et ensuite le fichiers .res. Votre bracelet redémarrera après l\'installation du fichiers .fw. +\nRemarque : Vous n\'avez pas besoin d\'installer le fichier .res si c\'est exactement le même que celui déjà installé. \n -\n -\n -\nRemarque : Vous n\'avez pas besoin d\'installer le fichier .res si c\'est exactement le même que celui déjà installé. -\n -\n -\n -\nÀ VOS RISQUES ET PÉRILS !" +\nÀ VOS RISQUES ET PÉRILS ! client GATT uniquement C\'est uniquement pour les Pebble 2 et expérimental, à essayer si vous avez des problèmes de connectivité Orientation de l\'écran @@ -683,14 +677,14 @@ Temps de sommeil préféré en heures Clé Auteur Changez la clé auteur à une clé générale sur tous vos appareils Android sur lesquels vous souhaitez vous connecter. La précédente clé par défaut était 0123456789@ABCDE BFH-16 - Vous êtes sur le point d\'installer le micrologiciel %s sur votre Amazfit Cor 2. + Vous êtes sur le point d\'installer le micrologiciel %s sur votre Amazfit Cor 2. +\n +\nVeuillez installer le fichier .fw, puis le fichier .res. Votre montre redémarrera après installation du .fw. +\n +\nNote : il n\'est pas nécessaire d\'installer le fichier .res si celui-ci est identique à celui installé précédemment. +\n +\nCONTINUEZ À VOS RISQUES ! \n -\nVeuillez installer le fichier .fw, puis le fichier .res. Votre montre redémarrera après installation du .fw. -\n -\nNote : il n\'est pas nécessaire d\'installer le fichier .res si celui-ci est identique à celui installé précédemment. -\n -\nCONTINUEZ À VOS RISQUES ! -\n \nNON TESTÉ, IL PEUT ÊTRE NÉCESSAIRE DE FLASHER UN MICROLOGICIEL BEATS_W SI LE NOM DE L\'APPAREIL EST « Amazfit Band 2 » Néerlandais Turc From a4675f453a19865219d2190d2722ea95ce8b40a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 1 Nov 2019 00:31:49 +0000 Subject: [PATCH 091/112] Translated using Weblate (Korean) Currently translated at 78.7% (570 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ko/ --- app/src/main/res/values-ko/strings.xml | 36 +++++++++++++------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 8cae732f0..461faea0a 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -244,12 +244,12 @@ 날씨 알림 앱 설치 가장 위로 이동 비활성화 된 캘린더들 - 지금 당신의 Amazfit Bip에 %s 펌웨어를 설치하려고 합니다. -\n -\n.fw 파일을 설치하고 .res 파일을 설치한 후 최종적으로 .gps 파일을 설치하세요. .fw 파일을 설치한 후 기기가 재시작 됩니다. -\n -\n비고: 만약 전에 설치되어 있던 .res 파일과 .gps 파일을 그대로 사용한다면 각 파일을 다시 설치 할 필요는 없습니다. -\n + 지금 당신의 Amazfit Bip에 %s 펌웨어를 설치하려고 합니다. +\n +\n.fw 파일을 설치하고 .res 파일을 설치한 후 최종적으로 .gps 파일을 설치하세요. .fw 파일을 설치한 후 기기가 재시작 됩니다. +\n +\n비고: 만약 전에 설치되어 있던 .res 파일과 .gps 파일을 그대로 사용한다면 각 파일을 다시 설치 할 필요는 없습니다. +\n \n본인의 책임 하에 진행하세요! 자동으로 시작 언어 @@ -308,12 +308,12 @@ 단위 시간 형식 연결 - 지금 당신의 Amazfit Cor에 %s 펌웨어를 설치하려고 합니다. -\n -\n.fw 파일을 설치하고 .res 파일을 설치한 후 최종적으로 .gps 파일을 설치하세요. .fw 파일을 설치한 후 기기가 재시작 됩니다. -\n -\n비고: 만약 전에 설치되어 있던 .res 파일과 .gps 파일을 그대로 사용한다면 각 파일을 다시 설치 할 필요는 없습니다. -\n + 지금 당신의 Amazfit Cor에 %s 펌웨어를 설치하려고 합니다. +\n +\n.fw 파일을 설치하고 .res 파일을 설치한 후 최종적으로 .gps 파일을 설치하세요. .fw 파일을 설치한 후 기기가 재시작 됩니다. +\n +\n비고: 만약 전에 설치되어 있던 .res 파일과 .gps 파일을 그대로 사용한다면 각 파일을 다시 설치 할 필요는 없습니다. +\n \n본인의 책임 하에 진행하세요! 활동 차트에서 좌/우 밀어넘기기 사용 날씨 위치 (CM/리니지 OS) @@ -515,12 +515,12 @@ 디바이스 조정하기 모든 알람 블랙리스트 모든 알람을 위한 화이트리스트 - %s 펌웨어를 Mi Band 3에 설치하려고 합니다. -\n -\n.res 파일을 먼저 설치하고 .fw 파일을 설치하십시오. .fw 파일이 설치된 이후에 기기가 재시작될 것입니다. -\n -\n기존의 .res 파일과 설치하려는 .res 파일이 동일하다면, .res 파일을 다시 설치할 필요는 없습니다. -\n + %s 펌웨어를 Mi Band 3에 설치하려고 합니다. +\n +\n.res 파일을 먼저 설치하고 .fw 파일을 설치하십시오. .fw 파일이 설치된 이후에 기기가 재시작될 것입니다. +\n +\n기존의 .res 파일과 설치하려는 .res 파일이 동일하다면, .res 파일을 다시 설치할 필요는 없습니다. +\n \n테스트되지 않은 기능입니다. 기기가 고장날 가능성이 있습니다. 본인의 책임 하에 진행하십시오! 알람간 최소 시간 오른쪽에서 왼쪽으로 From 090d387a9bf9f39b0c87ade7d30c11e91272c40a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 1 Nov 2019 00:34:01 +0000 Subject: [PATCH 092/112] Translated using Weblate (Slovak) Currently translated at 60.4% (437 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/sk/ --- app/src/main/res/values-sk/strings.xml | 72 +++----------------------- 1 file changed, 6 insertions(+), 66 deletions(-) diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index e78de3171..ed8a49ce5 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -1,6 +1,6 @@ - -Gadgetbridge - + + + Gadgetbridge Gadgetbridge Nastavenia Ladenie @@ -19,10 +19,7 @@ Odpájanie Pripájanie Vytvorenie snímky obrazovky zariadenia - - Ladenie - Manažér aplikácií Aplikácie v cache Nainštalované aplikácie @@ -40,11 +37,8 @@ Nainštalovať aplikáciu pre upozornenia na počasie Nastaviť Posunúť hore - Zakázané upozornenia - Zakázané upozornenia Kalendára - Inštalátor FW/Apl Nainštaluje firmware %s do Mi Band namiesto existujúceho. Chystáte sa nainštalovať firmvér %s na vašom Amazfit Bip. @@ -67,9 +61,7 @@ \n \nNedoporučujeme ho nahrávať do Mi Band! Ak budete pokračovať a všetko bude dobre fungovať aj potom, upozornite vývojárov Gadgetbridge, aby označili tento firmvér: %s ako vyskúšaný - Nastavenia - Základné nastavenia Pripojiť zariadenie ak je BT zapnutý Spúšťať automaticky @@ -77,21 +69,16 @@ Preferovaný prehrávač zvukov Predvolené Zap. potiahnutie vľavo/vpravo v grafoch aktivít - Dátum a čas Synchronizovať čas pri pripojení Synchronizovať čas pri pripojení k zariadeniu a aj pri zmene času alebo časového pásma v Androide - Téma aplikácie Svetlá Tmavá - Jazyk - Skryť upozornenia Gadgetbridge Zobraziť ikonu v stavovom riadku a upozornenia na uzamknutej obrazovke V stavovom riadku na obrazovke uzamknutia nebude zobrazená ikona a upozornenie - Upozornenia Opakovanie Hovory @@ -104,71 +91,55 @@ Zakázať odosielanie nechcených upozornení v režime Nerušiť Náhrada diakritiky Toto zapnite, ak vaše zariadenie nepodporuje písma (znaky s diakritikou) pre vás jazyk - Vždy Pri vypnutej obrazovke Nikdy - Súkromie Ochrana súkromia pri hovore Zobraziť meno a číslo Skryť meno, zobraziť číslo Skryť číslo, zobraziť meno Skryť meno aj číslo - Počasie Poloha pre počasie (CM/LOS) - Zakázať upozornenia z aplikácií Zakázané kalendáre - Potlačené správy Odpovede Bežná prípona Zamietnuté hovory Aktualizovať na Pebble - Vývojárske nastavenia Adresa Mi Band - Nastavenia Pebble - Sledovače aktivity Preferovaný sledovač aktivity Synchronizovať Pebble Health Synchronizovať Misfit Synchronizovať Morpheuz - Podpora odchádzjúcich hovorov Vypnutím tiež prestanú u Pebble 2/LE vibrácie u odchádzajúcich hovorov - Povoliť prístup tretích strán k aplikácii Android Povoliť experimentálnu podporu pre aplikácie Androidu cez PebbleKit - Časová os Pebble Východ a západ slnka Posielať časy východu a západu slnka podľa umiestnenia do Pebble časovej osi Synchronizácia kalendára Odosielať udalosti kalendára na časovú os - Automaticky odstraňovať skryté upozornenia Upozornenia budú z Pebble odstránené automaticky, ak boli skryté na zariadení s Androidom - Režim súkromia Bežné upozornenia Posunúť text upozornenia mimo obrazovku Zobraziť iba ikonu notifikácia - Poloha Zistiť polohu Z. šírka Z. dĺžka Aktualizovať polohu Pri spustení zistiť aktuálnu polohu, uloženú polohu použiť ako záložnú - Povoľte zisťovanie polohy podľa siete Poloha zistená - Vynútiť protokol upozornení Táto voľba vynúti použitie najnovšieho protokolu upozornení podľa verzie firmware. ZAPNITE IBA AK VIETE, ČO ROBÍTE! Povoliť netestované funkcie @@ -183,21 +154,17 @@ Spôsobí, že správy odosielané externým aplikáciám tretích strán budú vždy a okamžite potvrdené Zapnúť JS na pozadí Ak je zapnuté, umožňuje hodinám zobrazovať počasie, údaje o batérii atď. - Pokusov o znovupripojenie - Merné jednotky Formát času Čas zapnutia obrazovky Celodenné meranie tepu Nastavenia HPlus/Makibes - Automatický export Zapnutý/Vypnutý Priečinok pre uloženie Časový interval Exportovať každé %d hodiny - Nepripojené Pripájanie Pripojené @@ -230,7 +197,6 @@ Spustené %1$s od %2$s Vyhľadávanie zariadenia - Zastaviť hľadanie Spustiť hľadanie Pripojiť nové zariadenia @@ -259,7 +225,6 @@ Obraz zariadenia Názov/přezdívka Počet vibrácií - Sledovanie spánku Zapísovať logy Spúšťanie @@ -267,7 +232,6 @@ Od %1$s do %2$s Na ktorej ruke nosíte? Profil vibrácií - Staccato Krátké Stredné @@ -276,7 +240,6 @@ Zvonenie Budík Vibrácie - Vyskúšať Upozornenia na SMS Nastavenia vibrácií @@ -286,18 +249,15 @@ Rozhovory (chat) Navigácia Sociálne siete - Celodenné meranie tepu Raz za minútu Každých 5 minút Každých 10 minút Každých 30 minút Raz za hodinu - Zóny rýchlosti Minút celkovo Krokov za minútu - Nájsť stratené zariadenie Zrušit pro zastavení vibrací. Vaše aktivity @@ -363,7 +323,6 @@ Zachová dáta o aktivite v Mi Band aj po synchronizácii. To je užitečné, ak je GB používaný dohromady s inou aplikáciou. Použiť režim z nízkym oneskorením pri aktualizácii firmvéru Môže to pomôcť u zariadenia, kde aktualizácia firmvéru zlyhala - História krokov Dnes krokov/min Celkom krokov @@ -380,7 +339,7 @@ Tento firmware nie je kompatibilný s týmto zariadením Alarmy pre nadchádzajúce udalosti Použiť sledovanie tepu pre zlepšenie detekcie spánku - Časový posun zariadenia v hodinách (pre zisťovanie spánku v pracujúcich na smeny) + Časový posun zariadenia v hodinách (pre zisťovanie spánku v pracujúcich na smeny) Mi2: formát datumu Čas Čas a dátum @@ -412,26 +371,20 @@ Vypnutie upozornení na nečinnosť počas zadaného časového intervalu Od Do - Automaticky Zjednodušená Čínština Tradičná Čísština Angličtina Španielčina - Prenášam dáta od %1$s - Čakanie na opätovné pripojenie - Vaše osobné údaje Rok narodenia Pohlavie Výška v cm Váha v kg - Overovanie Vyžiadané overenie - Spí… Pridať miniaplikáciu Preferovaná doba spánku v hodinách @@ -444,7 +397,6 @@ Firmvér nebol odoslaný Tep srdca Tep srdca - Uložiť hrubý záznam do databázy Ak je zaškrtnuté, tak sú dáta uložené v pôvodnej podobe pre neskoršie vyhodnotenie. Databáza bude v tom prípade väčšia! Správa databázy @@ -473,12 +425,9 @@ Pprepísať Zrušiť Odstrániť - Vibrácie - Párovánie Pebble Dialóg párovania by sa mal objaviť na vašom zariadení s Androidom. Ak sa tak nestane, skontrolujte panel upozornení a potvrďte párovanie. Potom potvrďte párovanie na Pebble - Uistite sa, že tento skin je povolený v aplikácii pre upozornenia stavu počasia pre získavanie informácií z vášho Pebble. \n \nNie je potrebné nič nastavovať. @@ -488,17 +437,12 @@ \nPodporované ciferníky ukážu počasie automaticky. Zapnúť BT párovanie Toto vypnite v prípade problémov s pripojením - Metrické Imperiálne - 24h dop./odp. - Budík - Aktivity Webový pohľad - (%1$s) Nájdené! Formát času Mi2 @@ -518,11 +462,9 @@ Ak chcete spárovať svoje zariadenia, kliknite na Párovať. Ak to zlyhá, skúste to znovu bez párovania. Párovať Nepárovať - Otvoriť na telefóne Stlmiť Znovu - Firmvér Neplatné dáta Písmo @@ -531,7 +473,6 @@ Korekcia chýb GPS Zdroje Ciferník - Neznáme zariadenie Testovacie zariadenie Pebble @@ -547,9 +488,8 @@ No.1 F1 Teclast H30 XWatch - Vyberte umiestnenie exportu Gadgetbridge upozornenia -Pripojiť + Pripojiť Zap. - + \ No newline at end of file From a6cc2bef7f5374c0fb703e526ed87510d4f65121 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=B0=91=E4=B8=BE?= Date: Fri, 1 Nov 2019 04:20:39 +0000 Subject: [PATCH 093/112] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (724 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/ --- app/src/main/res/values-zh-rCN/strings.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 418c32b8a..7e969557d 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -785,4 +785,11 @@ 过去 24 小时 中午到中午 米动 GTS + 您即将在 米动手表GTS(Amazfit GTS)上安装 %s 版本的固件 +\n +\n请确保先安装 .fw 文件,再安装 .res 文件。您的手环将会在安装了 .fw 文件后重启。 +\n +\n备注:如果您安装的 .res 文件和之前相同,则无需安装 .res 文件。 +\n +\n风险自担! \ No newline at end of file From 6ce486992a31b505bc027c085a93712b764fee1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Thu, 31 Oct 2019 19:18:21 +0000 Subject: [PATCH 094/112] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 97.7% (707 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/nb_NO/ --- app/src/main/res/values-nb-rNO/strings.xml | 67 ++++++++++++---------- 1 file changed, 37 insertions(+), 30 deletions(-) diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index fa42bfc46..17878a9d2 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -42,19 +42,19 @@ Gadgetbru Gadgetbru Dette vil slette enheten og all tilknyttet data! - Du er i ferd med å installere %s-fastvaren på din Amazfit Bip. -\n -\nForsikre deg om at du installerer ..fw-fila, så .res-fila, og til sist gps-fila. Armbåndsuret ditt vil starte på nytt etter at .fw-fila er installert. -\n -\nMerk: Du må ikke installere .res og .gps hvis disse er akkurat de samme som dem som allerede er installert. -\n + Du er i ferd med å installere %s-fastvaren på din Amazfit Bip. +\n +\nForsikre deg om at du installerer .fw-fila, så .res-fila, og til sist gps-fila. Armbåndsuret ditt vil starte på nytt etter at .fw-fila er installert. +\n +\nMerk: Du må ikke installere .res og .gps hvis disse er akkurat de samme som dem som allerede er installert. +\n \nFORTSETT PÅ EGEN RISIKO! - Du er i ferd med å installere %s-fastvaren på din Amazfit Cor. -\n -\nForsikre deg om at du installerer .fw-fila, og så .res-fila. Båndet ditt vil starte på ny etter at .fw-fila er installert. -\n -\nMerk: Du må ikke installere .res og .gps hvis disse er akkurat de samme som dem som allerede er installert. -\n + Du er i ferd med å installere %s-fastvaren på din Amazfit Cor. +\n +\nForsikre deg om at du installerer .fw-fila, og så .res-fila. Båndet ditt vil starte på ny etter at .fw-fila er installert. +\n +\nMerk: Du må ikke installere .res og .gps hvis disse er akkurat de samme som dem som allerede er installert. +\n \nFORTSETT PÅ EGEN RISIKO! Du er i ferd med å installere %1$s- og %2$s-fastvarene isteden for dem som er installert nå på ditt Mi Band. Denne fastvaren har blitt testet og er kompatibel med Gadgetbru. @@ -518,12 +518,12 @@ Dette er kun for Pebble 2 og eksperimentelt, prøv dette hvis du har tilkoblingsproblemer Alipay (snarvei) Vær (snarvei) - Du er i ferd med å installere %s-fastvaren på din Mi Band 3. -\n -\nInstaler først .fw-fila, og dernest .res-fila. Båndet ditt vil starte på nytt etter at du installerer .fw-fila. -\n -\nMerk: Du trenger ikke å installere .res hvis du har akkurat den samme installert. -\n + Du er i ferd med å installere %s-fastvaren på din Mi Band 3. +\n +\nInstaller først .fw-fila, og dernest .res-fila. Båndet ditt vil starte på nytt etter at du installerer .fw-fila. +\n +\nMerk: Du trenger ikke å installere .res hvis du har akkurat den samme installert. +\n \nFORTSETT PÅ EGEN RISIKO! Mi Band 3 Q8 @@ -762,26 +762,33 @@ Anropsvarighet i sekunder Varighet Denne enheten trenger en hemmelig identitetsbekreftelsesnøkkel. Trykk lenge på enheten for å skrive den inn. Les wiki-en. - Du er i ferd med å installere %s-fastvaren på din Amazfit Bip Lite. -\n -\nForsikre deg om at du installerer ..fw-fila, så .res-fila, og til sist gps-fila. Armbåndsuret ditt vil starte på nytt etter at .fw-fila er installert. -\n -\nMerk: Du trenger ikke å installere .res-filen hvis den er akkurat den samme som den som allerede er installert. -\n + Du er i ferd med å installere %s-fastvaren på din Amazfit Bip Lite. +\n +\nForsikre deg om at du installerer .fw-fila, så .res-fila, og til sist gps-fila. Armbåndsuret ditt vil starte på nytt etter at .fw-fila er installert. +\n +\nMerk: Du trenger ikke å installere .res-filen hvis den er akkurat den samme som den som allerede er installert. +\n \nFORTSETT PÅ EGEN RISIKO! Amazfit GTR Rød Oransje Pulsfarge - Du er i ferd med å installere %s-fastvaren på din Amazfit GTR. -\n -\nForsikre deg om at du installerer ..fw-fila, så .res-fila, og til sist gps-fila. Armbåndsuret ditt vil starte på nytt etter at .fw-fila er installert. -\n -\nMerk: Du trenger ikke å installere .res-filen hvis den er akkurat den samme som den som allerede er installert. -\n + Du er i ferd med å installere %s-fastvaren på din Amazfit GTR. +\n +\nForsikre deg om at du installerer .fw-fila, så .res-fila, og til sist gps-fila. Armbåndsuret ditt vil starte på nytt etter at .fw-fila er installert. +\n +\nMerk: Du trenger ikke å installere .res-filen hvis den er akkurat den samme som den som allerede er installert. +\n \nFORTSETT PÅ EGEN RISIKO! Søvnperiode Siste 24 timer 12:00 til 12:00 Amazfit GTS + Du er i ferd med å installere %s-fastvaren på din Amazfit GTS. +\n +\nForsikre deg om at du installerer .fw-fila, så .res-fila, og til sist gps-fila. Armbåndsuret ditt vil starte på nytt etter at .fw-fila er installert. +\n +\nMerk: Du må ikke installere .res og .gps hvis disse er akkurat de samme som dem som allerede er installert. +\n +\nFORTSETT PÅ EGEN RISIKO! \ No newline at end of file From c1d024876dc82b1c7cb4af68a6af210eb16d0ce7 Mon Sep 17 00:00:00 2001 From: vanous Date: Fri, 1 Nov 2019 23:40:17 +0100 Subject: [PATCH 095/112] Add forward/backward buttons to charts --- .../charts/AbstractChartFragment.java | 44 +++++++------ .../activities/charts/ChartsActivity.java | 48 +++++++++++--- .../activities/charts/ChartsHost.java | 10 ++- app/src/main/res/layout/activity_charts.xml | 62 +++++++++++++++---- 4 files changed, 117 insertions(+), 47 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java index ff2174330..57a86f212 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java @@ -152,8 +152,12 @@ public abstract class AbstractChartFragment extends AbstractGBFragment { if (intentFilterActions != null) { mIntentFilterActions.addAll(Arrays.asList(intentFilterActions)); } - mIntentFilterActions.add(ChartsHost.DATE_NEXT); - mIntentFilterActions.add(ChartsHost.DATE_PREV); + mIntentFilterActions.add(ChartsHost.DATE_NEXT_DAY); + mIntentFilterActions.add(ChartsHost.DATE_PREV_DAY); + mIntentFilterActions.add(ChartsHost.DATE_NEXT_WEEK); + mIntentFilterActions.add(ChartsHost.DATE_PREV_WEEK); + mIntentFilterActions.add(ChartsHost.DATE_NEXT_MONTH); + mIntentFilterActions.add(ChartsHost.DATE_PREV_MONTH); mIntentFilterActions.add(ChartsHost.REFRESH); } @@ -250,10 +254,18 @@ public abstract class AbstractChartFragment extends AbstractGBFragment { String action = intent.getAction(); if (ChartsHost.REFRESH.equals(action)) { refresh(); - } else if (ChartsHost.DATE_NEXT.equals(action)) { - handleDateNext(getStartDate(), getEndDate()); - } else if (ChartsHost.DATE_PREV.equals(action)) { - handleDatePrev(getStartDate(), getEndDate()); + } else if (ChartsHost.DATE_NEXT_DAY.equals(action)) { + handleDate(getStartDate(), getEndDate(),+1); + } else if (ChartsHost.DATE_PREV_DAY.equals(action)) { + handleDate(getStartDate(), getEndDate(),-1); + } else if (ChartsHost.DATE_NEXT_WEEK.equals(action)) { + handleDate(getStartDate(), getEndDate(),+7); + } else if (ChartsHost.DATE_PREV_WEEK.equals(action)) { + handleDate(getStartDate(), getEndDate(),-7); + } else if (ChartsHost.DATE_NEXT_MONTH.equals(action)) { + handleDate(getStartDate(), getEndDate(),+30); + } else if (ChartsHost.DATE_PREV_MONTH.equals(action)) { + handleDate(getStartDate(), getEndDate(),-30); } } @@ -263,31 +275,17 @@ public abstract class AbstractChartFragment extends AbstractGBFragment { * * @param startDate * @param endDate + * @param Offset */ - protected void handleDatePrev(Date startDate, Date endDate) { + protected void handleDate(Date startDate, Date endDate, Integer Offset) { if (isVisibleInActivity()) { - if (!shiftDates(startDate, endDate, -1)) { + if (!shiftDates(startDate, endDate, Offset)) { return; } } refreshIfVisible(); } - /** - * Default implementation shifts the dates by one day, if visible - * and calls #refreshIfVisible(). - * - * @param startDate - * @param endDate - */ - protected void handleDateNext(Date startDate, Date endDate) { - if (isVisibleInActivity()) { - if (!shiftDates(startDate, endDate, +1)) { - return; - } - } - refreshIfVisible(); - } protected void refreshIfVisible() { if (isVisibleInActivity()) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsActivity.java index 2c2e98531..68fa9eda4 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsActivity.java @@ -175,20 +175,52 @@ public class ChartsActivity extends AbstractGBFragmentActivity implements Charts } }); - Button mPrevButton = findViewById(R.id.charts_previous); + Button mPrevButton = findViewById(R.id.charts_previous_day); mPrevButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - handlePrevButtonClicked(); + handleButtonClicked(DATE_PREV_DAY); } }); - Button mNextButton = findViewById(R.id.charts_next); + Button mNextButton = findViewById(R.id.charts_next_day); mNextButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - handleNextButtonClicked(); + handleButtonClicked(DATE_NEXT_DAY); } }); + + Button mPrevWeekButton = findViewById(R.id.charts_previous_week); + mPrevWeekButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + handleButtonClicked(DATE_PREV_WEEK); + } + }); + Button mNextWeekButton = findViewById(R.id.charts_next_week); + mNextWeekButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + handleButtonClicked(DATE_NEXT_WEEK); + } + }); + + Button mPrevMonthButton = findViewById(R.id.charts_previous_month); + mPrevMonthButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + handleButtonClicked(DATE_PREV_MONTH); + } + }); + Button mNextMonthButton = findViewById(R.id.charts_next_month); + mNextMonthButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + handleButtonClicked(DATE_NEXT_MONTH); + } + }); + + } private String formatDetailedDuration() { @@ -229,12 +261,8 @@ public class ChartsActivity extends AbstractGBFragmentActivity implements Charts return mEndDate; } - private void handleNextButtonClicked() { - LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent(DATE_NEXT)); - } - - private void handlePrevButtonClicked() { - LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent(DATE_PREV)); + private void handleButtonClicked(String Action) { + LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent(Action)); } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsHost.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsHost.java index 43ee7ae82..566dfec05 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsHost.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsHost.java @@ -23,8 +23,14 @@ import java.util.Date; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; public interface ChartsHost { - String DATE_PREV = ChartsActivity.class.getName().concat(".date_prev"); - String DATE_NEXT = ChartsActivity.class.getName().concat(".date_next"); + String DATE_PREV_DAY = ChartsActivity.class.getName().concat(".date_prev_day"); + String DATE_NEXT_DAY = ChartsActivity.class.getName().concat(".date_next_day"); + String DATE_PREV_WEEK = ChartsActivity.class.getName().concat(".date_prev_week"); + String DATE_NEXT_WEEK = ChartsActivity.class.getName().concat(".date_next_week"); + String DATE_PREV_MONTH = ChartsActivity.class.getName().concat(".date_prev_month"); + String DATE_NEXT_MONTH = ChartsActivity.class.getName().concat(".date_next_month"); + + String REFRESH = ChartsActivity.class.getName().concat(".refresh"); GBDevice getDevice(); diff --git a/app/src/main/res/layout/activity_charts.xml b/app/src/main/res/layout/activity_charts.xml index 0d730ce50..e42f90792 100644 --- a/app/src/main/res/layout/activity_charts.xml +++ b/app/src/main/res/layout/activity_charts.xml @@ -27,32 +27,70 @@ app:tabMode="scrollable" /> + + + + + +