Merge remote-tracking branch 'Nightscout/dev' into wear/new_custom_watchface

# Conflicts:
#	build.gradle
This commit is contained in:
Philoul 2023-08-26 23:12:34 +02:00
commit 11d0bce4ef
200 changed files with 1529 additions and 935 deletions

View file

@ -4,8 +4,6 @@
<option name="WRAP_WHEN_TYPING_REACHES_RIGHT_MARGIN" value="true" />
<JetCodeStyleSettings>
<option name="ALIGN_IN_COLUMNS_CASE_BRANCH" value="true" />
<option name="NAME_COUNT_TO_USE_STAR_IMPORT" value="2147483647" />
<option name="NAME_COUNT_TO_USE_STAR_IMPORT_FOR_MEMBERS" value="2147483647" />
<option name="BLANK_LINES_AROUND_BLOCK_WHEN_BRANCHES" value="1" />
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</JetCodeStyleSettings>

View file

@ -40,6 +40,21 @@
<string name="metadata_wear_import_filename">Název souboru: %1$s</string>
<string name="metadata_label_plugin_version">Verze pluginu: %1$s</string>
<string name="metadata_label_watchface_name_version">Jméno: %1$s (%2$s)</string>
<string name="pref_show_date">Zobrazit datum</string>
<string name="pref_show_iob">Zobrazit IOB</string>
<string name="pref_show_detailed_iob">Zobrazit detailní IOB</string>
<string name="pref_show_cob">Zobrazit COB</string>
<string name="pref_show_delta">Zobrazit deltu</string>
<string name="pref_show_detailed_delta">Zobrazit detailní deltu</string>
<string name="pref_show_avgdelta">Zobrazit průměrnou deltu</string>
<string name="pref_show_phone_battery">Zobrazit stav baterie telefonu</string>
<string name="pref_show_rig_battery">Zobrazit stav baterie dalších zařízení</string>
<string name="pref_show_basal_rate">Zobrazit bazál</string>
<string name="pref_show_loop_status">Zobrazit stav smyčky</string>
<string name="pref_show_bg">Zobrazit glykémii</string>
<string name="pref_show_bgi">Zobrazit BGI</string>
<string name="pref_show_direction_arrow">Zobrazit trendovou šipku</string>
<string name="pref_show_ago">Zobrazit aktualizováno před</string>
<string name="default_custom_watchface_comment">Výchozí ciferník. Můžete kliknout na tlačítko EXPORTOVAT CIFERNÍK pro vygenerování šablony</string>
<string name="wear_default_watchface">Výchozí ciferník</string>
</resources>

View file

@ -34,4 +34,27 @@
<string name="disconnecting">Verbindung wird getrennt</string>
<string name="waiting_for_disconnection">Warte auf Trennung der Verbindung</string>
<!-- Custom Watchface -->
<string name="metadata_label_watchface_created_at">Erstellt am: %1$s</string>
<string name="metadata_label_watchface_author">Autor: %1$s</string>
<string name="metadata_label_watchface_name">Name: %1$s</string>
<string name="metadata_wear_import_filename">Dateiname: %1$s</string>
<string name="metadata_label_plugin_version">Plugin-Version: %1$s</string>
<string name="metadata_label_watchface_name_version">Name: %1$s (%2$s)</string>
<string name="pref_show_date">Datum anzeigen</string>
<string name="pref_show_iob">IOB anzeigen</string>
<string name="pref_show_detailed_iob">Zeige detailliertes IOB</string>
<string name="pref_show_cob">COB anzeigen</string>
<string name="pref_show_delta">Abweichung anzeigen</string>
<string name="pref_show_detailed_delta">Zeige detailliertes Delta</string>
<string name="pref_show_avgdelta">Durchschnittl. Abweichung anzeigen</string>
<string name="pref_show_phone_battery">Akkustand Smartphone</string>
<string name="pref_show_rig_battery">Akkustand Rig</string>
<string name="pref_show_basal_rate">Basalrate anzeigen</string>
<string name="pref_show_loop_status">Loop Status anzeigen</string>
<string name="pref_show_bg">BZ anzeigen</string>
<string name="pref_show_bgi">Zeige BGI</string>
<string name="pref_show_direction_arrow">Trendpfeil anzeigen</string>
<string name="pref_show_ago">Min. seit letztem Wert</string>
<string name="default_custom_watchface_comment">Standard-Watchface, Du kannst auf den Knopf WATCHFACE exportieren drücken, um eine Vorlage zu generieren</string>
<string name="wear_default_watchface">Standard-Watchface</string>
</resources>

View file

@ -37,9 +37,24 @@
<string name="metadata_label_watchface_created_at">Creada: %1$s</string>
<string name="metadata_label_watchface_author">Autor: %1$s</string>
<string name="metadata_label_watchface_name">Nombre: %1$s</string>
<string name="metadata_wear_import_filename">Nombre de archivo:%1$s</string>
<string name="metadata_wear_import_filename">Nombre del archivo:%1$s</string>
<string name="metadata_label_plugin_version">Versión del plugin: %1$s</string>
<string name="metadata_label_watchface_name_version">Nombre: %1$s (%2$s)</string>
<string name="pref_show_date">Mostrar fecha</string>
<string name="pref_show_iob">Mostrar IOB</string>
<string name="pref_show_detailed_iob">Mostrar IOB detallada</string>
<string name="pref_show_cob">Mostrar COB</string>
<string name="pref_show_delta">Mostrar delta</string>
<string name="pref_show_detailed_delta">Mostrar delta detallado</string>
<string name="pref_show_avgdelta">Mostrar delta promedio</string>
<string name="pref_show_phone_battery">Mostrar batería del teléfono</string>
<string name="pref_show_rig_battery">Mostrar batería de la plataforma</string>
<string name="pref_show_basal_rate">Mostrar la tasa basal</string>
<string name="pref_show_loop_status">Mostrar estado del lazo</string>
<string name="pref_show_bg">Mostrar glucosa</string>
<string name="pref_show_bgi">Mostrar BGI (Índice de glucosa en sangre)</string>
<string name="pref_show_direction_arrow">Mostrar flecha de dirección</string>
<string name="pref_show_ago">Mostrar \"hace\"</string>
<string name="default_custom_watchface_comment">Esfera predeterminada, puedes hacer clic en el botón EXPORTAR ESFERA para generar una plantilla</string>
<string name="wear_default_watchface">Esfera por defecto</string>
</resources>

View file

@ -40,6 +40,21 @@
<string name="metadata_wear_import_filename">Nom du fichier : %1$s</string>
<string name="metadata_label_plugin_version">Version du plugin : %1$s</string>
<string name="metadata_label_watchface_name_version">Nom : %1$s (%2$s)</string>
<string name="pref_show_date">Afficher la date</string>
<string name="pref_show_iob">Afficher IA</string>
<string name="pref_show_detailed_iob">Afficher IA détaillée</string>
<string name="pref_show_cob">Afficher GA</string>
<string name="pref_show_delta">Montrer le delta</string>
<string name="pref_show_detailed_delta">Afficher Delta Détaillé</string>
<string name="pref_show_avgdelta">Afficher le delta moyen</string>
<string name="pref_show_phone_battery">Afficher la batterie du téléphone</string>
<string name="pref_show_rig_battery">Afficher la batterie de la plateforme </string>
<string name="pref_show_basal_rate">Afficher Basale</string>
<string name="pref_show_loop_status">Afficher État Boucle</string>
<string name="pref_show_bg">Afficher Glycémie</string>
<string name="pref_show_bgi">Afficher IGly</string>
<string name="pref_show_direction_arrow">Afficher Flèche</string>
<string name="pref_show_ago">Afficher Min Passées</string>
<string name="default_custom_watchface_comment">Cadran par défaut, vous pouvez cliquer sur le bouton EXPORTER WATCHFACE pour générer un modèle</string>
<string name="wear_default_watchface">Cadran par défaut</string>
</resources>

View file

@ -34,5 +34,22 @@
<string name="disconnecting">מתנתק</string>
<string name="waiting_for_disconnection">ממתין לניתוק</string>
<!-- Custom Watchface -->
<string name="metadata_label_watchface_created_at">נוצר ב: %1$s</string>
<string name="metadata_label_watchface_author">יוצר/ת: %1$s</string>
<string name="metadata_label_watchface_name">שם: %1$s</string>
<string name="metadata_wear_import_filename">שם קובץ: %1$s</string>
<string name="metadata_label_plugin_version">גרסת פלאגין: %1$s</string>
<string name="metadata_label_watchface_name_version">שם: %1$s (%2$s)</string>
<string name="pref_show_date">הצג תאריך</string>
<string name="pref_show_iob">הצג אינסולין פעיל</string>
<string name="pref_show_detailed_iob">הצגת אינס\' פעיל מפורט</string>
<string name="pref_show_cob">הצג פח\' פעילות</string>
<string name="pref_show_delta">הצג דלתא</string>
<string name="pref_show_detailed_delta">הצג דלתא מפורטת</string>
<string name="pref_show_avgdelta">הצג דלתא ממוצעת</string>
<string name="pref_show_phone_battery">הצג את סוללת הטלפון</string>
<string name="pref_show_rig_battery">הצג סוללת ריג</string>
<string name="pref_show_basal_rate">הצג מינון בזאלי</string>
<string name="default_custom_watchface_comment">ברירת המחדל של פני השעון, ניתן ללחוץ על כפתור ייצוא פני שעון כדי ליצור תבנית</string>
<string name="wear_default_watchface">ברירת מחדל פני שעון</string>
</resources>

View file

@ -1,21 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- DateUtil-->
<string name="minago">prieš %1$d min</string>
<string name="minago">prieš %1$d min.</string>
<string name="minago_long">Prieš %1$d min.</string>
<string name="hoursago">Prieš %1$.1f val.</string>
<string name="days_ago">Prieš %1$s d.</string>
<string name="days_ago_round">Prieš %1$.0f d.</string>
<string name="in_days"> %1$.0f d.</string>
<string name="in_days_round"> %1$.0f d.</string>
<string name="shorthour">v</string>
<string name="in_days">Po %1$.0f d.</string>
<string name="in_days_round">Po %1$.0f d.</string>
<string name="shorthour">val.</string>
<string name="days">d.</string>
<string name="hours">val.</string>
<string name="unit_second">sek.</string>
<string name="unit_minute">min.</string>
<string name="unit_hour">val.</string>
<string name="unit_day">d.</string>
<string name="unit_week">savaitė</string>
<string name="unit_week">sav.</string>
<string name="unit_seconds">sekundės</string>
<string name="unit_minutes"> min.</string>
<string name="unit_hours">val.</string>
@ -34,4 +34,27 @@
<string name="disconnecting">Atsijungiama</string>
<string name="waiting_for_disconnection">Laukiama atsijungimo</string>
<!-- Custom Watchface -->
<string name="metadata_label_watchface_created_at">Sukurta: %1$s</string>
<string name="metadata_label_watchface_author">Autorius: %1$s</string>
<string name="metadata_label_watchface_name">Vardas: %1$s</string>
<string name="metadata_wear_import_filename">Failo pavadinimas: %1$s</string>
<string name="metadata_label_plugin_version">Įskiepio versija: %1$s</string>
<string name="metadata_label_watchface_name_version">Pavadinimas: %1$s (%2$s)</string>
<string name="pref_show_date">Rodyti datą</string>
<string name="pref_show_iob">Rodyti AIO</string>
<string name="pref_show_detailed_iob">Rodyti detalų AIO</string>
<string name="pref_show_cob">Rodyti AAO</string>
<string name="pref_show_delta">Rodyti pokytį</string>
<string name="pref_show_detailed_delta">Rodyti glikemijos pokyčius detaliai</string>
<string name="pref_show_avgdelta">Rodyti vidutinį pokytį</string>
<string name="pref_show_phone_battery">Rodyti telefono bateriją</string>
<string name="pref_show_rig_battery">Rodyti įrenginio bateriją</string>
<string name="pref_show_basal_rate">Rodyti valandinę bazę</string>
<string name="pref_show_loop_status">Rodyti Ciklo statusą</string>
<string name="pref_show_bg">Rodyti KG</string>
<string name="pref_show_bgi">Rodyti GĮ</string>
<string name="pref_show_direction_arrow">Rodyti krypties rodyklę</string>
<string name="pref_show_ago">Laikas nuo pask. vertės</string>
<string name="default_custom_watchface_comment">Numatytasis ekranas. Paspaudus EKSPORTUOTI, bus sukurtas ruošinys</string>
<string name="wear_default_watchface">Numatytasis ekranas</string>
</resources>

View file

@ -34,4 +34,8 @@
<string name="disconnecting">Verbinding aan het verbreken</string>
<string name="waiting_for_disconnection">Wachten op het loskoppelen</string>
<!-- Custom Watchface -->
<string name="metadata_label_watchface_created_at">Gemaakt op: %1$s</string>
<string name="metadata_label_watchface_author">Auteur: %1$s</string>
<string name="metadata_label_watchface_name">Naam: %1$s</string>
<string name="metadata_wear_import_filename">Bestandsnaam: %1$s</string>
</resources>

View file

@ -38,5 +38,23 @@
<string name="metadata_label_watchface_author">Laget av: %1$s</string>
<string name="metadata_label_watchface_name">Navn: %1$s</string>
<string name="metadata_wear_import_filename">Filnavn: %1$s</string>
<string name="metadata_label_plugin_version">Plugin-versjon: %1$s</string>
<string name="metadata_label_watchface_name_version">Navn: %1$s (%2$s)</string>
<string name="pref_show_date">Vis dato</string>
<string name="pref_show_iob">Vis IOB</string>
<string name="pref_show_detailed_iob">Vis detaljert IOB</string>
<string name="pref_show_cob">Vis COB</string>
<string name="pref_show_delta">Vis Delta</string>
<string name="pref_show_detailed_delta">Vis detaljert Delta</string>
<string name="pref_show_avgdelta">Vis Gj. snitt Delta</string>
<string name="pref_show_phone_battery">Vis telefonbatteri</string>
<string name="pref_show_rig_battery">Vis riggens batteri</string>
<string name="pref_show_basal_rate">Vis basalrate</string>
<string name="pref_show_loop_status">Vis loop status</string>
<string name="pref_show_bg">Vis BS</string>
<string name="pref_show_bgi">Vis BS</string>
<string name="pref_show_direction_arrow">Vis retningspil</string>
<string name="pref_show_ago">Vis tid siden</string>
<string name="default_custom_watchface_comment">Standard klokkebakgrunn, du kan klikke på EKSPORTER KLOKKEBAKGRUNN for å lage en mal</string>
<string name="wear_default_watchface">Standard klokkebakgrunn</string>
</resources>

View file

@ -34,4 +34,27 @@
<string name="disconnecting">Rozłączanie</string>
<string name="waiting_for_disconnection">Oczekiwanie na rozłączenie</string>
<!-- Custom Watchface -->
<string name="metadata_label_watchface_created_at">Utworzono: %1$s</string>
<string name="metadata_label_watchface_author">Autor: %1$s</string>
<string name="metadata_label_watchface_name">Nazwa: %1$s</string>
<string name="metadata_wear_import_filename">Nazwa pliku: %1$s</string>
<string name="metadata_label_plugin_version">Wersja wtyczki: %1$s</string>
<string name="metadata_label_watchface_name_version">Nazwa: %1$s (%2$s)</string>
<string name="pref_show_date">Pokaż Datę</string>
<string name="pref_show_iob">Pokaż IOB</string>
<string name="pref_show_detailed_iob">Pokaż szczegółowe IOB</string>
<string name="pref_show_cob">Pokaż COB</string>
<string name="pref_show_delta">Pokaż Deltę</string>
<string name="pref_show_detailed_delta">Pokaż szczegółowo Deltę</string>
<string name="pref_show_avgdelta">Pokaż Śr. Deltę</string>
<string name="pref_show_phone_battery">Pokaż Baterię Telefonu</string>
<string name="pref_show_rig_battery">Pokaż Baterię Zestawu</string>
<string name="pref_show_basal_rate">Pokaż Dawkę Bazową</string>
<string name="pref_show_loop_status">Pokaż Status Pętli</string>
<string name="pref_show_bg">Pokaż glikemię</string>
<string name="pref_show_bgi">Pokaż BGI</string>
<string name="pref_show_direction_arrow">Pokaż Strzałkę Trendu</string>
<string name="pref_show_ago">Pokaż Aktualność</string>
<string name="default_custom_watchface_comment">Domyślna tarcza, możesz kliknąć na EXPORTUJ TARCZĘ aby wygenerować szablon</string>
<string name="wear_default_watchface">Domyślna Tarcza</string>
</resources>

View file

@ -34,4 +34,27 @@
<string name="disconnecting">A desligar</string>
<string name="waiting_for_disconnection">Aguardando a desconexão</string>
<!-- Custom Watchface -->
<string name="metadata_label_watchface_created_at">Criado por %1$s</string>
<string name="metadata_label_watchface_author">Autor: %1$s</string>
<string name="metadata_label_watchface_name">Nome: %1$s</string>
<string name="metadata_wear_import_filename">Nome do arquivo: %1$s</string>
<string name="metadata_label_plugin_version">Versão do plugin: %1$s</string>
<string name="metadata_label_watchface_name_version">Nome: %1$s (%2$s)</string>
<string name="pref_show_date">Mostrar Data</string>
<string name="pref_show_iob">Mostrar IA</string>
<string name="pref_show_detailed_iob">Mostrar detalhes da IA</string>
<string name="pref_show_cob">Mostrar CA</string>
<string name="pref_show_delta">Mostrar Delta</string>
<string name="pref_show_detailed_delta">Mostrar Delta detalho</string>
<string name="pref_show_avgdelta">Mostrar média de delta</string>
<string name="pref_show_phone_battery">Mostrar bateria do telefone</string>
<string name="pref_show_rig_battery">Mostrar bateria de rig</string>
<string name="pref_show_basal_rate">Mostrar Taxa Basal</string>
<string name="pref_show_loop_status">Mostrar Status do Loop</string>
<string name="pref_show_bg">Mostrar glicemia</string>
<string name="pref_show_bgi">Mostrar BGI</string>
<string name="pref_show_direction_arrow">Mostrar seta de tendência</string>
<string name="pref_show_ago">Exibir atrás</string>
<string name="default_custom_watchface_comment">Watchface padrão, você pode clicar no botão EXPORTAR WATCHFACE para gerar um modelo</string>
<string name="wear_default_watchface">Watchface padrão</string>
</resources>

View file

@ -2,7 +2,12 @@
<resources>
<!-- DateUtil-->
<string name="minago">%1$d m atrás</string>
<string name="minago_long">%%1$d minutos atrás</string>
<string name="hoursago">%1$.1f h atrás</string>
<string name="days_ago">%1$.1f dias atrás</string>
<string name="days_ago_round">%1$.0f dias atrás</string>
<string name="in_days">em %1$.0f dias</string>
<string name="in_days_round">em %1$.0f dias</string>
<string name="shorthour">h</string>
<string name="days">dias</string>
<string name="hours">horas</string>
@ -18,6 +23,10 @@
<string name="unit_weeks">semanas</string>
<string name="shortminute">m</string>
<string name="shortday">d</string>
<string name="later_today">Hoje mais tarde</string>
<string name="tomorrow">Amanhã</string>
<string name="today">Hoje</string>
<string name="yesterday">Ontem</string>
<!-- Rx -->
<string name="connecting_for">A ligar durante %1$d s</string>
<string name="handshaking">Cumprimento</string>
@ -25,4 +34,27 @@
<string name="disconnecting">A desconectar</string>
<string name="waiting_for_disconnection">A aguardar a desconexão</string>
<!-- Custom Watchface -->
<string name="metadata_label_watchface_created_at">Criado em: %1$s</string>
<string name="metadata_label_watchface_author">Autor: %1$s</string>
<string name="metadata_label_watchface_name">Nome: %1$s</string>
<string name="metadata_wear_import_filename">Nome do ficheiro: %1$s</string>
<string name="metadata_label_plugin_version">Versão do plugin: %1$s</string>
<string name="metadata_label_watchface_name_version">Nome: %1$s (%2$s)</string>
<string name="pref_show_date">Mostrar Data</string>
<string name="pref_show_iob">Mostrar IA</string>
<string name="pref_show_detailed_iob">Mostrar IA detalhada</string>
<string name="pref_show_cob">Mostrar HCA</string>
<string name="pref_show_delta">Mostrar Delta</string>
<string name="pref_show_detailed_delta">Mostrar Delta detalhado</string>
<string name="pref_show_avgdelta">Mostrar Delta Médio</string>
<string name="pref_show_phone_battery">Mostrar Bateria Telefone</string>
<string name="pref_show_rig_battery">Mostrar Bateria Equipamento</string>
<string name="pref_show_basal_rate">Mostrar Taxa Basal</string>
<string name="pref_show_loop_status">Mostrar Estado Loop</string>
<string name="pref_show_bg">Mostrar glicemia</string>
<string name="pref_show_bgi">Mostrar IG</string>
<string name="pref_show_direction_arrow">Mostrar Seta Direcção</string>
<string name="pref_show_ago">Mostrar Atrás</string>
<string name="default_custom_watchface_comment">Watchface padrão, pode clicar no botão EXPORTAR WATCHFACE para gerar um modelo</string>
<string name="wear_default_watchface">Watchface padrão</string>
</resources>

View file

@ -34,4 +34,24 @@
<string name="disconnecting">Bağlantı kesiliyor</string>
<string name="waiting_for_disconnection">Bağlantının kesilmesi bekleniyor</string>
<!-- Custom Watchface -->
<string name="metadata_label_watchface_author">Yetki: %1$s</string>
<string name="metadata_label_watchface_name">İsim: %1$s</string>
<string name="metadata_wear_import_filename">Dosya adı: %1$s</string>
<string name="metadata_label_plugin_version">Eklenti sürümü: %1$s</string>
<string name="pref_show_iob">AİNS Göster</string>
<string name="pref_show_detailed_iob">Detalı AİNS göster</string>
<string name="pref_show_cob">AKRB göster</string>
<string name="pref_show_delta">Deltayı göster</string>
<string name="pref_show_detailed_delta">Detaylı Delta göster</string>
<string name="pref_show_avgdelta">OrtDelta\'yı Göster</string>
<string name="pref_show_phone_battery">Telefon Pilini Göster</string>
<string name="pref_show_rig_battery">Teçhizat Pilini Göster</string>
<string name="pref_show_basal_rate">Bazal Oranı Göster</string>
<string name="pref_show_loop_status">Döngü Durumunu Göster</string>
<string name="pref_show_bg">KŞ\'ni göster</string>
<string name="pref_show_bgi">KŞ Etkisi Göster</string>
<string name="pref_show_direction_arrow">Yön Oku Göster</string>
<string name="pref_show_ago">Önce Göster</string>
<string name="default_custom_watchface_comment">Varsayılan saat arayüzü; bir şablon oluşturmak için SAAT ARAYÜZÜNÜ DIŞA AKTAR butonuna tıklayabilirsiniz</string>
<string name="wear_default_watchface">Varsayılan saat arayüzü</string>
</resources>

