Merge pull request #3 from Philoul/dev

Dev
This commit is contained in:
Philoul 2019-12-08 21:24:13 +01:00 committed by GitHub
commit 1525a30e01
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
39 changed files with 288 additions and 30 deletions

View file

@ -3,6 +3,7 @@ package info.nightscout.androidaps.db;
import android.content.Context;
import android.database.DatabaseUtils;
import android.database.sqlite.SQLiteDatabase;
import androidx.annotation.Nullable;
import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
@ -772,8 +773,8 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
TempTarget tempTarget = new TempTarget()
.date(trJson.getLong("mills"))
.duration(JsonHelper.safeGetInt(trJson, "duration"))
.low(Profile.toMgdl(trJson.getDouble("targetBottom"), units))
.high(Profile.toMgdl(trJson.getDouble("targetTop"), units))
.low(Profile.toMgdl(JsonHelper.safeGetDouble(trJson, "targetBottom"), units))
.high(Profile.toMgdl(JsonHelper.safeGetDouble(trJson, "targetTop"), units))
.reason(JsonHelper.safeGetString(trJson, "reason", ""))
._id(trJson.getString("_id"))
.source(Source.NIGHTSCOUT);

View file

@ -1,13 +1,19 @@
package info.nightscout.androidaps.plugins.constraints.versionChecker
import info.nightscout.androidaps.BuildConfig
import info.nightscout.androidaps.MainApp
import info.nightscout.androidaps.R
import info.nightscout.androidaps.interfaces.*
import info.nightscout.androidaps.interfaces.Constraint
import info.nightscout.androidaps.interfaces.ConstraintsInterface
import info.nightscout.androidaps.interfaces.PluginBase
import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.plugins.bus.RxBus
import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification
import info.nightscout.androidaps.plugins.general.overview.notifications.Notification
import info.nightscout.androidaps.utils.SP
import java.util.concurrent.TimeUnit
import kotlin.math.roundToInt
/**
* Usually we would have a class here.
@ -16,16 +22,23 @@ import java.util.concurrent.TimeUnit
* */
object VersionCheckerPlugin : PluginBase(PluginDescription()
.mainType(PluginType.CONSTRAINTS)
.neverVisible(true)
.alwaysEnabled(true)
.showInList(false)
.pluginName(R.string.versionChecker)), ConstraintsInterface {
.mainType(PluginType.CONSTRAINTS)
.neverVisible(true)
.alwaysEnabled(true)
.showInList(false)
.pluginName(R.string.versionChecker)), ConstraintsInterface {
private val gracePeriod: GracePeriod
get() = if ((BuildConfig.VERSION_NAME.contains("RC", ignoreCase = true))) {
GracePeriod.RC
} else {
GracePeriod.RELEASE
}
override fun isClosedLoopAllowed(value: Constraint<Boolean>): Constraint<Boolean> {
checkWarning()
triggerCheckVersion()
return if (isOldVersion(GRACE_PERIOD_VERY_OLD))
return if (isOldVersion(gracePeriod.veryOld.daysToMillis()))
value.set(false, MainApp.gs(R.string.very_old_version), this)
else
value
@ -33,41 +46,49 @@ object VersionCheckerPlugin : PluginBase(PluginDescription()
private fun checkWarning() {
val now = System.currentTimeMillis()
if (!SP.contains(R.string.key_last_versionchecker_plugin_warning)) {
SP.putLong(R.string.key_last_versionchecker_plugin_warning, now)
return
}
if (isOldVersion(GRACE_PERIOD_WARNING) && shouldWarnAgain(now)) {
if (isOldVersion(gracePeriod.warning.daysToMillis()) && shouldWarnAgain(now)) {
// store last notification time
SP.putLong(R.string.key_last_versionchecker_plugin_warning, now)
//notify
val message = MainApp.gs(R.string.new_version_warning, Math.round((now - SP.getLong(R.string.key_last_time_this_version_detected, now)) / TimeUnit.DAYS.toMillis(1).toDouble()))
val message = MainApp.gs(R.string.new_version_warning,
((now - SP.getLong(R.string.key_last_time_this_version_detected, now)) / 1L.daysToMillis().toDouble()).roundToInt(),
gracePeriod.old,
gracePeriod.veryOld
)
val notification = Notification(Notification.OLDVERSION, message, Notification.NORMAL)
RxBus.send(EventNewNotification(notification))
}
}
private fun shouldWarnAgain(now: Long) =
now > SP.getLong(R.string.key_last_versionchecker_plugin_warning, 0) + WARN_EVERY
now > SP.getLong(R.string.key_last_versionchecker_plugin_warning, 0) + WARN_EVERY
override fun applyMaxIOBConstraints(maxIob: Constraint<Double>): Constraint<Double> =
if (isOldVersion(GRACE_PERIOD_OLD))
maxIob.set(0.toDouble(), MainApp.gs(R.string.old_version), this)
else
maxIob
if (isOldVersion(gracePeriod.old.daysToMillis()))
maxIob.set(0.toDouble(), MainApp.gs(R.string.old_version), this)
else
maxIob
private fun isOldVersion(gracePeriod: Long): Boolean {
val now = System.currentTimeMillis()
return now > SP.getLong(R.string.key_last_time_this_version_detected, 0) + gracePeriod
return now > SP.getLong(R.string.key_last_time_this_version_detected, 0) + gracePeriod
}
val WARN_EVERY = TimeUnit.DAYS.toMillis(1)
val GRACE_PERIOD_WARNING = TimeUnit.DAYS.toMillis(30)
val GRACE_PERIOD_OLD = TimeUnit.DAYS.toMillis(60)
val GRACE_PERIOD_VERY_OLD = TimeUnit.DAYS.toMillis(90)
private val WARN_EVERY = TimeUnit.DAYS.toMillis(1)
}
enum class GracePeriod(val warning: Long, val old: Long, val veryOld: Long) {
RELEASE(30, 60, 90),
RC(0, 7, 14)
}
private fun Long.daysToMillis() = TimeUnit.DAYS.toMillis(this)

View file

@ -315,11 +315,13 @@ public class NSUpload {
JSONObject data = new JSONObject();
data.put("eventType", CareportalEvent.TEMPORARYTARGET);
data.put("duration", tempTarget.durationInMinutes);
data.put("reason", tempTarget.reason);
data.put("targetBottom", Profile.fromMgdlToUnits(tempTarget.low, ProfileFunctions.getSystemUnits()));
data.put("targetTop", Profile.fromMgdlToUnits(tempTarget.high, ProfileFunctions.getSystemUnits()));
if (tempTarget.low > 0) {
data.put("reason", tempTarget.reason);
data.put("targetBottom", Profile.fromMgdlToUnits(tempTarget.low, ProfileFunctions.getSystemUnits()));
data.put("targetTop", Profile.fromMgdlToUnits(tempTarget.high, ProfileFunctions.getSystemUnits()));
data.put("units", ProfileFunctions.getSystemUnits());
}
data.put("created_at", DateUtil.toISOString(tempTarget.date));
data.put("units", ProfileFunctions.getSystemUnits());
data.put("enteredBy", MainApp.gs(R.string.app_name));
uploadCareportalEntryToNS(data);
} catch (JSONException e) {

View file

@ -1417,4 +1417,5 @@
<string name="profilenamecontainsdot">Името на профила съдържа точка.\nТова не се поддържа от НС.\nПрофилът не е качен в НС.</string>
<string name="low_mark_comment">Ниската граница на диапазона (графика)</string>
<string name="high_mark_comment">Високата граница на диапазона (графика)</string>
<string name="reorder_label">Подреди</string>
</resources>

View file

@ -1417,4 +1417,5 @@
<string name="profilenamecontainsdot">Název profilu obsahuje tečky.\nToto není v NS podporováno.\nProfil není přenesen do NS.</string>
<string name="low_mark_comment">Spodní hodnota oblasti v rozsahu (pouze zobrazování)</string>
<string name="high_mark_comment">Horní hodnota oblasti v rozsahu (pouze zobrazování)</string>
<string name="reorder_label">Změna pořadí</string>
</resources>

View file

@ -1400,8 +1400,8 @@ Unerwartetes Verhalten.</string>
<string name="format_carbs">%1$dg</string>
<string name="common_on">Ein</string>
<string name="common_off">Aus</string>
<string name="objectives_button_unfinish">Löschen abgeschlossen</string>
<string name="objectives_button_unstart">Löschen gestartet</string>
<string name="objectives_button_unfinish">Ziel erneut öffnen</string>
<string name="objectives_button_unstart">Ziel neu starten</string>
<string name="timedetection">Zeiterkennung</string>
<string name="doyouwantresetstart">Möchtest Du den Start der Ziele zurücksetzen? Du verlierst Deine Fortschritte.</string>
<string name="nopumpselected">Keine Pumpe ausgewählt</string>
@ -1418,4 +1418,5 @@ Unerwartetes Verhalten.</string>
<string name="profilenamecontainsdot">Profilname enthält Punkte.\nDies wird von NS nicht unterstützt.\nProfil wird nicht zu NS hochgeladen.</string>
<string name="low_mark_comment">Unterer Wert des Zielbereichs (nur Anzeige)</string>
<string name="high_mark_comment">Oberer Wert des Zielbereichs (nur Anzeige)</string>
<string name="reorder_label">Umsortieren</string>
</resources>

View file

@ -377,8 +377,11 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
<string name="button1">Bouton 1</string>
<string name="button2">Bouton 2</string>
<string name="button3">Bouton 3</string>
<string name="units_colon">Unités :</string>
<string name="units">Unités</string>
<string name="mgdl">mg/dl</string>
<string name="mmol">mmol/l</string>
<string name="dia">DAI</string>
<string name="target_range">Fourchette cible :</string>
<string name="prefs_range_title">Fourchette de visualisation</string>
<string name="prefs_range_summary">Les repères hauts et bas sur les graphiques pour l\'aperçu et la montre</string>
@ -1390,10 +1393,30 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
<string name="format_percent">%1$d%%</string>
<string name="boluswizard">Assistant Bolus</string>
<string name="unit_minute_short">min</string>
<string name="profile_name">Nom du profil :</string>
<string name="selected_profile">Sélectionné :</string>
<string name="unitsnosemicolon">Unités</string>
<string name="doyouwantswitchprofile">Voulez-vous changer de profil et annuler les modifications faites dans le profil actuel ?</string>
<string name="format_carbs">%1$dg</string>
<string name="common_on">On</string>
<string name="common_off">Off</string>
<string name="objectives_button_unfinish">Suppression terminée</string>
<string name="objectives_button_unstart">Suppression démarrée</string>
<string name="timedetection">Détection de temps</string>
<string name="doyouwantresetstart">Voulez-vous réinitialiser le début de l\'objectif ? Vous risquez de perdre vos progrès.</string>
<string name="nopumpselected">Aucune pompe sélectionnée</string>
<string name="setupwizard_units_prompt">Sélectionnez les unités dans lesquelles vous souhaitez afficher les valeurs</string>
<string name="ns_ploadlocalprofile">Remonter les modifications de profil local dans NS</string>
<string name="dia_short">DAI</string>
<string name="ic_short">G/I</string>
<string name="isf_short">SI</string>
<string name="target_short">CIBLE</string>
<string name="clone_label">Dupliquer</string>
<string name="saveorresetchangesfirst">Sauver ou réinitialiser les modifications actuelles en premier</string>
<string name="deletecurrentprofile">Supprimer le profil actuel ?</string>
<string name="copytolocalprofile">Créer un nouveau profil local à partir de ce changement de profil ?</string>
<string name="profilenamecontainsdot">Le nom du profil contient des points.\nCe n\'est pas pris en charge par NS.\nLe profil n\'est pas remonté dans NS.</string>
<string name="low_mark_comment">Valeur inférieure dans la plage (affichage uniquement)</string>
<string name="high_mark_comment">Valeur supérieure dans la plage (affichage uniquement)</string>
<string name="reorder_label">Réordonner</string>
</resources>

View file

@ -1417,4 +1417,5 @@
<string name="profilenamecontainsdot">Il nome profilo contiene dei punti.\nQuesto non è supportato da NS.\nIl profilo non viene caricato in NS.</string>
<string name="low_mark_comment">Valore più basso per l\'intervallo di visualizzazione dell\'area \"in range\"</string>
<string name="high_mark_comment">Valore più alto per l\'intervallo di visualizzazione dell\'area \"in range\"</string>
<string name="reorder_label">Riordina</string>
</resources>

View file

@ -376,8 +376,11 @@
<string name="button1">Knop 1</string>
<string name="button2">Knop 2</string>
<string name="button3">Knop 3</string>
<string name="units_colon">Eenheden:</string>
<string name="units">Eenheden</string>
<string name="mgdl">mg/dl</string>
<string name="mmol">mmol/l</string>
<string name="dia">DIA</string>
<string name="target_range">Streefdoel:</string>
<string name="prefs_range_title">Bereik voor visualisatie</string>
<string name="prefs_range_summary">Hoge en lage grens voor grafieken op het Overzicht en op Wear</string>
@ -1389,6 +1392,9 @@
<string name="format_percent">%1$d%%</string>
<string name="boluswizard">Bolus wizard</string>
<string name="unit_minute_short">min</string>
<string name="profile_name">Profielnaam:</string>
<string name="selected_profile">Geselecteerd:</string>
<string name="unitsnosemicolon">Eenheden</string>
<string name="format_carbs">%1$dg</string>
<string name="common_on">Aan</string>
<string name="common_off">Uit</string>
@ -1396,4 +1402,13 @@
<string name="objectives_button_unstart">Wissen gestart</string>
<string name="timedetection">Tijd detectie</string>
<string name="doyouwantresetstart">Wil je dit leerdoel opnieuw starten? Je kunt je voortgang verliezen.</string>
<string name="nopumpselected">Geen pomp geselecteerd</string>
<string name="setupwizard_units_prompt">Selecteer eenheden waarin je waarden wilt weergeven</string>
<string name="ns_ploadlocalprofile">Upload lokale profielwijzigingen naar NS</string>
<string name="dia_short">DIA</string>
<string name="ic_short">KH ratio</string>
<string name="isf_short">ISF</string>
<string name="clone_label">Dupliceren</string>
<string name="deletecurrentprofile">Huidige profiel verwijderen?</string>
<string name="reorder_label">Sorteren</string>
</resources>

View file

@ -265,6 +265,9 @@
<string name="bolusdelivered">Bolus %1$.2fU entregue com sucesso</string>
<string name="bolusrequested">Vão ser administradas %1$.2fU</string>
<string name="smscommunicator_bolusdelivered">Bólus %1$.2fU enviado com êxito</string>
<string name="smscommunicator_mealbolusdelivered_tt">Alvo %1$s para %2$d minutos</string>
<string name="smscommunicator_tt_set">Alvo %1$s para %2$d minutos definido com sucesso</string>
<string name="smscommunicator_tt_canceled">Alvo Temp cancelado com êxito</string>
<string name="bolusdelivering">Administrando %1$.2fU</string>
<string name="smscommunicator_remotecommandsallowed">Permitir comandos remotos via SMS</string>
<string name="glucosetype_finger">Dedo</string>
@ -324,10 +327,13 @@
<string name="smscommunicator_basalreplywithcode">Para começar a basal %1$.2fU/h durante%2$d min responda com o código %3$s</string>
<string name="smscommunicator_profilereplywithcode">Para mudar o perfil para %1$s %2$d%% responda com o código %3$s</string>
<string name="smscommunicator_extendedreplywithcode">Para começar o bólus estendido %1$.2fU/h para %2$d min responda com o código %3$s</string>
<string name="smscommunicator_carbsreplywithcode">Para inserir %1$dg em %2$s responda com código %3$s</string>
<string name="smscommunicator_basalpctreplywithcode">Para começar a basal %1$d% U/h durante %2$d min responda com o código %3$s</string>
<string name="smscommunicator_suspendreplywithcode">Para suspender o loop por %1$d minutos resposta com código %2$s</string>
<string name="smscommunicator_tempbasalset">Basal temporária %1$.2fU/h para %2$d min iniciada com êxito</string>
<string name="smscommunicator_extendedset">Bólus estendido %1$.2fU/h para %2$d min iniciado com êxito</string>
<string name="smscommunicator_carbsset">Hidratos %1$dg inseridos com sucesso</string>
<string name="smscommunicator_carbsfailed">Introdução de %1$dg de hidratos falhou</string>
<string name="smscommunicator_tempbasalset_percent">Basal temporária %1$d% U/h durante%2$d min iniciada com êxito</string>
<string name="smscommunicator_tempbasalfailed">Falha ao iniciar basal temp</string>
<string name="smscommunicator_extendedfailed">Falha ao iniciar o bolus estendido</string>
@ -361,8 +367,11 @@
<string name="button1">Botão 1</string>
<string name="button2">Botão 2</string>
<string name="button3">Botão 3</string>
<string name="units_colon">Unidades:</string>
<string name="units">Unidades</string>
<string name="mgdl">mg/dL</string>
<string name="mmol">mmol/L</string>
<string name="dia">DIA</string>
<string name="target_range">Intervalo Alvo:</string>
<string name="prefs_range_title">Intervalo para visualização</string>
<string name="prefs_range_summary">Marca alta e baixa para as cartas em Visão geral e Smartwatch</string>
@ -1374,7 +1383,27 @@
<string name="format_percent">%1$d%%</string>
<string name="boluswizard">Assistente de Bólus</string>
<string name="unit_minute_short">min</string>
<string name="profile_name">Nome do Perfil:</string>
<string name="selected_profile">Seleccionado:</string>
<string name="unitsnosemicolon">Unidades</string>
<string name="doyouwantswitchprofile">Deseja mudar de perfil e descartar as alterações feitas no perfil actual?</string>
<string name="format_carbs">%1$dg</string>
<string name="common_on">Ligado</string>
<string name="common_off">Desligado</string>
<string name="objectives_button_unfinish">Limpar terminado</string>
<string name="objectives_button_unstart">Limpar iniciado</string>
<string name="timedetection">Detecção de tempo</string>
<string name="nopumpselected">Nenhuma bomba seleccionada</string>
<string name="setupwizard_units_prompt">Seleccione as unidades em que deseja exibir os valores</string>
<string name="ns_ploadlocalprofile">Carregar as alterações do perfil local para NS</string>
<string name="dia_short">DIA</string>
<string name="ic_short">IC</string>
<string name="isf_short">FSI</string>
<string name="target_short">ALV</string>
<string name="clone_label">Clone</string>
<string name="saveorresetchangesfirst">Guardar ou repor as alterações actuais primeiro</string>
<string name="deletecurrentprofile">Eliminar perfil actual?</string>
<string name="copytolocalprofile">Criar novo perfil local a partir desta troca de perfil?</string>
<string name="profilenamecontainsdot">Nome do perfil contém pontos.\nIsso não é suportado pelo NS.\nPerfil não é enviado para o NS.</string>
<string name="reorder_label">Reordenar</string>
</resources>

View file

@ -260,6 +260,7 @@
<string name="smscommunicator_allowednumbers">Número de telefones permitidos</string>
<string name="smscommunicator_allowednumbers_summary">+XXXXXXXXXX;+YYYYYYYYYY</string>
<string name="smscommunicator_bolusreplywithcode">Para dar bolus %1$.2fU responder com código %2$s</string>
<string name="smscommunicator_temptargetcancel">Para cancelar Alvo Temp responda com o código %1$s</string>
<string name="smscommunicator_calibrationreplywithcode">Para enviar calibração %1$.2f responder com código %2$s</string>
<string name="smscommunicator_bolusfailed">Bólus falhado</string>
<string name="bolusdelivered">Bólus %1$.2fU enviado com êxito</string>
@ -1401,7 +1402,9 @@
<string name="isf_short">FSI</string>
<string name="target_short">ALV</string>
<string name="clone_label">Clone</string>
<string name="saveorresetchangesfirst">Guardar ou repor as alterações actuais primeiro</string>
<string name="deletecurrentprofile">Eliminar perfil actual?</string>
<string name="copytolocalprofile">Criar novo perfil local a partir desta troca de perfil?</string>
<string name="profilenamecontainsdot">Nome do perfil contém pontos.\nIsso não é suportado pelo NS.\nPerfil não é enviado para o NS.</string>
<string name="reorder_label">Reordenar</string>
</resources>

View file

@ -1417,4 +1417,5 @@
<string name="profilenamecontainsdot">Názov profilu obsahuje bodky.\nToto nie je podporované v NS.\nProfil nebude prenesený do NS.</string>
<string name="low_mark_comment">Spodná hodnota v oblasti cieľového rozsahu (iba zobrazovanie)</string>
<string name="high_mark_comment">Horná hodnota v oblasti cieľového rozsahu (iba zobrazovanie)</string>
<string name="reorder_label">Zmena poradia</string>
</resources>

View file

@ -1380,7 +1380,7 @@
<string name="old_version">old version</string>
<string name="very_old_version">very old version</string>
<string name="new_version_warning">New version for at least %1$d days available! Fallback to LGS after 60 days, loop will be disabled after 90 days</string>
<string name="new_version_warning">New version for at least %1$d days available! Fallback to LGS after %2$d days, loop will be disabled after %3$d days</string>
<string name="twohours">2h</string>
<string name="formatinsulinunits">%1$.2fU</string>

View file

@ -8,7 +8,7 @@ buildscript {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.2'
classpath 'com.android.tools.build:gradle:3.5.3'
classpath 'com.google.gms:google-services:4.3.3'
classpath 'io.fabric.tools:gradle:1.31.2'

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources></resources>

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources></resources>

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources></resources>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="app_name">AAPS</string>
<string name="label_actions_activity">AAPS</string>
<string name="label_xdrip">AAPS</string>
<string name="label_xdrip_large">AAPS(groß)</string>
<string name="label_xdrip_big_chart">AAPS(GroßerGraph)</string>
<string name="label_xdrip_no_chart">AAPS(KeinGraph)</string>
<string name="label_xdrip_circle">AAPS(Kreis)</string>
<string name="label_warning_sync">Keine Daten!</string>
<string name="label_warning_old">Veraltete Daten!</string>
<string name="label_warning_since">Seit %1$s</string>
<string name="label_warning_sync_aaps">Synchronisiere mit AAPS!</string>
<string name="msg_warning_sync">Keine Daten seit %1$s! Prüfe, ob AAPS auf dem Smartphone Daten an die Uhr sendet.</string>
<string name="msg_warning_old">AAPS Daten sind %1$s alt! Prüfe Deinen Sensor, xDrip+, NS, AAPS Einstellungen etc!</string>
</resources>

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources></resources>

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources></resources>

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources></resources>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="app_name">AAPS</string>
<string name="label_actions_activity">AAPS</string>
<string name="label_xdrip">AAPS</string>
<string name="label_xdrip_large">AAPS(Large)</string>
<string name="label_xdrip_big_chart">AAPS(GrandGraph)</string>
<string name="label_xdrip_no_chart">AAPS(SansGraph)</string>
<string name="label_xdrip_circle">AAPS(Cercle)</string>
<string name="label_warning_sync">Pas de données !</string>
<string name="label_warning_old">Données anciennes!</string>
<string name="label_warning_since">Depuis %1$s</string>
<string name="label_warning_sync_aaps">Synchro avec AAPS !</string>
<string name="msg_warning_sync">Aucune donnée deçues depuis %1$s! Vérifez sur le téléphone si AAPS envoie les données à la montre</string>
<string name="msg_warning_old">Données AAPS anciennes de %1$s ! Vérifiez votre capteur, les configurations xDrip+, NS, AAPS ou autre !</string>
</resources>

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources></resources>

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources></resources>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="app_name">AAPS</string>
<string name="label_actions_activity">AAPS</string>
<string name="label_xdrip">AAPS</string>
<string name="label_xdrip_large">AAPS(Largo)</string>
<string name="label_xdrip_big_chart">AAPS(GrandeGrafico)</string>
<string name="label_xdrip_no_chart">AAPS(NoGrafico)</string>
<string name="label_xdrip_circle">AAPS(Cerchio)</string>
<string name="label_warning_sync">Nessun dato!</string>
<string name="label_warning_old">Dati vecchi!</string>
<string name="label_warning_since">Da %1$s</string>
<string name="label_warning_sync_aaps">Sincro con AAPS!</string>
<string name="msg_warning_sync">Nessun dato ricevuto da %1$s! Controlla se AAPS sul telefono invia i dati allo smartwatch</string>
<string name="msg_warning_old">I dati di AAPS sono vecchi di %1$s ! Controlla il tuo sensore, xDrip+, NS, la configurazione di AAPS o altro!</string>
</resources>

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources></resources>

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources></resources>

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources></resources>

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources></resources>

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources></resources>

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources></resources>

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources></resources>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="app_name">AAPS</string>
<string name="label_actions_activity">AAPS</string>
<string name="label_xdrip">AAPS</string>
<string name="label_xdrip_large">AAPS(Grande)</string>
<string name="label_xdrip_big_chart">AAPS(GrafGrande)</string>
<string name="label_xdrip_no_chart">AAPS(SemGraf)</string>
<string name="label_xdrip_circle">AAPS(Círculo)</string>
<string name="label_warning_sync">Sem dados!</string>
<string name="label_warning_old">Dados antigos!</string>
<string name="label_warning_since">Desde %1$s</string>
<string name="label_warning_sync_aaps">Sincronizar com AAPS!</string>
<string name="msg_warning_sync">Nenhum dado recebido desde %1$s! Confira se o AAPS no telefone envia dados para o relógio</string>
<string name="msg_warning_old">Dados AAPS são %1$s antigos! Verifique sensor, xDrip+, NS, configuração AAPS ou outra!</string>
</resources>

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources></resources>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="app_name">AAPS</string>
<string name="label_actions_activity">AAPS</string>
<string name="label_xdrip">AAPS</string>
<string name="label_xdrip_large">AAPS (Большой)</string>
<string name="label_xdrip_big_chart">AAPS (Крупный график)</string>
<string name="label_xdrip_no_chart">AAPS (Без графика)</string>
<string name="label_xdrip_circle">AAPS (круглый)</string>
<string name="label_warning_sync">Данные не поступают!</string>
<string name="label_warning_old">Старые данные!</string>
<string name="label_warning_since">Длится с: %1$s</string>
<string name="label_warning_sync_aaps">Синхронизация с ААПС!</string>
<string name="msg_warning_sync">Нет данных начиная с %1$s! Убедитесь, что AAPS на телефоне отправляет данные на часы</string>
<string name="msg_warning_old">Старые данные AAPS от %1$s! Проверьте сенсор, xDrip +, NS, конфигурацию AAPS, другое!</string>
</resources>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="app_name">AAPS</string>
<string name="label_actions_activity">AAPS</string>
<string name="label_xdrip">AAPS</string>
<string name="label_xdrip_large">AAPS(Veľké)</string>
<string name="label_xdrip_big_chart">AAPS(VeľkýGraf)</string>
<string name="label_xdrip_no_chart">AAPS(ŽiadnyGraf)</string>
<string name="label_xdrip_circle">AAPS(Kruh)</string>
<string name="label_warning_sync">Žiadne dáta!</string>
<string name="label_warning_old">Zastaralé dáta!</string>
<string name="label_warning_since">Od %1$s</string>
<string name="label_warning_sync_aaps">Synchronizácia s AAPS!</string>
<string name="msg_warning_sync">Žiadne dáta od %1$s! Skontroluj, či AAPS na telefóne posiela dáta na hodinky</string>
<string name="msg_warning_old">AAPS dáta sú %1$s staré! Skontroluj tvoj senzor, xDrip+, NS, AAPS nastavenia atď.!</string>
</resources>

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources></resources>

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources></resources>

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources></resources>