From 18d78bf05d236e66fcb394e8a1738a58d02a8456 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Mon, 18 Nov 2019 21:53:03 +0100 Subject: [PATCH 01/56] Amazfit Bip: Correct BipOS version --- .../devices/huami/amazfitbip/AmazfitBipFirmwareInfo.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 6ac8d83be..916bf5034 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 @@ -158,10 +158,10 @@ public class AmazfitBipFirmwareInfo extends HuamiFirmwareInfo { crcToVersion.put(59577, "9 (Latin)"); // BipOS FW - crcToVersion.put(28373, "1.1.5.02 (BipOS 0.5)"); + crcToVersion.put(28373, "1.1.2.05 (BipOS 0.5)"); // BipOS RES - crcToVersion.put(16303, "1.1.5.02 (BipOS 0.5)"); + crcToVersion.put(16303, "1.1.2.05 (BipOS 0.5)"); } public AmazfitBipFirmwareInfo(byte[] bytes) { From c7053747cd6d157a620c6980282e4429d7f1bb72 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Tue, 19 Nov 2019 14:40:20 +0100 Subject: [PATCH 02/56] Add active reconnection Closes #1724 Closes #1632 Closes #1452 Closes #1271 Closes #564 (Probably more) --- .../service/DeviceCommunicationService.java | 13 ++- .../gadgetbridge/service/btle/BtLEQueue.java | 6 +- .../btle/actions/SetDeviceStateAction.java | 3 + .../AutoConnectIntervalReceiver.java | 101 ++++++++++++++++++ 4 files changed, 117 insertions(+), 6 deletions(-) create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/receivers/AutoConnectIntervalReceiver.java diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceCommunicationService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceCommunicationService.java index 34dd7f66b..1fd696893 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceCommunicationService.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceCommunicationService.java @@ -44,14 +44,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; -import java.util.Random; import java.util.UUID; import nodomain.freeyourgadget.gadgetbridge.GBApplication; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.activities.HeartRateUtils; import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; -import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiCoordinator; import nodomain.freeyourgadget.gadgetbridge.externalevents.AlarmClockReceiver; import nodomain.freeyourgadget.gadgetbridge.externalevents.AlarmReceiver; import nodomain.freeyourgadget.gadgetbridge.externalevents.BluetoothConnectReceiver; @@ -75,13 +73,13 @@ import nodomain.freeyourgadget.gadgetbridge.model.MusicStateSpec; import nodomain.freeyourgadget.gadgetbridge.model.NotificationSpec; import nodomain.freeyourgadget.gadgetbridge.model.NotificationType; import nodomain.freeyourgadget.gadgetbridge.model.WeatherSpec; +import nodomain.freeyourgadget.gadgetbridge.service.receivers.AutoConnectIntervalReceiver; import nodomain.freeyourgadget.gadgetbridge.service.receivers.GBAutoFetchReceiver; import nodomain.freeyourgadget.gadgetbridge.util.DeviceHelper; import nodomain.freeyourgadget.gadgetbridge.util.EmojiConverter; import nodomain.freeyourgadget.gadgetbridge.util.GB; import nodomain.freeyourgadget.gadgetbridge.util.GBPrefs; import nodomain.freeyourgadget.gadgetbridge.util.Prefs; -import nodomain.freeyourgadget.gadgetbridge.util.StringUtils; import static nodomain.freeyourgadget.gadgetbridge.model.DeviceService.ACTION_ADD_CALENDAREVENT; import static nodomain.freeyourgadget.gadgetbridge.model.DeviceService.ACTION_APP_CONFIGURE; @@ -193,6 +191,7 @@ public class DeviceCommunicationService extends Service implements SharedPrefere private BluetoothPairingRequestReceiver mBlueToothPairingRequestReceiver = null; private AlarmClockReceiver mAlarmClockReceiver = null; private GBAutoFetchReceiver mGBAutoFetchReceiver = null; + private AutoConnectIntervalReceiver mAutoConnectInvervalReceiver= null; private AlarmReceiver mAlarmReceiver = null; private CalendarReceiver mCalendarReceiver = null; @@ -760,6 +759,10 @@ public class DeviceCommunicationService extends Service implements SharedPrefere mGBAutoFetchReceiver = new GBAutoFetchReceiver(); registerReceiver(mGBAutoFetchReceiver, new IntentFilter("android.intent.action.USER_PRESENT")); } + if (mAutoConnectInvervalReceiver == null) { + mAutoConnectInvervalReceiver= new AutoConnectIntervalReceiver(this); + registerReceiver(mAutoConnectInvervalReceiver, new IntentFilter("GB_RECONNECT")); + } } else { if (mPhoneCallReceiver != null) { unregisterReceiver(mPhoneCallReceiver); @@ -809,6 +812,10 @@ public class DeviceCommunicationService extends Service implements SharedPrefere unregisterReceiver(mGBAutoFetchReceiver); mGBAutoFetchReceiver = null; } + if (mAutoConnectInvervalReceiver != null) { + unregisterReceiver(mAutoConnectInvervalReceiver); + mAutoConnectInvervalReceiver = null; + } } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java index 92b56bb33..a79d8a907 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java @@ -49,6 +49,7 @@ import nodomain.freeyourgadget.gadgetbridge.Logging; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice.State; import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport; +import nodomain.freeyourgadget.gadgetbridge.service.receivers.AutoConnectIntervalReceiver; /** * One queue/thread per connectable device. @@ -301,8 +302,6 @@ public final class BtLEQueue { mWaitForServerActionResultLatch.countDown(); } - boolean wasInitialized = mGbDevice.isInitialized(); - setDeviceConnectionState(State.NOT_CONNECTED); // either we've been disconnected because the device is out of range @@ -312,7 +311,7 @@ public final class BtLEQueue { // reconnecting automatically, so we try to fix this by re-creating mBluetoothGatt. // Not sure if this actually works without re-initializing the device... if (mBluetoothGatt != null) { - if (!wasInitialized || !maybeReconnect()) { + if (!maybeReconnect()) { disconnect(); // ensure that we start over cleanly next time } } @@ -329,6 +328,7 @@ public final class BtLEQueue { boolean result = mBluetoothGatt.connect(); if (result) { setDeviceConnectionState(State.WAITING_FOR_RECONNECT); + AutoConnectIntervalReceiver.scheduleReconnect(); } return result; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/actions/SetDeviceStateAction.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/actions/SetDeviceStateAction.java index bac898926..334e7432f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/actions/SetDeviceStateAction.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/actions/SetDeviceStateAction.java @@ -19,6 +19,8 @@ package nodomain.freeyourgadget.gadgetbridge.service.btle.actions; import android.bluetooth.BluetoothGatt; import android.content.Context; +import androidx.annotation.NonNull; + import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; public class SetDeviceStateAction extends PlainAction { @@ -43,6 +45,7 @@ public class SetDeviceStateAction extends PlainAction { return context; } + @NonNull @Override public String toString() { return super.toString() + " to " + deviceState; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/receivers/AutoConnectIntervalReceiver.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/receivers/AutoConnectIntervalReceiver.java new file mode 100644 index 000000000..9de1e78e2 --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/receivers/AutoConnectIntervalReceiver.java @@ -0,0 +1,101 @@ +/* Copyright (C) 2019 Andreas Shimokawa + + 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.receivers; + +import android.app.AlarmManager; +import android.app.PendingIntent; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.os.Build; + +import androidx.localbroadcastmanager.content.LocalBroadcastManager; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Calendar; + +import nodomain.freeyourgadget.gadgetbridge.BuildConfig; +import nodomain.freeyourgadget.gadgetbridge.GBApplication; +import nodomain.freeyourgadget.gadgetbridge.devices.DeviceManager; +import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; +import nodomain.freeyourgadget.gadgetbridge.service.DeviceCommunicationService; + +public class AutoConnectIntervalReceiver extends BroadcastReceiver { + + final DeviceCommunicationService service; + static int mDelay = 4; + private static final Logger LOG = LoggerFactory.getLogger(AutoConnectIntervalReceiver.class); + + public AutoConnectIntervalReceiver(DeviceCommunicationService service) { + this.service = service; + IntentFilter filterLocal = new IntentFilter(); + filterLocal.addAction(DeviceManager.ACTION_DEVICES_CHANGED); + LocalBroadcastManager.getInstance(service).registerReceiver(this, filterLocal); + } + + + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + if (action == null) { + return; + } + GBDevice gbDevice = service.getGBDevice(); + + if (action.equals(DeviceManager.ACTION_DEVICES_CHANGED)) { + if (gbDevice.isInitialized()) { + LOG.info("will reset connection delay, device is initialized!"); + mDelay = 4; + } + } + else if (action.equals("GB_RECONNECT")) { + if (gbDevice != null) { + if (gbDevice.getState() == GBDevice.State.WAITING_FOR_RECONNECT) { + LOG.info("Will re-connect to " + gbDevice.getAddress() + "(" + gbDevice.getName() + ")"); + GBApplication.deviceService().connect(); + } + } + } + } + + public static void scheduleReconnect() { + mDelay*=2; + if (mDelay > 128) { + mDelay = 128; + } + scheduleReconnect(mDelay); + } + + public static void scheduleReconnect(int delay) { + LOG.info("schduling reconnect in " + delay + " seconds"); + AlarmManager am = (AlarmManager) (GBApplication.getContext().getSystemService(Context.ALARM_SERVICE)); + Intent intent = new Intent("GB_RECONNECT"); + intent.setPackage(BuildConfig.APPLICATION_ID); + PendingIntent pendingIntent = PendingIntent.getBroadcast(GBApplication.getContext(), 0, intent, 0); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + am.setAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, Calendar.getInstance(). + getTimeInMillis() + delay * 1000, pendingIntent); + } else { + am.set(AlarmManager.RTC_WAKEUP, Calendar.getInstance(). + getTimeInMillis() + delay * 1000, pendingIntent); + } + } + +} From c2db30274f582172655715f307bf7f6efa9398b7 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Wed, 20 Nov 2019 10:53:25 +0100 Subject: [PATCH 03/56] Make reconnect logic more device agnostic and remove pebble reconnect logic --- .../gadgetbridge/service/btle/BtLEQueue.java | 1 - .../devices/pebble/PebbleIoThread.java | 39 +++++-------------- .../AutoConnectIntervalReceiver.java | 25 +++++++----- 3 files changed, 24 insertions(+), 41 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java index a79d8a907..03d0d7488 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java @@ -328,7 +328,6 @@ public final class BtLEQueue { boolean result = mBluetoothGatt.connect(); if (result) { setDeviceConnectionState(State.WAITING_FOR_RECONNECT); - AutoConnectIntervalReceiver.scheduleReconnect(); } return result; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleIoThread.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleIoThread.java index 7c1ba63c0..ec6fc8052 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleIoThread.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleIoThread.java @@ -28,6 +28,8 @@ import android.webkit.ValueCallback; import android.webkit.WebView; import androidx.annotation.NonNull; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -44,7 +46,6 @@ import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.UUID; -import androidx.localbroadcastmanager.content.LocalBroadcastManager; import nodomain.freeyourgadget.gadgetbridge.GBApplication; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.activities.ExternalPebbleJSActivity; @@ -110,7 +111,7 @@ class PebbleIoThread extends GBDeviceIoThread { } } - public static void sendAppMessage(GBDeviceEventAppMessage message) { + private static void sendAppMessage(GBDeviceEventAppMessage message) { final String jsEvent; try { WebViewSingleton.getInstance().checkAppRunning(message.appUUID); @@ -190,7 +191,7 @@ class PebbleIoThread extends GBDeviceIoThread { mOutStream = new PipedOutputStream(); mPebbleLESupport = new PebbleLESupport(this.getContext(), btDevice, (PipedInputStream) mInStream, (PipedOutputStream) mOutStream); } else { - ParcelUuid uuids[] = btDevice.getUuids(); + ParcelUuid[] uuids = btDevice.getUuids(); if (uuids == null) { return false; } @@ -364,7 +365,7 @@ class PebbleIoThread extends GBDeviceIoThread { mInStream.skip(2); } - GBDeviceEvent deviceEvents[] = mPebbleProtocol.decodeResponse(buffer); + GBDeviceEvent[] deviceEvents = mPebbleProtocol.decodeResponse(buffer); if (deviceEvents == null) { LOG.info("unhandled message to endpoint " + endpoint + " (" + length + " bytes)"); } else { @@ -386,31 +387,9 @@ class PebbleIoThread extends GBDeviceIoThread { if (e.getMessage() != null && (e.getMessage().equals("broken pipe") || e.getMessage().contains("socket closed"))) { //FIXME: this does not feel right LOG.info(e.getMessage()); mIsConnected = false; - int reconnectAttempts = prefs.getInt("pebble_reconnect_attempts", 10); - if (!mQuit && GBApplication.getGBPrefs().getAutoReconnect() && reconnectAttempts > 0) { - gbDevice.setState(GBDevice.State.WAITING_FOR_RECONNECT); - gbDevice.sendDeviceUpdateIntent(getContext()); - - long delaySeconds = 1; - while (reconnectAttempts-- > 0 && !mQuit && !mIsConnected) { - LOG.info("Trying to reconnect (attempts left " + reconnectAttempts + ")"); - mIsConnected = connect(); - if (!mIsConnected) { - try { - Thread.sleep(delaySeconds * 1000); - } catch (InterruptedException ignored) { - } - if (delaySeconds < 64) { - delaySeconds *= 2; - } - } - } - } - if (!mIsConnected) { - mBtSocket = null; - LOG.info("Bluetooth socket closed, will quit IO Thread"); - break; - } + mBtSocket = null; + LOG.info("Bluetooth socket closed, will quit IO Thread"); + break; } } } @@ -426,7 +405,7 @@ class PebbleIoThread extends GBDeviceIoThread { enablePebbleKitSupport(false); - if (mQuit) { + if (mQuit || !GBApplication.getGBPrefs().getAutoReconnect()) { gbDevice.setState(GBDevice.State.NOT_CONNECTED); } else { gbDevice.setState(GBDevice.State.WAITING_FOR_RECONNECT); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/receivers/AutoConnectIntervalReceiver.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/receivers/AutoConnectIntervalReceiver.java index 9de1e78e2..dad443888 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/receivers/AutoConnectIntervalReceiver.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/receivers/AutoConnectIntervalReceiver.java @@ -57,34 +57,39 @@ public class AutoConnectIntervalReceiver extends BroadcastReceiver { if (action == null) { return; } + GBDevice gbDevice = service.getGBDevice(); + if (gbDevice == null) { + return; + } if (action.equals(DeviceManager.ACTION_DEVICES_CHANGED)) { if (gbDevice.isInitialized()) { LOG.info("will reset connection delay, device is initialized!"); mDelay = 4; } + else if (gbDevice.getState() == GBDevice.State.WAITING_FOR_RECONNECT) { + scheduleReconnect(); + } } else if (action.equals("GB_RECONNECT")) { - if (gbDevice != null) { - if (gbDevice.getState() == GBDevice.State.WAITING_FOR_RECONNECT) { - LOG.info("Will re-connect to " + gbDevice.getAddress() + "(" + gbDevice.getName() + ")"); - GBApplication.deviceService().connect(); - } + if (gbDevice.getState() == GBDevice.State.WAITING_FOR_RECONNECT) { + LOG.info("Will re-connect to " + gbDevice.getAddress() + "(" + gbDevice.getName() + ")"); + GBApplication.deviceService().connect(); } } } - public static void scheduleReconnect() { + public void scheduleReconnect() { mDelay*=2; - if (mDelay > 128) { - mDelay = 128; + if (mDelay > 64) { + mDelay = 64; } scheduleReconnect(mDelay); } - public static void scheduleReconnect(int delay) { - LOG.info("schduling reconnect in " + delay + " seconds"); + public void scheduleReconnect(int delay) { + LOG.info("scheduling reconnect in " + delay + " seconds"); AlarmManager am = (AlarmManager) (GBApplication.getContext().getSystemService(Context.ALARM_SERVICE)); Intent intent = new Intent("GB_RECONNECT"); intent.setPackage(BuildConfig.APPLICATION_ID); From e38f50cb0329b262cf940031d53842627db0dadc Mon Sep 17 00:00:00 2001 From: GabO Date: Fri, 15 Nov 2019 13:44:46 +0000 Subject: [PATCH 04/56] Translated using Weblate (Spanish) Currently translated at 100.0% (724 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/es/ --- app/src/main/res/values-es/strings.xml | 44 +++++++++++++++++--------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 3b5005954..b57b657b8 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -108,7 +108,7 @@ Soporte para llamadas salientes Desactivar esto evitará que el Pebble 2/LE vibre en llamadas salientes Permitir el acceso a aplicaciones Android de terceros - habilitar el soporte experimental para aplicaciones Android que usan PebbleKit + Habilitar el soporte experimental para aplicaciones Android que usan PebbleKit Timeline Pebble Salida y puesta de Sol Enviar las horas de salida y puesta de Sol basándose en la localización a la timeline del Pebble @@ -231,7 +231,7 @@ Pasos por minuto Encuentra un dispositivo perdido Cancelar para detener la vibración. - Tu actividad + Actividad y sueño Configurar alarmas Configurar alarmas Detalles de alarma @@ -259,11 +259,11 @@ A %1$s le queda: %2$s%% batería Última carga: %s \n Número de cargas: %s - Tu sueño + Sueño Sueño por semana Sueño hoy, objetivo: %1$s Pasos por semana - Tu actividad y sueño + Actividad Instalando firmware… El archivo no puede ser instalado, el dispositivo no está listo. %1$s: %2$s %3$s @@ -291,7 +291,7 @@ Si los datos no son marcados como descargados, no serán borrados de tu Mi Band. Útil si Gadgetbridge se usa conjuntamente con otras apps. Mantendrá los datos de actividad en la Mi Band incluso después de la sincronización. Útil si GB se usa junto con otras apps. Usa el modo de baja latencia para las instalaciones de firmware - Esto podría ayudar en dispositivos donde las instalaciones de firmware fallan + Esto podría ayudar en dispositivos donde las instalaciones de firmware fallan. Historial de pasos Pasos/min actuales Pasos totales @@ -348,7 +348,7 @@ Ritmo cardíaco Ritmo cardíaco Almacenar datos en bruto en la base de datos - Una vez seleccionado, los datos archivados se guardan en bruto y están disponibles para ser interpretados más tarde. Nota: ¡La base de datos será más grande! + Guarda los datos en bruto para poder ser interpretados más tarde, esto incrementa el tamaño de la base de datos. Administración de bases de datos Administración de bases de datos La base de datos usa la siguiente ubicación en su dispositivo.\nEsta ubicación está accesible para otras aplicaciones Android y para su ordenador.\nEncontrará sus bases de datos exportadas (o la que quiere importar) aquí: @@ -377,7 +377,7 @@ Vibración Emparejando con Pebble - En su dispositivo Android aparecerá un mensaje para emparejar. Si no aparece, mira en el cajón de notificaciones y acepta la propuesta de emparejamiento. Después acepta también en tu Pebble + En su dispositivo Android aparecerá un mensaje para emparejar. Si no aparece, mira en el cajón de notificaciones y acepta la propuesta de emparejamiento. Después acepta también en tu Pebble. Asegúrate de que este tema esté activado en la aplicación de notificación del tiempo para obtener la información en tu Pebble.\n\nNo se requiere configuración.\n\nPuedes activar la aplicación del tiempo del sistema desde la configuración de la app.\n\nLas watchfaces soportadas mostrarán la información del tiempo automáticamente. Activar el emparejamiento Bluetooth Desactiva esto si tienes problemas de conexión @@ -663,15 +663,15 @@ 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á a punto de instalar el «firmware» %s en su Amazfit Cor 2. -\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 + Está a punto de instalar el firmware %s en su Amazfit Cor 2. +\n +\nAsegúrese de instalar el archivo .fw y, a continuación, el archivo .res. La pulsera se reiniciará despues de 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. -\n -\nNO SE HA REALIZADO NINGUNA PRUEBA. QUIZÁ NECESITE INSTALAR UN «FIRMWARE» BEATS_W SI EL NOMBRE DE SU DISPOSITIVO ES «Amazfit Band 2» +\n +\nPROCEDA BAJO SU PROPIO RIESGO. +\n +\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 \nAsegúrese de instalar el archivo .fw y, a continuación, el archivo .res. Se reiniciará la pulsera tras instalar el archivo .fw. @@ -774,4 +774,18 @@ Intervalo de sueño Últimas 24 horas De mediodía a mediodía + Alarma de sueño + Sueño: %1$s + Botón de añadir nuevo dispositivo + Makibes HR3 + Amazfit Bip Lite + Amazfit GTR + Amazfit GTS + Está a punto de instalar el firmware %s en su Amazfit GTS. +\n +\nPor favor, asegúrese de instalar el archivo .fw primero, el archivo .res a continuación y por ultimo el archivo .gps. Su reloj se reiniciara después de instalar el archivo .fw. +\n +\nNota: No hace falta instalar los archivos .res y .gps si los archivos son idénticos a los previamente instalados. +\n +\n¡PROCEDE BAJO TU PROPIO RIESGO! \ No newline at end of file From e5f5a671bd665553fe3e1a952d3c4628a4fcd825 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Thu, 21 Nov 2019 13:24:06 +0100 Subject: [PATCH 05/56] Amazfit Bip: Make vibration after button action work --- .../service/devices/huami/HuamiSupport.java | 23 +++++++++++++++---- .../res/xml/devicesettings_buttonactions.xml | 4 ++-- 2 files changed, 20 insertions(+), 7 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 eca222cbb..a0a6f891d 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 @@ -141,6 +141,7 @@ import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.VI import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.VIBRATION_PROFILE; import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.getNotificationPrefIntValue; import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.getNotificationPrefStringValue; +import static nodomain.freeyourgadget.gadgetbridge.service.btle.GattCharacteristic.UUID_CHARACTERISTIC_ALERT_LEVEL; public class HuamiSupport extends AbstractBTLEDeviceSupport { @@ -706,7 +707,7 @@ public class HuamiSupport extends AbstractBTLEDeviceSupport { protected void onAlarmClock(NotificationSpec notificationSpec) { alarmClockRinging = true; - AbortTransactionAction abortAction = new StopNotificationAction(getCharacteristic(GattCharacteristic.UUID_CHARACTERISTIC_ALERT_LEVEL)) { + AbortTransactionAction abortAction = new StopNotificationAction(getCharacteristic(UUID_CHARACTERISTIC_ALERT_LEVEL)) { @Override protected boolean shouldAbort() { return !isAlarmClockRinging(); @@ -739,7 +740,7 @@ public class HuamiSupport extends AbstractBTLEDeviceSupport { public void onSetCallState(CallSpec callSpec) { if (callSpec.command == CallSpec.CALL_INCOMING) { telephoneRinging = true; - AbortTransactionAction abortAction = new StopNotificationAction(getCharacteristic(GattCharacteristic.UUID_CHARACTERISTIC_ALERT_LEVEL)) { + AbortTransactionAction abortAction = new StopNotificationAction(getCharacteristic(UUID_CHARACTERISTIC_ALERT_LEVEL)) { @Override protected boolean shouldAbort() { return !isTelephoneRinging(); @@ -1083,8 +1084,20 @@ public class HuamiSupport extends AbstractBTLEDeviceSupport { // not supported } - public void runButtonAction() { - Prefs prefs = GBApplication.getPrefs(); + // this could go though onion code with preferrednotification, but I this should work on all huami devices + private void vibrateOnce() { + BluetoothGattCharacteristic characteristic = getCharacteristic(UUID_CHARACTERISTIC_ALERT_LEVEL); + try { + TransactionBuilder builder = performInitialized("Vibrate once"); + builder.write(characteristic,new byte[] {3}); + builder.queue(getQueue()); + } catch (IOException e) { + LOG.error("error while sending simple vibrate command", e); + } + } + + private void runButtonAction() { + Prefs prefs = new Prefs(GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress())); if (currentButtonTimerActivationTime != currentButtonPressTime) { return; @@ -1099,7 +1112,7 @@ public class HuamiSupport extends AbstractBTLEDeviceSupport { LOG.info("Sending " + requiredButtonPressMessage + " with button_id " + currentButtonActionId); this.getContext().getApplicationContext().sendBroadcast(in); if (prefs.getBoolean(HuamiConst.PREF_BUTTON_ACTION_VIBRATE, false)) { - performPreferredNotification(null, null, null, HuamiService.ALERT_LEVEL_VIBRATE_ONLY, null); + vibrateOnce(); } currentButtonActionId = 0; diff --git a/app/src/main/res/xml/devicesettings_buttonactions.xml b/app/src/main/res/xml/devicesettings_buttonactions.xml index 14083cd18..224b483c7 100644 --- a/app/src/main/res/xml/devicesettings_buttonactions.xml +++ b/app/src/main/res/xml/devicesettings_buttonactions.xml @@ -11,13 +11,13 @@ public static final String PREF_BUTTON_ACTION_PRESS_DELAY = "button_action_press_count_delay"; - - Date: Fri, 22 Nov 2019 08:22:54 +0100 Subject: [PATCH 06/56] remove miband2 ism --- app/src/main/res/values-es/strings.xml | 1 - app/src/main/res/values-fr/strings.xml | 1 - app/src/main/res/values-ja/strings.xml | 1 - app/src/main/res/values/strings.xml | 4 ++-- 4 files changed, 2 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index b57b657b8..a0c57826a 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -418,7 +418,6 @@ Número de presiones para activar el envío del mensaje Mensaje para enviar Enviar mensaje después de un número definido de pulsaciones - nodomain.freeyourgadget.gadgetbridge.mibandButtonPressed Activar acción por botón Activar acción por un número definido de pulsaciones Activar la vibración de la pulsera diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 4d2b2b2f1..a42efb71e 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -418,7 +418,6 @@ Temps de sommeil préféré en heures Nombre de pressions pour envoyer message Message à envoyer Envoyer message après nombre défini de pressions du bouton - nodomain.freeyourgadget.gadgetbridge.mibandButtonPressed Activer action du bouton Activer action après nombre spécifié de pressions Activer la vibration du bracelet diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 12c03b33e..35265cea3 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -415,7 +415,6 @@ ブロードキャスト メッセージをトリガーするボタンを押した数 送信するブロードキャスト メッセージ ボタンを押した数で定義された数に達したブロードキャスト メッセージ - nodomain.freeyourgadget.gadgetbridge.mibandButtonPressed ボタンの動作を有効にする 指定したボタンを押した数の動作を有効にします band の振動を有効にする diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3bf44bbcc..7cef45a72 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -458,12 +458,12 @@ Disconnect notification Button actions - Specify actions on Mi Band 2 button press + Specify actions button press Button press count Number of button presses to trigger message broadcast Broadcast message to send Broadcast message on defined number of button presses reached - nodomain.freeyourgadget.gadgetbridge.mibandButtonPressed + nodomain.freeyourgadget.gadgetbridge.ButtonPressed Enable button action Enable action on specified number of button presses Enable band vibration From 8e5c4b460203ee96bfd150e4b7793757e090a4b2 Mon Sep 17 00:00:00 2001 From: FYG_license_bot_ignore_me Date: Sat, 23 Nov 2019 21:52:46 +0100 Subject: [PATCH 07/56] Update license headers --- .../freeyourgadget/gadgetbridge/Widget.java | 2 +- .../gadgetbridge/activities/ControlCenterv2.java | 2 +- .../activities/DbManagementActivity.java | 2 +- .../gadgetbridge/activities/DebugActivity.java | 2 +- .../activities/FindPhoneActivity.java | 4 ++-- .../activities/SettingsActivity.java | 2 +- .../activities/WidgetAlarmsActivity.java | 16 ++++++++++++++++ .../activities/charts/AbstractChartFragment.java | 2 +- .../charts/AbstractWeekChartFragment.java | 2 +- .../activities/charts/ActivityAnalysis.java | 2 +- .../charts/AngledLabelsChartRenderer.java | 16 ++++++++++++++++ .../activities/charts/ChartsActivity.java | 2 +- .../activities/charts/ChartsHost.java | 2 +- .../charts/ChartsPreferencesActivity.java | 4 ++-- .../activities/charts/LiveActivityFragment.java | 4 ++-- .../activities/charts/SleepAnalysis.java | 16 ++++++++++++++++ .../activities/charts/SleepChartFragment.java | 2 +- .../charts/TimestampValueFormatter.java | 2 +- .../charts/WeekSleepChartFragment.java | 3 ++- .../charts/WeekStepsChartFragment.java | 2 +- .../devicesettings/DeviceSettingsActivity.java | 3 +-- .../DeviceSettingsPreferenceConst.java | 16 ++++++++++++++++ .../DeviceSpecificSettingsFragment.java | 16 ++++++++++++++++ .../deviceevents/GBDeviceEventCallControl.java | 2 +- .../devices/AbstractDeviceCoordinator.java | 2 +- .../gadgetbridge/devices/DeviceCoordinator.java | 2 +- .../gadgetbridge/devices/huami/HuamiConst.java | 2 +- .../devices/huami/HuamiCoordinator.java | 2 +- .../huami/amazfitbip/AmazfitBipCoordinator.java | 2 +- .../amazfitbip/AmazfitBipLiteCoordinator.java | 4 ++-- .../huami/amazfitgtr/AmazfitGTRCoordinator.java | 4 ++-- .../huami/amazfitgts/AmazfitGTSCoordinator.java | 16 ++++++++++++++++ .../huami/miband4/MiBand4Coordinator.java | 3 ++- .../devices/id115/ID115Constants.java | 2 +- .../devices/jyou/BFH16DeviceCoordinator.java | 2 +- .../devices/makibeshr3/MakibesHR3Constants.java | 3 +-- .../makibeshr3/MakibesHR3Coordinator.java | 3 ++- .../makibeshr3/MakibesHR3SampleProvider.java | 2 +- .../mijia_lywsd02/MijiaLywsd02Coordinator.java | 3 ++- .../devices/zetime/ZeTimeConstants.java | 2 +- .../devices/zetime/ZeTimePreferenceActivity.java | 2 +- .../externalevents/LineageOsWeatherReceiver.java | 2 +- .../externalevents/PhoneCallReceiver.java | 4 ++-- .../gadgetbridge/impl/GBDevice.java | 4 ++-- .../gadgetbridge/impl/GBDeviceService.java | 7 ++++--- .../gadgetbridge/model/AppNotificationType.java | 4 ++-- .../gadgetbridge/model/DailyTotals.java | 2 +- .../gadgetbridge/model/DeviceType.java | 6 +++--- .../service/AbstractDeviceSupport.java | 4 ++-- .../service/DeviceCommunicationService.java | 10 +++++----- .../service/DeviceSupportFactory.java | 7 ++++--- .../gadgetbridge/service/btle/BtLEQueue.java | 2 +- .../casiogb6900/operations/InitOperation.java | 2 +- .../huami/amazfitbip/AmazfitBipFirmwareInfo.java | 2 +- .../amazfitbip/AmazfitBipLiteFirmwareInfo.java | 2 +- .../huami/amazfitbip/AmazfitBipLiteSupport.java | 3 +-- .../huami/amazfitbip/AmazfitBipSupport.java | 4 ++-- .../huami/amazfitgtr/AmazfitGTRFirmwareInfo.java | 2 +- .../huami/amazfitgtr/AmazfitGTRSupport.java | 3 +-- .../huami/amazfitgts/AmazfitGTSFirmwareInfo.java | 2 +- .../huami/amazfitgts/AmazfitGTSSupport.java | 16 ++++++++++++++++ .../huami/miband4/MiBand4FirmwareInfo.java | 2 +- .../devices/huami/miband4/MiBand4Support.java | 2 +- .../huami/operations/AbstractFetchOperation.java | 2 +- .../operations/UpdateFirmwareOperationNew.java | 3 +-- .../makibeshr3/MakibesHR3DeviceSupport.java | 16 ++++++++++++++++ .../mijia_lywsd02/MijiaLywsd02Support.java | 3 ++- .../devices/pebble/AppMessageHandlerM7S.java | 3 ++- .../pebble/AppMessageHandlerRealWeather.java | 2 +- .../pebble/AppMessageHandlerSimplyLight.java | 2 +- .../pebble/AppMessageHandlerYWeather.java | 2 +- .../devices/pebble/PebbleActiveAppTracker.java | 16 ++++++++++++++++ .../service/devices/pebble/PebbleIoThread.java | 2 +- .../service/devices/pebble/PebbleKitSupport.java | 2 +- .../service/devices/pebble/PebbleProtocol.java | 2 +- .../gadgetbridge/util/AndroidUtils.java | 2 +- .../gadgetbridge/util/CheckSums.java | 2 +- .../gadgetbridge/util/DeviceHelper.java | 6 +++--- .../freeyourgadget/gadgetbridge/util/GB.java | 4 ++-- .../util/ImportExportSharedPreferences.java | 4 ++-- .../gadgetbridge/util/StringUtils.java | 4 ++-- .../gadgetbridge/util/XTimePreference.java | 2 +- .../util/XTimePreferenceFragment.java | 2 +- 83 files changed, 251 insertions(+), 104 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/Widget.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/Widget.java index bed0d9a3f..b1f7e47ec 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/Widget.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/Widget.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2016-2019 0nse, Andreas Shimokawa, Carsten Pfeiffer +/* Copyright (C) 2019 Andreas Shimokawa, vanous This file is part of Gadgetbridge. 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 a9a0fd3be..6989dffd7 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenterv2.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenterv2.java @@ -1,5 +1,5 @@ /* Copyright (C) 2016-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele - Gobbetti, Johannes Tysiak, Taavi Eomäe + Gobbetti, Johannes Tysiak, Taavi Eomäe, vanous This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DbManagementActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DbManagementActivity.java index 2f404d3ba..65005aab4 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DbManagementActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DbManagementActivity.java @@ -1,5 +1,5 @@ /* Copyright (C) 2016-2019 Alberto, Andreas Shimokawa, Carsten Pfeiffer, - Daniele Gobbetti + Daniele Gobbetti, vanous This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DebugActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DebugActivity.java index 27579aa94..603816832 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DebugActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DebugActivity.java @@ -1,6 +1,6 @@ /* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele Gobbetti, Frank Slezak, ivanovlev, Kasha, Lem Dulfo, Pavel Elagin, Steffen - Liebergeld + Liebergeld, vanous This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/FindPhoneActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/FindPhoneActivity.java index cb2a69d6e..0c74ff16c 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/FindPhoneActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/FindPhoneActivity.java @@ -1,5 +1,5 @@ -/* Copyright (C) 2018-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele - Gobbetti +/* Copyright (C) 2018-2019 Andreas Shimokawa, Carsten Pfeiffer, Cre3per, + Daniele Gobbetti This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/SettingsActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/SettingsActivity.java index 25fff1030..12f8d2b15 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/SettingsActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/SettingsActivity.java @@ -1,6 +1,6 @@ /* Copyright (C) 2015-2019 0nse, Andreas Shimokawa, Carsten Pfeiffer, Daniele Gobbetti, Felix Konstantin Maurer, José Rebelo, Martin, Normano64, - Pavel Elagin, Sebastian Kranz + Pavel Elagin, Sebastian Kranz, vanous This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/WidgetAlarmsActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/WidgetAlarmsActivity.java index b7b54a13e..359115bb3 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/WidgetAlarmsActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/WidgetAlarmsActivity.java @@ -1,3 +1,19 @@ +/* Copyright (C) 2019 vanous + + 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.activities; import android.app.Activity; 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 57a86f212..8ff2df1f7 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 @@ -1,5 +1,5 @@ /* Copyright (C) 2015-2019 0nse, Andreas Shimokawa, Carsten Pfeiffer, - Daniele Gobbetti, Dikay900, Pavel Elagin, walkjivefly + Daniele Gobbetti, Dikay900, Pavel Elagin, vanous, walkjivefly This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractWeekChartFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractWeekChartFragment.java index 8dcbaed2e..677f49d4e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractWeekChartFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractWeekChartFragment.java @@ -1,5 +1,5 @@ /* Copyright (C) 2015-2019 0nse, Alberto, Andreas Shimokawa, Carsten Pfeiffer, - Daniele Gobbetti, Pavel Elagin + Daniele Gobbetti, Pavel Elagin, vanous This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ActivityAnalysis.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ActivityAnalysis.java index 25e7d342e..cac13a2d3 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ActivityAnalysis.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ActivityAnalysis.java @@ -1,5 +1,5 @@ /* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele - Gobbetti, Pavel Elagin, Vebryn + Gobbetti, Pavel Elagin, vanous, Vebryn This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AngledLabelsChartRenderer.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AngledLabelsChartRenderer.java index 286d484c0..c6fa3e42d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AngledLabelsChartRenderer.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AngledLabelsChartRenderer.java @@ -1,3 +1,19 @@ +/* Copyright (C) 2019 Andreas Shimokawa, vanous + + 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.activities.charts; import android.graphics.Canvas; 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 68fa9eda4..4c1a89090 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 @@ -1,5 +1,5 @@ /* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele - Gobbetti, Vebryn + Gobbetti, vanous, Vebryn This file is part of Gadgetbridge. 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 566dfec05..614bc907a 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 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer +/* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer, vanous This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsPreferencesActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsPreferencesActivity.java index b3cfc7505..d4383ea2e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsPreferencesActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsPreferencesActivity.java @@ -1,5 +1,5 @@ -/* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer, Christian - Fischer, Daniele Gobbetti, José Rebelo, Szymon Tomasz Stefanek +/* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer, Lem Dulfo, + vanous This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/LiveActivityFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/LiveActivityFragment.java index bdb095c2a..a956ad73b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/LiveActivityFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/LiveActivityFragment.java @@ -1,5 +1,5 @@ -/* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele - Gobbetti, Dikay900, Pavel, Pavel Elagin +/* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer, Cre3per, + Daniele Gobbetti, Dikay900, Pavel, Pavel Elagin This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SleepAnalysis.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SleepAnalysis.java index eec9d664a..bc32f127b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SleepAnalysis.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SleepAnalysis.java @@ -1,3 +1,19 @@ +/* Copyright (C) 2019 Q-er + + 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.activities.charts; import java.util.ArrayList; 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 b8c24d649..abe5de407 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 @@ -1,5 +1,5 @@ /* Copyright (C) 2015-2019 0nse, Andreas Shimokawa, Carsten Pfeiffer, - Daniele Gobbetti, Dikay900, Pavel Elagin + Daniele Gobbetti, Dikay900, Pavel Elagin, Q-er, vanous This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/TimestampValueFormatter.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/TimestampValueFormatter.java index a79af0781..7a89b872f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/TimestampValueFormatter.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/TimestampValueFormatter.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2016-2019 Carsten Pfeiffer +/* Copyright (C) 2016-2019 Andreas Shimokawa, Carsten Pfeiffer This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/WeekSleepChartFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/WeekSleepChartFragment.java index 62018cd18..362863f91 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/WeekSleepChartFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/WeekSleepChartFragment.java @@ -1,4 +1,5 @@ -/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer, Pavel Elagin +/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer, Pavel + Elagin, vanous This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/WeekStepsChartFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/WeekStepsChartFragment.java index ec720a6da..ee4e9f685 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/WeekStepsChartFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/WeekStepsChartFragment.java @@ -1,5 +1,5 @@ /* Copyright (C) 2015-2019 0nse, Andreas Shimokawa, Carsten Pfeiffer, - Daniele Gobbetti, Pavel Elagin + Daniele Gobbetti, Pavel Elagin, vanous This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsActivity.java index 8b2e2ca93..62792d47d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsActivity.java @@ -1,5 +1,4 @@ -/* Copyright (C) 2018-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele - Gobbetti +/* Copyright (C) 2019 Andreas Shimokawa This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsPreferenceConst.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsPreferenceConst.java index e1f22d366..2990f827e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsPreferenceConst.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsPreferenceConst.java @@ -1,3 +1,19 @@ +/* Copyright (C) 2019 Andreas Shimokawa + + 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.activities.devicesettings; public class DeviceSettingsPreferenceConst { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsFragment.java index f5c04e7cd..2fae9fa98 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsFragment.java @@ -1,3 +1,19 @@ +/* Copyright (C) 2019 Andreas Shimokawa, Cre3per + + 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.activities.devicesettings; import android.os.Bundle; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/deviceevents/GBDeviceEventCallControl.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/deviceevents/GBDeviceEventCallControl.java index e41887d2f..f71735002 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/deviceevents/GBDeviceEventCallControl.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/deviceevents/GBDeviceEventCallControl.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2019 Andreas Shimokawa +/* Copyright (C) 2015-2019 Andreas Böhler, Andreas Shimokawa This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinator.java index 46bd46344..6c87c43cc 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinator.java @@ -1,5 +1,5 @@ /* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele - Gobbetti, José Rebelo, Matthieu Baerts + Gobbetti, José Rebelo, Matthieu Baerts, Nephiel, vanous This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/DeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/DeviceCoordinator.java index 567fa5b8d..9c39aceea 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/DeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/DeviceCoordinator.java @@ -1,5 +1,5 @@ /* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele - Gobbetti, JohnnySun, José Rebelo, Matthieu Baerts, Uwe Hermann + Gobbetti, JohnnySun, José Rebelo, Matthieu Baerts, Nephiel, Uwe Hermann This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiConst.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiConst.java index ada18bb2d..cd9bb4fce 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiConst.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiConst.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer +/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer, Nephiel This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiCoordinator.java index 2ec92bdf7..9f35baa1e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiCoordinator.java @@ -1,5 +1,5 @@ /* Copyright (C) 2016-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele - Gobbetti, José Rebelo + Gobbetti, José Rebelo, Nephiel This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipCoordinator.java index 1b28bb5e6..a172fb72f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/amazfitbip/AmazfitBipCoordinator.java @@ -1,5 +1,5 @@ /* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele - Gobbetti, João Paulo Barraca + Gobbetti, João Paulo Barraca, Nephiel This file is part of Gadgetbridge. 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 7a252c054..d5b6878ac 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 @@ -1,5 +1,5 @@ -/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele - Gobbetti, João Paulo Barraca +/* Copyright (C) 2017-2019 Andreas Shimokawa, Daniele Gobbetti, João + Paulo Barraca, José Rebelo, tiparega This file is part of Gadgetbridge. 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 352353451..f58f66dd0 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 @@ -1,5 +1,5 @@ -/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele - Gobbetti, João Paulo Barraca +/* Copyright (C) 2017-2019 Andreas Shimokawa, Daniele Gobbetti, João + Paulo Barraca, José Rebelo, tiparega This file is part of Gadgetbridge. 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 cd13cbc87..1d14079c0 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 @@ -1,3 +1,19 @@ +/* Copyright (C) 2019 Andreas Shimokawa, Manuel Ruß + + 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.bluetooth.BluetoothDevice; 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 b21acc66a..c6cf1dab4 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 @@ -1,4 +1,5 @@ -/* Copyright (C) 2016-2019 Andreas Shimokawa +/* Copyright (C) 2016-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele + Gobbetti, HardLight, José Rebelo This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/id115/ID115Constants.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/id115/ID115Constants.java index 7c822a986..40ec2ad7e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/id115/ID115Constants.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/id115/ID115Constants.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2019 Vadim Kaushan +/* Copyright (C) 2018-2019 Andreas Shimokawa, Vadim Kaushan This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/jyou/BFH16DeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/jyou/BFH16DeviceCoordinator.java index dd90e41a4..44bc84a6e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/jyou/BFH16DeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/jyou/BFH16DeviceCoordinator.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2019 Sophanimus +/* Copyright (C) 2019 Andreas Shimokawa, Sophanimus This file is part of Gadgetbridge. 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 ef022af65..5a7440c50 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 @@ -1,5 +1,4 @@ -/* Copyright (C) 2016-2019 Andreas Shimokawa, Carsten Pfeiffer, João - Paulo Barraca +/* Copyright (C) 2019 Andreas Shimokawa, Cre3per This file is part of Gadgetbridge. 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 ca023bc5c..9702b869b 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 @@ -1,4 +1,5 @@ -/* Copyright (C) 2017-2019 Daniele Gobbetti, João Paulo Barraca, tiparega +/* Copyright (C) 2016-2019 Andreas Shimokawa, Carsten Pfeiffer, Cre3per, + Daniele Gobbetti, José Rebelo, Petr Kadlec, protomors This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/makibeshr3/MakibesHR3SampleProvider.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/makibeshr3/MakibesHR3SampleProvider.java index fd6f4ee01..07149d188 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/makibeshr3/MakibesHR3SampleProvider.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/makibeshr3/MakibesHR3SampleProvider.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2019 Daniele Gobbetti, Sebastian Kranz +/* Copyright (C) 2018-2019 Cre3per, Daniele Gobbetti, Sebastian Kranz This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/mijia_lywsd02/MijiaLywsd02Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/mijia_lywsd02/MijiaLywsd02Coordinator.java index 76e05fdba..1cf808534 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/mijia_lywsd02/MijiaLywsd02Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/mijia_lywsd02/MijiaLywsd02Coordinator.java @@ -1,4 +1,5 @@ -/* Copyright (C) 2019 Andreas Shimokawa +/* Copyright (C) 2016-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele + Gobbetti, José Rebelo This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimeConstants.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimeConstants.java index c1dacc406..deaf63063 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimeConstants.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimeConstants.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2019 Kranz, Sebastian Kranz +/* Copyright (C) 2018-2019 Andreas Shimokawa, Kranz, Sebastian Kranz This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimePreferenceActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimePreferenceActivity.java index e1128f297..15dbe81c2 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimePreferenceActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimePreferenceActivity.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2019 Sebastian Kranz +/* Copyright (C) 2018-2019 Andreas Shimokawa, Sebastian Kranz This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/LineageOsWeatherReceiver.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/LineageOsWeatherReceiver.java index b42bde56b..d687670ac 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/LineageOsWeatherReceiver.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/LineageOsWeatherReceiver.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2019 Andreas Shimokawa +/* Copyright (C) 2017-2019 Andreas Shimokawa, keeshii This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/PhoneCallReceiver.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/PhoneCallReceiver.java index e1d098bf0..e98189e5b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/PhoneCallReceiver.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/PhoneCallReceiver.java @@ -1,5 +1,5 @@ -/* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele - Gobbetti, Johannes Tysiak, Normano64 +/* Copyright (C) 2015-2019 Andreas Böhler, Andreas Shimokawa, Carsten + Pfeiffer, Daniele Gobbetti, Johannes Tysiak, Normano64 This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/impl/GBDevice.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/impl/GBDevice.java index 91dc04257..f2b04ce36 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/impl/GBDevice.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/impl/GBDevice.java @@ -1,5 +1,5 @@ -/* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele - Gobbetti, José Rebelo, Taavi Eomäe, Uwe Hermann +/* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniel + Dakhno, Daniele Gobbetti, José Rebelo, Taavi Eomäe, Uwe Hermann This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/impl/GBDeviceService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/impl/GBDeviceService.java index 35a8fa86e..e10b9aef5 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/impl/GBDeviceService.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/impl/GBDeviceService.java @@ -1,6 +1,7 @@ -/* Copyright (C) 2015-2019 Alberto, Andreas Shimokawa, Carsten Pfeiffer, - criogenic, dakhnod, Daniele Gobbetti, Frank Slezak, ivanovlev, José Rebelo, - Julien Pivotto, Kasha, Roi Greenberg, Sebastian Kranz, Steffen Liebergeld +/* Copyright (C) 2015-2019 Alberto, Andreas Böhler, Andreas Shimokawa, + Carsten Pfeiffer, criogenic, dakhnod, Daniele Gobbetti, Frank Slezak, + ivanovlev, José Rebelo, Julien Pivotto, Kasha, Roi Greenberg, Sebastian + Kranz, Steffen Liebergeld This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/AppNotificationType.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/AppNotificationType.java index 2aff0bb14..8859c8bb8 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/AppNotificationType.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/AppNotificationType.java @@ -1,6 +1,6 @@ /* Copyright (C) 2016-2019 Andreas Shimokawa, AnthonyDiGirolamo, Daniele - Gobbetti, Frank Slezak, Kaz Wolfe, Kevin Richter, Lukas Veneziano, Matthieu - Baerts, michaelneu, NotAFIle, Tomas Radej + Gobbetti, Frank Slezak, Kaz Wolfe, Kevin Richter, Lukas Veneziano, Marvin D, + Matthieu Baerts, michaelneu, NotAFIle, Tomas Radej This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DailyTotals.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DailyTotals.java index 703e64736..8c7fbd0ca 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DailyTotals.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DailyTotals.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2019 Carsten Pfeiffer, Daniele Gobbetti +/* Copyright (C) 2019 Andreas Shimokawa, vanous This file is part of Gadgetbridge. 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 ca86228de..1a5a95ff9 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java @@ -1,7 +1,7 @@ /* Copyright (C) 2015-2019 Andreas Böhler, Andreas Shimokawa, Carsten - Pfeiffer, Daniele Gobbetti, Jean-François Greffier, João Paulo Barraca, - José Rebelo, Kranz, ladbsoft, maxirnilian, protomors, Quallenauge, Sami - Alaoui, Sebastian Kranz, Sophanimus, tiparega, Vadim Kaushan + Pfeiffer, Cre3per, Daniele Gobbetti, Jean-François Greffier, João Paulo + Barraca, José Rebelo, Kranz, ladbsoft, Manuel Ruß, maxirnilian, protomors, + Quallenauge, Sami Alaoui, Sebastian Kranz, Sophanimus, tiparega, Vadim Kaushan This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/AbstractDeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/AbstractDeviceSupport.java index 2bdf62878..c2a822731 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/AbstractDeviceSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/AbstractDeviceSupport.java @@ -1,5 +1,5 @@ -/* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele - Gobbetti, José Rebelo, Sebastian Kranz, Taavi Eomäe +/* Copyright (C) 2015-2019 Andreas Böhler, Andreas Shimokawa, Carsten + Pfeiffer, Daniele Gobbetti, José Rebelo, Sebastian Kranz, Taavi Eomäe This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceCommunicationService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceCommunicationService.java index 1fd696893..dff7fd412 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceCommunicationService.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceCommunicationService.java @@ -1,8 +1,8 @@ -/* Copyright (C) 2015-2019 Andreas Shimokawa, Avamander, Carsten Pfeiffer, - dakhnod, Daniele Gobbetti, Daniel Hauck, Dikay900, Frank Slezak, ivanovlev, - João Paulo Barraca, José Rebelo, Julien Pivotto, Kasha, Martin, Matthieu - Baerts, Sebastian Kranz, Sergey Trofimov, Steffen Liebergeld, Taavi Eomäe, - Uwe Hermann +/* Copyright (C) 2015-2019 Andreas Böhler, Andreas Shimokawa, Avamander, + Carsten Pfeiffer, dakhnod, Daniele Gobbetti, Daniel Hauck, Dikay900, Frank + Slezak, ivanovlev, João Paulo Barraca, José Rebelo, Julien Pivotto, Kasha, + keeshii, Martin, Matthieu Baerts, Nephiel, Sebastian Kranz, Sergey Trofimov, + Steffen Liebergeld, Taavi Eomäe, Uwe Hermann This file is part of Gadgetbridge. 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 f6514719f..88068bb67 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceSupportFactory.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceSupportFactory.java @@ -1,7 +1,8 @@ /* Copyright (C) 2015-2019 0nse, Andreas Böhler, Andreas Shimokawa, Carsten - Pfeiffer, criogenic, Daniele Gobbetti, Jean-François Greffier, João Paulo - Barraca, José Rebelo, Kranz, ladbsoft, maxirnilian, protomors, Quallenauge, - Sami Alaoui, Sergey Trofimov, Sophanimus, tiparega, Vadim Kaushan + Pfeiffer, Cre3per, criogenic, Daniele Gobbetti, Jean-François Greffier, + João Paulo Barraca, José Rebelo, Kranz, ladbsoft, Manuel Ruß, maxirnilian, + protomors, Quallenauge, Sami Alaoui, Sergey Trofimov, Sophanimus, tiparega, + Vadim Kaushan This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java index 03d0d7488..5397887e7 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java @@ -1,5 +1,5 @@ /* Copyright (C) 2015-2019 Andreas Böhler, Andreas Shimokawa, Carsten - Pfeiffer, Daniele Gobbetti, Sergey Trofimov, Uwe Hermann + Pfeiffer, Cre3per, Daniele Gobbetti, Sergey Trofimov, Uwe Hermann This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/casiogb6900/operations/InitOperation.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/casiogb6900/operations/InitOperation.java index 0bfb2c9d0..749d05d77 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/casiogb6900/operations/InitOperation.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/casiogb6900/operations/InitOperation.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2016-2018 Andreas Böhler +/* Copyright (C) 2019 Andreas Böhler This file is part of Gadgetbridge. 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 916bf5034..e5936c52f 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 @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer +/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer, MyTimeKill This file is part of Gadgetbridge. 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 index f567362f4..6f90a605f 100644 --- 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 @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer +/* Copyright (C) 2017-2019 Andreas Shimokawa, Daniele Gobbetti This file is part of Gadgetbridge. 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 339e9317d..8d93e29ff 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 @@ -1,5 +1,4 @@ -/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer, Matthieu - Baerts, Roi Greenberg +/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer This file is part of Gadgetbridge. 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 2fa1329c2..1e1b81d15 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 @@ -1,5 +1,5 @@ -/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer, Matthieu - Baerts, Roi Greenberg +/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer, DerFetzer, + Matthieu Baerts, Roi Greenberg This file is part of Gadgetbridge. 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 4c15f6b9e..e33875519 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 @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer +/* Copyright (C) 2017-2019 Andreas Shimokawa, Daniele Gobbetti This file is part of Gadgetbridge. 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 791776c84..41144fe87 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 @@ -1,5 +1,4 @@ -/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer, Matthieu - Baerts, Roi Greenberg +/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer This file is part of Gadgetbridge. 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 index d61e3bec0..f24809de4 100644 --- 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 @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer +/* Copyright (C) 2017-2019 Andreas Shimokawa, Daniele Gobbetti This file is part of Gadgetbridge. 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 bc7fb2dfa..0ce90e425 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,3 +1,19 @@ +/* Copyright (C) 2019 Andreas Shimokawa, Manuel Ruß + + 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 android.content.Context; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/miband4/MiBand4FirmwareInfo.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/miband4/MiBand4FirmwareInfo.java index 15d5a4790..c27c3e7dc 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/miband4/MiBand4FirmwareInfo.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/miband4/MiBand4FirmwareInfo.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer +/* Copyright (C) 2017-2019 Andreas Shimokawa, Daniele Gobbetti This file is part of Gadgetbridge. 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 a19185050..9b101ed87 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 @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2019 Andreas Shimokawa +/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/operations/AbstractFetchOperation.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/operations/AbstractFetchOperation.java index 915db7cd7..89b2b51bd 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/operations/AbstractFetchOperation.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/operations/AbstractFetchOperation.java @@ -1,5 +1,5 @@ /* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele - Gobbetti + Gobbetti, vanous This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/operations/UpdateFirmwareOperationNew.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/operations/UpdateFirmwareOperationNew.java index e2991366c..a13e04348 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/operations/UpdateFirmwareOperationNew.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/operations/UpdateFirmwareOperationNew.java @@ -1,5 +1,4 @@ -/* Copyright (C) 2016-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele - Gobbetti +/* Copyright (C) 2019 Andreas Shimokawa This file is part of Gadgetbridge. 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 cb78d9629..f3395e406 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,3 +1,19 @@ +/* Copyright (C) 2019 Andreas Shimokawa, Cre3per + + 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 . */ // 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 diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/mijia_lywsd02/MijiaLywsd02Support.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/mijia_lywsd02/MijiaLywsd02Support.java index bc8dc318f..c40a1e16b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/mijia_lywsd02/MijiaLywsd02Support.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/mijia_lywsd02/MijiaLywsd02Support.java @@ -1,4 +1,5 @@ -/* Copyright (C) 2019 Andreas Shimokawa +/* Copyright (C) 2016-2019 Andreas Shimokawa, Carsten Pfeiffer, Sebastian + Kranz This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerM7S.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerM7S.java index d0e5e2f97..5bd37ae34 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerM7S.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerM7S.java @@ -1,4 +1,5 @@ -/* Copyright (C) 2018-2019 jcrode, Johann C. Rode, Sergio Lopez +/* Copyright (C) 2018-2019 Carsten Pfeiffer, jcrode, Johann C. Rode, + Sergio Lopez This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerRealWeather.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerRealWeather.java index 09c332adb..365c756ba 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerRealWeather.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerRealWeather.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2019 Johann C. Rode, Sergio Lopez +/* Copyright (C) 2018-2019 Carsten Pfeiffer, Johann C. Rode, Sergio Lopez This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerSimplyLight.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerSimplyLight.java index 77ca74b76..7b8c89a43 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerSimplyLight.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerSimplyLight.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2019 Sergio Lopez +/* Copyright (C) 2018-2019 Carsten Pfeiffer, Sergio Lopez This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerYWeather.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerYWeather.java index 21d0ecbbd..297e4830f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerYWeather.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerYWeather.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2019 Johann C. Rode +/* Copyright (C) 2018-2019 Carsten Pfeiffer, Johann C. Rode This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleActiveAppTracker.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleActiveAppTracker.java index 2f8f2ce7a..fc7c30e69 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleActiveAppTracker.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleActiveAppTracker.java @@ -1,3 +1,19 @@ +/* Copyright (C) 2019 Matej Drobnič + + 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.pebble; import androidx.annotation.NonNull; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleIoThread.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleIoThread.java index ec6fc8052..e137d2337 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleIoThread.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleIoThread.java @@ -1,5 +1,5 @@ /* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele - Gobbetti, Julien Pivotto, Uwe Hermann + Gobbetti, Julien Pivotto, Matej Drobnič, Uwe Hermann This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleKitSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleKitSupport.java index 1e2a918b8..bb2ebd326 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleKitSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleKitSupport.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2019 Andreas Shimokawa +/* Copyright (C) 2017-2019 Andreas Shimokawa, Matej Drobnič This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleProtocol.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleProtocol.java index 1a856443e..40b702071 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleProtocol.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleProtocol.java @@ -1,6 +1,6 @@ /* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele Gobbetti, Frank Slezak, jcrode, Johann C. Rode, Julien Pivotto, Kevin Richter, - Sergio Lopez, Steffen Liebergeld, Uwe Hermann + Matej Drobnič, Sergio Lopez, Steffen Liebergeld, Uwe Hermann This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/AndroidUtils.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/AndroidUtils.java index 248743901..a4b4ae49a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/AndroidUtils.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/AndroidUtils.java @@ -1,5 +1,5 @@ /* Copyright (C) 2016-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele - Gobbetti, Felix Konstantin Maurer, Taavi Eomäe + Gobbetti, Felix Konstantin Maurer, Marc Nause, Taavi Eomäe, vanous This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/CheckSums.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/CheckSums.java index f33ef49a5..26b0b7a86 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/CheckSums.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/CheckSums.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2019 Carsten Pfeiffer +/* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer This file is part of Gadgetbridge. 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 696242041..1a7b77193 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DeviceHelper.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DeviceHelper.java @@ -1,7 +1,7 @@ /* Copyright (C) 2015-2019 0nse, Andreas Böhler, Andreas Shimokawa, Carsten - Pfeiffer, Daniele Gobbetti, Jean-François Greffier, João Paulo Barraca, - José Rebelo, Kranz, ladbsoft, maxirnilian, protomors, Quallenauge, Sami - Alaoui, Sophanimus, tiparega, Vadim Kaushan + Pfeiffer, Cre3per, Daniele Gobbetti, Jean-François Greffier, João Paulo + Barraca, José Rebelo, Kranz, ladbsoft, Manuel Ruß, maxirnilian, protomors, + Quallenauge, Sami Alaoui, Sophanimus, tiparega, Vadim Kaushan This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/GB.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/GB.java index f61d97da7..1c8238f68 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/GB.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/GB.java @@ -1,5 +1,5 @@ -/* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele - Gobbetti, Felix Konstantin Maurer, Taavi Eomäe, Uwe Hermann, Yar +/* Copyright (C) 2015-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniel Dakhno, + Daniele Gobbetti, Felix Konstantin Maurer, Taavi Eomäe, Uwe Hermann, Yar This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/ImportExportSharedPreferences.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/ImportExportSharedPreferences.java index 8b4490ef9..3156eafb4 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/ImportExportSharedPreferences.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/ImportExportSharedPreferences.java @@ -1,5 +1,5 @@ -/* Copyright (C) 2017-2019 Alberto, Carsten Pfeiffer, Daniele Gobbetti, - Taavi Eomäe +/* Copyright (C) 2017-2019 Alberto, Andreas Shimokawa, Carsten Pfeiffer, + Daniele Gobbetti, Taavi Eomäe This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/StringUtils.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/StringUtils.java index 007853deb..00a287f91 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/StringUtils.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/StringUtils.java @@ -1,5 +1,5 @@ -/* Copyright (C) 2017-2019 Carsten Pfeiffer, Daniele Gobbetti, João Paulo - Barraca, Roi Greenberg +/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer, Daniele + Gobbetti, João Paulo Barraca, Nephiel, Roi Greenberg This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/XTimePreference.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/XTimePreference.java index 29b56a700..e1bebb771 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/XTimePreference.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/XTimePreference.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2019 Carsten Pfeiffer, José Rebelo +/* Copyright (C) 2017-2019 Andreas Shimokawa, Carsten Pfeiffer, José Rebelo This file is part of Gadgetbridge. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/XTimePreferenceFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/XTimePreferenceFragment.java index 1cfb0d35e..005ee8be8 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/XTimePreferenceFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/XTimePreferenceFragment.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2019 Carsten Pfeiffer, José Rebelo +/* Copyright (C) 2019 Andreas Shimokawa This file is part of Gadgetbridge. From 70ab1bfa00a7a53e40f834b6e672b5f665c1b88f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:27:29 +0000 Subject: [PATCH 08/56] 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 | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index b7fbc8b42..4b7ae5015 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -793,4 +793,5 @@ \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! + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From 5f2b176a893ce162851d535f16e3a063ab14ccf5 Mon Sep 17 00:00:00 2001 From: FransM Date: Sat, 23 Nov 2019 12:27:10 +0000 Subject: [PATCH 09/56] 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 | 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 4b7ae5015..111ccc084 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 2 knopdruk + Specificeer actie voor knop druk Aantal knopdrukken Aantal knopdrukken nodig om een bericht te sturen Uit te sturen bericht From c942f2392deb2b530a21faf6d613c9314f538c8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:27:41 +0000 Subject: [PATCH 10/56] Translated using Weblate (Catalan) Currently translated at 91.3% (661 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ca/ --- app/src/main/res/values-ca/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index b532288c0..e32bb6b9a 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -701,4 +701,5 @@ Portuguès Amazfit Cor 2 Mi Band 4 + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From 91c2231626628c45e78c6d13e8581c60b9dcebc7 Mon Sep 17 00:00:00 2001 From: Kintu Date: Sat, 23 Nov 2019 13:05:00 +0000 Subject: [PATCH 11/56] Translated using Weblate (Catalan) Currently translated at 91.3% (661 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ca/ --- app/src/main/res/values-ca/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index e32bb6b9a..be91b38e8 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -253,7 +253,7 @@ Passes per minut Troba l\'aparell perdut Cancel·leu per aturar la vibració. - La vostra activitat + Activitat i son Configura les alarmes Configura les alarmes Detalls d\'alarma @@ -282,11 +282,11 @@ Darrera càrrega: %s Nombre de càrregues: %s L\'exportació de la base de dades ha fallat! Si us plau, comproveu la configuració. - El vostre son + Son Son per setmana Son avui, objectiu: %1$s Passes per setmana - La vostra activitat i el vostre son + Activitat El microprogramari s\'està instal·lant… No es pot instal·lar el fitxer. L\'aparell no està preparat. %1$s: %2$s %3$s @@ -333,7 +333,7 @@ Temps Hora i data Accions del botó - Especifiqueu les accions en prémer el botó de la Mi Band 2 + Especifiqueu les accions en prémer el botó Nombre de pulsacions del botó Nombre de vegades que cal prémer el botó per activar la difusió de missatge Missatge de difusió a enviar From ff3ee49ce3d00c825070aeae67f32369aa471e83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:27:21 +0000 Subject: [PATCH 12/56] Translated using Weblate (Galician) Currently translated at 64.0% (463 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/gl/ --- app/src/main/res/values-gl/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index caa8307c1..8e6b6c826 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -516,4 +516,5 @@ Compás Axustes Alipay + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From 907d80507ff5a2cda9bedc36c239243260b40b4a Mon Sep 17 00:00:00 2001 From: Kintu Date: Sat, 23 Nov 2019 13:39:19 +0000 Subject: [PATCH 13/56] Translated using Weblate (Galician) Currently translated at 64.0% (463 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/gl/ --- app/src/main/res/values-gl/strings.xml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 8e6b6c826..cf913b69e 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -17,7 +17,7 @@ Pechar menú de navegación Manter pulsado o icono para desconectar Desconectando - Conectando + Conectando… Capturando pantalla do dispositivo Depurar Xestor de App @@ -40,13 +40,13 @@ 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 o firmware %s. Está a piques de instalar os firmwares %1$s e %2$s no canto dos que están actualmente na súa Mi Band. Este firmware foi probado e é compatíbel co Gadgetbridge. Este firmware non foi probado e pode non ser compatíbel co Gadgetbridge. \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 +\nRECOMENDASE QUE NON o instale! + 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 @@ -240,8 +240,8 @@ Ven Sáb Espertador intelixente - Houbo un erro configurando as alarmas, por favor téntao de novo! - Alarmas enviadas ao dispositivo! + Houbo un erro configurando as alarmas, por favor téntao de novo. + Alarmas enviadas ao dispositivo. Sen datos. Sincronizar dispositivo? A piques de transferir %1$s de datos desde %2$s Obxectivo de pasos diarios @@ -257,11 +257,11 @@ Última carga: %s \n Número de cargas: %s - O teu sono + Sono Sono por semana Sono hoxe, obxectivo: %1$s Pasos por semana - A túa actividade e sono + Actividade Anovando Firmware… O arquivo non pode ser instalado, o dispositivo non está preparado. %1$s: %2$s %3$s @@ -306,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 + Formato de data Hora Hora e data Accións do botón @@ -435,7 +435,7 @@ \n \nAs \"watchfaces\" soportadas amosarán a información do clima automáticamente. Selecciona Emparellar para emparellar os teus dispositivos. Se isto falla, proba de novo sen emparellar. - Conectar + 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. From 2c71f64315439528cb9f15a3c757b8bf167fdf37 Mon Sep 17 00:00:00 2001 From: Kintu Date: Sat, 23 Nov 2019 13:43:18 +0000 Subject: [PATCH 14/56] Translated using Weblate (Galician) Currently translated at 64.1% (464 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/gl/ --- app/src/main/res/values-gl/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index cf913b69e..1c502f3b5 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -426,7 +426,7 @@ 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 + 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. From 7b14fe37a73d6deaa14c4f3f25ca396bdf67236f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:27:03 +0000 Subject: [PATCH 15/56] Translated using Weblate (Turkish) Currently translated at 18.5% (134 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/tr/ --- app/src/main/res/values-tr/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 650f6cc1e..f232a15bc 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -166,4 +166,5 @@ Konumumu güncel tut "Türkçe " Change FM Frequency + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From fe3c90c10147a9d1b48673066c8f1fd4a6159b3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:28:20 +0000 Subject: [PATCH 16/56] Translated using Weblate (Lithuanian) Currently translated at 7.7% (56 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/lt/ --- app/src/main/res/values-lt/strings.xml | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index e23ea6ab5..7885b5d86 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -1,6 +1,6 @@ - -Gadgetbridge - + + + Gadgetbridge Gadgetbridge Nustatymai Šalinti riktus @@ -15,8 +15,6 @@ Ištrinti %1$s Šiuo veiksmu ištrinsite įrenginį ir visus jo sukauptus duomenis! Daroma įrenginio ekrano nuotrauka - - Įdiegti laikrodžio stiliai Oras Žadintuvas @@ -24,13 +22,12 @@ Kompasas Nustatymai Alipay -Atverti programos meniu + Atverti programos meniu Užverti programos meniu Norėdami atjungti ilgai spauskite kortelę Atjungiama Jungiama Derinti - Programų tvarkyklė Programos talpykloje Įdiegtos programos @@ -47,11 +44,8 @@ Įdiegti orų prognozės pranešimų programą Konfigūruoti Perkelti į viršų - Pranešimų juodasis sąrašas - Kalendorių juodasis sąrašas - FW/Programų diegyklė Išbandyti įrenginį Pebble @@ -66,6 +60,5 @@ Exrizu K8 Veikla Kalibruoti įrenginį - - - + nodomain.freeyourgadget.gadgetbridge.ButtonPressed + \ No newline at end of file From b3bb8587f7d08ab7c941c864f497c8556054093a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:26:48 +0000 Subject: [PATCH 17/56] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (724 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 | 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 fb22170d1..c33a75b8a 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -799,4 +799,5 @@ \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! + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From 7e21602be65a2bf03ef3a7647083b5de8d3d72cc Mon Sep 17 00:00:00 2001 From: Rafael Fontenelle Date: Fri, 22 Nov 2019 16:22:34 +0000 Subject: [PATCH 18/56] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (724 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 | 2 +- 1 file changed, 1 insertion(+), 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 c33a75b8a..7127cb3c7 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -413,7 +413,7 @@ Frequência cardíaca Bateria Ações do botão - Especifica as ações quando pressionado o botão da Mi Band 2 + Especifica ações no pressionamento do botão Contagem de acionamento do botão Número de toques no botão para enviar a mensagem Mensagem para enviar From b7b885ff1ec71961482d762087413d9c06c77cd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:25:28 +0000 Subject: [PATCH 19/56] Translated using Weblate (German) Currently translated at 100.0% (724 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/de/ --- app/src/main/res/values-de/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 75bc25ef7..f2a478a41 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -801,4 +801,5 @@ \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! + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From e6441e334762df9c4219054b3ac1d29aa35fe8ff Mon Sep 17 00:00:00 2001 From: nautilusx Date: Fri, 22 Nov 2019 18:07:21 +0000 Subject: [PATCH 20/56] Translated using Weblate (German) Currently translated at 100.0% (724 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/de/ --- app/src/main/res/values-de/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index f2a478a41..415a746fc 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -426,7 +426,7 @@ \n \nINSTALLATION AUF EIGENE GEFAHR! Tastenaktionen - Bestimmte Aktion bei Tastendruck auf dem Mi Band 2 + Festlegen der Tastendruckaktionen Anzahl der Tastendrücke, um die Nachrichtenübertragung auszulösen Zu sendende Nachricht Aktiviere Tastenaktion From 8b69f81edeeefaf999548cc989eea05c069144a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:27:47 +0000 Subject: [PATCH 21/56] Translated using Weblate (Greek) Currently translated at 95.9% (694 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/el/ --- app/src/main/res/values-el/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 337cdab51..f20f9059e 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -747,4 +747,5 @@ 10 λεπτά 20 λεπτά 1 ώρα + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From ca8e4615bc852489e4a2d04b9698d79ed86516c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:23:37 +0000 Subject: [PATCH 22/56] 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 | 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 7cef45a72..600494451 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -458,7 +458,7 @@ Disconnect notification Button actions - Specify actions button press + Specify button press actions Button press count Number of button presses to trigger message broadcast Broadcast message to send From e13b205d54ebd4032c57ffc2a2052f08599a99a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:28:10 +0000 Subject: [PATCH 23/56] 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 | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index 3825ea828..1397759f0 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -278,4 +278,5 @@ Luba värin nupu abil Värin Lähtesta impordi aeg + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From b6241eb5509e74c8cbc04ea1a2f70f7dd73bba01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:26:58 +0000 Subject: [PATCH 24/56] Translated using Weblate (Russian) Currently translated at 79.8% (578 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ru/ --- app/src/main/res/values-ru/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 0310b265a..4d5b9cbda 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -619,4 +619,5 @@ Режим фильтрации Сохранить конфигурацию Не подключено, будильник не установлено. + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From de7e7d324a6c7a305eeb6e51862dddda6415a0bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:28:24 +0000 Subject: [PATCH 25/56] 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 | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index f23224b1c..2edb5b68d 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -128,4 +128,5 @@ Toate cuvintele Salvare Configurație Deconectat(ă), alarma nu este setată. + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From 00e9552a93e22ec4c25ca544f4bfd1d5c3dc6a18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:28:36 +0000 Subject: [PATCH 26/56] Translated using Weblate (Bulgarian) Currently translated at 51.5% (373 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/bg/ --- app/src/main/res/values-bg/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index dac7c603d..9f96e3bd8 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -419,4 +419,5 @@ Стартирайте активност Специфични настройки за устройството Средно: %1$s + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From cbb5cd7b62ec20bd91bd17d1b94e7834e17476c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:27:09 +0000 Subject: [PATCH 27/56] Translated using Weblate (Ukrainian) Currently translated at 59.8% (433 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/uk/ --- app/src/main/res/values-uk/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 278cc9200..1e77ee82e 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -465,4 +465,5 @@ РР/ММ/ДД ДД/ММ/РР ММ/ДД/РР + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From 7211888d508a2beaacd105ef50abb69a49afd0c4 Mon Sep 17 00:00:00 2001 From: Kintu Date: Sat, 23 Nov 2019 13:15:43 +0000 Subject: [PATCH 28/56] Translated using Weblate (Catalan) Currently translated at 98.5% (713 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ca/ --- app/src/main/res/values-ca/strings.xml | 89 ++++++++++++++++++++++++-- 1 file changed, 84 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index be91b38e8..e6a98b63c 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -44,14 +44,14 @@ 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. +\nSi us plau, assegureu-vos d\'instal·lar el fitxer .fw, el fitxer .res i, finalment, el fitxer .gps. El vostre rellotge es 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. + Sou a punt d\'instal·lar el microprogramari %s en la vostra 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. +\nSi us plau, assegureu-vos d\'instal·lar el fitxer .fw, i després el fitxer .res. La vostra polsera es reiniciarà després d\'instal·lar el fitxer .fw. \n \nNota: no heu d\'instal·lar el fitxer .res si és exactament el mateix que el prèviament instal·lat. \n @@ -388,7 +388,7 @@ Això només és per a Pebble 2 i és experimental. Proveu-ho si teniu problemes de connexió Sou a punt d\'instal·lar el microprogramari %s en la vostra Mi Band 3. \n -\nSi us plau, assegureu-vos d\'instal·lar el fitxer .fw, i després el fitxer .res. El vostre rellotge es reiniciarà després d\'instal·lar el fitxer .fw. +\nSi us plau, assegureu-vos d\'instal·lar el fitxer .fw, i després el fitxer .res. La vostra polsera es reiniciarà després d\'instal·lar el fitxer .fw. \n \nObservació: No cal que instal·leu el fitxer .res si és exactament el mateix que ja estava instal·lat. \n @@ -418,7 +418,7 @@ Només mans Mans i passes Activa les trucades de VoIP - Sou a punt d\'instal·lar el microprogramari %s en el vostre Amazfit Cor 2. + Sou a punt d\'instal·lar el microprogramari %s en la vostra Amazfit Cor 2. \n \nSi us plau, assegureu-vos d\'instal·lar el fitxer .fw, i després el fitxer .res. La vostra polsera es reiniciarà després d\'instal·lar el fitxer .fw. \n @@ -702,4 +702,83 @@ Amazfit Cor 2 Mi Band 4 nodomain.freeyourgadget.gadgetbridge.ButtonPressed + Esteu a punt d\'instal·lar el microprogramari %s en la vostra Mi Band 4. +\n +\nSi us plau, assegureu-vos d\'instal·lar el fitxer .fw, i després el fitxer .res. La vostra polsera es 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 ja estava instal·lat. +\n +\nPROCEDIU SOTA LA VOSTRA PRÒPIA RESPONSABILITAT! + Límit baix + Límit alt + Mitjana: %1$s + Configuració de gràfiques + Mostra mitjanes a les gràfiques + Rang de les gràfiques + Passes per mes + Son per mes + Mijia Smart Clock + NFC + Permet altres aplicacions accedir a les dades de freqüència cardíaca en temps real mentre Gadgetbridge estigui connectat + Accés a tercers a freqüència cardíaca en temps real + Utilitza un tipus de lletra personalitzat + Activa-ho si el vostre dispositiu inclou microprogramari de tipus de lletra personalitzat amb suport per a emojis + Exportació automàtica + Exporta BD + Importa BD + Executa l\'exportació automàtica ara + Exportant base de dades… + Esborra BD antiga + Buida la BD + Alarma de son + Passes: %1$02d + Son: %1$s + Estat i alarmes + 5 minuts + 10 minuts + 20 minuts + 1 hora + + %d hora + %d hores + + Botó d\'afegir nou dispositiu + Sempre visible + Visible només si no hi ha cap dispositiu afegit + Configuració de Makibes HR3 + Makibes HR3 + Amazfit Bip Lite + Troba el telèfon + Activa «Troba el telèfon» + Duració del to en segons + Durada + Esteu a punt d\'instal·lar el microprogramari %s en el vostre Amazfit Bip Lite. +\n +\nSi us plau, assegureu-vos d\'instal·lar el fitxer .fw, i després el fitxer .res. El vostre rellotge es 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 ja estava instal·lat. +\n +\nPROCEDIU SOTA LA VOSTRA PRÒPIA RESPONSABILITAT! + Amazfit GTR + Esteu a punt d\'instal·lar el microprogramari %s en el vostre Amazfit GTR. +\n +\nSi us plau, assegureu-vos d\'instal·lar el fitxer .fw, el fitxer .res i, finalment, el fitxer .gps. El vostre rellotge es 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! + Vermell + Taronja + Color de freqüència cardíaca + Interval de son + Últimes 24 hores + De migdia a migdia + Amazfit GTS + Esteu a punt d\'instal·lar el microprogramari %s en el vostre Amazfit GTS. +\n +\nSi us plau, assegureu-vos d\'instal·lar el fitxer .fw, el fitxer .res i, finalment, el fitxer .gps. El vostre rellotge es 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! \ No newline at end of file From ba6b00e349a4915ef8dd1106e2fe67bb3786e9be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:25:23 +0000 Subject: [PATCH 29/56] Translated using Weblate (Czech) Currently translated at 99.9% (723 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/cs/ --- app/src/main/res/values-cs/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 336ed300d..f7a0580e9 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -791,4 +791,5 @@ \nPoznámka: Nemusíte instalovat soubor .res a .gps, pokud jsou stejné jako soubory nainstalovány dříve. \n \nPOKRAČUJTE NA VLASTNÍ NEBEZPEČÍ! + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From 65adadb9862bbf7120430c84bb6ace47022d0405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:26:53 +0000 Subject: [PATCH 30/56] Translated using Weblate (Portuguese) Currently translated at 54.6% (395 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/pt/ --- app/src/main/res/values-pt/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 2566082f9..a9574b4c0 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -525,4 +525,5 @@ Ativar botão Ativar vibração Efetuar uma reposição de fábrica eliminará todos os dados do aparelhos ligado (caso seja suportado). Além disso, aparelhos Xiaomi/Huami mudarão os seus endereços MAC, aparecendo como aparelhos novos para o Gadgetbridge. + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From 10312efd345e94385596afbbc8899a710a6b6ed8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:27:16 +0000 Subject: [PATCH 31/56] Translated using Weblate (Vietnamese) Currently translated at 18.4% (133 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/vi/ --- app/src/main/res/values-vi/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 044bd21ad..a5c98d6f0 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -189,4 +189,5 @@ Giữ địa điểm luôn được cập nhật Giờ Giờ và ngày + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From d6bfee623cc929faa2318d04e2864ba7985a3ebd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:28:27 +0000 Subject: [PATCH 32/56] Translated using Weblate (Croatian) Currently translated at 1.0% (7 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/hr/ --- app/src/main/res/values-hr/strings.xml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 6e7987fda..de63cb849 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -1,8 +1,9 @@ - -Gadgetbridge - + + + Gadgetbridge Muško Žensko Ostalo Lijevo - + nodomain.freeyourgadget.gadgetbridge.ButtonPressed + \ No newline at end of file From 223f17986341320262d8ce531998f3f8ef763abd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:26:18 +0000 Subject: [PATCH 33/56] Translated using Weblate (Hungarian) Currently translated at 49.6% (359 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/hu/ --- app/src/main/res/values-hu/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 5cf42bb46..4e51fce0b 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -450,4 +450,5 @@ %1$ akkumulátora merül %1$ akkumulátora merül: %2$s A gyári beállítások visszaállítása minden adatot töröl a kapcsolódott eszközről (ha támogatott). A Xiaomi/Huami eszközökön emellett megváltozik a Bluetooth MAC cím is, így új eszközként jelennek meg a Gadgetbridge számára. + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From 41b3a34c9c649f4433db2483d9e4db62311672e2 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Fri, 22 Nov 2019 14:49:15 +0000 Subject: [PATCH 34/56] 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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index 1355d03f9..6323fc62c 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -412,7 +412,7 @@ לצמד לא לצמד פעולות כפתור - ציון פעולות בלחיצה על הכפתור של Mi Band 2 + ציון פעולות בלחיצה על הכפתור ספירת לחיצות על הכפתור מספר לחיצות על הכפתור כדי להפעיל שידור הודעה הודעת שידור לשליחה @@ -789,4 +789,5 @@ \nלתשומת לבך: אין צורך בהתקנת קובצי ה־‎.res וה־‎.gps אם הם כבר זהים לאלו שהתקנת בעבר. \n \nהמשך התהליך הוא על אחריותך! + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From e8b5bd28c766d618c46b103500f274c603ece2e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:26:42 +0000 Subject: [PATCH 35/56] Translated using Weblate (Polish) Currently translated at 69.9% (506 of 724 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 8aa0dbd2a..1e58a478b 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -551,4 +551,5 @@ "Puls: " Pokazuj gdy zawiera słowa Czerwony + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From 32f9a7fc219a2900beed13da4a2d5cb343e43e8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:26:23 +0000 Subject: [PATCH 36/56] Translated using Weblate (Italian) Currently translated at 91.2% (660 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/it/ --- app/src/main/res/values-it/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index dc30c2083..7c48102b8 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -705,4 +705,5 @@ Imposta allarme frequenza cardiaca durante l\'attività sportiva Limite inferiore Limite Superiore + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From 68a9bcc167c9f0241396508670a6111e3c4a5813 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Sat, 23 Nov 2019 22:50:34 +0100 Subject: [PATCH 37/56] Mi Band 4: Whitelist FW 1.0.7.14 --- .../service/devices/huami/miband4/MiBand4FirmwareInfo.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/miband4/MiBand4FirmwareInfo.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/miband4/MiBand4FirmwareInfo.java index c27c3e7dc..0a3dd9022 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/miband4/MiBand4FirmwareInfo.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/miband4/MiBand4FirmwareInfo.java @@ -40,11 +40,13 @@ public class MiBand4FirmwareInfo extends HuamiFirmwareInfo { crcToVersion.put(8969, "1.0.5.22"); crcToVersion.put(43437, "1.0.5.66"); crcToVersion.put(31632, "1.0.6.00"); + crcToVersion.put(6856, "1.0.7.14"); // resources crcToVersion.put(27412, "1.0.5.22"); crcToVersion.put(5466, "1.0.5.66"); crcToVersion.put(20047, "1.0.6.00"); + crcToVersion.put(62914, "1.0.7.14"); // font crcToVersion.put(31978, "1"); From 2d52a04fabeef1f49c13153066cadf1496368ad2 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Sat, 23 Nov 2019 22:55:45 +0100 Subject: [PATCH 38/56] bump version, draft changelog --- CHANGELOG.md | 4 ++++ app/build.gradle | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a1f1bfd27..ed5037112 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ### Changelog +#### Version 0.39.1 (WIP) +* Active re-connection +* Mi Band2/Amazfip Bip: Make button action settings per-device and enable for Amazfit Bip + #### Version 0.39.0 * Amazfit GTS: Initial and incomplete support, mostly untested * Add forward/backward buttons to charts for faster navigation diff --git a/app/build.gradle b/app/build.gradle index c00f1f5fd..8053ac6e5 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.39.0" - versionCode 161 + versionName "0.39.1" + versionCode 162 vectorDrawables.useSupportLibrary = true } buildTypes { From 7a6e98c4017b0e7280d3fb9fdfaf5ecb8b0d01b4 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Sun, 24 Nov 2019 18:40:44 +0100 Subject: [PATCH 39/56] add migration for per-device button actions --- .../gadgetbridge/GBApplication.java | 67 ++++++++++++++++++- 1 file changed, 65 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java index 9e066919e..64950a5f2 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java @@ -46,6 +46,9 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager; import java.io.File; import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Locale; @@ -103,7 +106,7 @@ public class GBApplication extends Application { private static SharedPreferences sharedPrefs; private static final String PREFS_VERSION = "shared_preferences_version"; //if preferences have to be migrated, increment the following and add the migration logic in migratePrefs below; see http://stackoverflow.com/questions/16397848/how-can-i-migrate-android-preferences-with-a-new-version - private static final int CURRENT_PREFS_VERSION = 5; + private static final int CURRENT_PREFS_VERSION = 6; private static LimitedQueue mIDSenderLookup = new LimitedQueue(16); private static Prefs prefs; private static GBPrefs gbPrefs; @@ -596,6 +599,58 @@ public class GBApplication extends Application { } } + private void migrateStringPrefToPerDevicePref(String globalPref, String globalPrefDefault, String perDevicePref, ArrayList deviceTypes) { + SharedPreferences.Editor editor = sharedPrefs.edit(); + String globalPrefValue = prefs.getString(globalPref, globalPrefDefault); + try (DBHandler db = acquireDB()) { + DaoSession daoSession = db.getDaoSession(); + List activeDevices = DBHelper.getActiveDevices(daoSession); + for (Device dbDevice : activeDevices) { + SharedPreferences deviceSpecificSharedPrefs = GBApplication.getDeviceSpecificSharedPrefs(dbDevice.getIdentifier()); + if (deviceSpecificSharedPrefs != null) { + SharedPreferences.Editor deviceSharedPrefsEdit = deviceSpecificSharedPrefs.edit(); + DeviceType deviceType = fromKey(dbDevice.getType()); + + if (deviceTypes.contains(deviceType)) { + Log.i(TAG, "migrating global string preference " + globalPref + " for " + deviceType.name() + " " + dbDevice.getIdentifier() ); + deviceSharedPrefsEdit.putString(perDevicePref, globalPrefValue); + } + deviceSharedPrefsEdit.apply(); + } + } + editor.remove(globalPref); + editor.apply(); + } catch (Exception e) { + Log.w(TAG, "error acquiring DB lock"); + } + } + + private void migrateBooleanPrefToPerDevicePref(String globalPref, Boolean globalPrefDefault, String perDevicePref, ArrayList deviceTypes) { + SharedPreferences.Editor editor = sharedPrefs.edit(); + boolean globalPrefValue = prefs.getBoolean(globalPref, globalPrefDefault); + try (DBHandler db = acquireDB()) { + DaoSession daoSession = db.getDaoSession(); + List activeDevices = DBHelper.getActiveDevices(daoSession); + for (Device dbDevice : activeDevices) { + SharedPreferences deviceSpecificSharedPrefs = GBApplication.getDeviceSpecificSharedPrefs(dbDevice.getIdentifier()); + if (deviceSpecificSharedPrefs != null) { + SharedPreferences.Editor deviceSharedPrefsEdit = deviceSpecificSharedPrefs.edit(); + DeviceType deviceType = fromKey(dbDevice.getType()); + + if (deviceTypes.contains(deviceType)) { + Log.i(TAG, "migrating global boolean preference " + globalPref + " for " + deviceType.name() + " " + dbDevice.getIdentifier() ); + deviceSharedPrefsEdit.putBoolean(perDevicePref, globalPrefValue); + } + deviceSharedPrefsEdit.apply(); + } + } + editor.remove(globalPref); + editor.apply(); + } catch (Exception e) { + Log.w(TAG, "error acquiring DB lock"); + } + } + private void migratePrefs(int oldVersion) { SharedPreferences.Editor editor = sharedPrefs.edit(); if (oldVersion == 0) { @@ -684,7 +739,7 @@ public class GBApplication extends Application { switch (deviceType) { case MIBAND: deviceSharedPrefsEdit.putBoolean("low_latency_fw_update", prefs.getBoolean("mi_low_latency_fw_update", true)); - deviceSharedPrefsEdit.putInt("device_time_offset_hours", prefs.getInt("mi_device_time_offset_hours", 0)); + deviceSharedPrefsEdit.putString("device_time_offset_hours", String.valueOf(prefs.getInt("mi_device_time_offset_hours", 0))); break; case AMAZFITCOR: displayItems = prefs.getStringSet("cor_display_items", null); @@ -825,6 +880,14 @@ public class GBApplication extends Application { Log.w(TAG, "error acquiring DB lock"); } } + if (oldVersion < 6) { + migrateBooleanPrefToPerDevicePref("mi2_enable_button_action", false, "button_action_enable", new ArrayList<>(Collections.singletonList(MIBAND2))); + migrateBooleanPrefToPerDevicePref("mi2_button_action_vibrate", false, "button_action_vibrate", new ArrayList<>(Collections.singletonList(MIBAND2))); + migrateStringPrefToPerDevicePref("mi_button_press_count", "6", "button_action_press_count", new ArrayList<>(Collections.singletonList(MIBAND2))); + migrateStringPrefToPerDevicePref("mi_button_press_count_max_delay", "2000", "button_action_press_max_interval", new ArrayList<>(Collections.singletonList(MIBAND2))); + migrateStringPrefToPerDevicePref("mi_button_press_count_match_delay", "0", "button_action_broadcast_delay", new ArrayList<>(Collections.singletonList(MIBAND2))); + migrateStringPrefToPerDevicePref("mi_button_press_broadcast", "nodomain.freeyourgadget.gadgetbridge.ButtonPressed", "button_action_broadcast", new ArrayList<>(Collections.singletonList(MIBAND2))); + } editor.putString(PREFS_VERSION, Integer.toString(CURRENT_PREFS_VERSION)); editor.apply(); From 9ebafa70801cb56fd0d2220b7e58bdea5986fd5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:28:31 +0000 Subject: [PATCH 40/56] Translated using Weblate (Indonesian) Currently translated at 3.2% (23 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/id/ --- app/src/main/res/values-id/strings.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index 154224965..ec84be086 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -1,5 +1,6 @@ -Gadgetbridge + + Gadgetbridge Gadgetbridge Pengaturan Keluar @@ -23,4 +24,5 @@ Kalibrasi perangkat Perbaikan Kembalikan ke pengaturan pabrik\? + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From 037d760b1d45f1f7a7a40e3fd415934a82d54511 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:28:52 +0000 Subject: [PATCH 41/56] Translated using Weblate (Swedish) Currently translated at 4.8% (35 of 724 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 2a885130e..29c834a54 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -44,4 +44,5 @@ Svartlistade kalendrar FW/App-installerare Röd + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From 09fa808590ae556096f4dd82793eefa938b6face Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:28:42 +0000 Subject: [PATCH 42/56] Translated using Weblate (Persian) Currently translated at 14.1% (102 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/fa/ --- app/src/main/res/values-fa/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 8b97a747d..9e1e48f42 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -124,4 +124,5 @@ هواشناسی مکان تعیین شده برای هواشناسی (CM/LOS) اضافه کردن برنامه‌ها به لیست سیاه + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From a0c3b4a7beb6c05e88585af25f66840d16f1d185 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:27:35 +0000 Subject: [PATCH 43/56] Translated using Weblate (Finnish) Currently translated at 2.1% (15 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/fi/ --- app/src/main/res/values-fi/strings.xml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 8272674ef..5471cc954 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -1,9 +1,9 @@ - -Asetukset + + + Asetukset Synkronisoi Löydä kadonnut laite Gadgetbridge - Gadgetbridge Sulje Lahjoita @@ -18,8 +18,6 @@ Yhteyttä katkaistaan Yhdistetään Otataan ruutukaappausta laitteesta - - Sovellusten hallinta Välimuistissa olevat sovellukset Asennetut sovellukset @@ -37,5 +35,5 @@ Asenna sääilmoitussovellus Määritä Siirrä ylös - - + nodomain.freeyourgadget.gadgetbridge.ButtonPressed + \ No newline at end of file From 0f8f590787290e6c580b8a751f7d1ccf9888739e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:26:33 +0000 Subject: [PATCH 44/56] Translated using Weblate (Korean) Currently translated at 78.2% (566 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ko/ --- app/src/main/res/values-ko/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 461faea0a..b3c1027dd 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -610,4 +610,5 @@ FM 주파수 올바르지 않은 주파수 87.5와 108.0 사이의 주파수를 입력하세요 + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From 02941b857353927bffc8072dbda581a1aac8e4c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:28:15 +0000 Subject: [PATCH 45/56] Translated using Weblate (Slovak) Currently translated at 59.8% (433 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/sk/ --- app/src/main/res/values-sk/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index ed8a49ce5..4764b74f2 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -492,4 +492,5 @@ Gadgetbridge upozornenia Pripojiť Zap. + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From 2a589068a586f99873e8d3dae9f9943211bb2367 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:28:48 +0000 Subject: [PATCH 46/56] Translated using Weblate (Burmese) Currently translated at 5.1% (37 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/my/ --- app/src/main/res/values-my/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-my/strings.xml b/app/src/main/res/values-my/strings.xml index 7aa0ba943..fa089bd6e 100644 --- a/app/src/main/res/values-my/strings.xml +++ b/app/src/main/res/values-my/strings.xml @@ -36,4 +36,5 @@ အခ်က္အလက္ကြဲမ်ား အခ်က္အလက္မ်ားကိုသိမ္းဆည္းမည္ မခ်ိတ္ဆက္ထားျခင္းမရွိပါ , သတိေပးခ်က္မထားရေသးပါ + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From b2cb9d2a904f9c2dcf3b26281cba3ee420590fdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:28:57 +0000 Subject: [PATCH 47/56] Translated using Weblate (Chinese (Traditional)) Currently translated at 3.6% (26 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hant/ --- app/src/main/res/values-zh-rTW/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 4165c9382..ec1c1e8e5 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -25,4 +25,5 @@ 刪除 刪除並清除緩存 重新安裝 + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From 53f193659f7600ae423bc73a89e92c4f11d74e33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=B0=91=E4=B8=BE?= Date: Fri, 22 Nov 2019 07:33:06 +0000 Subject: [PATCH 48/56] 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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index a940df62c..dc68c3fb7 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -324,7 +324,7 @@ 仅时间 时间和日期 按钮操作 - 指定小米手环2按钮上的操作 + 指定按钮按下时的操作 按钮按下计数 触发消息广播的按钮按数 启用按钮操作 @@ -792,4 +792,5 @@ \n备注:如果您安装的 .res 文件和之前相同,则无需安装 .res 文件。 \n \n风险自担! + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From 4fa820c3ce65e7296ff14818d93b450254c9c8b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Nov 2019 15:23:22 +0000 Subject: [PATCH 49/56] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 74492daf5..372f1b8ec 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -325,7 +325,7 @@ Tid Tid og dato Knappevalg - Angi handlinger for Mi Band 2 knappetrykk + Angi handlinger for knappetrykk Antall trykk på knapp Antall trykk på knapp for å utløse meldingskringkasting Kringkastingsmelding å sende @@ -791,4 +791,5 @@ \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! + nodomain.freeyourgadget.gadgetbridge.ButtonPressed \ No newline at end of file From 875ec89c51c493371f273610b9def9670ce0892a Mon Sep 17 00:00:00 2001 From: Full Name Date: Sun, 24 Nov 2019 10:37:41 +0000 Subject: [PATCH 50/56] 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 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index f7a0580e9..4b2c92b2e 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -408,7 +408,7 @@ Párovat Nepárovat Akce tlačítka - Nastavení akcí po stisknutí tlačítka Mi Band 2 + Nastavení akcí po stisknutí tlačítka Počet stisknutí tlačítka Počet stisknutí tlačítka na spuštění vysílání zpráv Vysílání zpráv From 931f9cec04d7a410ba844232b057aef895a12f5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20M=C3=BCnster?= Date: Sun, 24 Nov 2019 14:49:12 +0000 Subject: [PATCH 51/56] Translated using Weblate (Swedish) Currently translated at 5.2% (38 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/sv/ --- app/src/main/res/values-sv/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 29c834a54..61daafb9c 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -45,4 +45,7 @@ FW/App-installerare Röd nodomain.freeyourgadget.gadgetbridge.ButtonPressed + Aktivera pulsmätare + Avaktivera pulsmätare + Konfigurera \ No newline at end of file From 1b3fbe571eb4053b60fc73f0180e94efdb644b60 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Sun, 24 Nov 2019 22:11:52 +0100 Subject: [PATCH 52/56] add xml changelog and fastlane --- CHANGELOG.md | 4 ++-- app/src/main/res/xml/changelog_master.xml | 4 ++++ fastlane/metadata/android/en-US/changelogs/162.txt | 2 ++ 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/162.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index ed5037112..49b131bd0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ ### Changelog -#### Version 0.39.1 (WIP) -* Active re-connection +#### Version 0.39.1 +* Try to actively re-connect when a connection gets interrupted (interval grows up to 64 seconds) * Mi Band2/Amazfip Bip: Make button action settings per-device and enable for Amazfit Bip #### Version 0.39.0 diff --git a/app/src/main/res/xml/changelog_master.xml b/app/src/main/res/xml/changelog_master.xml index 19193ca85..238225a81 100644 --- a/app/src/main/res/xml/changelog_master.xml +++ b/app/src/main/res/xml/changelog_master.xml @@ -1,5 +1,9 @@ + + Try to actively re-connect when a connection gets interrupted (interval grows up to 64 seconds) + Mi Band2/Amazfip Bip: Make button action settings per-device and enable for Amazfit Bip + Amazfit GTS: Initial and incomplete support, mostly untested Add forward/backward buttons to charts for faster navigation diff --git a/fastlane/metadata/android/en-US/changelogs/162.txt b/fastlane/metadata/android/en-US/changelogs/162.txt new file mode 100644 index 000000000..83de49046 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/162.txt @@ -0,0 +1,2 @@ +* Try to actively re-connect when a connection gets interrupted (interval grows up to 64 seconds) +* Mi Band2/Amazfip Bip: Make button action settings per-device and enable for Amazfit Bip From fdb7e013ec84cda727b3a233c9e75450d8b9e984 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Sun, 24 Nov 2019 22:35:23 +0100 Subject: [PATCH 53/56] add Amazfit GTR/GTS to README --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3c2e4308e..85f8b2795 100644 --- a/README.md +++ b/README.md @@ -30,9 +30,11 @@ vendor's servers. ## Supported Devices (Some of them WIP and some of them without maintainer) * Amazfit Bip [Wiki](https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Amazfit-Bip) -* Amazfit Bip Lite (NOT RECOMMENDED, NEEDS MI FIT WITH ACCOUNT AND ROOT ONCE) [Wiki](https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Amazfit-Bip-Lite) +* Amazfit Bip Lite (NOT RECOMMENDED, NEEDS MI FIT WITH ACCOUNT ONCE) [Wiki](https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Amazfit-Bip-Lite) * Amazfit Cor [Wiki](https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Amazfit-Cor) * Amazfit Cor 2 [Wiki](https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Amazfit-Cor-2) +* Amazfit GTR (NOT RECOMMENDED, NEEDS MI FIT WITH ACCOUNT ONCE) [Wiki] (https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Amazfit-GTR) +* Amazfit GTS (NOT RECOMMENDED, NEEDS MI FIT WITH ACCOUNT ONCE) [Wiki] (https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Amazfit-GTS) * BFH-16 * Casio GB-6900B * HPlus Devices (e.g. ZeBand) [Wiki](https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/HPlus) From ea2a1d8010299b0a16b478254c90e64ccf79e278 Mon Sep 17 00:00:00 2001 From: Kintu Date: Tue, 26 Nov 2019 15:46:17 +0000 Subject: [PATCH 54/56] Translated using Weblate (Catalan) Currently translated at 100.0% (724 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ca/ --- app/src/main/res/values-ca/strings.xml | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index e6a98b63c..7f9e230a5 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -712,9 +712,9 @@ Límit baix Límit alt Mitjana: %1$s - Configuració de gràfiques - Mostra mitjanes a les gràfiques - Rang de les gràfiques + Configuració dels gràfics + Mostra mitjanes als gràfics + Rang dels gràfics Passes per mes Son per mes Mijia Smart Clock @@ -781,4 +781,15 @@ \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! + Alarma de freqüència cardíaca durant activitat esportiva + El rang dels gràfics està configurat a un mes + El rang dels gràfics està configurat a una setmana + La ubicació de l\'exportació automàtica s\'ha definit a: + Buida la base de dades + Exportar i importar + Atenció! En prémer aquest botó esborrareu tota la base de dades i començareu de zero. + Fixa una alarma al cap de: + Per a veure la traça d\'activitat, instal·leu una app que pugui manejar fitxers GPX. + Fes servir la teva banda per a reproduir el to del telèfon. + Aquest aparell requereix una clau d\'autenticació secreta, mantingueu premut sobre l\'aparell per a introduir-la. Consulteu la wiki. \ No newline at end of file From dac3ec71640545e521df7c8d06cbf345a211d8da Mon Sep 17 00:00:00 2001 From: Nathan Date: Tue, 26 Nov 2019 17:22:11 +0000 Subject: [PATCH 55/56] Translated using Weblate (French) Currently translated at 99.0% (717 of 724 strings) Translation: Freeyourgadget/Gadgetbridge Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/fr/ --- app/src/main/res/values-fr/strings.xml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index a42efb71e..7f926f05b 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -228,7 +228,7 @@ Pas par minute Trouver l\'appareil perdu Annuler pour arrêter les vibrations. - Votre activité + Activité et Sommeil Configurer les alarmes Configurer les alarmes Détails des alarmes @@ -256,11 +256,11 @@ %1$s batterie restante : %2$s%% Dernière charge : %s \n Nombre de charges : %s - Votre sommeil + Sommeil Sommeil de la semaine Sommeil aujourd\'hui, objectif : %1$s Pas de la semaine - Votre activité et sommeil + Activité Installation du micrologiciel… Le fichier ne peut pas être installé, l\'appareil n\'est pas prêt. %1$s: %2$s %3$s @@ -413,7 +413,7 @@ Temps de sommeil préféré en heures \n \nCONTINUEZ À VOS RISQUES ! Actions du bouton - Spécifier les actions par pression du bouton du Mi Band 2 + Spécifier les actions par pression du bouton Nombre de pressions du bouton Nombre de pressions pour envoyer message Message à envoyer @@ -758,4 +758,8 @@ Temps de sommeil préféré en heures 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. + Rouge + Orange + Dernières 24 heures + De midi à midi \ No newline at end of file From 6263da7dfa86894ce91cf7f4e068bb131ab95fcc Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Tue, 3 Dec 2019 00:39:52 +0100 Subject: [PATCH 56/56] change app manager icon --- app/src/main/res/drawable/ic_action_manage_apps.xml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/drawable/ic_action_manage_apps.xml b/app/src/main/res/drawable/ic_action_manage_apps.xml index 8a894a3bc..2fec90a11 100644 --- a/app/src/main/res/drawable/ic_action_manage_apps.xml +++ b/app/src/main/res/drawable/ic_action_manage_apps.xml @@ -1,9 +1,10 @@ + android:width="24dp" + android:height="24dp" + android:tint="#7E7E7E" + android:viewportWidth="24.0" + android:viewportHeight="24.0"> + android:pathData="M4,8h4L8,4L4,4v4zM10,20h4v-4h-4v4zM4,20h4v-4L4,16v4zM4,14h4v-4L4,10v4zM10,14h4v-4h-4v4zM16,4v4h4L20,4h-4zM10,8h4L14,4h-4v4zM16,14h4v-4h-4v4zM16,20h4v-4h-4v4z" />