View file

@ -13,6 +13,7 @@ import android.text.style.ForegroundColorSpan
import android.text.util.Linkify
import android.util.TypedValue
import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import android.view.MotionEvent
import android.view.View
@ -26,6 +27,7 @@ import androidx.appcompat.app.ActionBarDrawerToggle
import androidx.appcompat.widget.Toolbar
import androidx.core.view.GravityCompat
import androidx.core.view.MenuCompat
import androidx.core.view.MenuProvider
import androidx.viewpager2.widget.ViewPager2
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.tabs.TabLayoutMediator
@ -165,6 +167,114 @@ class MainActivity : DaggerAppCompatActivityWithResult() {
else finish()
}
})
addMenuProvider(object : MenuProvider {
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
MenuCompat.setGroupDividerEnabled(menu, true)
this@MainActivity.menu = menu
menuInflater.inflate(R.menu.menu_main, menu)
pluginPreferencesMenuItem = menu.findItem(R.id.nav_plugin_preferences)
}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean =
when (menuItem.itemId) {
R.id.nav_preferences -> {
protectionCheck.queryProtection(this@MainActivity, ProtectionCheck.Protection.PREFERENCES, {
startActivity(
Intent(this@MainActivity, PreferencesActivity::class.java)
.setAction("info.nightscout.androidaps.MainActivity")
.putExtra("id", -1)
)
})
true
}
R.id.nav_historybrowser -> {
startActivity(Intent(this@MainActivity, HistoryBrowseActivity::class.java).setAction("info.nightscout.androidaps.MainActivity"))
true
}
R.id.nav_treatments -> {
startActivity(Intent(this@MainActivity, TreatmentsActivity::class.java).setAction("info.nightscout.androidaps.MainActivity"))
true
}
R.id.nav_setupwizard -> {
protectionCheck.queryProtection(this@MainActivity, ProtectionCheck.Protection.PREFERENCES, {
startActivity(Intent(this@MainActivity, SetupWizardActivity::class.java).setAction("info.nightscout.androidaps.MainActivity"))
})
true
}
R.id.nav_about -> {
var message = "Build: ${BuildConfig.BUILDVERSION}\n"
message += "Flavor: ${BuildConfig.FLAVOR}${BuildConfig.BUILD_TYPE}\n"
message += "${rh.gs(info.nightscout.configuration.R.string.configbuilder_nightscoutversion_label)} ${activePlugin.activeNsClient?.detectedNsVersion() ?: rh.gs(info.nightscout.plugins.R.string.not_available_full)}"
if (config.isEngineeringMode()) message += "\n${rh.gs(info.nightscout.configuration.R.string.engineering_mode_enabled)}"
if (config.isUnfinishedMode()) message += "\nUnfinished mode enabled"
if (!fabricPrivacy.fabricEnabled()) message += "\n${rh.gs(info.nightscout.core.ui.R.string.fabric_upload_disabled)}"
message += rh.gs(info.nightscout.core.ui.R.string.about_link_urls)
val messageSpanned = SpannableString(message)
Linkify.addLinks(messageSpanned, Linkify.WEB_URLS)
MaterialAlertDialogBuilder(this@MainActivity, info.nightscout.core.ui.R.style.DialogTheme)
.setTitle(rh.gs(R.string.app_name) + " " + BuildConfig.VERSION)
.setIcon(iconsProvider.getIcon())
.setMessage(messageSpanned)
.setPositiveButton(rh.gs(info.nightscout.core.ui.R.string.ok), null)
.setNeutralButton(rh.gs(info.nightscout.core.ui.R.string.cta_dont_kill_my_app_info)) { _, _ ->
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse("https://dontkillmyapp.com/" + Build.MANUFACTURER.lowercase().replace(" ", "-"))
)
)
}
.create().apply {
show()
findViewById<TextView>(android.R.id.message)?.movementMethod = LinkMovementMethod.getInstance()
}
true
}
R.id.nav_exit -> {
aapsLogger.debug(LTag.CORE, "Exiting")
uel.log(Action.EXIT_AAPS, Sources.Aaps)
rxBus.send(EventAppExit())
finish()
System.runFinalization()
exitProcess(0)
}
R.id.nav_plugin_preferences -> {
val plugin = (binding.mainPager.adapter as TabPageAdapter).getPluginAt(binding.mainPager.currentItem)
protectionCheck.queryProtection(this@MainActivity, ProtectionCheck.Protection.PREFERENCES, {
startActivity(
Intent(this@MainActivity, PreferencesActivity::class.java)
.setAction("info.nightscout.androidaps.MainActivity")
.putExtra("id", plugin.preferencesId)
)
})
true
}
/*
R.id.nav_survey -> {
startActivity(Intent(this, SurveyActivity::class.java))
return true
}
*/
R.id.nav_defaultprofile -> {
startActivity(Intent(this@MainActivity, ProfileHelperActivity::class.java).setAction("info.nightscout.androidaps.MainActivity"))
true
}
R.id.nav_stats -> {
startActivity(Intent(this@MainActivity, StatsActivity::class.java).setAction("info.nightscout.androidaps.MainActivity"))
true
}
else ->
actionBarDrawerToggle.onOptionsItemSelected(menuItem)
}
})
// Setup views on 2nd and next activity start
// On 1st start app is still initializing, start() is delayed and run from EventAppInitialized
if (config.appInitialized) start()
@ -332,115 +442,6 @@ class MainActivity : DaggerAppCompatActivityWithResult() {
super.onPanelClosed(featureId, menu)
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
super.onCreateOptionsMenu(menu)
MenuCompat.setGroupDividerEnabled(menu, true)
this.menu = menu
menuInflater.inflate(R.menu.menu_main, menu)
pluginPreferencesMenuItem = menu.findItem(R.id.nav_plugin_preferences)
return true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
super.onOptionsItemSelected(item)
when (item.itemId) {
R.id.nav_preferences -> {
protectionCheck.queryProtection(this, ProtectionCheck.Protection.PREFERENCES, {
startActivity(
Intent(this, PreferencesActivity::class.java)
.setAction("info.nightscout.androidaps.MainActivity")
.putExtra("id", -1)
)
})
return true
}
R.id.nav_historybrowser -> {
startActivity(Intent(this, HistoryBrowseActivity::class.java).setAction("info.nightscout.androidaps.MainActivity"))
return true
}
R.id.nav_treatments -> {
startActivity(Intent(this, TreatmentsActivity::class.java).setAction("info.nightscout.androidaps.MainActivity"))
return true
}
R.id.nav_setupwizard -> {
protectionCheck.queryProtection(this, ProtectionCheck.Protection.PREFERENCES, {
startActivity(Intent(this, SetupWizardActivity::class.java).setAction("info.nightscout.androidaps.MainActivity"))
})
return true
}
R.id.nav_about -> {
var message = "Build: ${BuildConfig.BUILDVERSION}\n"
message += "Flavor: ${BuildConfig.FLAVOR}${BuildConfig.BUILD_TYPE}\n"
message += "${rh.gs(info.nightscout.configuration.R.string.configbuilder_nightscoutversion_label)} ${activePlugin.activeNsClient?.detectedNsVersion() ?: rh.gs(info.nightscout.plugins.R.string.not_available_full)}"
if (config.isEngineeringMode()) message += "\n${rh.gs(info.nightscout.configuration.R.string.engineering_mode_enabled)}"
if (config.isUnfinishedMode()) message += "\nUnfinished mode enabled"
if (!fabricPrivacy.fabricEnabled()) message += "\n${rh.gs(info.nightscout.core.ui.R.string.fabric_upload_disabled)}"
message += rh.gs(info.nightscout.core.ui.R.string.about_link_urls)
val messageSpanned = SpannableString(message)
Linkify.addLinks(messageSpanned, Linkify.WEB_URLS)
MaterialAlertDialogBuilder(this, info.nightscout.core.ui.R.style.DialogTheme)
.setTitle(rh.gs(R.string.app_name) + " " + BuildConfig.VERSION)
.setIcon(iconsProvider.getIcon())
.setMessage(messageSpanned)
.setPositiveButton(rh.gs(info.nightscout.core.ui.R.string.ok), null)
.setNeutralButton(rh.gs(info.nightscout.core.ui.R.string.cta_dont_kill_my_app_info)) { _, _ ->
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse("https://dontkillmyapp.com/" + Build.MANUFACTURER.lowercase().replace(" ", "-"))
)
)
}
.create().apply {
show()
findViewById<TextView>(android.R.id.message)?.movementMethod = LinkMovementMethod.getInstance()
}
return true
}
R.id.nav_exit -> {
aapsLogger.debug(LTag.CORE, "Exiting")
uel.log(Action.EXIT_AAPS, Sources.Aaps)
rxBus.send(EventAppExit())
finish()
System.runFinalization()
exitProcess(0)
}
R.id.nav_plugin_preferences -> {
val plugin = (binding.mainPager.adapter as TabPageAdapter).getPluginAt(binding.mainPager.currentItem)
protectionCheck.queryProtection(this, ProtectionCheck.Protection.PREFERENCES, {
startActivity(
Intent(this, PreferencesActivity::class.java)
.setAction("info.nightscout.androidaps.MainActivity")
.putExtra("id", plugin.preferencesId)
)
})
return true
}
/*
R.id.nav_survey -> {
startActivity(Intent(this, SurveyActivity::class.java))
return true
}
*/
R.id.nav_defaultprofile -> {
startActivity(Intent(this, ProfileHelperActivity::class.java).setAction("info.nightscout.androidaps.MainActivity"))
return true
}
R.id.nav_stats -> {
startActivity(Intent(this, StatsActivity::class.java).setAction("info.nightscout.androidaps.MainActivity"))
return true
}
}
return actionBarDrawerToggle.onOptionsItemSelected(item)
}
// Correct place for calling setUserStats() would be probably MainApp
// but we need to have it called at least once a day. Thus this location

View file

@ -42,6 +42,7 @@ import info.nightscout.plugins.general.overview.notifications.NotificationStore
import info.nightscout.plugins.general.themes.ThemeSwitcherPlugin
import info.nightscout.rx.logging.AAPSLogger
import info.nightscout.rx.logging.LTag
import info.nightscout.shared.extensions.runOnUiThread
import info.nightscout.shared.interfaces.ResourceHelper
import info.nightscout.shared.sharedPreferences.SP
import info.nightscout.shared.utils.DateUtil
@ -106,7 +107,7 @@ class MainApp : DaggerApplication() {
}
disposable += compatDBHelper.dbChangeDisposable()
registerActivityLifecycleCallbacks(activityMonitor)
profileSwitchPlugin.setThemeMode()
runOnUiThread { profileSwitchPlugin.setThemeMode() }
aapsLogger.debug("Version: " + BuildConfig.VERSION_NAME)
aapsLogger.debug("BuildVersion: " + BuildConfig.BUILDVERSION)
aapsLogger.debug("Remote: " + BuildConfig.REMOTE)
@ -223,6 +224,11 @@ class MainApp : DaggerApplication() {
sp.putBoolean(info.nightscout.plugins.sync.R.string.key_ns_log_app_started_event, config.APS)
if (sp.getString(info.nightscout.configuration.R.string.key_maintenance_logs_email, "") == "logs@androidaps.org")
sp.putString(info.nightscout.configuration.R.string.key_maintenance_logs_email, "logs@aaps.app")
// fix values for theme switching
sp.putString(info.nightscout.plugins.R.string.value_dark_theme, "dark")
sp.putString(info.nightscout.plugins.R.string.value_light_theme, "light")
sp.putString(info.nightscout.plugins.R.string.value_system_theme, "system")
}
override fun applicationInjector(): AndroidInjector<out DaggerApplication> {

View file

@ -4,14 +4,10 @@ import android.annotation.SuppressLint
import android.content.Context
import android.os.Bundle
import android.util.DisplayMetrics
import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.RelativeLayout
import android.widget.TextView
import androidx.core.view.MenuProvider
import com.google.android.material.datepicker.MaterialDatePicker
import com.jjoe64.graphview.GraphView
import dagger.android.HasAndroidInjector
@ -148,20 +144,6 @@ class HistoryBrowseActivity : TranslatedDaggerAppCompatActivity() {
historyBrowserData.overviewData.fromTime = bundle.getLong("start", 0)
historyBrowserData.overviewData.toTime = bundle.getLong("end", 0)
}
// Add menu items without overriding methods in the Activity
addMenuProvider(object : MenuProvider {
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean =
when (menuItem.itemId) {
android.R.id.home -> {
onBackPressedDispatcher.onBackPressed()
true
}
else -> false
}
})
}
override fun onPause() {

View file

@ -25,12 +25,12 @@
<string name="notloadedplugins">Faltan perfiles por cargar!</string>
<string name="valuesnotstored">Valores no guardados!</string>
<string name="invalid">INVÁLIDO</string>
<string name="gradually_increase_notification_volume">Aumentar gradualmente el volumen de las alarmas y de las notificaciones</string>
<string name="localalertsettings_title">Alarmas locales</string>
<string name="enable_missed_bg_readings_alert">Alarma si no llegan datos de glucosa</string>
<string name="enable_pump_unreachable_alert">Alarma si la bomba no es alcanzable</string>
<string name="gradually_increase_notification_volume">Aumentar gradualmente el volumen de las alertas y notificaciones</string>
<string name="localalertsettings_title">Alertas locales</string>
<string name="enable_missed_bg_readings_alert">Alerta si no llegan datos de glucosa</string>
<string name="enable_pump_unreachable_alert">Alerta si la bomba no es alcanzable</string>
<string name="pump_unreachable_threshold">Bomba no alcanzable durante [min]</string>
<string name="enable_carbs_req_alert">Alarma si se necesitan carbohidratos</string>
<string name="enable_carbs_req_alert">Alerta si se necesitan carbohidratos</string>
<string name="open_navigation">Abrir navegación</string>
<string name="close_navigation">Cerrar navegación</string>
<string name="remove_items">Eliminar elementos</string>
@ -43,11 +43,11 @@
<string name="show_removed">Mostrar eliminados</string>
<string name="clearqueueconfirm">¿Borrar cola? ¡Se perderán todos los datos de la cola!</string>
<string name="chartmenu">Menú gráfico</string>
<string name="authorizationfailed">Ha fallado la autorización</string>
<string name="authorizationfailed">Autorización errónea</string>
<string name="copytolocalprofile_invalid">No se puede crear el perfil. El perfil es inválido.</string>
<string name="clear_filter">Borrar filtro</string>
<string name="cannula">Cánula</string>
<string name="email_address">Dirección de Correo Electrónico</string>
<string name="email_address">Dirección de correo electrónico</string>
<string name="remove_bg_readings">Eliminar lecturas de glucosa</string>
<string name="identification_not_set">Identificación no establecida en el modo dev</string>
<string name="a11y_dialog">diálogo</string>

View file

@ -27,7 +27,7 @@
<string name="invalid">KLAIDA</string>
<string name="gradually_increase_notification_volume">Palaipsniui didinkite įspėjimų ir pranešimų garso lygį</string>
<string name="localalertsettings_title">Lokalūs perspėjimai</string>
<string name="enable_missed_bg_readings_alert">Perspėjimas apie negautus KG duomenis</string>
<string name="enable_missed_bg_readings_alert">Perspėjimas apie negautus glikemijos duomenis</string>
<string name="enable_pump_unreachable_alert">Perspėjimas apie nepasiekiamą pompą</string>
<string name="pump_unreachable_threshold">Perspėjimo apie nepasiekiamą pompą riba [min]</string>
<string name="enable_carbs_req_alert">Perspėti, jei būtini angliavandeniai</string>

View file

@ -11,7 +11,7 @@
<string name="save">Salvar</string>
<string name="reloadprofile">Recarregar perfil</string>
<string name="correctionbous">Correção</string>
<string name="ns_upload_only">(PERIGOSO PARA DESATIVAR) somente upload para NS</string>
<string name="ns_upload_only">(PERIGOSO DESATIVAR) somente upload para NS</string>
<string name="ns_upload_only_summary">Somente upload para NS (sincronização desativada). Não é eficaz em SGV ao menos que você selecione uma fonte local como xDrip+. Não é eficaz em perfis enquanto NS-Profiles é usado.\n!!! AVISO!!! Desativar esta opção pode causar disfunções e overdose de insulina se qualquer um dos componentes (AAPS, NS, xDrip+) estiver configurado incorretamente. Observe cuidadosamente se os dados exibidos pelo AAPS correspondem ao estado da bomba!</string>
<string name="wear">Wear</string>
<string name="nav_about">Sobre</string>
@ -35,7 +35,7 @@
<string name="close_navigation">Fechar a navegação</string>
<string name="remove_items">Remover itens</string>
<string name="sort_items">Ordenar itens</string>
<string name="error_adding_treatment_title">Dados tratamento incompletos</string>
<string name="error_adding_treatment_title">Dados de tratamento incompletos</string>
<string name="error_adding_treatment_message">Um tratamento (insulina: %1$.2f, hidratos: %2$d, às: %3$s) não ficou gravado. Por favor verifique se foi realmente efectuado e se sim adicione manualmente aos tratamentos.</string>
<string name="generated_ecarbs_note">eCarbs: %1$d g (%2$d h), atraso: %3$d m</string>
<string name="profile_total">== ∑ %1$s U</string>

View file

@ -33,6 +33,8 @@
<string name="enable_carbs_req_alert">Alertar se forem necessários Hidratos</string>
<string name="open_navigation">Abrir a navegação</string>
<string name="close_navigation">Fechar a navegação</string>
<string name="remove_items">Remover items</string>
<string name="sort_items">Ordenar itens</string>
<string name="error_adding_treatment_title">Dados tratamento incompletos</string>
<string name="error_adding_treatment_message">Um tratamento (insulina: %1$.2f, hidratos: %2$d, às: %3$s) não ficou gravado. Por favor verifique se foi realmente efectuado e se sim adicione manualmente aos tratamentos.</string>
<string name="generated_ecarbs_note">eCarbs: %1$d g (%2$d h), atraso: %3$d m</string>
@ -46,6 +48,13 @@
<string name="clear_filter">Limpar filtros</string>
<string name="cannula">Cânula</string>
<string name="email_address">Endereço de email</string>
<string name="remove_bg_readings">Remover leituras Glicemia</string>
<string name="identification_not_set">Identificação não definida no modo desenvolvimento</string>
<string name="a11y_dialog">diálogo</string>
<!-- WEAR OS-->
<string name="wear_unknown_action_string">Comando de ação desconhecido:</string>
<string name="remove_selected_items">Remover itens selecionados</string>
<string name="count_selected">%1$d selecionados</string>
<string name="sort_label">Ordenar</string>
<string name="search">Procurar</string>
</resources>

View file

@ -4,7 +4,7 @@ buildscript {
ext {
kotlin_version = '1.8.22'
core_version = '1.10.1'
rxjava_version = '3.1.6'
rxjava_version = '3.1.7'
rxandroid_version = '3.0.2'
rxkotlin_version = '3.0.1'
room_version = '2.5.2'
@ -50,7 +50,7 @@ buildscript {
play_services_location_version = '21.0.1'
kotlinx_datetime_version = '0.4.0'
kotlinx_serialization_version = '1.5.1'
kotlinx_serialization_version = '1.6.0'
caverock_androidsvg_version = '1.4'
}
@ -59,9 +59,9 @@ buildscript {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.1.0'
classpath 'com.android.tools.build:gradle:8.1.1'
classpath 'com.google.gms:google-services:4.3.15'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.8'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files

View file

@ -151,6 +151,6 @@ interface OverviewData {
var dsMaxSeries: LineGraphSeries<ScaledDataPoint>
var dsMinSeries: LineGraphSeries<ScaledDataPoint>
var heartRateScale: Scale
var heartRateGraphSeries: LineGraphSeries<DataPointWithLabelInterface>
var heartRateGraphSeries: PointsWithLabelGraphSeries<DataPointWithLabelInterface>
}

View file

@ -17,7 +17,7 @@ class HeartRateDataPoint(
override val label: String = ""
override val duration = data.duration
override val shape = PointsWithLabelGraphSeries.Shape.HEARTRATE
override val size = 1f
override val size = 10f
override val paintStyle: Paint.Style = Paint.Style.FILL
override fun color(context: Context?): Int = rh.gac(context, info.nightscout.core.ui.R.attr.heartRateColor)

View file

@ -245,6 +245,11 @@ public class PointsWithLabelGraphSeries<E extends DataPointWithLabelInterface> e
mPaint.setFakeBoldText(true);
canvas.drawText(value.getLabel(), endX, endY, mPaint);
}
} else if (value.getShape() == Shape.HEARTRATE) {
mPaint.setStrokeWidth(0);
Rect bounds = new Rect((int) endX, (int) endY - 8, (int) (xPlusLength), (int) endY + 8);
mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
canvas.drawRect(bounds, mPaint);
} else if (value.getShape() == Shape.PROFILE) {
Drawable drawable = ContextCompat.getDrawable(graphView.getContext(), R.drawable.ic_ribbon_profile);
assert drawable != null;

View file

@ -16,7 +16,7 @@ interface OverviewMenus {
SEN,
ACT,
DEVSLOPE,
HR,
HR
}
val setting: List<Array<Boolean>>

View file

@ -14,6 +14,7 @@
<!-- PumpType-->
<string name="def_extended_note">* Somente valores discretos nos intervalos são suportados como granularidade para basal/bolus na bomba virtual.</string>
<!-- PumpPluginBase -->
<string name="pump_driver_changed" comment="26 characters max for translation">Driver da bomba trocado.</string>
<!-- DecimalFormatter-->
<string name="format_insulin_units1">%1$.1f U</string>
<string name="format_insulin_units">%1$.2f U</string>

View file

@ -1,6 +1,11 @@
package info.nightscout.core.ui.activities
import android.content.Context
import android.os.Bundle
import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import androidx.core.view.MenuProvider
import dagger.android.support.DaggerAppCompatActivity
import info.nightscout.core.ui.locale.LocaleHelper
@ -8,4 +13,23 @@ open class TranslatedDaggerAppCompatActivity : DaggerAppCompatActivity() {
override fun attachBaseContext(newBase: Context) {
super.attachBaseContext(LocaleHelper.wrap(newBase))
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Add menu items without overriding methods in the Activity
addMenuProvider(object : MenuProvider {
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean =
when (menuItem.itemId) {
android.R.id.home -> {
onBackPressedDispatcher.onBackPressed()
true
}
else -> false
}
})
}
}

View file

@ -164,6 +164,7 @@
<string name="isf_short">ISF</string>
<string name="canceling_tbr_failed">Abbruch der temporären Basalrate fehlgeschlagen</string>
<string name="canceling_eb_failed">Der Abbruch des erweiterten Bolus ist fehlgeschlagen</string>
<string name="virtualpump_uploadstatus_title">Status zu NS oder Tidepool hochladen</string>
<string name="suspendloop_label">Deaktiviere/Pausiere den Loop</string>
<string name="iob_label">Aktives Insulin (IOB)</string>
<!-- Protection-->
@ -375,6 +376,9 @@
<string name="carbs_g">KH %1$d g</string>
<string name="extended_bolus_u_min">VERLÄNGERTER BOLUS %1$.2f IE %2$d min</string>
<string name="load_events">Lade Ereignisse</string>
<string name="clear_alarms">ALARME LÖSCHEN</string>
<string name="deactivate">DEAKTIVIEREN</string>
<string name="update_time">ZEIT AKTUALIEREN</string>
<string name="load_history">HISTORIE LADEN %1$d</string>
<string name="load_tdds">Lade TDDs</string>
<string name="set_profile">PROFIL SETZEN</string>
@ -420,6 +424,7 @@
<string name="autotune_ic_warning">Ausgewähltes Profil hat %1$d IC-Werte. Autotune wird %2$.2f g/U verwenden</string>
<string name="autotune_isf_warning">Ausgewähltes Profil hat %1$d ISF-Werte. Autotune wird %2$.1f %3$s/U verwenden</string>
<string name="autotune_error">Fehler in den Eingabedaten, versuche erneut Autotune auszuführen oder reduziere die Anzahl der Tage</string>
<string name="autotune_error_more_days">Fehler in den Eingabedaten, erhöhe die Anzahl der Tage</string>
<string name="autotune_warning_during_run">Autotune Berechnung gestartet, bitte gedulde Dich einen Moment</string>
<string name="autotune_warning_after_run">Überprüfe die Ergebnisse sorgfältig, bevor Du sie verwendest!</string>
<string name="autotune_partial_result">Teilergebnistag %1$d / %2$d angepasst</string>
@ -452,6 +457,7 @@
<string name="cobvsiob">COB vs IOB</string>
<string name="slowabsorptiondetected"><![CDATA[<font color=\'%1$s\'>!!!!! Langsamer Kohlenhydrat-Abbau erkannt: %2$d%% der Zeit. Überprüfe Deine Berechnung. COB könnte zu hoch sein und deswegen zu viel Insulin abgegeben werden!!!!!</font>]]></string>
<string name="partialboluswizard">Abgabe von [%] des Ergebnisses des Bolus-Rechners</string>
<string name="partialboluswizard_reset_time">Schwellenwert für alte Glykämie [min]</string>
<string name="bolus_constraint_applied_warn">Bolus Einschränkung angewendet: %1$.2f U bis %2$.2f U</string>
<string name="bolus_recorded_only">Bolus wird nur aufgezeichnet (Die Pumpe gibt kein Insulin ab!)</string>
<string name="advisoralarm">Alarmiere mich, wenn es Zeit zum Essen ist. </string>

View file

@ -139,7 +139,7 @@
<string name="none"><![CDATA[<ninguno>]]></string>
<string name="remove_label">ELIMINAR</string>
<string name="activate_profile">ACTIVAR PERFIL</string>
<string name="reset">reestablecer</string>
<string name="reset">restablecer</string>
<string name="profileswitch_ismissing">Falta el Cambio de Perfil. Haga un Cambio de Perfil o presione \"Activar perfil\" en el PerfilLocal.</string>
<string name="profile">Perfil</string>
<string name="select_for_removal">Selecciona para eliminar</string>

View file

@ -121,7 +121,7 @@
<string name="loopsuspended">La Boucle est suspendue</string>
<string name="trend_arrow">Flèche de tendance</string>
<string name="a11y_autosens_label">Auto sens</string>
<string name="required">requis</string>
<string name="required">req</string>
<string name="a11y_arrow_double_down">en baisse rapide</string>
<string name="a11y_arrow_single_down">en baisse</string>
<string name="a11y_arrow_forty_five_down">en baisse lente</string>
@ -424,6 +424,7 @@
<string name="autotune_ic_warning">Le profil sélectionné %1$d valeurs de G/I. Autotune va utiliser la moyenne %2$.2f g/U</string>
<string name="autotune_isf_warning">Le profil sélectionné a %1$d valeurs de SI. Autotune va utiliser la moyenne %2$.1f %3$s/U</string>
<string name="autotune_error">Erreur dans les données d\'entrée, essayez de relancer le calcul ou réduire le nombre de jours</string>
<string name="autotune_error_more_days">Erreur dans les données de saisie, augmenter le nombre de jours</string>
<string name="autotune_warning_during_run">Le calcul Autotune a commencé, veuillez patienter</string>
<string name="autotune_warning_after_run">Vérifiez attentivement les résultats avant de les utiliser!</string>
<string name="autotune_partial_result">Résultat partiel jour %1$d / %2$d calculé</string>
@ -456,7 +457,7 @@
<string name="cobvsiob">GA vs IA</string>
<string name="slowabsorptiondetected"><![CDATA[<font color=\'%1$s\'>!!!!! Absorption lente des glucides détectée dans %2$d%% des cas. Vérifiez de nouveau votre calcul. Les GA (Glucides Actifs) peuvent être surestimés et alors trop d\'insuline pourrait être injectée !!!!!</font>]]></string>
<string name="partialboluswizard">Injecter ce pourcentage du bolus calculé par lassistant [%]</string>
<string name="partialboluswizard_reset_time">Durée limite après la dernière Gly reçue pour appliquer le % de bolus [min]</string>
<string name="partialboluswizard_reset_time">Durée limite après la dernière Gly reçue au. delà de laquelle le % de bolus n\'est plus appliqué [min]</string>
<string name="bolus_constraint_applied_warn">Contrainte de Bolus appliquée : %1$.2f U vers %2$.2f U</string>
<string name="bolus_recorded_only">Les bolus seront seulement enregistrés (pas délivrés par la pompe)</string>
<string name="advisoralarm">Alerter quand il est temps de manger</string>

View file

@ -376,6 +376,9 @@
<string name="carbs_g">פחמימות %1$d גרם</string>
<string name="extended_bolus_u_min">בולוס מושהה %1$.2f יח\' %2$d דק\'</string>
<string name="load_events">טען אירועים</string>
<string name="clear_alarms">מחק התראות</string>
<string name="deactivate">השבתה</string>
<string name="update_time">עדכון שעה</string>
<string name="load_history">טען היסטוריה %1$d</string>
<string name="load_tdds">טען מינונים יומיים כוללים</string>
<string name="set_profile">הגדר פרופיל</string>

View file

@ -424,6 +424,7 @@
<string name="autotune_ic_warning">Valgt profil har %1$d IK verdier. Autotune vil bruke %2$.2f g/E</string>
<string name="autotune_isf_warning">Valgte profil har %1$d ISF-verdier. Autotune vil bruke %2$.1f %3$s/E</string>
<string name="autotune_error">Feil i innleste datasett, prøv å kjør Autotune en gang til eller reduser antall dager</string>
<string name="autotune_error_more_days">Feil i inntastet data, øk antall dager</string>
<string name="autotune_warning_during_run">Har startet Autotune-beregning, vennligst vent</string>
<string name="autotune_warning_after_run">Kontroller resultatene nøye før du bruker dem!</string>
<string name="autotune_partial_result">Delvis resultat dag %1$d / %2$d justert</string>
@ -556,7 +557,7 @@
<string name="location_not_found_title">Stedstjeneste er ikke aktivert</string>
<string name="location_not_found_message">Bluetooth søk på nye mobiler virker bare når posisjonstjeneste er aktivert. AAPS lagrer ikke dine posisjonsdata og den kan derfor slås av etter vellykket sammenkobling.</string>
<!-- Preferences -->
<string name="nav_plugin_preferences">Plugin innstillinger</string>
<string name="nav_plugin_preferences">Innstillinger for plugin</string>
<!-- SmsCommunicator -->
<string name="smscommunicator_missingsmspermission">Mangler SMS-tillatelse</string>
<!-- About -->

View file

@ -376,6 +376,9 @@
<string name="carbs_g">WĘGLOW. %1$d g</string>
<string name="extended_bolus_u_min">BOLUS PRZEDŁ. %1$.2f U %2$d min</string>
<string name="load_events">WCZYTYWANIE ZDARZEŃ</string>
<string name="clear_alarms">WYCZYŚĆ ALARMY</string>
<string name="deactivate">DEAKTYWUJ</string>
<string name="update_time">AKTUALIZUJ CZAS</string>
<string name="load_history">WCZYTYWANIE HISTORII %1$d</string>
<string name="load_tdds">WCZYTYWANIE DDI</string>
<string name="set_profile">USTAW PROFIL</string>
@ -421,6 +424,7 @@
<string name="autotune_ic_warning">Wybrany profil ma %1$d wartości IC. Autotune użyje %2$.2f g/U</string>
<string name="autotune_isf_warning">Wybrany profil ma %1$d wartości ISF. Autotune użyje %2$.1f %3$s/U</string>
<string name="autotune_error">Błąd w danych wejściowych, spróbuj uruchomić Autotune ponownie lub zmniejszyć liczbę dni</string>
<string name="autotune_error_more_days">Błąd w danych wejściowych, zwiększ liczbę dni</string>
<string name="autotune_warning_during_run">Rozpoczęto obliczenia Autotune, prosimy o cierpliwość</string>
<string name="autotune_warning_after_run">Uważnie sprawdź wyniki przed ich użyciem!</string>
<string name="autotune_partial_result">Wynik częściowy - dostrojono dzień %1$d / %2$d</string>
@ -453,6 +457,7 @@
<string name="cobvsiob">COB vs IOB</string>
<string name="slowabsorptiondetected"><![CDATA[<font color=\'%1$s\'>!!!!! Wykryto powolne wchłanianie węglowodanów: %2$d%% czasu. Sprawdź ponownie swoje obliczenia. COB mogły być przeszacowane przez co mogło być podane zbyt dużo insuliny !!!!!</font>]]></string>
<string name="partialboluswizard">Dostarcz tą część dawki insuliny z wyniku kalkulatora bolusa [%]</string>
<string name="partialboluswizard_reset_time">Próg czasu starej glikemii [min]</string>
<string name="bolus_constraint_applied_warn">Zastosowano ograniczenie bolusa: %1$.2f U do %2$.2f U</string>
<string name="bolus_recorded_only">Bolus zostanie jedynie odnotowany (nie będzie podany przez pompę)</string>
<string name="advisoralarm">Uruchom alarm kiedy będzie czas na jedzenie</string>

View file

@ -19,7 +19,7 @@
<string name="limiting_iob">A limitar IOB para %1$.1f U porque %2$s</string>
<string name="loop_disabled">LOOP DESATIVADO POR RESTRIÇÕES</string>
<string name="event_type">Tipo de evento</string>
<string name="reload">Recarregar</string>
<string name="reload">Atualizar</string>
<string name="mgdl">mg/dL</string>
<string name="mmol">mmol/L</string>
<string name="save">Salvar</string>
@ -43,7 +43,7 @@
<string name="missed_bg_readings">Leituras Glic. perdidas</string>
<string name="treatments_iob_label_string">IOB:</string>
<string name="mute5min">Silenciar por 5 minutos</string>
<string name="mute">Silêncio</string>
<string name="mute">Silenciar</string>
<string name="success">Sucesso</string>
<string name="advanced_settings_title">Configurações Avançadas</string>
<string name="extendedbolusdeliveryerror">Erro na entrega Bólus Estendido</string>
@ -164,6 +164,7 @@
<string name="isf_short">FSI</string>
<string name="canceling_tbr_failed">Cancelamento do basal temporário falhou</string>
<string name="canceling_eb_failed">Falhou o cancelamento do bolus extendido</string>
<string name="virtualpump_uploadstatus_title">Carregar status para NS ou Tidepool</string>
<string name="suspendloop_label">Loop Desativado/Suspenso</string>
<string name="iob_label">Insulina ativa (IA)</string>
<!-- Protection-->
@ -375,6 +376,9 @@
<string name="carbs_g">Carboidratos %1$d g</string>
<string name="extended_bolus_u_min">BOLUS ESTENDIDO %1$.2f U %2$d min</string>
<string name="load_events">CARREGAR EVENTOS</string>
<string name="clear_alarms">LIMPAR ALARMES</string>
<string name="deactivate">DESATIVAR</string>
<string name="update_time">ATUALIZAÇÃO DO TEMPO</string>
<string name="load_history">CARREGAR HISTÓRIA %1$d</string>
<string name="load_tdds">CARREGAR TDDs</string>
<string name="set_profile">DEFINIR PERFIL</string>
@ -420,6 +424,7 @@
<string name="autotune_ic_warning">O perfil selecionado tem %1$d valores de IC. Autotune vai usar %2$.2f g/U</string>
<string name="autotune_isf_warning">O perfil selecionado tem %1$d valores de ISF. Autotune usará %2$.1f %3$s/U</string>
<string name="autotune_error">Erro nos dados de entrada, tente executar novamente autotune ou reduza o número de dias</string>
<string name="autotune_error_more_days">Erro nos dados de entrada, tente reduzir o número de dias</string>
<string name="autotune_warning_during_run">Cálculos do Autotune iniciados, por favor aguarde</string>
<string name="autotune_warning_after_run">Verifique os resultados cuidadosamente antes de usá-los!</string>
<string name="autotune_partial_result">Resultado parcial - dia %1$d / %2$d ajustado</string>
@ -452,6 +457,7 @@
<string name="cobvsiob">CA vs IA</string>
<string name="slowabsorptiondetected"><![CDATA[<font color=\'%1$s\'>!!!!! Absorção lenta de hidratos detectada: %2$d%% do tempo. Verifique o seu cálculo. COB pode estar sobreestimado, assim mais insulina pode ser dada !!!</font>]]></string>
<string name="partialboluswizard">Entregue esta parte do resultado do assistente de bólus [%]</string>
<string name="partialboluswizard_reset_time">Limite de tempo de glicemia antiga [min]</string>
<string name="bolus_constraint_applied_warn">Restrição de bólus aplicada: %1$.2f U para %2$.2f U</string>
<string name="bolus_recorded_only">Bolus será apenas registrado (não administrado pela bomba)</string>
<string name="advisoralarm">Disparar alarme quando for a hora de comer</string>

View file

@ -6,15 +6,26 @@
<string name="application_protection">Protecção Aplicação</string>
<string name="bolus_protection">Protecção Bólus</string>
<string name="settings_password">Senha Definições</string>
<string name="settings_pin">PIN das configurações</string>
<string name="application_password">Senha Aplicação</string>
<string name="application_pin">PIN da aplicação</string>
<string name="bolus_password">Senha Bólus</string>
<string name="bolus_pin">PIN do bólus</string>
<string name="protection_timeout_title">Retenção de senha e PIN</string>
<string name="protection_timeout_summary">Tempo até que a senha ou PIN sejam inseridos</string>
<string name="biometric">Biométrico</string>
<string name="custom_password">Senha Personalizada</string>
<string name="custom_pin">PIN personalizado</string>
<string name="noprotection">Sem Protecção</string>
<string name="unsecure_fallback_biometric">Reverter Inseguro</string>
<string name="unsecure_fallback_descriotion_biometric">Para ser eficaz, a protecção biométrica precisa de uma senha mestre definida para reverter.\n\nPor favor, defina uma senha mestre!</string>
<string name="password_set">Senha foi definida!</string>
<string name="pin_set">PIN definido!</string>
<string name="password_not_set">Senha não foi definida</string>
<string name="pin_not_set">PIN não definido</string>
<string name="password_not_changed">Senha não foi alterada</string>
<string name="pin_not_changed">PIN não alterado</string>
<string name="pin_cleared">PIN apagado!</string>
<string name="password_hint">Insira aqui a senha</string>
<string name="pin_hint">Insira o PIN aqui</string>
</resources>

View file

@ -14,6 +14,7 @@
<string name="pump_base_basal_rate">%1$.2f U/h</string>
<string name="pump_not_initialized_profile_not_set">Bomba não inicializada, perfil não definido!</string>
<string name="failed_update_basal_profile">Falha a actualizar perfil da basal</string>
<string name="bolus_delivered_successfully">Bólus %1$.2f U administrado com sucesso</string>
<string name="no_valid_basal_rate">Nenhum valor de basal válido foi lido da bomba</string>
<string name="limiting_iob">A limitar IA para %1$.1f U porque %2$s</string>
<string name="loop_disabled">LOOP DESATIVADO POR RESTRIÇÕES</string>
@ -44,12 +45,15 @@
<string name="mute5min">Silenciar por 5 minutos</string>
<string name="mute">Silêncio</string>
<string name="success">Sucesso</string>
<string name="advanced_settings_title">Configurações Avançadas</string>
<string name="extendedbolusdeliveryerror">Erro na administração Bólus Prolongado</string>
<string name="aps_mode_title">Modo APS</string>
<string name="extended_bolus">Bólus Prolongado</string>
<string name="paused">Em pausa</string>
<string name="tdd_total">TDI Total</string>
<string name="tdd_total">TID Total</string>
<string name="goingtodeliver">A ser administrado %1$.2f U</string>
<string name="waitingforpump">À espera da bomba</string>
<string name="androidaps_start">AAPS iniciada</string>
<string name="formatsignedinsulinunits">%1$+.2f U</string>
<string name="format_carbs">%1$d g</string>
<string name="format_hours">%1$.2f h</string>
@ -58,6 +62,8 @@
<string name="please_wait">Por favor aguarde…</string>
<string name="stop">Parar</string>
<string name="carbs">Hidratos</string>
<string name="invalid_profile">Perfil inválido!</string>
<string name="no_profile_set">SEM PERFIL DEFINIDO</string>
<string name="active"><![CDATA[<Activo>]]></string>
<string name="date">Data</string>
<string name="units_label">Unidades</string>
@ -66,7 +72,11 @@
<string name="isf_label">FSI</string>
<string name="basal_label">Basal</string>
<string name="target_label">Alvo</string>
<string name="dia_long_label">Duração da ação da Insulina</string>
<string name="ic_long_label">Rácio Insulina Hidratos de Carbono</string>
<string name="isf_long_label">Factor Sensibilidade à Insulina (FSI)</string>
<string name="basal_long_label">Taxa da Basal</string>
<string name="target_long_label">Alvo da Glicemia</string>
<string name="shortgram">g</string>
<string name="shortpercent">%</string>
<string name="bluetooth">Bluetooth</string>
@ -96,6 +106,8 @@
<string name="loading">A carregar …</string>
<string name="notes_label">Notas</string>
<string name="remove_button">Remover</string>
<string name="add_new">Adicionar novo</string>
<string name="addnew_above">Adicionar novo acima</string>
<string name="wrong_pump_data">Os dados vêm de uma bomba diferente. Altera o driver da bomba para redefinir o seu estado.</string>
<string name="bg_label">GLIC</string>
<string name="calibration">Calibração</string>
@ -108,19 +120,30 @@
<string name="notconfigured">Não configurado</string>
<string name="loopsuspended">Loop suspenso</string>
<string name="trend_arrow">Seta de tendência</string>
<string name="a11y_autosens_label">Auto sensibilidade</string>
<string name="required">req</string>
<string name="a11y_arrow_double_down">a descer rapidamente</string>
<string name="a11y_arrow_single_down">a descer</string>
<string name="a11y_arrow_forty_five_down">a descer lentamente</string>
<string name="a11y_arrow_flat">estável</string>
<string name="a11y_arrow_forty_five_up">a subir lentamente</string>
<string name="a11y_arrow_single_up">a subir</string>
<string name="a11y_arrow_double_up">a subir rapidamente</string>
<string name="a11y_arrow_none">nenhuma</string>
<string name="a11y_arrow_unknown">desconhecido</string>
<string name="a11y_high">hiper</string>
<string name="a11y_inrange">no alvo</string>
<string name="a11y_low">hipo</string>
<string name="average">Média</string>
<string name="tir">TIR</string>
<string name="tir">TNA</string>
<string name="none"><![CDATA[<nenhum>]]></string>
<string name="remove_label">REMOVER</string>
<string name="activate_profile">Activar perfil</string>
<string name="reset">repor</string>
<string name="profileswitch_ismissing">Troca de Perfil em falta. Por favor faça uma troca de perfil ou pressione \"Activar Perfil\" em Perfil Local.</string>
<string name="profile">Perfil</string>
<string name="select_for_removal">Selecione para remover</string>
<string name="confirm_remove_multiple_items">Tem a certeza que deseja remover %1$d items</string>
<string name="overview_treatment_label">Tratamento</string>
<string name="copytolocalprofile">Criar novo perfil local a partir deste perfil?</string>
<string name="wear_wizard_settings">Definições do Assistente Rápido</string>
@ -130,6 +153,7 @@
<string name="treatments_wizard_basaliob_label">Basal IA</string>
<string name="invalid">INVÁLIDO</string>
<string name="login">Login</string>
<string name="prime_fill">Purgar/Preencher</string>
<string name="overview_insulin_label">Bólus</string>
<string name="stoptemptarget">Parar Alvo Temp</string>
<string name="closedloop">Loop Fechado</string>
@ -138,13 +162,19 @@
<string name="dia">DIA</string>
<string name="ic_short">IHC</string>
<string name="isf_short">FSI</string>
<string name="canceling_tbr_failed">Não foi possível cancelar a basal temporária</string>
<string name="canceling_eb_failed">Não foi possível cancelar o bólus prolongado</string>
<string name="virtualpump_uploadstatus_title">Enviar o estado da bomba para NS ou Tidepool</string>
<string name="suspendloop_label">Loop Desactivado/Suspenso</string>
<string name="iob_label">Insulina ativa (IA )</string>
<!-- Protection-->
<string name="wrongpassword">Palavra-passe incorreta</string>
<string name="wrongpin">PIN incorreto</string>
<string name="passwords_dont_match">Palavras-passe não correspondem</string>
<string name="pin_dont_match">Os PINs não correspondem</string>
<!-- Profile-->
<string name="basalprofilenotaligned">Valores das basais não definidos por horas: %1$s</string>
<string name="minimalbasalvaluereplaced">Valor da basal alterado para o valor mínimo suportado: %1$s</string>
<string name="maximumbasalvaluereplaced">Valor da basal alterado para o valor máximo suportado: %1$s</string>
<string name="profile_per_unit">/U</string>
<string name="profile_ins_units_per_hour">U/h</string>
@ -152,6 +182,7 @@
<!-- ProfileFunction-->
<string name="startprofile">Iniciar perfil %1$d%% para %2$d min</string>
<!-- APSResult-->
<string name="cancel_temp">Cancelar Basal Temporária</string>
<string name="let_temp_basal_run">Permitir Basal Temp Correr</string>
<string name="rate">Rácio</string>
<string name="duration">Duração</string>
@ -173,9 +204,12 @@
<string name="careportal_note_message">Notas: %1$s</string>
<string name="careportal_question_message">Questão : %1$s</string>
<string name="careportal_exercise_message">Exercício : %1$s</string>
<string name="careportal_pump_site_change">Mudança de Cateter</string>
<string name="cgm_sensor_insert">Colocação Sensor CGM</string>
<string name="careportal_cgmsensorstart">Início do Sensor CGM</string>
<string name="careportal_cgm_sensor_stop">Parar Sensor CGM</string>
<string name="careportal_dad_alert">Alertar D.A.D. (Alerta cão apoio a pesso)</string>
<string name="careportal_insulin_cartridge_change">Mudança de Cartucho de Insulina</string>
<string name="careportal_profileswitch">Troca de Perfil</string>
<string name="careportal_snackbolus">Bólus Lanche</string>
<string name="careportal_mealbolus">Bólus Refeição</string>
@ -185,6 +219,8 @@
<string name="careportal_tempbasalend">Fim Basal Temp</string>
<string name="careportal_carbscorrection">Correção Hidratos</string>
<string name="careportal_openapsoffline">OpenAPS Offline</string>
<string name="pump_battery_change">Troca Bateria Bomba</string>
<string name="temporary_target">Alvo Temporário</string>
<string name="careportal_temporarytargetvalue">Valor Alvo Temporário</string>
<string name="careportal_temporarytargetcancel">Cancelar Alvo Temporário</string>
<string name="boluswizard">Assistente de Bólus</string>
@ -211,15 +247,18 @@
<string name="waitingforpumpresult">À espera de resultado</string>
<string name="smb_shortname">SMB</string>
<!-- CarbsReq-->
<string name="carbsreq">%1$d g Hidratos Adicionais Necessários Dentro de %2$d Minutos</string>
<!-- TDDStatsActivity-->
<string name="expweight">TDI exponencialmente ponderada</string>
<string name="cumulative_tdd">Total de Insulina Diária</string>
<string name="expweight">TID exponencialmente ponderada</string>
<string name="basalrate">Basal</string>
<string name="bolus">Bólus</string>
<string name="tdd">TDI</string>
<string name="tdd">TID</string>
<string name="ratio">Rácio</string>
<string name="amount_days"># Dias</string>
<string name="weight">Peso</string>
<string name="warning_Message">Possivelmente impreciso se foram usados bólus para purgar/preencher!</string>
<string name="olddata_Message">Dados antigos, pressione \"Recarregar\"</string>
<string name="tbb">Basal Diária Total</string>
<string name="tbb2">Basal diária * 2</string>
<!-- Ntp-->
@ -292,9 +331,11 @@
<string name="uel_stat_reset">REINICIAR ESTADO</string>
<string name="uel_delete_logs">APAGAR REGISTOS</string>
<string name="uel_delete_future_treatments">APAGAR TRATAMENTOS FUTUROS</string>
<string name="delete_future_treatments">Apagar tratamentos futuros</string>
<string name="uel_export_settings">EXPORTAR CONFIGURAÇÕES</string>
<string name="uel_import_settings">IMPORTAR CONFIGURAÇÕES</string>
<string name="uel_reset_databases">REINICIAR BASES DE DADOS</string>
<string name="uel_cleanup_databases">LIMPAR BASES DE DADOS</string>
<string name="uel_export_databases">EXPORTAR BASES DE DADOS</string>
<string name="uel_import_databases">IMPORTAR BASES DE DADOS</string>
<string name="uel_otp_export">EXPORTAR OTP</string>
@ -335,7 +376,17 @@
<string name="carbs_g">Hidratos de Carbono %1$d g</string>
<string name="extended_bolus_u_min">BOLUS EXTENDIDO %1$.2f U %2$d min</string>
<string name="load_events">CARREGAR EVENTOS</string>
<string name="clear_alarms">LIMPAR ALARMES</string>
<string name="deactivate">DESATIVAR</string>
<string name="update_time">ATUALIZAR TEMPO</string>
<string name="load_history">CARREGAR HISTÓRICO %1$d</string>
<string name="load_tdds">CARREGAR TIDs</string>
<string name="set_profile">DEFINIR PERFIL</string>
<string name="set_user_settings">DEFINIR CONFIGURAÇÕES DO UTILIZADOR</string>
<string name="smb_bolus_u">SMB BOLUS %1$.2f U</string>
<string name="start_pump">INICIAR BOMBA</string>
<string name="stop_pump">PARAR BOMBA</string>
<string name="temp_basal_absolute">TEMP BASAL %1$.2f U/h %2$d minuto</string>
<string name="sms" comment="26 characters max for translation">SMS</string>
<string name="formatPercent">%1$.0f%%</string>
<string name="basal">Basal</string>

View file

@ -98,7 +98,7 @@
<string name="exists">var</string>
<string name="notexists">yok</string>
<string name="glucose">Glikoz</string>
<string name="iob">IOB</string>
<string name="iob">AİNS</string>
<string name="cob">AKRB</string>
<string name="name_short">İsim:</string>
<string name="time">Zaman</string>
@ -116,7 +116,7 @@
<string name="bolus_reminder">Bolus hatırlatıcısı</string>
<string name="duration_label">Süre</string>
<string name="shortgramm">gr</string>
<string name="pumpsuspended">Pompa durduldu</string>
<string name="pumpsuspended">Pompa Durduruldu</string>
<string name="notconfigured">Yapılandırılmadı</string>
<string name="loopsuspended">Döngü duraklatıldı</string>
<string name="trend_arrow">Trend oku</string>
@ -376,6 +376,9 @@
<string name="carbs_g">Karbonhidrat %1$d g</string>
<string name="extended_bolus_u_min">YAYMA BOLUS %1$.2f Ü %2$d dak</string>
<string name="load_events">ETKİNLİKLERİ YÜKLE</string>
<string name="clear_alarms">ALARMLARI SİL</string>
<string name="deactivate">DEVRE DIŞI BIRAK</string>
<string name="update_time">SAATİ GÜNCELLE</string>
<string name="load_history">GEÇMİŞİ YÜKLE %1$d</string>
<string name="load_tdds">GTD YÜKLE</string>
<string name="set_profile">PROFİL AYARLA</string>
@ -421,6 +424,7 @@
<string name="autotune_ic_warning">Seçilen profilde %1$d KİO değeri var. OtoAyar %2$.2f g/Ü kullanacak</string>
<string name="autotune_isf_warning">Seçilen profilde %1$d İDF değeri var. OtoAyar %2$.1f %3$s/Ü kullanacak</string>
<string name="autotune_error">Giriş verilerinde hata, otoayarı tekrar çalıştırmayı deneyin veya gün sayısını azaltın</string>
<string name="autotune_error_more_days">Veri girişinde hata, gün sayısını artırın</string>
<string name="autotune_warning_during_run">OtoAyar hesaplaması başladı, lütfen sabırlı olun</string>
<string name="autotune_warning_after_run">Kullanmadan önce sonuçları dikkatlice kontrol edin!</string>
<string name="autotune_partial_result">Kısmi sonuç günü %1$d / %2$d ayarlandı</string>
@ -453,6 +457,7 @@
<string name="cobvsiob">AKRB vs AİNS</string>
<string name="slowabsorptiondetected"><![CDATA[<font color=\'%1$s\'>!!!!! Yavaş karbonhidrat emilimi tespit edildi: zamanın %2$d%% si. Hesaplamanızı iki kez kontrol edin. Aktif Karbonhidrat (AKRB) olduğundan fazla tahmin edilebilir, bu nedenle daha fazla insülin verilebilir !!!!!</font>]]></string>
<string name="partialboluswizard">Bolus sihirbazı sonucunun bu kadarını ilet [%]</string>
<string name="partialboluswizard_reset_time">Eski KŞ süresi eşiği [min]</string>
<string name="bolus_constraint_applied_warn">Bolus kısıtlaması uygulandı: %1$.2f Ü ile %2$.2f Ü</string>
<string name="bolus_recorded_only">Bolus yalnızca kaydedilecektir (pompa ile iletilmez)</string>
<string name="advisoralarm">Yemek zamanı alarmı çalıştır</string>

View file

@ -21,7 +21,7 @@ dependencies {
implementation project(':app-wear-shared:shared')
//Firebase
api platform('com.google.firebase:firebase-bom:32.2.2')
api platform('com.google.firebase:firebase-bom:32.2.3')
api "com.google.firebase:firebase-analytics-ktx"
api "com.google.firebase:firebase-crashlytics-ktx"
// StatsActivity not in use now

View file

@ -1,2 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="count_selected">%1$d selecionados</string>
<string name="remove_items">Remover itens</string>
<string name="sort_items">Ordenar itens</string>
<string name="remove_selected_items">Remover itens selecionados</string>
<string name="sort_label">Ordenar</string>
</resources>

View file

@ -102,7 +102,7 @@ class OverviewDataImpl @Inject constructor(
epsSeries = PointsWithLabelGraphSeries()
maxTherapyEventValue = 0.0
therapyEventSeries = PointsWithLabelGraphSeries()
heartRateGraphSeries = LineGraphSeries()
heartRateGraphSeries = PointsWithLabelGraphSeries()
}
override fun initRange() {
@ -339,5 +339,5 @@ class OverviewDataImpl @Inject constructor(
override var dsMaxSeries: LineGraphSeries<ScaledDataPoint> = LineGraphSeries()
override var dsMinSeries: LineGraphSeries<ScaledDataPoint> = LineGraphSeries()
override var heartRateScale = Scale()
override var heartRateGraphSeries: LineGraphSeries<DataPointWithLabelInterface> = LineGraphSeries()
override var heartRateGraphSeries: PointsWithLabelGraphSeries<DataPointWithLabelInterface> = PointsWithLabelGraphSeries()
}

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="bg_label">BG</string>
<string name="executing_right_now">Orden se esta efectuando en este momento</string>
<string name="bg_label">Glucemia</string>
<string name="executing_right_now">El comando se está ejecutando en este momento</string>
<string name="basal_value_below_minimum">Valor basal por debajo del mínimo. Perfil no establecido.</string>
<string name="permission">Permiso</string>
<string name="need_whitelisting">%1$s necesita añadir la optimización de la batería a la lista blanca, para obtener un rendimiento adecuado</string>

View file

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="bg_label">GLIC</string>
<string name="bg_label">Glicemia</string>
<string name="executing_right_now">Comando será executado agora</string>
<string name="basal_value_below_minimum">Valor da basal abaixo do mínimo. Perfil não definido!</string>
<string name="permission">Permissão</string>
<string name="need_whitelisting">Necessário autorização para otimização de bateria para desempenho adequado.</string>
<string name="need_location_permission">O aplicativo precisa de permissão de localização para o scan de Bluetooth e identificação da rede Wi-Fi</string>
<string name="need_location_permission">O aplicativo precisa de permissão de localização para o procurar Bluetooth e identificação da rede Wi-Fi</string>
<string name="need_storage_permission">O aplicativo precisa de permissão de armazenamento para gravar os log files e para exportar configurações</string>
<!-- Stats -->
<string name="veryLow" comment="below 3.1">Muito baixo</string>

View file

@ -4,9 +4,21 @@
<string name="executing_right_now">Comando será executado agora</string>
<string name="basal_value_below_minimum">Valor da basal abaixo do mínimo. Perfil não definido!</string>
<string name="permission">Permissão</string>
<string name="need_whitelisting">%1$s necessita de autorizar a não optimização da bateria para assegurar a performance necessária</string>
<string name="need_location_permission">Aplicação necessita de permissão de localização para pesquisa Bluetooth e identificação Wi-Fi</string>
<string name="need_storage_permission">A aplicação precisa da permissão de armazenamento para poder armazenar ficheiros de registo e exportar definições</string>
<!-- Stats -->
<string name="veryLow" comment="below 3.1">Muito baixo</string>
<string name="low" comment="3.1-3.9">Baixo</string>
<string name="high" comment="10.0-13.9">Alto</string>
<string name="veryHigh" comment="above 13.9">Muito alto</string>
<string name="below" comment="below &quot;in range&quot;">Abaixo</string>
<string name="in_range">No alvo</string>
<string name="above" comment="above &quot;in range&quot;">Acima</string>
<string name="hba1c">HbA1c: </string>
<string name="std_deviation">SD: %1$s</string>
<string name="detailed_14_days">Detalhes de 14 dias</string>
<string name="day_tir">TNA de dia</string>
<string name="night_tir">TNA de noite</string>
<string name="carbs_short" comment="max 6 characters">Hidratos de carbono</string>
</resources>

View file

@ -14,8 +14,8 @@
<string name="operating_mode">Modo de funcionamento</string>
<string name="description_pump_insight_local">Integração de bomba para bombas Accu-Chek Insight</string>
<string name="not_inserted">Não inserido</string>
<string name="tdd_bolus">TDI Bolus</string>
<string name="tdd_basal">TDI Basal</string>
<string name="tdd_bolus">TID Bólus</string>
<string name="tdd_basal">TID Basal</string>
<string name="tbr_formatter">%1$d%% para %2$d / %3$d min</string>
<string name="multiwave_bolus">Bólus Multi-Onda</string>
<string name="eb_formatter">%1$.2f / %2$.2f U por %3$d min</string>
@ -40,7 +40,7 @@
<string name="short_status_tbr">DBT: %1$d%% para %2$d / %3$d minutos</string>
<string name="short_status_extended">Prolongado: %1$.2f / %2$.2f U por %3$d min</string>
<string name="short_status_multiwave">Multionda: %1$.2f / %2$.2f U por %3$d min</string>
<string name="short_status_tdd">TDI: %1$.2f</string>
<string name="short_status_tdd">TID: %1$.2f</string>
<string name="short_status_reservoir">Reser.: %1$.2f U</string>
<string name="short_status_battery">Bat.: %1$d%%</string>
<string name="release_software_version">Lançar versão de software</string>

View file

@ -3,9 +3,9 @@
<string name="dynisf_adjust_sensitivity">Ajustar sensibilidad y glucosa</string>
<string name="DynISFAdjust_title" formatted="false">Factor de ajuste de Isf Dinámico %</string>
<string name="DynISFAdjust_summary" formatted="false">Factor de ajuste para el DynamicISF. Establezca más de 100% para una corrección más agresiva, y menos de 100% para correcciones más susves.</string>
<string name="high_temptarget_raises_sensitivity_title">Objetivo temporal elevado aumenta sensibilidad</string>
<string name="high_temptarget_raises_sensitivity_title">Objetivo temporal alto aumenta la sensibilidad</string>
<string name="high_temptarget_raises_sensitivity_summary"><![CDATA[Aumentar la sensibilidad para objetivos temporales >= 100]]></string>
<string name="low_temptarget_lowers_sensitivity_title">Objetivo temporal bajo reduce sensibilidad</string>
<string name="low_temptarget_lowers_sensitivity_title">Objetivo temporal bajo reduce la sensibilidad</string>
<string name="low_temptarget_lowers_sensitivity_summary"><![CDATA[Reducir la sensibilidad para objetivos temporales < 100]]></string>
<string name="openapssmb">OpenAPS SMB</string>
<string name="openaps_smb_dynamic_isf">ISF Dinámico</string>

View file

@ -11,7 +11,7 @@
<string name="openaps_smb_dynamic_isf">Dinaminis JIF</string>
<string name="smb_interval_summary">Kaip dažnai SMB bus leidžiami, min.</string>
<string name="resistance_lowers_target_title">Rezistencija mažina tikslą</string>
<string name="resistance_lowers_target_summary">Kai nustatoma rezistencija, tikslinė glikemijos vertė sumažinama</string>
<string name="resistance_lowers_target_summary">Kai aptinkama rezistencija insulinui, tikslinė glikemija sumažinama</string>
<string name="sensitivity_raises_target_title">Jautrumas didina tikslą</string>
<string name="sensitivity_raises_target_summary">Kai aptinkamas padidėjęs jautrumas insulinui, tikslinė glikemija padidinama</string>
<string name="openapsma_disabled">Įskiepis išjungtas</string>
@ -45,7 +45,7 @@
<string name="openapsma_max_iob_summary">Šis skaičius OpenAPS kontekste vadinamas maks. AIO\nTai maksimalus insulino vienetų [U] skaičius, kurį DKS gali suleisti vienu metu.</string>
<string name="openapsama_autosens_adjust_targets_summary">Numatytoji reikšmė: true\nTai suteikia Autosens funkcijai leidimą keisti tikslinės glikemijos vertes, JIF ir valandinę bazę.</string>
<string name="openapsama_autosens_adjust_targets">Autosens nustatomi tikslai, taip pat</string>
<string name="openapsama_min_5m_carb_impact_summary">Numatytoji reikšmė: 3.0 (AMA) arba 8.0 (SMB). Tai parametras, nurodantis angliavandenių poveikį glikemijai kas 5 minutes nuo jų suvartojimo. Numatytoji reikšmė yra 3 mg/dl per 5min. Šis skaičius turi įtakos apskaičiavimams, kaip greitai mažės AAO, kokia bus glikemijos kitimo prognozė, ypač kai ji krenta daugiau nei tikėtasi, arba nedidėja tiek, kiek tikėtasi.</string>
<string name="openapsama_min_5m_carb_impact_summary">Numatytoji reikšmė: 3.0 (AMA) arba 8.0 (SMB). Tai parametras, nurodantis angliavandenių poveikį glikemijai per 5 min. Numatytoji reikšmė yra 3 mg/dl per 5min. Šis skaičius turi įtakos apskaičiuojant, kaip greitai mažės AAO, kokia bus glikemijos kitimo prognozė, ypač kai ji mažėja labiau nei tikėtasi, arba nedidėja tiek, kiek tikėtasi.</string>
<string name="openapsama_max_daily_safety_multiplier_summary">Numatytoji reikšmė: 3 tai pagrindinis OpenAPS saugiklis. Jis apriboja Jūsų valandinę bazę iki trigubos maksimalios valandinės bazės (standartiniu atveju). Jums greičiausiai neprireiks šios reikšmės keisti, tačiau turėtumėte žinoti, kad ji naudojama kaip saugiklis apskaičiuojant \"3x maksimali dienos bazė; 4x dabartinė valandinė bazė\".</string>
<string name="openapsama_current_basal_safety_multiplier_summary">Numatytoji reikšmė: 4 tai antras pagrindinis OpenAPS saugiklis, apskaičiuojant \"3x maksimali dienos bazė; 4x dabartinė valandinė bazė\". Jis reiškia, kad jūsų valandinė bazė, nepriklausomai nuo to, kokia maksimali valandinė bazė suprogramuota pompoje, negali būti didesnė, nei keturguba dabartinė valandinė bazė. Tai apsaugo Jus nuo pavojingų situacijų, kai nustatoma pernelyg didelė valandinė bazė, pilnai nesuprantant, kaip veikia algoritmas. Numatytoji reikšmė yra 4x; daugumai vartotojų niekada neprireikia šio skaičiaus keisti, o pajutus, kad \"atsitrenkiama\" į saugiklį, rekomenduojama peržiūrėti kitus nustatymus.</string>
<string name="openapsama_bolus_snooze_dia_divisor_summary">Numatytoji reikšmė: 2\nAtidėjimas po boluso aktyvuojamas iškart po to, kai susileidžiate bolusą maistui. Ši funkcija neleidžia sistemai nustatyti mažų laikinų bazių iškart po valgio. Pvz.: jei IVT yra 3 val, tai atidėjimas po boluso pamažu deaktyvuojamas per 1,5 val (3 val. / 2).</string>
@ -62,8 +62,8 @@
<string name="enable_uam_summary">Nedeklaruoto maisto (NDM) aptikimas</string>
<string name="enable_smb_always">Įjungti SMB visada</string>
<string name="enable_smb_always_summary">Leisti SMB visada, nepriklausomai nuo bolusų. Įmanoma tik naudojant patikimų, filtruotų KG duomenų šaltinį, pvz.: Dexcom G5</string>
<string name="enable_smb_after_carbs">Įjungti SMB po angliavandenių įvedimo</string>
<string name="enable_smb_after_carbs_summary">Leisti SMB iki 6 val po angliavandenių įvedimo, net jei AK yra 0. Įmanoma tik naudojant patikimų, filtruotų KG duomenų šaltinį, pvz.: Dexcom G5</string>
<string name="enable_smb_after_carbs">Įjungti SMB su angliavandeniais</string>
<string name="enable_smb_after_carbs_summary">Leisti SMB iki 6 val po angliavandenių įvedimo, net jei AAO yra 0. Įmanoma tik naudojant patikimų, filtruotų glikemijos duomenų šaltinį, pvz.: Dexcom</string>
<string name="enable_smb_with_cob">Įjungti SMB su AAO</string>
<string name="enable_smb_with_cob_summary">Įjungti SMB, kai yra AAO.</string>
<string name="enable_smb_with_temp_target">Įjungti SMB su laikinais tikslais</string>

View file

@ -222,6 +222,7 @@ class AutomationPlugin @Inject constructor(
}
internal fun processActions() {
if (!config.appInitialized) return
var commonEventsEnabled = true
if (loop.isSuspended || !(loop as PluginBase).isEnabled()) {
aapsLogger.debug(LTag.AUTOMATION, "Loop deactivated")

View file

@ -92,6 +92,8 @@
<string name="lastboluscompared">Letzter Bolus vor %1$s %2$s Min</string>
<string name="triggercoblabel">COB</string>
<string name="cobcompared">COB %1$s %2$.0f</string>
<string name="triggerHeartRate">Herzfrequenz</string>
<string name="triggerHeartRateDesc">HF %1$s %2$.0f</string>
<string name="iob_u">IOB [IE]:</string>
<string name="distance_short">Umkreis [m]:</string>
<string name="recurringTime">Wiederholungszeit</string>

View file

@ -92,6 +92,8 @@
<string name="lastboluscompared">Paskutinis Bolusas prieš %1$s %2$s min</string>
<string name="triggercoblabel">AAO</string>
<string name="cobcompared">AAO %1$s %2$.0f</string>
<string name="triggerHeartRate">Pulsas</string>
<string name="triggerHeartRateDesc">Pulsas %1$s %2$.0f</string>
<string name="iob_u">AIO [U]:</string>
<string name="distance_short">Atstumas [m]:</string>
<string name="recurringTime">Pasikartojantis laikas</string>

View file

@ -92,6 +92,8 @@
<string name="lastboluscompared">Czas ostatniego bolusa %1$s %2$s min temu</string>
<string name="triggercoblabel">Węgle</string>
<string name="cobcompared">Węgle %1$s %2$.0f</string>
<string name="triggerHeartRate">Tętno</string>
<string name="triggerHeartRateDesc">HR %1$s %2$.0f</string>
<string name="iob_u">IOB [U]:</string>
<string name="distance_short">Odległość [m]:</string>
<string name="recurringTime">Powtarzający się czas</string>

View file

@ -2,7 +2,7 @@
<resources>
<string name="automation_short">Auto</string>
<string name="automation">Automatização</string>
<string name="automation_description">Tarefas de automação definidas pelo utilizador</string>
<string name="automation_description">Tarefas de automação definidas pelo usuário</string>
<string name="automation_missing_task_name">Insira um nome da tarefa.</string>
<string name="automation_missing_trigger">Especifique pelo menos um gatilho.</string>
<string name="automation_missing_action">Especifique pelo menos uma acção.</string>
@ -92,6 +92,8 @@
<string name="lastboluscompared">Última vez do bolus %1$s %2$s atrás</string>
<string name="triggercoblabel">CA</string>
<string name="cobcompared">COB %1$s %2$.0f</string>
<string name="triggerHeartRate">Frequência cardíaca</string>
<string name="triggerHeartRateDesc">FC %1$s %2$.0f</string>
<string name="iob_u">IOB [U]:</string>
<string name="distance_short">Dist [m]:</string>
<string name="recurringTime">Tempo recorrente</string>

View file

@ -92,6 +92,8 @@
<string name="lastboluscompared">Última vez do bolus %1$s %2$s atrás</string>
<string name="triggercoblabel">HCA</string>
<string name="cobcompared">HCA %1$s %2$.0f</string>
<string name="triggerHeartRate">Frequência cardíaca</string>
<string name="triggerHeartRateDesc">Pulso %1$s %2$.0f</string>
<string name="iob_u">IA [U]:</string>
<string name="distance_short">Dist [m]:</string>
<string name="recurringTime">Tempo recorrente</string>
@ -109,6 +111,14 @@
<string name="automation_event">Evento de automatização</string>
<string name="reorder_label">Reordenar</string>
<string name="user_action">Ação do utilizador</string>
<string name="remove_automation">Remover automação</string>
<string name="sort_automation">Ordenar automação</string>
<string name="remove_selected_items">Remover itens selecionados</string>
<string name="count_selected">%1$d selecionados</string>
<string name="system_automation">Automação do sistema</string>
<string name="run_automations">Executar automações</string>
<string name="add_automation">Adicionar regra</string>
<string name="stop_processing">Parar processamento</string>
<!-- WeekdayPicker -->
<string name="monday_short">S</string>
<string name="tuesday_short">T</string>
@ -118,5 +128,7 @@
<string name="saturday_short">Sa</string>
<string name="sunday_short">D</string>
<!-- Reminders-->
<string name="time_to_eat">Hora de comer!\nExecutar assistente de Bólus e fazer cálculo novamente.</string>
<string name="time_to_bolus">Hora de fazer o bólus!\nExecute o assistente de bólus e faça o cálculo novamente.</string>
<string name="error_setting_reminder">Erro ao configurar alarme futuro</string>
</resources>

View file

@ -41,7 +41,7 @@
<string name="temptargetcomparedmgdl">Geçici Hedef %1$s %2$.0f %3$s</string>
<string name="temptargetcomparedmmol">Geçici Hedef %1$s %2$.1f %3$s</string>
<string name="percentagecompared">Profil yüzdesi %1$s %2$d</string>
<string name="iobcompared">Aktif insülin %1$s %2$.1f</string>
<string name="iobcompared">AİNS %1$s %2$.1f</string>
<string name="or">Veya</string>
<string name="xor">Özel veya</string>
<string name="atspecifiedtime">%1$s\'de</string>
@ -92,7 +92,7 @@
<string name="lastboluscompared">Son bolus zamanı %1$s %2$s dakika önce</string>
<string name="triggercoblabel">AKRB</string>
<string name="cobcompared">AKRB %1$s %2$.0f</string>
<string name="iob_u">IOB [U]:</string>
<string name="iob_u">AİNS [U]:</string>
<string name="distance_short">Mesafe [m]:</string>
<string name="recurringTime">Yinelenen zaman</string>
<string name="every">Her</string>

View file

@ -32,6 +32,7 @@ import info.nightscout.rx.bus.RxBus
import info.nightscout.rx.events.EventPreferenceChange
import info.nightscout.rx.logging.AAPSLogger
import info.nightscout.rx.logging.LTag
import info.nightscout.shared.extensions.runOnUiThread
import info.nightscout.shared.extensions.toVisibility
import info.nightscout.shared.interfaces.ResourceHelper
import io.reactivex.rxjava3.core.Completable
@ -105,7 +106,7 @@ class MaintenanceFragment : DaggerFragment() {
onError = { aapsLogger.error("Error clearing databases", it) },
onComplete = {
rxBus.send(EventPreferenceChange(rh.gs(info.nightscout.core.utils.R.string.key_units)))
activity.recreate()
runOnUiThread { activity.recreate() }
}
)
uel.log(Action.RESET_DATABASES, Sources.Maintenance)

View file

@ -3,17 +3,15 @@ package info.nightscout.configuration.maintenance.activities
import android.content.Intent
import android.os.Bundle
import android.view.LayoutInflater
import android.view.MenuItem
import android.view.ViewGroup
import androidx.fragment.app.FragmentActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import info.nightscout.configuration.R
import info.nightscout.configuration.databinding.CustomWatchfaceImportListActivityBinding
import info.nightscout.configuration.databinding.CustomWatchfaceImportListItemBinding
import info.nightscout.core.ui.activities.TranslatedDaggerAppCompatActivity
import info.nightscout.interfaces.maintenance.PrefFileListProvider
import info.nightscout.configuration.databinding.CustomWatchfaceImportListActivityBinding
import info.nightscout.configuration.R
import info.nightscout.configuration.databinding.CustomWatchfaceImportListItemBinding
import info.nightscout.interfaces.versionChecker.VersionCheckerUtils
import info.nightscout.rx.bus.RxBus
import info.nightscout.rx.events.EventMobileDataToWear
@ -21,7 +19,12 @@ import info.nightscout.rx.logging.AAPSLogger
import info.nightscout.rx.weardata.CUSTOM_VERSION
import info.nightscout.rx.weardata.CwfData
import info.nightscout.rx.weardata.CwfDrawableFileMap
import info.nightscout.rx.weardata.CwfMetadataKey.*
import info.nightscout.rx.weardata.CwfMetadataKey.CWF_AUTHOR
import info.nightscout.rx.weardata.CwfMetadataKey.CWF_AUTHOR_VERSION
import info.nightscout.rx.weardata.CwfMetadataKey.CWF_CREATED_AT
import info.nightscout.rx.weardata.CwfMetadataKey.CWF_FILENAME
import info.nightscout.rx.weardata.CwfMetadataKey.CWF_NAME
import info.nightscout.rx.weardata.CwfMetadataKey.CWF_VERSION
import info.nightscout.rx.weardata.CwfMetadataMap
import info.nightscout.rx.weardata.EventData
import info.nightscout.shared.extensions.toVisibility
@ -109,14 +112,6 @@ class CustomWatchfaceImportListActivity: TranslatedDaggerAppCompatActivity() {
}
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
if (item.itemId == android.R.id.home) {
finish()
return true
}
return super.onOptionsItemSelected(item)
}
private fun checkCustomVersion(metadata: CwfMetadataMap): Boolean {
metadata[CWF_VERSION]?.let { version ->
val currentAppVer = versionCheckerUtils.versionDigits(CUSTOM_VERSION)

View file

@ -1,14 +1,10 @@
package info.nightscout.configuration.maintenance.activities
import android.os.Bundle
import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import android.view.View
import android.widget.CheckBox
import android.widget.LinearLayout
import android.widget.TextView
import androidx.core.view.MenuProvider
import info.nightscout.configuration.R
import info.nightscout.configuration.databinding.ActivityLogsettingBinding
import info.nightscout.core.ui.activities.TranslatedDaggerAppCompatActivity
@ -39,20 +35,6 @@ class LogSettingActivity : TranslatedDaggerAppCompatActivity() {
l.resetToDefaults()
createViewsForSettings()
}
// Add menu items without overriding methods in the Activity
addMenuProvider(object : MenuProvider {
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean =
when (menuItem.itemId) {
android.R.id.home -> {
onBackPressedDispatcher.onBackPressed()
true
}
else -> false
}
})
}
private fun createViewsForSettings() {

View file

@ -3,12 +3,8 @@ package info.nightscout.configuration.maintenance.activities
import android.content.Intent
import android.os.Bundle
import android.view.LayoutInflater
import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
import androidx.core.view.MenuProvider
import androidx.fragment.app.FragmentActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
@ -44,21 +40,6 @@ class PrefImportListActivity : TranslatedDaggerAppCompatActivity() {
binding.recyclerview.layoutManager = LinearLayoutManager(this)
binding.recyclerview.adapter = RecyclerViewAdapter(prefFileListProvider.listPreferenceFiles(loadMetadata = true))
// Add menu items without overriding methods in the Activity
addMenuProvider(object : MenuProvider {
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean =
when (menuItem.itemId) {
android.R.id.home -> {
onBackPressedDispatcher.onBackPressed()
true
}
else -> false
}
})
}
inner class RecyclerViewAdapter internal constructor(private var prefFileList: List<PrefsFile>) : RecyclerView.Adapter<RecyclerViewAdapter.PrefFileViewHolder>() {

View file

@ -6,6 +6,7 @@
<string name="previous_button">Zpět</string>
<string name="nav_setupwizard">Průvodce nastavením</string>
<string name="setupwizard_finish">Dokončit</string>
<string name="welcome">Vítejte</string>
<string name="welcometosetupwizard">Vítejte v průvodci nastavením. Provede Vás procesem nastavení programu\n</string>
<string name="end_user_license_agreement">Licenční ujednání</string>
<string name="end_user_license_agreement_text">MUST NOT BE USED TO MAKE MEDICAL DECISIONS. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.</string>

View file

@ -6,6 +6,7 @@
<string name="previous_button">Zurück</string>
<string name="nav_setupwizard">Einrichtungsassistent</string>
<string name="setupwizard_finish">FERTIG</string>
<string name="welcome">Willkommen</string>
<string name="welcometosetupwizard">Willkommen im Setup-Assistenten. Er führt Dich durch den Setup-Prozess\n</string>
<string name="end_user_license_agreement">Endbenutzervereinbarung</string>
<string name="end_user_license_agreement_text">DAS PROGRAMM DARF NICHT FÜR MEDIZINISCHE ENTSCHEIDUNGEN BENUTZT WERDEN. ES GIBT IN DIESEM PROJEKT KEINE GEWÄHRLEISTUNG ODER GARANTIERTE UNTERSTÜTZUNG IN IRGENDEINER ART. WENN DU DICH ENTSCHEIDEST, ES ZU NUTZEN, HÄNGT DIE QUALITÄT UND LEISTUNGSFÄHIGKEIT DIESES PROJEKTES VON DIR SELBST AB. ES WIRD \"WIE BESEHEN\" ZUR VERFÜGUNG GESTELLT. SOLLTE SICH DAS PROGRAMM ALS FEHLERHAFT ERWEISEN, ÜBERNIMMST DU ALLE NOTWENDIGEN KRANKHEITSKOSTEN, SERVICELEISTUNGEN, REPARATUREN ODER KORREKTUREN.</string>
@ -152,6 +153,7 @@
<string name="prefdecrypt_issue_wrong_format">Fehlende Verschlüsselungskonfiguration, Einstellungsformat ist ungültig!</string>
<string name="prefdecrypt_issue_wrong_algorithm">Nicht unterstützter oder nicht angegebener Verschlüsselungsalgorithmus!</string>
<!-- Custom Watchface -->
<string name="wear_import_custom_watchface_title">Eigene Watchface auswählen</string>
<!-- Permissions -->
<string name="alert_dialog_storage_permission_text">Bitte starte dein Telefon neu oder starte AndroidAPS in den System-Einstellungen neu.\nAndernfalls wird AndroidAPS nichts protokollieren (wichtig zum Nachverfolgen und Verifizieren, dass der Algorithmus korrekt funktioniert)!</string>
</resources>

View file

@ -6,6 +6,7 @@
<string name="previous_button">Anterior</string>
<string name="nav_setupwizard">Asistente de configuración</string>
<string name="setupwizard_finish">FINALIZAR</string>
<string name="welcome">Bienvenido</string>
<string name="welcometosetupwizard">Bienvenido al asistente de configuración. Te guiará a través del proceso de configuración\n</string>
<string name="end_user_license_agreement">Acuerdo de licencia de usuario final</string>
<string name="end_user_license_agreement_text">NO DEBE UTILIZARSE PARA TOMAR DECISIONES MÉDICAS. NO HAY NINGUNA GARANTÍA EN EL PROGRAMA, EN LA MEDIDA PERMITIDA POR LA LEY APLICABLE. EXCEPTO CUANDO SE INDIQUE LO CONTRARIO POR ESCRITO, LOS TITULARES DE LOS DERECHOS DE AUTOR Y/O OTRAS PARTES, PROPORCIONAN EL PROGRAMA \"TAL CUAL\", SIN GARANTÍA DE NINGÚN TIPO, YA SEA EXPRESA O IMPLÍCITA, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD Y ADECUACIÓN PARA UN PROPÓSITO EN PARTICULAR. TODO EL RIESGO EN CUANTO A LA CALIDAD Y EL RENDIMIENTO DEL PROGRAMA ES SUYA. SI EL PROGRAMA TUVIERA UN ERROR, USTED ASUME EL COSTE DE TODOS LOS SERVICIOS, REPARACIONES O CORRECCIONES NECESARIAS.</string>
@ -137,7 +138,7 @@
<string name="metadata_warning_different_device">Las preferencias se han creado en un dispositivo distinto. Esto es correcto si vas a importar tu configuración desde otro teléfono más antiguo o diferente, pero asegúrate de que las preferencias importadas son correctas</string>
<string name="metadata_warning_outdated_format">¡Estás usando el obsoleto formato heredado de versiones antiguas de AAPS, que no es seguro! Únicamente utilizarlo como último recurso, si no tiene una exportación en formato JSON actual.</string>
<string name="metadata_warning_old_export">Las preferencias importadas tienen %1$s días! ¿Es posible que tengas preferencias más recientes o eligieras un archivo equivocado? ¡Recuerda exportar las preferencias regularmente!</string>
<string name="metadata_warning_date_format">¡Formato de fecha no válido!</string>
<string name="metadata_warning_date_format">¡Formato de fecha/hora inválido!</string>
<string name="metadata_warning_different_version">Preferencias de una versión menor de la aplicación. Está bien si va a importar después de la actualización, pero ¡compruebe después de la importación si las preferencias siguen siendo correctas!</string>
<string name="metadata_urgent_different_version">Preferencias de la versión principal distinta de la aplicación. ¡Las versiones principales difieren significativamente y pueden tener preferencias incompatibles! ¡Asegúrese de que, después de importar, las preferencias siguen siendo correctas!</string>
<string name="prefdecrypt_settings_tampered">Archivo de configuración alterado</string>

View file

@ -6,6 +6,7 @@
<string name="previous_button">Préc</string>
<string name="nav_setupwizard">Assistant de configuration</string>
<string name="setupwizard_finish">TERMINER</string>
<string name="welcome">Bienvenue</string>
<string name="welcometosetupwizard">Bienvenue dans l\'assistant de configuration. Il vous guidera tout au long du processus de configuration\n</string>
<string name="end_user_license_agreement">Accord de licence de lutilisateur final</string>
<string name="end_user_license_agreement_text">NE DOIT PAS ÊTRE UTILISÉ POUR PRENDRE DES DÉCISIONS MÉDICALES. IL N\'Y A AUCUNE GARANTIE POUR LE PROGRAMME, DANS LA LIMITE PERMISE PAR LA LOI APPLICABLE. SAUF S\'IL EST INDIQUÉ LE CONTRAIRE PAR ÉCRIT. LES TITULAIRES DU DROIT D\'AUTEUR ET / OU D\'AUTRES PARTIES FOURNISSENT LE PROGRAMME «EN L\'ÉTAT» SANS GARANTIE D\'AUCUNE SORTE, EXPLICITE OU IMPLICITE, Y COMPRIS MAIS NON SEULEMENT AUX GARANTIES IMPLICITES DE QUALITÉ MARCHANDE ET D\'ADÉQUATION À UN USAGE PARTICULIER

View file

@ -6,6 +6,7 @@
<string name="previous_button">הקודם</string>
<string name="nav_setupwizard">אשף ההתקנה</string>
<string name="setupwizard_finish">סיום</string>
<string name="welcome">ברוכים הבאים</string>
<string name="welcometosetupwizard">ברוכים הבאים לאשף ההתקנה. האשף ידריך אתכם בתהליך ההתקנה\n</string>
<string name="end_user_license_agreement">הסכם רישיון למשתמש</string>
<string name="end_user_license_agreement_text">לא מיועד לשימוש למטרת קבלת החלטות רפואיות. בעלי הזכויות מספקים את התוכנית כפי שהיא - \"AS IS\", ללא אחריות מכל סוג שהוא. כל סיכון הנובע מאיכות ו\\או ביצועי התוכנה הוא באחריותך בלבד. במידה ותימצא תקלה בתוכנית, אתם תשאו בכל עלויות שיגרמו לך בשל התקלה.</string>
@ -152,6 +153,7 @@
<string name="prefdecrypt_issue_wrong_format">תצורת הצפנה חסרה, פורמט ההגדרות אינו חוקי!</string>
<string name="prefdecrypt_issue_wrong_algorithm">אלגוריתם ההצפנה לא צוין או שלא נתמך!</string>
<!-- Custom Watchface -->
<string name="wear_import_custom_watchface_title">בחירת פני שעון מותאמים אישית</string>
<!-- Permissions -->
<string name="alert_dialog_storage_permission_text">נא לאתחל את הסמרטפון שלכם או הפעילו מחדש את אפלקציית AndroidAPS בהגדרות המערכת \nאחרת AndroidAPS לא יוכל לבצע רישום (חשוב לעקוב ולוודא כי האלגוריתמים פועלים כראוי)!</string>
</resources>

View file

@ -6,6 +6,7 @@
<string name="previous_button">Forrige</string>
<string name="nav_setupwizard">Installasjonsguide</string>
<string name="setupwizard_finish">Avslutt</string>
<string name="welcome">Velkommen</string>
<string name="welcometosetupwizard">Velkommen til oppsettveiviseren. Den vil lede deg gjennom installasjonsprosessen\n</string>
<string name="end_user_license_agreement">Sluttbrukeravtale</string>
<string name="end_user_license_agreement_text">MÅ IKKE BENYTTES TIL Å TA MEDISINSKE BESLUTNINGER. DET FINNES INGEN GARANTI FOR PROGRAMMET I DEN UTSTREKNING SOM TILLATES AV GJELDENDE LOV. SÅFREMT IKKE ANNET ER ANGITT SKRIFTLIG LEVERES PROGRAMMET HELT UTEN GARANTIER I NOEN SOM HELST FORM, VERKEN UTTRYKT ELLER INNEFORSTÅTT, INKLUSIV MEN IKKE BEGRENSET TIL SALGBARHET ELLER EGNETHET TIL VISSE FORMÅL. ALL RISIKO KNYTTET TIL KVALITET AV PROGRAMMETS FUNKSJONALITET ER HOS DEG SOM BRUKER. OM PROGRAMMET VISER SEG Å VÆRE DEFEKT, ER DET BRUKEREN SOM MÅ TA ALT ANSVAR FOR KOSTNADER KNYTTET TIL ALL SERVICE, REPERASJON ELLER RETTELSE.</string>

View file

@ -6,6 +6,7 @@
<string name="previous_button">Poprzedni</string>
<string name="nav_setupwizard">Kreator konfiguracji</string>
<string name="setupwizard_finish">ZAKOŃCZ</string>
<string name="welcome">Witaj</string>
<string name="welcometosetupwizard">Witaj w kreatorze konfiguracji. Poprowadzi Cię on przez proces instalacji\n</string>
<string name="end_user_license_agreement">Umowa licencyjna użytkownika końcowego</string>
<string name="end_user_license_agreement_text">NIE MOŻE BY WYKORZYSTYWANY DO PODEJMOWANIA DECYZJI MEDYCZNYCH. NIE MA ŻADNEJ GWARANCJI NA PROGRAM, W ZAKRESIE DOZWOLONYM PRZEZ OBOWIĄZUJĄCE PRAWO. Z WYJĄTKIEM PRZYPADKÓW, GDY W INNY SPOSÓB PISMO OŚWIADCZENIA PRAW AUTORSKICH I / LUB INNYCH STRON, PRZEDSTAWIAĆ PROGRAM \"W STANIE TAKIM, W JAKIM SIĘ ZNAJDUJE\" BEZ JAKIEJKOLWIEK GWARANCJI, WYRAŹNEJ LUB DOMNIEMANEJ, W TYM MIĘDZY INNYMI DOMNIEMANYCH GWARANCJI PRZYDATNOŚCI HANDLOWEJ I PRZYDATNOŚCI DO OKREŚLONEGO CELU. CAŁKOWITE RYZYKO ZWIĄZANE Z JAKOŚCIĄ I WYNIKIEM PROGRAMU JEST PO PAŃSTWA STRONIE. W PRZYPADKU USZKODZENIA PROGRAMU UŻYTKOWNIK PONOSI KOSZT CAŁEGO NIEZBĘDNEGO SERWISU, NAPRAWY LUB POPRAWEK. W PRZYPADKU NIEPOROZUMIEŃ ZASTOSOWANIE PRAWNE MA UMOWA W ANGIELSKIEJ WERSJI JĘZYKOWEJ!!!</string>
@ -152,6 +153,7 @@
<string name="prefdecrypt_issue_wrong_format">Brak konfiguracji szyfrowania, format ustawień jest nieprawidłowy!</string>
<string name="prefdecrypt_issue_wrong_algorithm">Nieobsługiwany lub nieokreślony algorytm szyfrowania!</string>
<!-- Custom Watchface -->
<string name="wear_import_custom_watchface_title">Wybierz niestandardową tarczę</string>
<!-- Permissions -->
<string name="alert_dialog_storage_permission_text">Proszę uruchomić ponownie telefon lub zrestartować AAPS (z poziomu ustawieniach systemu telefonu / menu aplikacje)\ninaczej AAPS nie będzie w stanie zapisywać dziennika (ważne ze względu na śledzenie błędów i sprawdzanie poprawności działania algorytmów)!</string>
</resources>

View file

@ -6,6 +6,7 @@
<string name="previous_button">Anterior</string>
<string name="nav_setupwizard">Assistente de Configuração</string>
<string name="setupwizard_finish">TERMINAR</string>
<string name="welcome">Bem-vindo(a)</string>
<string name="welcometosetupwizard">Bem-vindo ao assistente de configuração. Vai guiá-lo(a) através do processo de instalação\n</string>
<string name="end_user_license_agreement">Condições de Utilização</string>
<string name="end_user_license_agreement_text">NÃO DEVE SER USADO PARA FAZER DECISÕES MÉDICAS. NÃO HÁ NENHUMA GARANTIA PARA O PROGRAMA, NA EXTENSÃO PERMITIDA PELA LEGISLAÇÃO APLICÁVEL. EXCETO QUANDO DE OUTRA FORMA, POR ESCRITO, OS TITULARES DOS DIREITOS DE AUTOR E / OU OUTRAS PARTES FORNECEM O PROGRAMA “TAL COMO ESTÁ”, SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO, ÀS GARANTIAS IMPLÍCITAS DE COMERCIALIZAÇÃO E ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. TODO O RISCO QUANTO À QUALIDADE E DESEMPENHO DO PROGRAMA É COM VOCÊ. CASO O PROGRAMA SEJA DEFEITUOSO, VOCÊ ASSUME O CUSTO DE TODOS OS SERVIÇOS, REPAROS OU CORREÇÕES NECESSÁRIOS.</string>
@ -152,6 +153,7 @@
<string name="prefdecrypt_issue_wrong_format">Configuração de encriptação ausente, formato de configurações é inválido!</string>
<string name="prefdecrypt_issue_wrong_algorithm">Algoritmo de encriptação não suportado ou não especificado!</string>
<!-- Custom Watchface -->
<string name="wear_import_custom_watchface_title">Selecionar Watchface Personalizado</string>
<!-- Permissions -->
<string name="alert_dialog_storage_permission_text">Por favor, reinicie seu telefone ou reinicie o AndroidAPS nas Configurações do Sistema \nCaso contrário o Android APS não terá registro (importante para rastrear e verificar se os algoritmos estão funcionando corretamente)!</string>
</resources>

View file

@ -6,6 +6,7 @@
<string name="previous_button">Önceki</string>
<string name="nav_setupwizard">Kurulum Sihirbazı</string>
<string name="setupwizard_finish">BİTTİ</string>
<string name="welcome">Hoş geldiniz</string>
<string name="welcometosetupwizard">Kurulum sihirbazına hoş geldiniz. Kurulum işleminde size rehberlik edecektir\n</string>
<string name="end_user_license_agreement">Son Kullanıcı Lisans Sözleşmesi</string>
<string name="end_user_license_agreement_text">TIBBİ KARAR VERMEK İÇİN KULLANILMAMALIDIR. UYGULANABİLİR YASANIN İZİN VERDİĞİ ÖLÇÜDE, PROGRAM İÇİN GARANTİ YOKTUR. TELİF HAKKI SAHİPLERİNİN VE / VEYA DİĞER TARAFLARIN YAZILI OLMASINA YÖNELİK BAŞKA HİÇBİR ŞEKİLDE BELİRTİLEN VEYA BELİRLİ BİR AMACA UYGUNLUK İLE İLGİLİ ZIMNİ GARANTİLER DE DAHİL OLMAK ÜZERE ANCAK BUNLARLA SINIRLI OLMAMAK ÜZERE AÇIK VEYA ZIMNİ HİÇBİR GARANTİ OLMAKSIZIN “OLDUĞU GİBİ” SAĞLAMAKTADIR. PROGRAMIN KALİTESİ VE PERFORMANSI İLE İLGİLİ TÜM RİSK SİZE AİTTİR. PROGRAMIN HASARLI OLMASI DURUMUNDA, TÜM GEREKLİ SERVİS, ONARIM VEYA DÜZELTME MALİYETİNİ KABUL ETMİŞ OLURSUNUZ.</string>

View file

@ -21,7 +21,7 @@ abstract class PluginsConstraintsModule {
@Module
interface Bindings {
@Binds fun bindProcessedDeviceStatusData(versionCheckerUtils: VersionCheckerUtilsImpl): VersionCheckerUtils
@Binds fun bindVersionCheckerUtils(versionCheckerUtils: VersionCheckerUtilsImpl): VersionCheckerUtils
@Binds fun bindBgQualityCheck(bgQualityCheck: BgQualityCheckPlugin): BgQualityCheck
@Binds fun bindsConstraints(constraintsImpl: info.nightscout.plugins.constraints.ConstraintsImpl): Constraints
}

View file

@ -44,7 +44,7 @@ class VersionCheckerPlugin @Inject constructor(
enum class GracePeriod(val warning: Long, val old: Long, val veryOld: Long) {
RELEASE(30, 60, 90),
RC(1, 7, 14)
RC(2, 7, 14)
}
private val gracePeriod: GracePeriod
@ -63,7 +63,7 @@ class VersionCheckerPlugin @Inject constructor(
override fun isClosedLoopAllowed(value: Constraint<Boolean>): Constraint<Boolean> {
checkWarning()
versionCheckerUtils.triggerCheckVersion()
if (isOldVersion(gracePeriod.veryOld.daysToMillis()))
if (lastCheckOlderThan(gracePeriod.veryOld.daysToMillis()))
value.set(aapsLogger, false, rh.gs(R.string.very_old_version), this)
val endDate = sp.getLong(rh.gs(info.nightscout.core.utils.R.string.key_app_expiration) + "_" + config.VERSION_NAME, 0)
if (endDate != 0L && dateUtil.now() > endDate)
@ -72,7 +72,7 @@ class VersionCheckerPlugin @Inject constructor(
}
override fun applyMaxIOBConstraints(maxIob: Constraint<Double>): Constraint<Double> =
if (isOldVersion(gracePeriod.old.daysToMillis()))
if (lastCheckOlderThan(gracePeriod.old.daysToMillis()))
maxIob.set(aapsLogger, 0.0, rh.gs(R.string.old_version), this)
else
maxIob
@ -80,19 +80,19 @@ class VersionCheckerPlugin @Inject constructor(
private fun checkWarning() {
val now = dateUtil.now()
if (!sp.contains(R.string.key_last_versionchecker_plugin_warning)) {
sp.putLong(R.string.key_last_versionchecker_plugin_warning, now)
if (!sp.contains(R.string.key_last_versionchecker_plugin_warning_timestamp)) {
sp.putLong(R.string.key_last_versionchecker_plugin_warning_timestamp, now)
return
}
if (isOldVersion(gracePeriod.warning.daysToMillis()) && shouldWarnAgain()) {
if (lastCheckOlderThan(gracePeriod.warning.daysToMillis()) && shouldWarnAgain()) {
// store last notification time
sp.putLong(R.string.key_last_versionchecker_plugin_warning, now)
sp.putLong(R.string.key_last_versionchecker_plugin_warning_timestamp, now)
//notify
val message = rh.gs(
R.string.new_version_warning,
((now - sp.getLong(R.string.key_last_time_this_version_detected_as_ok, now)) / 1L.daysToMillis().toDouble()).roundToInt(),
((now - sp.getLong(R.string.key_last_successful_version_check_timestamp, now)) / 1L.daysToMillis().toDouble()).roundToInt(),
gracePeriod.old,
gracePeriod.veryOld
)
@ -102,7 +102,7 @@ class VersionCheckerPlugin @Inject constructor(
val endDate = sp.getLong(rh.gs(info.nightscout.core.utils.R.string.key_app_expiration) + "_" + config.VERSION_NAME, 0)
if (endDate != 0L && dateUtil.now() > endDate && shouldWarnAgain()) {
// store last notification time
sp.putLong(R.string.key_last_versionchecker_plugin_warning, now)
sp.putLong(R.string.key_last_versionchecker_plugin_warning_timestamp, now)
//notify
uiInteraction.addNotification(Notification.VERSION_EXPIRE, rh.gs(R.string.application_expired), Notification.URGENT)
@ -110,10 +110,10 @@ class VersionCheckerPlugin @Inject constructor(
}
private fun shouldWarnAgain() =
dateUtil.now() > sp.getLong(R.string.key_last_versionchecker_plugin_warning, 0) + WARN_EVERY
dateUtil.now() > sp.getLong(R.string.key_last_versionchecker_plugin_warning_timestamp, 0) + WARN_EVERY
private fun isOldVersion(gracePeriod: Long): Boolean =
dateUtil.now() > sp.getLong(R.string.key_last_time_this_version_detected_as_ok, 0) + gracePeriod
private fun lastCheckOlderThan(gracePeriod: Long): Boolean =
dateUtil.now() > sp.getLong(R.string.key_last_successful_version_check_timestamp, 0) + gracePeriod
private fun Long.daysToMillis() = TimeUnit.DAYS.toMillis(this)
}

View file

@ -36,13 +36,13 @@ class VersionCheckerUtilsImpl @Inject constructor(
override fun triggerCheckVersion() {
if (!sp.contains(R.string.key_last_time_this_version_detected_as_ok)) {
if (!sp.contains(R.string.key_last_successful_version_check_timestamp)) {
// On a new installation, set it as 30 days old in order to warn that there is a new version.
sp.putLong(R.string.key_last_time_this_version_detected_as_ok, dateUtil.now() - TimeUnit.DAYS.toMillis(30))
setLastCheckTimestamp(dateUtil.now() - TimeUnit.DAYS.toMillis(30))
}
// If we are good, only check once every day.
if (dateUtil.now() > sp.getLong(R.string.key_last_time_this_version_detected_as_ok, 0) + CHECK_EVERY) {
if (dateUtil.now() > sp.getLong(R.string.key_last_successful_version_check_timestamp, 0) + CHECK_EVERY) {
checkVersion()
}
}
@ -78,6 +78,7 @@ class VersionCheckerUtilsImpl @Inject constructor(
val newVersionElements = newVersion.toNumberList()
val currentVersionElements = currentVersion.toNumberList()
aapsLogger.debug(LTag.CORE, "Compare versions: $currentVersion $currentVersionElements, $newVersion $newVersionElements")
if (newVersionElements.isNullOrEmpty()) {
onVersionNotDetectable()
return
@ -106,15 +107,15 @@ class VersionCheckerUtilsImpl @Inject constructor(
private fun onOlderVersionDetected() {
aapsLogger.debug(LTag.CORE, "Version newer than master. Are you developer?")
sp.putLong(R.string.key_last_time_this_version_detected_as_ok, dateUtil.now())
setLastCheckTimestamp(dateUtil.now())
}
private fun onSameVersionDetected() {
sp.putLong(R.string.key_last_time_this_version_detected_as_ok, dateUtil.now())
setLastCheckTimestamp(dateUtil.now())
}
private fun onVersionNotDetectable() {
aapsLogger.debug(LTag.CORE, "fetch failed")
aapsLogger.debug(LTag.CORE, "Fetch failed")
}
private fun onNewVersionDetected(currentVersion: String, newVersion: String?) {
@ -135,6 +136,11 @@ class VersionCheckerUtilsImpl @Inject constructor(
}
}
private fun setLastCheckTimestamp(timestamp: Long) {
aapsLogger.debug(LTag.CORE, "Setting key_last_successful_version_check_timestamp ${dateUtil.dateAndTimeAndSecondsString(timestamp)}")
sp.putLong(R.string.key_last_successful_version_check_timestamp, timestamp)
}
private fun String?.toNumberList() =
this?.numericVersionPart().takeIf { !it.isNullOrBlank() }?.split(".")?.map { it.toInt() }

View file

@ -10,7 +10,6 @@
<string name="old_version">стара версия</string>
<string name="very_old_version">много стара версия</string>
<string name="application_expired">Приложението е твърде старо!</string>
<string name="new_version_warning">Има нова версия от най-малко %1$d дни! Ще спре подаването на инсулин след %2$d дни, цикълът ще бъде изключен след %3$d дни</string>
<string name="running_invalid_version">Използвате грешна версия. APS е изключен!</string>
<string name="versionavailable">Има налично обновяване до версия %1$s </string>
<string name="version_expire">Версия %1$s изтича на %2$s</string>

View file

@ -26,6 +26,9 @@
<string name="objectives_smb_objective">Povolit další funkce pro běžné používání jako SMB</string>
<string name="objectives_smb_gate">Přečíst si dokumentaci a zvýšit maximání IOB, aby mohlo SMB fungovat. Pro začátek se dá použít velikost běžného bolusu + 3x maximální denní bazál</string>
<string name="objectives_smb_learned">Použití SMB je vaším cílem. Oref1 algoritmus byl navržen tak, aby vám pomohl i s vašimi bolusy. Neměli byste dávat úplný bolus pro vaše jídlo, ale jen jeho část a nechtat AAPS v případě potřeby dát zbytek. Takto máte větší rezervu pro špatně vypočtené sacharidy. Věděli jste, že můžete nastavit procento bolusové kalkulačky pro snížení velikosti bolusu?</string>
<string name="objectives_dyn_isf_objective">Povolit další funkce pro každodenní používání, jako je například Dynamic sensitivity plugin</string>
<string name="objectives_dyn_isf_gate">Ujistěte se, že SMB funguje správně. Povolte DynamicISF plugin a určte vhodnou kalibraci pro vaše tělo. Je vhodné začít s hodnotou nižší než 100% z důvodu bezpečnosti.</string>
<string name="objectives_dyn_isf_learned">Modul dynamické citlivosti citlivosti je založen na myšlence, že celkový příjem inzulinu a aktuální hladiny glykémie ovlivňují skutečnou citlivost. DynamicISF plugin může pro vás upravit faktor citlivosti inzulínu (ISF) používaný algoritmem.</string>
<string name="objectives_auto_objective">Povolení automatizace</string>
<string name="objectives_auto_gate">Přečtěte si na wiki, jak automatizace funguje. Nejdříve nastavte pouze jednoduchá pravidla. Namísto provádění akcí nechte AAPS zobrazovat pouze oznámení. Pokud jste si jistí, že je automatizace spouštěna v pravý čas, můžete oznámení nahradit prováděním akce. (https://wiki.aaps.app/cs/latest/Usage/Automation.html)</string>
<string name="objectives_auto_learned">Automatizace může být dobrý sluha, ale špatný pán. Nepoužívejte ji nadměrně. Nesnažte se nahradit základní algoritmus. Otestujte pravidlo pouze se zprávou před použitím. Zpracování pravidel závisí na pořadí.</string>

View file

@ -10,7 +10,7 @@
<string name="old_version">stará verze</string>
<string name="very_old_version">velmi stará verze</string>
<string name="application_expired">Platnost aplikace vypršela</string>
<string name="new_version_warning">Nová verze je dostupná minimálně %1$d dní! Přepnutí na ochranu před nízkou glykémií po %2$d dnech, vypnutí smyčky po %3$d dnech</string>
<string name="new_version_warning">Nová verze nebyla zkontrolována nejméně %1$d dní! V případě, že uplyne %2$d dní, přepne se režim na LGS a po %3$d dnech bude smyčka vypnuta. Obnovte připojení k internetu!</string>
<string name="running_invalid_version">Zjistili jsme, že používáte neplatnou verzi, smyčka zakázána!</string>
<string name="versionavailable">Verze %1$s je k dispozici</string>
<string name="version_expire">Platnost verze %1$s vyprší dne %2$s</string>

View file

@ -24,7 +24,12 @@
<string name="objectives_autosens_gate">Loope eine Woche tagsüber mit regelmäßiger Kohlenhydrat-Eingabe</string>
<string name="objectives_autosens_learned">Wenn Ihr Autosens Ergebnis nicht stündlich schwankt, um die angestrebten 100 % ist das verwendete Profil wahrscheinlich falsch.</string>
<string name="objectives_smb_objective">Aktiviere zusätzliche Funktionen für die Nutzung tagsüber wie z. B. SMB</string>
<string name="objectives_smb_gate">Lies das Wiki und hebe maxIOB an, damit SMB funktioniert. Ein guter Startwert ist
maxIOB = durchschnittlicher Essensbolus + 3 x maximale Basalrate</string>
<string name="objectives_smb_learned">Die Verwendung von SMB ist Dein Ziel. Der Oref1-Algorithmus wurde entwickelt, um Dir auch mit Boli zu helfen. Du solltest nicht den vollen Bolus für Dein Essen geben, sondern nur einen Teil davon abgeben und es AAPS überlassen bei Bedarf den notwendigen Rest entsprechend dem Blutzuckerverlauf zugeben zu lassen. Auf diese Weise hast Du mehr Platz für falsch berechnete Kohlenhydrate. Wusstest Du, dass Du einen Prozentsatz bei Verwendung des Bolusrechners festlegen kannst, um die Größe des Bolus zu reduzieren?</string>
<string name="objectives_dyn_isf_objective">Aktiviere zusätzliche Funktionen für die tägliche Nutzung wie das Dynamische Empfindlichkeits-Plugin</string>
<string name="objectives_dyn_isf_gate">Stellen Sie sicher, dass SMB ordnungsgemäß funktioniert. Aktivieren Sie das DynamicISF-Plugin und identifizieren Sie die entsprechende Kalibrierung für die Einzigartigkeit Ihres Körpers. Es ist ratsam zur Sicherheit, mit einem Wert unter 100% zu beginnen.</string>
<string name="objectives_dyn_isf_learned">Das Plugin Dynamic Sensitivity basiert auf der Vorstellung, dass die gesamte Insulinaufnahme und die aktuelle Glykämie die tatsächliche Empfindlichkeit beeinflussen. Das DynamicISF Plugin kann den Insulin Sensitivitätsfaktor (ISF) einstellen, der für Sie verwendet wird.</string>
<string name="objectives_auto_objective">Automatisierung aktivieren</string>
<string name="objectives_auto_gate">Lies in der Dokumentation nach, wie die Automation funktioniert. Richte Dir erst einfache Regeln ein. Zunächst sollte AAPS keine Änderungen vornehmen, sondern Dir nur eine Benachrichtigung anzeigen. Wenn Du Dir sicher bist, dass die Automation im richtigen Moment angetriggert wird, dann kannst Du die Benachrichtigung durch eine Aktion ersetzen (https://androidaps.readthedocs.io/de/latest/CROWDIN/de/Usage/Automation.html)</string>
<string name="objectives_auto_learned">Automatisierung kann ein guter Diener sein, aber ein schlechter Meister. Überbeanspruchen Sie ihn nicht. Versuchen Sie nicht, den zugrundeliegenden Algorithmus zu ersetzen. Testen Sie die Regel erst vor der Verwendung. Es hängt von der Reihenfolge ab.</string>

View file

@ -10,7 +10,7 @@
<string name="old_version">Veraltete Version</string>
<string name="very_old_version">sehr alte Version</string>
<string name="application_expired">Anwendung abgelaufen</string>
<string name="new_version_warning">Neue Version seit mindestens %1$d Tagen verfügbar! Rückfall zur Unterzucker-vermeidenden Pumpentherapie nach %2$d Tagen, Loop wird nach %3$d Tagen deaktiviert.</string>
<string name="new_version_warning">Die neue Version wurde für mindestens %1$d Tage nicht überprüft! Fallback auf LGS nach %2$d Tagen wird die Schleife nach %3$d Tagen deaktiviert. Internetverbindung wiederherstellen!</string>
<string name="running_invalid_version">Wir haben festgestellt, dass Du eine ungültige Version verwendest. Loop deaktiviert!</string>
<string name="versionavailable">Version %1$s ist verfügbar.</string>
<string name="version_expire">Version %1$s läuft am %2$s ab</string>

View file

@ -26,6 +26,9 @@
<string name="objectives_smb_objective">Habilitar funciones adicionales para uso durante el día como SMB</string>
<string name="objectives_smb_gate">Debes leer la wiki y aumentar el valor de maxIOB para que SMB funcione bien. Un buen comienzo sería maxIOB = bolo de comida promedio + 3x máxima basal diaria</string>
<string name="objectives_smb_learned">Utilizar SMB es su objetivo. El algoritmo Oref1 fue diseñado para ayudarle también con sus bolos. No debe dar un bolo completo para su comida, sino sólo una parte y dejar que AAPS le dé el resto si es necesario. De esta forma tendrás más espacio para los carbohidratos mal calculados. ¿Sabías que puedes establecer un porcentaje del resultado de la calculadora de bolo para reducir el tamaño del bolo?</string>
<string name="objectives_dyn_isf_objective">Activación de funciones adicionales para uso diurno, como el complemento de sensibilidad dinámica</string>
<string name="objectives_dyn_isf_gate">Asegúrate de que el SMB funciona correctamente. Habilita el plugin ISF Dinámico e identifica la calibración adecuada para la singularidad de tu cuerpo. Es aconsejable empezar con un valor inferior al 100% por seguridad.</string>
<string name="objectives_dyn_isf_learned">El plugin Sensibilidad Dinámica se basa en la idea de que la ingesta total de insulina y los niveles actuales de glucemia afectan a la sensibilidad real. El plugin ISF Dinámico puede ajustar el Factor de Sensibilidad a la Insulina (ISF) utilizado por el algoritmo para ti.</string>
<string name="objectives_auto_objective">Activar automatización</string>
<string name="objectives_auto_gate">Lee la documentación sobre el funcionamiento de la automatización. Configure sus primeras reglas simples. En lugar de una acción, deja que AAPS muestre sólo una notificación. Cuando esté seguro de que la automatización se activa en el momento adecuado, sustituya la notificación por una acción real. (https://wiki.aaps.app/en/latest/Usage/Automation.html)</string>
<string name="objectives_auto_learned">La automatización puede ser un buen ayudante, pero un mal amo. No abuses. No intentes reemplazar el algoritmo subyacente. Pruebe la regla sólo con mensajes antes de utilizarla. Además, depende del orden.</string>

View file

@ -10,7 +10,7 @@
<string name="old_version">versión antigua</string>
<string name="very_old_version">versión muy antigua</string>
<string name="application_expired">Aplicación caducada</string>
<string name="new_version_warning">Nueva versión disponible de al menos %1$d día/s. Se vuelve a la función de suspensión por glucosa baja (LGS) después de %2$d días. Después se deshabilitará el bucle en %3$d días</string>
<string name="new_version_warning">¡La nueva versión no se ha comprobado desde hace al menos %1$d días! Volverás a LGS después de %2$d días, el lazo se deshabilitará después de %3$d días. ¡Restaura la conexión a Internet!</string>
<string name="running_invalid_version">Hemos detectado que está ejecutando una versión no válida. ¡Bucle desactivado!</string>
<string name="versionavailable">Versión %1$s disponible</string>
<string name="version_expire">La versión %1$s caduca el %2$s</string>

View file

@ -26,6 +26,9 @@
<string name="objectives_smb_objective">Activation de fonctionnalités supplémentaires pour l\'utilisation en journée, telles que la fonction SMB</string>
<string name="objectives_smb_gate">Vous devez lire le wiki et augmenter le maxIA pour faire fonctionner les SMB ! Un bon début est maxIA = moyenne des bolus repas + 3 fois le basal le plus élevé</string>
<string name="objectives_smb_learned">L\'utilisation de SMB est votre objectif. L\'algorithme Oref1 a été conçu pour vous aider également avec vos bolus. Vous ne devriez pas donner un bolus complet pour votre nourriture, mais seulement une partie de celui-ci et laisser AAPS vous donner le reste si nécessaire. De cette façon, vous avez plus de latitude pour les glucides mal calculés. Saviez-vous que vous pouvez définir un pourcentage à appliquer au résultat de la calculatrice de bolus pour réduire la taille du bolus ?</string>
<string name="objectives_dyn_isf_objective">Activation de fonctionnalités supplémentaires pour l\'utilisation en journée, comme le plugin de Sensibilité Dynamique</string>
<string name="objectives_dyn_isf_gate">Assurez-vous que SMB fonctionne correctement. Activez le plugin SI Dynamique et utilisez une valeur appropriée aux besoins de votre corps. Il est conseillé de commencer par une valeur inférieure à 100% pour la sécurité.</string>
<string name="objectives_dyn_isf_learned">Le plugin de Sensibilité Dynamique est basé sur l\'idée que la dose totale d\'insuline et la glycémie actuelle affectent la sensibilité actuelle. Le plugin SI Dynamique peut ajuster la SI utilisée par l\'algorithme.</string>
<string name="objectives_auto_objective">Activation de l\'automatisation</string>
<string name="objectives_auto_gate">Lisez la documentation sur le fonctionnement de l\'automatisation fonctionne. Configurez vos premières règles simples. Au lieu de mettre une action, configurez une notification. Quand vous êtes sûr que l\'automatisation est déclenchée au bon moment, remplacez la notification par une action réelle. (https://wiki.aaps.app/fr/latest/Usage/Automation.html)</string>
<string name="objectives_auto_learned">L\'automatisation peut être un bon serviteur mais un mauvais maître. Ne l\'utilisez pas de manière excessive. N\'essayez pas de remplacer l\'algorithme sous-jacent. Testez la règle avec uniquement un message avant l\'utilisation. Le résultat dépend de l\'ordre.</string>

View file

@ -10,7 +10,7 @@
<string name="old_version">ancienne version</string>
<string name="very_old_version">très ancienne version</string>
<string name="application_expired">Application expirée</string>
<string name="new_version_warning">Nouvelle version disponible depuis %1$d jours ! Retour à Arrêt Glycémie Basse (AGB) dans %2$d jours, la boucle sera désactivée dans %3$d jours</string>
<string name="new_version_warning">La nouvelle version n\'a pas été vérifiée depuis au moins %1$d jours ! Revenir à AGB après %2$d jours, la boucle sera désactivée après %3$d jours. Restaurer la connectivité internet !</string>
<string name="running_invalid_version">Nous avons détecté que vous utilisez une version invalide. Boucle désactivée !</string>
<string name="versionavailable">Version %1$s disponible</string>
<string name="version_expire">La version %1$s expire le %2$s</string>

View file

@ -10,7 +10,6 @@
<string name="old_version">versione datata</string>
<string name="very_old_version">versione molto datata</string>
<string name="application_expired">Applicazione scaduta</string>
<string name="new_version_warning">Nuova versione disponibile da almeno %1$d giorni! Ritorno a LGS dopo %2$d giorni, disattivazione del loop dopo %3$d giorni</string>
<string name="running_invalid_version">Abbiamo rilevato che stai eseguendo una versione non valida. Loop disabilitato!</string>
<string name="versionavailable">Versione %1$s disponibile</string>
<string name="version_expire">Versione: %1$s | Scadenza: %2$s</string>

View file

@ -26,6 +26,7 @@
<string name="objectives_smb_objective">הפעלת פונקציות נוספות לשימוש במשך היום, כגון סופר מיקרו בולוסים (SMB)</string>
<string name="objectives_smb_gate">חובה לקרוא את הויקי ולהעלות את ערך האינסולין הפעיל המרבי (maxIOB) כדי להפעיל את ה- SMB כראוי. התחלה טובה תהיה maxIOB=בולוס ארוחה טיפוסי + 3 פעמים ערך הבזאלי המקסימלי ביממה</string>
<string name="objectives_smb_learned">שימוש ב-SMB הוא המטרה שלכם. אלגוריתם Oref1 תוכנן לעזור גם עם הבולוסים שלכם. אתם לא צריכים להזריק בולוס מלא למזון שלכם אלא רק על חלק ממנו ולתת ל-AAPS לטפל בשאר במידת הצורך. כך קל יותר להכיל טעויות בספירת פחמימות. הידעתם שאפשר להגדיר אחוז מתוצאת מחשבון הבולוס כדי להקטין את גודל הבולוס?</string>
<string name="objectives_dyn_isf_learned">הרגישות הדינאמית מתבססת על הרעיון שהזרקת האינסולין ורמת הסוכר משפיעות על הרגישות בפועל. הרגישות הדינאמית יכולה להתאים בשבילכם את יחס התיקון (ISF) בו האלגוריתם משתמש.</string>
<string name="objectives_auto_objective">הפעלת אוטומציה</string>
<string name="objectives_auto_gate">קראו את המסמכים על אופן הפעולה של אוטומציות. הגדירו את התנאים הפשוטים הראשונים שלכם. במקום פעולה תנו ל-AAPS להציג הודעה בלבד. כאשר אתם בטוחים שהאוטומציה מופעלת בזמן הנכון, החליפו את ההודעה בפעולה אמיתית. (https://wiki.aaps.app/he/latest/Usage/Automation.html)</string>
<string name="objectives_auto_learned">אוטומציה יכולה להיות משרת טוב אבל אדון רע. אל תשתמשו בהן יתר על המידה. אל תנסו להחליף את האלגוריתם הבסיסי. בדקו את התנאי של האוטומציה עם הודעה לפני השימוש.</string>

View file

@ -10,7 +10,6 @@
<string name="old_version">גרסה ישנה</string>
<string name="very_old_version">גרסה ישנה מאוד</string>
<string name="application_expired">תוקף האפליקציה פג</string>
<string name="new_version_warning">גרסה חדשה זמינה כבר %1$d ימים! הגבלה להשהיה עקב סוכר נמוך תחל אחרי %2$d ימים, הלולאה תושבת אחרי %3$d ימים</string>
<string name="running_invalid_version">זיהינו שאתם משתמשים בגרסה שאינה בתוקף. הלולאה מושבתת!</string>
<string name="versionavailable">גרסה %1$s זמינה</string>
<string name="version_expire">תוקפה של גרסה %1$s תפוג ב-%2$s</string>

View file

@ -10,7 +10,7 @@
<string name="hypott_label">Hipo laikinas tikslas</string>
<string name="hypott_whenhypott">Kokia yra pagrindinė priežastis nustatyti Hipo laikiną tikslą?</string>
<string name="hypott_wrongbasal">Hipoglikemijų dėl neteisingai nustatytos bazės korekcija.</string>
<string name="hypott_preventoversmb">Kad būtų išvengta per didelių AndroidAPS korekcijų, kai glikemija pradeda staigiai kilti suvalgius greitai veikiančių angliavandenių hipoglikemijos metu.</string>
<string name="hypott_preventoversmb">Kad būtų išvengta per didelių AAPS korekcijų, kai glikemija pradeda staigiai kilti suvalgius greitai veikiančių angliavandenių hipoglikemijos metu.</string>
<string name="hypott_exercise">Tam, kad būtų koreguojama hipoglikemija, įvykusi dėl fizinio aktyvumo.</string>
<string name="hypott_0basal">Tam, kad būtų išvengta glikemijos kritimo kai jau nustatyta 0% laikina bazė.</string>
<string name="hypott_hint1">https://wiki.aaps.app/en/latest/Usage/temptarget.html</string>

View file

@ -24,7 +24,11 @@
<string name="objectives_autosens_gate">1 savaitę praleiskite sėkmingai naudodami uždarąjį ciklą dienos metu ir įvesdami visus valgomus angliavandenius</string>
<string name="objectives_autosens_learned">Jei Jūsų autosens rezultatai nesvyruoja apie 100%, tikėtina, kad profilis turi klaidų.</string>
<string name="objectives_smb_objective">Dienos metu aktyvuokite papildomas funkcijas, tokias kaip SMB (Super Mikro Bolusas)</string>
<string name="objectives_smb_gate">Norėdami, kad SMB veiktų gerai, turite perskaityti dokumentaciją ir padidinti maks AIO! Pradžiai patartina skaičiuoti taip: maksAIO=(didžiausia valandinė bazė x 3) + vidutinis bolusas</string>
<string name="objectives_smb_learned">SMB yra Jūsų tikslas. Oref1 algoritmas sukurtas taip, kad taptų Jums pagalba su bolusavimu. Jūs galite nesileisti viso boluso maistui, susileiskite dalį, o AAPS padarys likusį darbą, jei reikės. Taip išvengsite klaidų dėl neteisingai apskaičiuotų AV. Ar žinote, kad galite skaičiuotuve nurodyti, kiek % apskaičiuoto boluso suleisti?</string>
<string name="objectives_dyn_isf_objective">Dienos metu aktyvuokite papildomas funkcijas, tokias kaip DinaminisJIF</string>
<string name="objectives_dyn_isf_gate">Įsitikinkite, kad SMB veikia teisingai. Įgalinkite įskiepį DinaminisJIF ir nustatykite savo organizmo ypatybes atitinkantį kalibravimo režimą. Saugumo sumetimais rekomenduojama pradėti nuo verčių, mažesnių nei 100%.</string>
<string name="objectives_dyn_isf_learned">DinaminisJIF remiasi tuo, kad bendra insulino paros dozė ir esama glikemija turi įtakos dabartiniam jautrumui. Įskiepis gali pagal specialų algoritmą paderinti jautrumo insulinui faktorių (JIF).</string>
<string name="objectives_auto_objective">Automatizavimo įjungimas</string>
<string name="objectives_auto_gate">Perskaitykite dokumentaciją apie automatizacijos veikimą. Nustatykite kelias paprastas taisykles. Nustatykite, kad AAPS tik parodytų pranešimą, o ne atliktų realų veiksmą. Kai įsitikinsite, kad automatizacija suveikia reikalingu metu, vietoj pranešimo įjunkite veiksmą. (https://wiki.aaps.app/en/latest/Usage/Automation.html)</string>
<string name="objectives_auto_learned">Automatizacija gali būti lazda su dviem galais. Nepiktnaudžiaukite. Nebandykite keisti ją aprašančių algoritmų. Prieš įgalindami veiksmą, išbandykite rezultatą su pranešimu. Rezultatas labai priklauso nuo sąlygų eiliškumo.</string>

View file

@ -2,15 +2,15 @@
<resources>
<!-- PhoneChecker -->
<!-- DST Helper -->
<string name="dst_in_24h_warning">Laiko persukimas įvyks po 24 val ar mažiau</string>
<string name="dst_loop_disabled_warning">Laiko persukimas įvyko prieš mažiau nei 3 val - Uždaras ciklas deaktyvuotas</string>
<string name="dst_in_24h_warning">Laiko persukimas įvyks po 24 val. ar mažiau</string>
<string name="dst_loop_disabled_warning">Laiko persukimas įvyko prieš mažiau nei 3 val. - Uždaras ciklas išjungtas</string>
<!-- Storage constraint -->
<string name="disk_full">Atlaisvinkite ne mažiau kaip %1$d MB vidinėje atmintyje! Ciklas išjungtas!</string>
<!-- Version Checker -->
<string name="old_version">sena versija</string>
<string name="very_old_version">labai sena versija</string>
<string name="application_expired">Programa nebenaudojama</string>
<string name="new_version_warning">Nauja versija pasiekiama mažiausiai %1$d d.! Po %2$d grįšite į Stabdymo esant žemai glikemijai režimą, po %3$d ciklas bus išjungtas</string>
<string name="new_version_warning">Nebuvo galimybės patikrinti, ar yra programos naujinių mažiausiai %1$d d.! Po %2$d d. sistema grįš į Stabdymo esant žemai glikemijai režimą, o po %3$d d. ciklas taps atviras. Prisijunkite prie interneto!</string>
<string name="running_invalid_version">Nustatyta, kad naudojate nebegaliojančią versiją. Ciklas išjungtas!</string>
<string name="versionavailable">Versiją %1$s jau galima naudoti</string>
<string name="version_expire">Versija %1$s baigs galioti %2$s</string>
@ -28,7 +28,7 @@
<string name="closedmodedisabledinpreferences">Uždaro ciklo būsena išjungta nustatymuose</string>
<string name="closed_loop_disabled_on_dev_branch">Naudojama neužbaigta versija. Uždaras ciklas neaktyvus.</string>
<string name="closed_loop_disabled_with_eb">Uždara ciklas išjungtas dėl ištęsto boluso veikimo</string>
<string name="smbalwaysdisabled">Funkcijos \"SMB visada\" ir \"SMB po angliavandenių\" išjungtos, nes glikemijos duomenų šaltinis neturi reikalingo filtravimo</string>
<string name="smbalwaysdisabled">Funkcijos \"SMB visada\" ir \"SMB su angliavandeniais\" išjungtos, nes glikemijos duomenų šaltinis neturi reikalingo filtravimo</string>
<string name="smbnotallowedinopenloopmode">SMB neleidžiami atviro ciklo režime</string>
<string name="maxvalueinpreferences">Maksimali reikšmė nustatymuose</string>
<string name="hardlimit">Nekeičiama riba</string>

View file

@ -10,7 +10,6 @@
<string name="old_version">oude versie</string>
<string name="very_old_version">zeer oude versie</string>
<string name="application_expired">Applicatie is verlopen</string>
<string name="new_version_warning">Nieuwe versie al zeker %1$d dagen beschikbaar! Terugval LGS na %2$d dagen, loop zal worden uitgeschakeld na %3$d dagen</string>
<string name="running_invalid_version">We hebben gedetecteerd dat je een ongeldige versie gebruikt. Loop is uitgeschakeld!</string>
<string name="versionavailable">Versie %1$s is beschikbaar</string>
<string name="version_expire">Versie %1$s verloopt op %2$s</string>

View file

@ -26,6 +26,9 @@
<string name="objectives_smb_objective">Aktiver ekstra funksjoner for bruk på dagtid, slik som SMB (Super Micro Bolus)</string>
<string name="objectives_smb_gate">Du må lese wiki og øke din maxIOB for å få SMB til å fungere. Et godt utgangspunkt er maxIOB = gjennomsnittlig måltidsbolus + 3*max daglig basal</string>
<string name="objectives_smb_learned">Bruk av SMB er en målsetting. Oref1 algoritmen ble designet for å hjelpe deg med dine bolusdoseringer. Det anbefales å ikke gi full bolusdose for måltider, men bare en del av den, og la AAPS styre resten om nødvendig. På denne måten får du større fleksibilitet med hensyn på feilberegnede KH. Visste du at du kan angi en prosentandel for boluskalkulatoren som resulterer i redusert bolusstørrelse?</string>
<string name="objectives_dyn_isf_objective">Aktivere ekstra funksjoner for bruk på dagtid, slik som Dynamisk Sensitivitet</string>
<string name="objectives_dyn_isf_gate">Sørg for at SMB fungerer som den skal. Aktiver DynamicISF-tillegget og finn riktig kalibrering for dine behov. Det anbefales å starte med en verdi lavere enn 100% for sikkerhets skyld.</string>
<string name="objectives_dyn_isf_learned">Plugin for Dynamisk Sensitivitet er basert på en teori om at totalt insulininntak og nåværende blodsukkernivå påvirker insulinfølsomheten. DynamicISF-tillegget kan justere sensitivitetsfaktoren (ISF) for deg.</string>
<string name="objectives_auto_objective">Aktiver Automatisering</string>
<string name="objectives_auto_gate">Les dokumentasjonen på hvordan Automatisering virker. La din første regel være enkel. I stedet for å utføre en behandling kan du få AAPS til å vise en melding i stedet når den aktiveres. Da får du kontrollert at Automatisering aktiveres korrekt og du kan erstatte meldingsvarselet med en behandlingskommando. (https://wiki.aaps.app/en/latest/Usage/Automation.html)</string>
<string name="objectives_auto_learned">Automasjon kan være en god tjener, men en dårlig herre. Ikke bruk den over alt. Ikke prøv å erstatte underliggende algoritme. Test regelen med melding kun før bruk. Automatisering har en rekkeølge.</string>

View file

@ -10,7 +10,7 @@
<string name="old_version">gammel versjon</string>
<string name="very_old_version">veldig gammel versjon</string>
<string name="application_expired">Applikasjon utløpt</string>
<string name="new_version_warning">Ny versjon tilgjengelig i minst %1$d dager! Systemet vil bytte til \"stopp ved lavt BS (LGS)\" etter %2$d dager og loop vil deaktiveres etter %3$d dager</string>
<string name="new_version_warning">AAPS har ikke kunnet se etter ny versjon på %1$d dager! AAPS vil gå tilbake til LGS-modus om %2$d dager, deretter vil loop bli slått av om %3$d dager. Slå på internett-tilgang slik at AAPS kan se etter ny versjon!</string>
<string name="running_invalid_version">Vi har oppdaget at du kjører en ugyldig versjon. Loop deaktivert!</string>
<string name="versionavailable">Versjon %1$s er tilgjengelig</string>
<string name="version_expire">Versjon %1$s utløper den %2$s</string>

View file

@ -24,7 +24,11 @@
<string name="objectives_autosens_gate">1 tydzień sukcesu w działaniu pętli w ciągu dnia z regularnym wprowadzaniem spożywanych węglowodanów</string>
<string name="objectives_autosens_learned">Jeśli wynik autosens nie oscyluje w okolicach 100%, prawdopodobnie Twój profil nie jest poprawny.</string>
<string name="objectives_smb_objective">Włączanie dodatkowych funkcji do użytku, jak SMB (Super Mikro Bolusy)</string>
<string name="objectives_smb_gate">Musisz przeczytać wiki i zwiększyć maxIOB, aby SMB działało dobrze! Dobrym początkiem jest maxIOB = średni bolus doposiłkowy + 3 x maks. spośród dziennych dawek bazowych</string>
<string name="objectives_smb_learned">Używanie SMB jest Twoim celem. Algorytm Oref1 został zaprojektowany, aby pomóc Ci również w bolusach. Nie należy podawać pełnego bolusa do jedzenia, ale tylko jego część, a w razie potrzeby pozostawić resztę AAPS. W ten sposób masz więcej miejsca na błędnie obliczone węglowodany. Czy wiesz, że można w kalkulatorze ustawić procent wyniku bolusa, aby zmniejszyć rozmiar bolusa?</string>
<string name="objectives_dyn_isf_objective">Uruchomienie do codziennego użytku dodatkowych funkcji, takich jak plugin dynamicznej wrażliwości</string>
<string name="objectives_dyn_isf_gate">Upewnij się, że SMB działa poprawnie. Włącz wtyczkę DynamicISF i określ odpowiednią kalibrację pasującą do indywidualnego i unikalnego zapotrzebowania Twojego ciała. Dla bezpieczeństwa, wskazane jest rozpoczęcie od wartości niższej niż 100%.</string>
<string name="objectives_dyn_isf_learned">Wtyczka „Dynamiczna wrażliwość” opiera się na założeniu, że całkowita podaż insuliny i obecne poziomy glikemii wpływają na rzeczywistą wrażliwość. Wtyczka DynamicISF może dla Ciebie dostosowywać współczynnik wrażliwości na insulinę (ISF) używany przez algorytm.</string>
<string name="objectives_auto_objective">Włączanie automatyzacji</string>
<string name="objectives_auto_gate">Przeczytaj dokumentację dotyczącą działania automatyzacji. Skonfiguruj swoje pierwsze proste zasady. Zamiast wykonania działania niech AAPS wyświetli tylko powiadomienie. Gdy masz pewność, że automatyzacja zostaje uruchomiona we właściwym czasie, zastąp powiadomienie rzeczywistą akcją. (https://wiki.aaps.app/en/latest/Usage/Automation.html)</string>
<string name="objectives_auto_learned">Automatyzacja może być dobrym sługą, ale złym panem. Nie nadużywaj jej. Nie próbuj zastąpić podwalin głównego algorytmu. Przed użyciem sprawdź regułę samym powiadomieniem. Zwróć uwagę na kolejność wykonania reguł.</string>

View file

@ -10,7 +10,7 @@
<string name="old_version">stara wersja</string>
<string name="very_old_version">bardzo stara wersja</string>
<string name="application_expired">Aplikacja wygasła</string>
<string name="new_version_warning">Nowa wersja dostępna co najmniej %1$d dni! Powrót do LGS (zawieszania podawania bazy przy niskiej glikemii) po %2$d dniach, pętla zostanie wyłączona po %3$d dniach</string>
<string name="new_version_warning">Od co najmniej %1$d dni nie sprawdzono, czy dostępna jest nowa wersja! Nastąpi powrót do trybu LGS (tylko wstrzymanie bazy przy niskiej glikemii) po %2$d dniach, a po %3$d dniach pętla zostanie wyłączona. Przywróć połączenie z Internetem!</string>
<string name="running_invalid_version">Wykryliśmy, że używasz nieprawidlowej wersji. Pętla wyłączona!</string>
<string name="versionavailable">Wersja %1$s dostępna</string>
<string name="version_expire">Wersja %1$s wygasa %2$s</string>

View file

@ -1,38 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="objectives_button_start">Iniciar</string>
<string name="objectives_button_verify">Verificar</string>
<string name="objectives_button_verify">Concluir</string>
<string name="nth_objective">%1$d. Objetivo</string>
<string name="objectivenotstarted">Objetivo %1$d não iniciado</string>
<string name="objectivenotfinished">Objetivo %1$d não concluído</string>
<string name="objectives_0_objective">Configurando a visualização e monitoramento, e analisando basais e relações</string>
<string name="objectives_0_gate">Verificar se a Glicemia está disponível no Nightscout, e se os dados de insulina da bomba estão sendo transferidos</string>
<string name="objectives_0_gate">Verificar se a Glicemia está disponível no Nightscout, e se os dados de insulina da bomba estão sendo enviado ao Nightscout</string>
<string name="objectives_0_learned">Você fez a configuração básica do ecossistema AAPS. O Nightscout não é necessário para o AAPS funcionar, mas é muito útil para relatórios ou monitoramento de outros pacientes. Não é necessário estar conectado ao NS o tempo todo se você usa o NS apenas para si mesmo. Você pode configurar para enviar, por exemplo, apenas em wifi de casa e economizar bateria.</string>
<string name="objectives_openloop_objective">Iniciando em um loop aberto</string>
<string name="objectives_openloop_gate">Utilize o modo Loop Aberto por alguns dias e execute manualmente várias basais temporárias. Configure e use alvos temporários e defina alvos temporários padrão (por exemplo, para exercício ou tratamento hipos com carboidratos)</string>
<string name="objectives_openloop_gate">Utilize o modo Loop Aberto por alguns dias e aceite manualmente várias basais temporárias sugeridas. Configure e use alvos temporários e defina alvos temporários padrão (por exemplo, para exercício ou tratamento hipos com carboidratos)</string>
<string name="objectives_openloop_learned">O loop aberto pode ser recomendado se você não tiver uma bomba compatível ou não estiver pronto para fechar o loop.</string>
<string name="objectives_maxbasal_objective">Entendendo o seu loop aberto, incluindo as suas recomendações de basais temporárias</string>
<string name="objectives_maxbasal_gate">Com base nessa experiência, decidir qual deve ser a basal máximo e configurá-lo na bomba e nas preferências</string>
<string name="objectives_maxbasal_learned">Tome cuidado com os recursos de segurança e ajuste os parâmetros de segurança quando necessário.</string>
<string name="objectives_maxiobzero_objective">Comece a fechar loop com Suspensão por Glicose Baixa</string>
<string name="objectives_maxiobzero_gate">Utilizar em close loop com IA máx = 0 por alguns dias sem muitas situações de Suspensão por Baixa Glicose</string>
<string name="objectives_maxiobzero_gate">Utilizar em loop fechado com IA máx = 0 por alguns dias sem muitas situações de Suspensão por Baixa Glicose</string>
<string name="objectives_maxiobzero_learned">Definir o MaxIA em zero impede você de ter hipo e não adicionará mais insulina além da taxa basal (exceto situação com IA) negativo</string>
<string name="objectives_maxiob_objective">Ajustar o loop fechado, aumentar a IA máxima acima de 0 e reduzir gradualmente os alvos de glicemia</string>
<string name="objectives_maxiob_gate">Utilizar por alguns dias e pelo menos uma noite sem alarmes de glicose baixa, antes de baixar a glicemia</string>
<string name="objectives_maxiob_learned">Atualize o MaxIA devagar. Não permita que o sistema lhe dê mais insulina do que aquela que você pode cobrir com comida = valor realmente elevado é uma má ideia.</string>
<string name="objectives_autosens_objective">Ajuste as basais e os parâmetros, se necessário, e, em seguida, ative o auto-sens</string>
<string name="objectives_autosens_gate">1 semana de looping durante o dia com sucesso com entrada regular de carboidratos</string>
<string name="objectives_autosens_gate">1 semana em looping com sucesso durante o dia e utilizando a calculadora para calcular a correção de carboidratos</string>
<string name="objectives_autosens_learned">Se o resultado do seu autosens não está oscilando por volta de 100% seu perfil provavelmente está errado.</string>
<string name="objectives_smb_objective">Activando recursos adicionais para uso durante o dia, como SMB</string>
<string name="objectives_smb_objective">Ativação de recursos adicionais para uso durante o dia, como SMB</string>
<string name="objectives_smb_gate">Você deve ler a documentação e aumentar o maxIOB para que os SMBs funcionem bem! Um bom início de maxIOB = média de bolus nas refeições + 3x a sua maior basal do perfil</string>
<string name="objectives_smb_learned">Usar SMB é o seu objetivo. O algoritmo Oref1 foi projetado para ajudá-lo também com seus bolus. Você não deve dar bolus completo para sua comida, apenas parte dela e deixar o AAPS lhe dar o resto, se necessário. Desta forma, você tem mais espaço para carboidratos mal calculado. Você sabia que pode definir uma porcentagem do resultado da calculadora de bolus para reduzir o tamanho do bolus?</string>
<string name="objectives_auto_objective">Ativando a automação</string>
<string name="objectives_dyn_isf_objective">Ativar recursos adicionais para uso durante o dia, como plugin de Sensibilidade Dinâmica (DynamicISF)</string>
<string name="objectives_dyn_isf_gate">Certifique-se de que o SMB esteja funcionando corretamente. Habilite o plugin DynamicISF e identifique o ajuste apropriado para as características do seu corpo. É aconselhável começar com um valor inferior a 100% por segurança.</string>
<string name="objectives_dyn_isf_learned">O plugin de Sensibilidade Dinâmica baseia-se na ideia de que o total de insulina aplicada e os níveis de glicemia do momento afetam a sensibilidade real. O plugin DynamicISF pode ajustar o fator de sensibilidade de Insulina (FSI) usado pelo algoritmo para você.</string>
<string name="objectives_auto_objective">Ativando a Automação</string>
<string name="objectives_auto_gate">Leia os documentos de como a automação funciona. Configure suas primeiras regras simples. Em vez de efetuar uma ação deixe AAPS apresentar apenas uma notificação. Quando você tiver certeza de que a automação é acionada no momento certo substitua a notificação por uma ação real. (https://wiki.aaps.app/en/latest/Usage/Automation.html)</string>
<string name="objectives_auto_learned">A automação pode ser um bom servo, mas um mau mestre. Não extrapole. Não tente substituir o algoritmo subjacente. Teste a regra com a mensagem somente antes do uso. Ela depende da ordem.</string>
<string name="objectives_bgavailableinns">GLIC disponível no NS ou Tidepool</string>
<string name="objectives_bgavailableinns">Glicemia disponível em NS ou Tidepool</string>
<string name="objectives_pumpstatusavailableinns">Status da bomba disponível no NS ou Tidepool</string>
<string name="objectives_manualenacts">Execução manual</string>
<string name="accomplished">Concluído: %1$s</string>
<string name="objectives_usage_objective">Aprenda como controlar o AndroidAPS</string>
<string name="objectives_usage_objective">Aprenda como controlar o AAPS</string>
<string name="objectives_usage_gate">Realizar diferentes ações no AAPS</string>
<string name="objectives_usage_learned">Você aprendeu como lidar com o básico do AAPS. Os principais controles estão na tela de Visão Geral, acessíveis com um clique ou clique longo, e mais controles estão na tela de Ação. Você deve saber como colocar uma tela de plugin no menu rolável superior ou deixá-la aparecer na lista superior esquerda de plugins habilitados.</string>
<string name="objectives_useprofileswitch">Definir perfil de 90% por 10 min (pressione longo no nome de perfil na Visão Geral)</string>

View file

@ -10,7 +10,6 @@
<string name="old_version">versão antiga</string>
<string name="very_old_version">versão muito antiga</string>
<string name="application_expired">Aplicativo expirado</string>
<string name="new_version_warning">Nova versão para pelo menos %1$d dias disponíveis! Retorno a LGS após %2$d dias, o loop será desativado após %3$d dias</string>
<string name="running_invalid_version">Detectamos que você está executando uma versão inválida. \"Loop\" desativado!</string>
<string name="versionavailable">Versão %1$s disponível</string>
<string name="version_expire">A versão %1$s expira em %2$s</string>

View file

@ -10,7 +10,6 @@
<string name="old_version">старая версия</string>
<string name="very_old_version">очень старая версия</string>
<string name="application_expired">Истек срок действия приложения</string>
<string name="new_version_warning">Новая версия доступна уже %1$d дней! По истечении %2$d дн алгоритм переходит в режим работы только с остановкой при низкой гликемии LGS, замкнутый цикл будет отключен через %3$d дн</string>
<string name="running_invalid_version">Мы обнаружили, что вы используете недопустимую версию. Цикл отключен!</string>
<string name="versionavailable">Доступна версия %1$s</string>
<string name="version_expire">Версия: %1$s истекает %2$s</string>

View file

@ -10,7 +10,6 @@
<string name="old_version">stará verzia</string>
<string name="very_old_version">veľmi stará verzia</string>
<string name="application_expired">Aplikácia expirovala</string>
<string name="new_version_warning">Nová verzia je dostupná minimálne %1$d dní! Prepnutie na ochranu pred nízkou glykémiou po %2$d dňoch, vypnutie uzavretého okruhu po %3$d dňoch</string>
<string name="running_invalid_version">Zistili sme, že používate neplatnú verziu. Uzavretý okruh zakázaný!</string>
<string name="versionavailable">Verzia %1$s je k dispozícii</string>
<string name="version_expire">Verzia %1$s expiruje dňa %2$s</string>

View file

@ -26,6 +26,9 @@
<string name="objectives_smb_objective">SMB (Super Micro Bolus) gibi gündüz kullanımı için ek özelliklerin etkinleştirilmesi</string>
<string name="objectives_smb_gate">(Super Micro Bolus) SMB\'lerın iyi çalışabilmesi için wiki\'yi okumalısınız ve maxIOB\'u yükseltmelisiniz! İyi bir başlangıç için maxIOB = ortalama yemek bolusu + 3 x max günlük bazaldır</string>
<string name="objectives_smb_learned">SMB\'yi kullanmak sizin hedefinizdir. Oref1 algoritması, boluslarınızda da size yardımcı olmak için tasarlanmıştır. Yemeğiniz için bolusun tamamını değil, sadece bir kısmını vermeli ve gerekirse AAPS\'in size geri kalanını vermesine izin vermelisiniz. Bu şekilde yanlış hesaplanmış karbonhidratlar için daha fazla alanınız olur. Bolus miktarını azaltmak için bolus hesaplayıcı sonucunun bir yüzdesini ayarlayabileceğinizi biliyor muydunuz?</string>
<string name="objectives_dyn_isf_objective">Dinamik duyarlılık eklentisi gibi gündüz kullanımına yönelik ek özelliklerin etkinleştirilmesi</string>
<string name="objectives_dyn_isf_gate">SMB\'nin düzgün çalıştığından emin olun. DinamikİDF eklentisini etkinleştirin ve vücudunuza en uygun kalibrasyonu belirleyin. Güvenlik açısından %100\'den daha düşük bir değerle başlamanız tavsiye edilir.</string>
<string name="objectives_dyn_isf_learned">Dinamik Duyarlılık eklentisi, toplam insülin alımının ve mevcut glisemi seviyelerinin gerçek duyarlılığı etkilediği fikrine dayanmaktadır. DinamikİDF eklentisi, algoritmanın kullandığı İnsülin Duyarlılık Faktörünü (İDF) sizin için ayarlayabilir.</string>
<string name="objectives_auto_objective">Otomasyonu etkinleştirme</string>
<string name="objectives_auto_gate">Otomasyonun nasıl çalıştığına dair dokümanları okuyun. İlk basit kurallarınızı belirleyin. Eylem yerine AAPS\'in yalnızca bildirim göndermesine izin verin. Otomasyonun doğru zamanda tetiklendiğinden emin olduğunuzda, bildirimi gerçek eylemle değiştirin. (https://wiki.aaps.app/tr/latest/Usage/Automation.html)</string>
<string name="objectives_auto_learned">Otomasyon iyi bir hizmetkar ama kötü bir efendi olabilir. Aşırı kullanmayın. Altta yatan algoritmayı değiştirmeye çalışmayın. Kuralı yalnızca kullanmadan önce mesajla test edin. Onayınıza bağlıdır.</string>
@ -53,6 +56,7 @@
<string name="objectives_exam_learned_ic">Kİ oranının anlamını ve karbonhidratları karşılamak için gereken insülin miktarını nasıl hesaplayacağınızı öğrendiniz.</string>
<string name="objectives_exam_learned_hypott">Hipo geçici hedefi yalnızca genellikle birikmiş negatif AİNS olduğunda, hipodan sonra aşırı düzeltmeyi önlemek için kullanılır. Gelecekte bu durumu tekrar önlemek için ek eylemler değerlendirilmelidir.</string>
<string name="objectives_exam_learned_profileswitch">Yüzde kullanmak, hedef KŞ\'leri etkilemez ancak bazal, İDF ve Kİ daha fazla insülin (%%100\'ün üzerinde) veya daha az insülin (%%100\'ün altında) verecek şekilde ayarlanır.</string>
<string name="objectives_exam_learned_profileswitchtime">Profil değişimindeki zaman kaydırmayı kullanarak sirkadiyen profilini geç uyanma gibi düzensizliklere uyarlayabilirsiniz.</string>
<string name="objectives_exam_learned_profileswitch4">Değişiklik yapmak için profili düzenlemek yeterli değildir. Değişiklikleri etkinleştirmek için yine de bir profil değiştirme yapmanız gerekir.</string>
<string name="objectives_exam_learned_exercise">%100\'ün altında bir profil seçerek egzersize başlamadan en az 1 saat önce vücuttaki insülin miktarını azaltmalısınız.</string>
<string name="objectives_exam_learned_exercise2">Egzersizden en az 1 saat önce daha yüksek geçici hedef belirlemek, vücuttaki insülin miktarının azalmasına da yardımcı olur.</string>

View file

@ -10,7 +10,6 @@
<string name="old_version">eski sürüm</string>
<string name="very_old_version">çok eski sürüm</string>
<string name="application_expired">Uygulamanın süresi doldu</string>
<string name="new_version_warning">En az %1$d gündür yeni sürüm mevcut! %2$d gün sonra LGS\'ye (Düşük Glukoz gönderimine) dönülecek, %3$d gün sonra da döngü devre dışı bırakılacaktır</string>
<string name="running_invalid_version">Geçersiz bir sürüm çalıştırdığınızı tespit ettik. Döngü devre dışı!</string>
<string name="versionavailable">Sürüm %1$s mevcut</string>
<string name="version_expire">%1$s sürümünün süresi %2$s tarihinde sona eriyor</string>

View file

@ -20,11 +20,11 @@
<string name="old_version">old version</string>
<string name="very_old_version">very old version</string>
<string name="application_expired">Application expired</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="key_last_time_this_version_detected_as_ok" translatable="false">last_time_this_version_detected</string>
<string name="new_version_warning">New version has not been checked for at least %1$d days! Fallback to LGS after %2$d days, loop will be disabled after %3$d days. Restore internet connectivity!</string>
<string name="key_last_successful_version_check_timestamp" translatable="false">last_successful_version_check_timestamp</string>
<string name="key_last_versionchecker_warning" translatable="false">last_versionchecker_warning</string>
<string name="key_last_expired_versionchecker_warning" translatable="false">last_expired_version_checker_warning</string>
<string name="key_last_versionchecker_plugin_warning" translatable="false">last_versionchecker_plugin_waring</string>
<string name="key_last_versionchecker_plugin_warning_timestamp" translatable="false">last_versionchecker_plugin_warning_timestamp</string>
<string name="key_last_revoked_certs_check" translatable="false">last_revoked_certs_check</string>
<string name="running_invalid_version">We have detected that you are running an invalid version. Loop disabled!</string>
<string name="versionavailable">Version %1$s available</string>
@ -71,8 +71,8 @@
<string name="doyouwantresetstart">Do you want reset objective start? You may lose your progress.</string>
<string name="objectives_next_button">Next</string>
<string name="objectives_previous_button">Prev</string>
<string name="objectives_button_unfinish">Clear finished</string>
<string name="objectives_button_unstart">Clear started</string>
<string name="objectives_button_unfinish">Reset finished state</string>
<string name="objectives_button_unstart">Reset started state</string>
</resources>

View file

@ -11,5 +11,8 @@
<string name="insulin_peak_time">Tempo Pico [min]</string>
<string name="free_peak_oref">Oref Pico-Livre</string>
<string name="rapid_acting_oref">Oref Acção-Rápida</string>
<string name="ultra_rapid_oref">Oref Ultra-Rápida</string>
<string name="dia_too_short">Duração de Acção da Insulina (DIA) de %1$f demasiado curto - corrigido para %2$f!</string>
<string name="fast_acting_insulin_comment">Novorapid, Novolog, Humalog</string>
<string name="ultra_fast_acting_insulin_comment">Fiasp</string>
</resources>

View file

@ -335,6 +335,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
}
fun refreshAll() {
if (!config.appInitialized) return
runOnUiThread {
_binding ?: return@runOnUiThread
updateTime()

View file

@ -36,10 +36,10 @@ class OverviewMenusImpl @Inject constructor(
private val fabricPrivacy: FabricPrivacy
) : OverviewMenus {
enum class CharTypeData(@StringRes val nameId: Int, @AttrRes val attrId: Int, @AttrRes val attrTextId: Int, val primary: Boolean, val secondary: Boolean, @StringRes val shortnameId: Int) {
PRE(R.string.overview_show_predictions, info.nightscout.core.ui.R.attr.predictionColor, info.nightscout.core.ui.R.attr.menuTextColor, primary = true, secondary = false, shortnameId = R.string.prediction_shortname),
TREAT(R.string.overview_show_treatments, info.nightscout.core.ui.R.attr.cobColor, info.nightscout.core.ui.R.attr.menuTextColor, primary = true, secondary = false, shortnameId = R.string.treatments_shortname),
BAS(R.string.overview_show_basals, info.nightscout.core.ui.R.attr.basal, info.nightscout.core.ui.R.attr.menuTextColor, primary = true, secondary = false, shortnameId = R.string.basal_shortname),
enum class CharTypeData(@StringRes val nameId: Int, @AttrRes val attrId: Int, @AttrRes val attrTextId: Int, val primary: Boolean, val secondary: Boolean, @StringRes val shortnameId: Int, val enabledByDefault: Boolean = false) {
PRE(R.string.overview_show_predictions, info.nightscout.core.ui.R.attr.predictionColor, info.nightscout.core.ui.R.attr.menuTextColor, primary = true, secondary = false, shortnameId = R.string.prediction_shortname, enabledByDefault = true),
TREAT(R.string.overview_show_treatments, info.nightscout.core.ui.R.attr.cobColor, info.nightscout.core.ui.R.attr.menuTextColor, primary = true, secondary = false, shortnameId = R.string.treatments_shortname, enabledByDefault = true),
BAS(R.string.overview_show_basals, info.nightscout.core.ui.R.attr.basal, info.nightscout.core.ui.R.attr.menuTextColor, primary = true, secondary = false, shortnameId = R.string.basal_shortname, enabledByDefault = true),
ABS(R.string.overview_show_abs_insulin, info.nightscout.core.ui.R.attr.iobColor, info.nightscout.core.ui.R.attr.menuTextColor, primary = false, secondary = true, shortnameId = R.string.abs_insulin_shortname),
IOB(R.string.overview_show_iob, info.nightscout.core.ui.R.attr.iobColor, info.nightscout.core.ui.R.attr.menuTextColor, primary = false, secondary = true, shortnameId = info.nightscout.core.ui.R.string.iob),
COB(R.string.overview_show_cob, info.nightscout.core.ui.R.attr.cobColor, info.nightscout.core.ui.R.attr.menuTextColor, primary = false, secondary = true, shortnameId = info.nightscout.core.ui.R.string.cob),
@ -80,6 +80,7 @@ class OverviewMenusImpl @Inject constructor(
@Synchronized
override fun loadGraphConfig() {
assert(CharTypeData.values().size == OverviewMenus.CharType.values().size)
val sts = sp.getString(R.string.key_graph_config, "")
if (sts.isNotEmpty()) {
_setting = Gson().fromJson(sts, Array<Array<Boolean>>::class.java).toMutableList()
@ -87,11 +88,11 @@ class OverviewMenusImpl @Inject constructor(
for (s in _setting)
if (s.size != OverviewMenus.CharType.values().size) {
_setting = ArrayList()
_setting.add(Array(OverviewMenus.CharType.values().size) { true })
_setting.add(Array(OverviewMenus.CharType.values().size) { CharTypeData.values()[it].enabledByDefault })
}
} else {
_setting = ArrayList()
_setting.add(Array(OverviewMenus.CharType.values().size) { true })
_setting.add(Array(OverviewMenus.CharType.values().size) { CharTypeData.values()[it].enabledByDefault })
}
}

View file

@ -262,7 +262,7 @@ class GraphData(
fun addHeartRate(useForScale: Boolean, scale: Double) {
val maxHR = overviewData.heartRateGraphSeries.highestValueY
if (useForScale) {
minY = 0.0
minY = 30.0
maxY = maxHR
}
addSeries(overviewData.heartRateGraphSeries)

Some files were not shown because too many files have changed in this diff Show more