diff --git a/app/src/main/res/values-af-rZA/exam.xml b/app/src/main/res/values-af-rZA/exam.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/app/src/main/res/values-af-rZA/exam.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/app/src/main/res/values-af-rZA/objectives.xml b/app/src/main/res/values-af-rZA/objectives.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/app/src/main/res/values-af-rZA/objectives.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/app/src/main/res/values-af-rZA/strings.xml b/app/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 22ff150e60..0000000000 --- a/app/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - Verfris behandelings vanaf NS - Gaan uit - Delta - Profiel - Stoor - Herlaai profiel - Corr - Wear - Omtrent - Toestemming vir foon status nog nie gegee nie - Alarm Opsies - Ou data drumpel [min] - Nood ou data drumpel [min] - Deur Autosense aan te skakel onthou om alle koolhidrate in te voer Andersins sal koolhidrate dwalinge verkeerdelik geïdentifiseer word as sensitiwiteit veranderinge!! - Nie alle profiele gelaai! - Waardes nie gestoor! - ONGELDIG - Lokale alarms - Stel in kennis as geen BG data ontvang is - Waarsku wanneer pomp onbereikbaar is - Pomp onbereikbaar drempel [min] - Open navigasie - Sluit navigasie - Behandeling data onvolledig - \'n Behandeling (insulien: %1$.2f, koolhidrate: %2$d, by: %3$s) kon nie bygevoeg word by behandelings. Kontroleer asseblief en voeg per hand \'n rekord soos vanpas. - eCarbs: %1$d g (%2$d h), vertraag: %3$d m - == ∑ %1$s U - Eenhede - - diff --git a/app/src/main/res/values-ja-rJP/exam.xml b/app/src/main/res/values-ja-rJP/exam.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/app/src/main/res/values-ja-rJP/exam.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/app/src/main/res/values-ja-rJP/objectives.xml b/app/src/main/res/values-ja-rJP/objectives.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/app/src/main/res/values-ja-rJP/objectives.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index fc8d30f662..0000000000 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - %1$s の設定 - NS からトリートメントを更新 - 終了 - デルタ - プロファイル - 保存 - プロファイルを再読み込み - Corr - (無効注意) NSアップロードのみ - NS アップロードのみ(同期無効)。xDrip + のようなローカル ソースが選択されていない限り、SGV は有効ではありません。NS-プロファイルが使用されている間はプロファイルでは無効です。\n!!! 警告 !!! このオプションを無効にすると、コンポーネント(AAPS, NS, xdrip+) のいずれかが間違った設定になっている場合、誤動作やインスリン過剰摂取が発生する可能性があります。 AAPSで表示されるデータがポンプの状態と一致するかどうかを注意深く確認してください。 - ウェア - About - 電話の状態許可(パーミッション) がありません - アラームオプション - NSアラームから通知を作成する - NSからのお知らせを通知する - 古いデータしきい値 [min] - Urgent stale data threshold [min] - Autosense機能をオンにした場合、すべての炭水化物を入力することを忘れないでください。炭水化物偏差は間違った感度計算をされます。 - プロファイルが読み込まれていません! - 値は保存されていません! - 無効 - アラートと通知の音量を徐々に増加させる - ローカルアラート - BGデータが受信されなかった場合に警告する - ポンプが反応しない場合にアラートを鳴らす - ポンプの反応時間のしきい値[min] - 炭水化物が必要な場合に通知する - Units - - diff --git a/buildSrc/src/main/kotlin/Libs.kt b/buildSrc/src/main/kotlin/Libs.kt index afc21096a3..20cd87da5b 100644 --- a/buildSrc/src/main/kotlin/Libs.kt +++ b/buildSrc/src/main/kotlin/Libs.kt @@ -84,7 +84,7 @@ object Libs { object Android { object PlayServices { - const val measurementApi = "com.google.android.gms:play-services-measurement-api:21.3.0" + const val measurementApi = "com.google.android.gms:play-services-measurement-api:21.4.0" const val wearable = "com.google.android.gms:play-services-wearable:18.1.0" const val location = "com.google.android.gms:play-services-location:21.0.1" } @@ -101,7 +101,7 @@ object Libs { object Firebase { - const val firebaseBom = "com.google.firebase:firebase-bom:32.3.1" + const val firebaseBom = "com.google.firebase:firebase-bom:32.4.0" const val analytics = "com.google.firebase:firebase-analytics-ktx" const val crashlytics = "com.google.firebase:firebase-crashlytics-ktx" const val messaging = "com.google.firebase:firebase-messaging-ktx" @@ -171,7 +171,7 @@ object Libs { object Okhttp3 { - private const val okhttpVersion = "4.11.0" + private const val okhttpVersion = "4.12.0" const val okhttp = "com.squareup.okhttp3:okhttp:$okhttpVersion" const val loggingInterceptor = "com.squareup.okhttp3:logging-interceptor:$okhttpVersion" diff --git a/core/interfaces/src/main/kotlin/app/aaps/core/interfaces/rx/weardata/CustomWatchfaceFormat.kt b/core/interfaces/src/main/kotlin/app/aaps/core/interfaces/rx/weardata/CustomWatchfaceFormat.kt index 3ef2d4acde..0cae6aa73d 100644 --- a/core/interfaces/src/main/kotlin/app/aaps/core/interfaces/rx/weardata/CustomWatchfaceFormat.kt +++ b/core/interfaces/src/main/kotlin/app/aaps/core/interfaces/rx/weardata/CustomWatchfaceFormat.kt @@ -170,7 +170,8 @@ enum class CwfMetadataKey(val key: String, @StringRes val label: Int, val isPref CWF_PREF_WATCH_SHOW_AGO("key_show_ago", R.string.pref_show_ago, true), CWF_PREF_WATCH_SHOW_BG("key_show_bg", R.string.pref_show_bg, true), CWF_PREF_WATCH_SHOW_LOOP_STATUS("key_show_loop_status", R.string.pref_show_loop_status, true), - CWF_PREF_WATCH_SHOW_WEEK_NUMBER("key_show_week_number", R.string.pref_show_week_number, true); + CWF_PREF_WATCH_SHOW_WEEK_NUMBER("key_show_week_number", R.string.pref_show_week_number, true), + CWF_PREF_WATCH_SHOW_DATE("key_show_date", R.string.pref_show_date, true); companion object { @@ -260,9 +261,14 @@ enum class JsonKeys(val key: String) { INVALIDIMAGE("invalidImage"), INVALIDCOLOR("invalidColor"), INVALIDFONTCOLOR("invalidFontColor"), + INVALIDTEXTSIZE("invalidTextSize"), TWINVIEW("twinView"), TOPOFFSETTWINHIDDEN("topOffsetTwinHidden"), - LEFTOFFSETTWINHIDDEN("leftOffsetTwinHidden") + LEFTOFFSETTWINHIDDEN("leftOffsetTwinHidden"), + DYNPREF("dynPref"), + DYNPREFCOLOR("dynPrefColor"), + PREFKEY("prefKey"), + DEFAULT("default") } enum class JsonKeyValues(val key: String) { @@ -285,7 +291,10 @@ enum class JsonKeyValues(val key: String) { BOLD_ITALIC("bold_italic"), ITALIC("italic"), BGCOLOR("bgColor"), - SGVLEVEL("sgvLevel") + SGVLEVEL("sgvLevel"), + PREF_UNITS("key_units"), + PREF_DARK("key_dark"), + PREF_MATCH_DIVIDER("key_match_divider") } class ZipWatchfaceFormat { diff --git a/core/interfaces/src/main/res/values-af-rZA/strings.xml b/core/interfaces/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 287559a98b..0000000000 --- a/core/interfaces/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - h - dae - ure - sekonde - minuut - uur - dag - week - sekondes - minute - ure - dae - weke - m - d - - Koppel vir %1$d s - Handskudding - Gekoppel - Ontkoppel - - diff --git a/core/interfaces/src/main/res/values-cs-rCZ/strings.xml b/core/interfaces/src/main/res/values-cs-rCZ/strings.xml index 319ab6e24f..a1e2dc8ea0 100644 --- a/core/interfaces/src/main/res/values-cs-rCZ/strings.xml +++ b/core/interfaces/src/main/res/values-cs-rCZ/strings.xml @@ -58,6 +58,7 @@ Zobrazit trendovou šipku Zobrazit aktualizováno před Zobrazit číslo týdne + Zobrazit datum Výchozí ciferník. Můžete kliknout na tlačítko EXPORTOVAT CIFERNÍK pro vygenerování šablony Výchozí ciferník Tapeta diff --git a/core/interfaces/src/main/res/values-es-rES/strings.xml b/core/interfaces/src/main/res/values-es-rES/strings.xml index ae10c6672e..b9b7dd616b 100644 --- a/core/interfaces/src/main/res/values-es-rES/strings.xml +++ b/core/interfaces/src/main/res/values-es-rES/strings.xml @@ -58,6 +58,7 @@ Mostrar flecha de dirección Mostrar \"hace\" Mostrar número de semana + Mostrar fecha Esfera predeterminada, puedes hacer clic en el botón EXPORTAR ESFERA para generar una plantilla Esfera por defecto Imagen de fondo diff --git a/core/interfaces/src/main/res/values-iw-rIL/strings.xml b/core/interfaces/src/main/res/values-iw-rIL/strings.xml index a9843ae423..3e31901c3c 100644 --- a/core/interfaces/src/main/res/values-iw-rIL/strings.xml +++ b/core/interfaces/src/main/res/values-iw-rIL/strings.xml @@ -57,6 +57,7 @@ הצג חץ מגמה הצג עבר הצג מספר שבוע + הצג תאריך ברירת המחדל של פני השעון, ניתן ללחוץ על כפתור ייצוא פני שעון כדי ליצור תבנית ברירת מחדל פני שעון תמונת רקע diff --git a/core/interfaces/src/main/res/values-nb-rNO/strings.xml b/core/interfaces/src/main/res/values-nb-rNO/strings.xml index 4f650e3bf1..757f9d6e6a 100644 --- a/core/interfaces/src/main/res/values-nb-rNO/strings.xml +++ b/core/interfaces/src/main/res/values-nb-rNO/strings.xml @@ -58,6 +58,7 @@ Vis retningspil Vis tid siden Vis ukenummer + Vis dato Standard klokkebakgrunn, du kan klikke på EKSPORTER KLOKKEBAKGRUNN for å lage en mal Standard klokkebakgrunn Bakgrunnsbilde diff --git a/core/interfaces/src/main/res/values-ro-rRO/strings.xml b/core/interfaces/src/main/res/values-ro-rRO/strings.xml index 11cc2ea792..b3a532cc1f 100644 --- a/core/interfaces/src/main/res/values-ro-rRO/strings.xml +++ b/core/interfaces/src/main/res/values-ro-rRO/strings.xml @@ -58,6 +58,7 @@ Arată săgeată tendință Afişare în urmă Arată numărul săptămânii + Arată data Fațetă implicită. Poți apăsa pe butonul EXPORT pentru a genera un șablon Fațetă implicită Imagine de fundal diff --git a/core/interfaces/src/main/res/values/strings.xml b/core/interfaces/src/main/res/values/strings.xml index 25af997279..343e299d31 100644 --- a/core/interfaces/src/main/res/values/strings.xml +++ b/core/interfaces/src/main/res/values/strings.xml @@ -66,6 +66,7 @@ Show Direction Arrow Show Ago Show Week number + Show Date Default watchface, you can click on EXPORT WATCHFACE button to generate a template Default Watchface Background image diff --git a/core/main/src/main/res/values-af-rZA/strings.xml b/core/main/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/core/main/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/core/main/src/main/res/values-ja-rJP/strings.xml b/core/main/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index ddc4b0eb74..0000000000 --- a/core/main/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - %1$d g - diff --git a/core/ui/src/main/res/values-af-rZA/protection.xml b/core/ui/src/main/res/values-af-rZA/protection.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/core/ui/src/main/res/values-af-rZA/protection.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/core/ui/src/main/res/values-af-rZA/strings.xml b/core/ui/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 4295ac521a..0000000000 --- a/core/ui/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,283 +0,0 @@ - - - - Verfris - Basale profiel in pomp bygewerk - Ongeldige invoer - Beperking toegepas! - Totale IOB: - TT - Pomp onbereikbaar - U - %1$.2f U/h - Pomp nie geïnisialiseer, profiel nie opgestel nie! - Kon nie die basale profiel bywerk nie - Geen geldige basale tempo gelees van pomp - Beperk IAB tot %1$.1f U agv %2$s - LOOP UIT AKSIE GESTEL DEUR BEPERKINGS - Gebeurtenis tipe - Herlaai - mg/dl - mmol/l - Stoor - Sluimer - Virtuele Pomp - Beperkings - Superbolus - Pomp wag - En - Uitslag - Instellings - BG data oplaai na NS - Insulien - nvt - Bevestig - Pomp - Gemiste BG lesings - IAB: - Demp - Sukses - Verlengde bolus afleweringsfout - Uitgebreide bolus - Onderbreek - TDD totaal - Wag vir pomp - %1$+.2f U - %1$.2f h - Doelstellings - Wag asseblief… - Staak - Karbs - ]]> - Datum - Eenhede - DIA - IC - ISF - Basale - Doelwit - Basale waarde - g - Bluetooth - BT Watchdog - Skakel asb die foon se bluetooth af vir een sekonde Indien geen verbinding met die pomp moontlik is nie. Dit mag help vir sommige selfone waar die bluetooth stapel vries. - OK - Pomp tyd opgedateer - Uitgang - Verwyder rekord - Loop is gedeaktiveer - Alarm - Skakel loop af - Skakel loop aan - Hervat lus - Staak lus - Durasie [min] - Kennisgewing - Nog geen profiel gelaai vanaf NS - bestaan - bestaan nie - Glukose - IAB - KOB - Naam: - Tyd - WiFi SSID - Notas - Verwyder - BG - Kalibrasie - Duur - g - Pomp opgeskort - Nie gekonfigureer nie - Lus opgeskort - onbekend - hoog - laag - ]]> - VERWYDER - Aktiveer profiel - herstel - ProfileSwitch ontbreek. Doen \'n profiel skakelaar of druk \"Aktiveer profiel\" in die LokaleProfiel. - Profiel - Behandeling - Ghoeroe-instellings - 15min tendens - KOB - Bolus IOB - Basale IAB - ONGELDIG - Insulien - Tydelike teiken gestop - Geslote lus - Oop lus - DIA - - Verkeerde wagwoord - - Basale waardes nie in lyn met ure: %1$s - Basale waarde vervang deur maksimum ondersteunde waarde: %1$s - /U - U/h - g/U - - Begin profiele%1$d%% vir %2$d min - - Laat tydelike basale, hardloop - Tempo - Tydsduur - Rede - Geen verandering was versoek - - Ongeldige profiel: %1$s - - - Careportal - BG Toets - Aankondiging - Nota - Vraag - Oefening - CGM Sensor Begin - Profiel wissel - Peuselhappie Bolus - Maaltyd Bolus - Regstelling Bolus - Kombo Bolus - Temp Basale Begin - Temp Basale eind - Karbs regstelling - OpenAPS vanlynaf - Bolus slimjan - Vinger - Sensor - Per hand - onbekend - Eet binnekort - Hipo - Aktiwiteit - Wear - Outomatisasie - Gepasmaak - Lus - - Verbinding verstreke - - By hand gedoen - Kommentaar - Persentasie - Absolute - Wag vir uitslag - SMB - - - Eksponensiele geweegde TDD - Basale - Bolus - TDD - Verhouding - # Dae - Gewig - Moontlik onakkuraat as boluse gebruik word vir optop/vulling gebruik! - Totale basis basale - TBB * 2 - - - Aksie - - %1$.2f beperk tot %2$.2f - - SMS - %1$.0f%% - Basale - Basale % - - Resultaat: %1$s - Ontbreek - - Gebruik stelsel kennisgewings vir waarskuwings en kennisgewings - Dringende Alarm - INFO - - Geen aksie gekies, niks sal gebeur - SlimNutsman - - Tiener - Volwassene - - Ontsluit instellings - - Battery - Stoor - Laaste verbinding - Laaste bolus - Basis basale tempo - Tydelike basaal - Verlengde Bolus - Reeksnommer - Ontkoppel - Koppel - %1$.0f / %2$d U - Daaglikse eenhede - Bekyk profiel - Tempbasal aflewering fout - Nie gestel nie - Pomp is besig - Pomp verbindingsfout - Lees pomp geskiedenis - Paring - Inisialiseer tans... - - Max basale koers beperk tot %1$.2f U/h as gevolg van %2$s - pomp limiet - Beperk maks persentasie koers tot %1$d%% agv %2$s - dit moet \'n positiewe waarde wees - Beperk bolus %1$.1f U as gevolg van %2$s - - - Bevestiging - OK - Kanselleer - DISMISS - Ja - Nee - Maak toe - - - - Gebeurtenis tyd - - - - Bluetooth Low Energy word nie ondersteun. - Bluetooth nie aan. - Location nie aan - Vir Bluetooth ontdek om te werk op nuwer toestelle, lokaliteit moet aan wees. AAPS speur nie jou lokaliteit en kan afgeskakel na paring. - - Plugin voorkeure - - Vermiste SMS toestemming - - - %1$d dae - %1$d dae - - - %1$d uur - %1$d ure - - - %1$d minuut - %1$d minute - - - - Sat - Vry - Don - Woens - Dins - Maan - - - diff --git a/core/ui/src/main/res/values-ja-rJP/protection.xml b/core/ui/src/main/res/values-ja-rJP/protection.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/core/ui/src/main/res/values-ja-rJP/protection.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/core/ui/src/main/res/values-ja-rJP/strings.xml b/core/ui/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 8dfa5ee413..0000000000 --- a/core/ui/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,115 +0,0 @@ - - - - 更新 - エラー - ポンプのべーサルプロファイルが更新されました - 無効な入力です。 - %1$.2fUを注入中 - %1$.2f U/h - べーサルプロファイルの更新に失敗しました - イベント種別 - 再読込 - mg/dl - mmol/l - 保存 - ポンプ - 消音 - %1$.2fUを注入します - ポンプ反応待ち - AAPSを開始しました - %1$+.2f U - %1$d g - %1$.2f h - %1$d 分 - オブジェクティブ - お待ちください… - 停止 - 炭水化物 - 無効なプロファイル! - プロファイルがありません - ]]> - 日時 - Units - DIA - 導入コスト - ISF - ベーサル - ターゲット - インスリン作用時間 - インスリン カーボ比 - インスリン効果値(Isf) - 基礎レート - 目標血糖値 - g - % - Bluetooth - BT Watchdog - 校正 - 無効 - - - - - - - - ウェア - - - - - - - - - - - - - - - バッテリー - リザーバ - 最終接続 - 最終ボーラス - 基準ベーサルレート - 一時ベーサル - 追加ボーラス - シリアルナンバー - 未接続 - 接続中 - %1$.0f / %2$d U - 今日の総単位 - プロフィールを表示 - ポンプ履歴 - テンプベーサル注入エラー - 未設定 - ポンプがビジー状態です - ポンプの接続エラー - 初期化中... - - - - 確認 - メッセージ - OK - キャンセル - 無効 - Yes - No - 閉じる - - インポートされた設定を復元するために、マスターパスワードが必要です。 - - - イベントタイム - - Bluetoothアプリの権限が必要です - - - - - - - diff --git a/core/ui/src/main/res/values-nb-rNO/strings.xml b/core/ui/src/main/res/values-nb-rNO/strings.xml index 02b5024141..0541e669eb 100644 --- a/core/ui/src/main/res/values-nb-rNO/strings.xml +++ b/core/ui/src/main/res/values-nb-rNO/strings.xml @@ -496,8 +496,8 @@ Reservoar Siste tilkobling Siste bolus - Profilens basaldose - Midl. basal + Profilens basal + Midlertidig basal Forlenget bolus Serienummer Frakoblet diff --git a/core/ui/src/main/res/values-night/styles.xml b/core/ui/src/main/res/values-night/styles.xml index d4ceff303a..27f13986e1 100644 --- a/core/ui/src/main/res/values-night/styles.xml +++ b/core/ui/src/main/res/values-night/styles.xml @@ -240,7 +240,7 @@ @color/isCompleted @color/isNotCompleted @style/DatePicker - @style/DatePicker + @style/TimePicker @color/defaultText @@ -294,7 +294,18 @@ + + diff --git a/core/validators/src/main/res/values-af-rZA/validator.xml b/core/validators/src/main/res/values-af-rZA/validator.xml deleted file mode 100644 index 8fec1d86e6..0000000000 --- a/core/validators/src/main/res/values-af-rZA/validator.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - Slegs numeriese syfers word toegelaat. - Slegs numeriese syfers binne die reeks %1$s - %2$s word toegelaat. - Hierdie veld moet nie leeg wees nie - Telefoonnommer ongeldig - diff --git a/core/validators/src/main/res/values-ja-rJP/validator.xml b/core/validators/src/main/res/values-ja-rJP/validator.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/core/validators/src/main/res/values-ja-rJP/validator.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/database/impl/src/main/java/app/aaps/database/impl/AppRepository.kt b/database/impl/src/main/java/app/aaps/database/impl/AppRepository.kt index b7a546f229..e7600e68c9 100644 --- a/database/impl/src/main/java/app/aaps/database/impl/AppRepository.kt +++ b/database/impl/src/main/java/app/aaps/database/impl/AppRepository.kt @@ -215,11 +215,6 @@ class AppRepository @Inject internal constructor( .map { if (!ascending) it.reversed() else it } .subscribeOn(Schedulers.io()) - @Suppress("unused") - fun getModifiedTemporaryTargetsDataFromId(lastId: Long): Single> = - database.temporaryTargetDao.getModifiedFrom(lastId) - .subscribeOn(Schedulers.io()) - fun getTemporaryTargetActiveAt(timestamp: Long): Single> = database.temporaryTargetDao.getTemporaryTargetActiveAt(timestamp) .subscribeOn(Schedulers.io()) @@ -486,11 +481,6 @@ class AppRepository @Inject internal constructor( } } - @Suppress("unused") - fun getModifiedBolusesDataFromId(lastId: Long): Single> = - database.bolusDao.getModifiedFrom(lastId) - .subscribeOn(Schedulers.io()) - fun getLastBolusRecord(): Bolus? = database.bolusDao.getLastBolusRecord() @@ -711,11 +701,6 @@ class AppRepository @Inject internal constructor( } } - @Suppress("unused") - fun getModifiedTemporaryBasalDataFromId(lastId: Long): Single> = - database.temporaryBasalDao.getModifiedFrom(lastId) - .subscribeOn(Schedulers.io()) - fun getTemporaryBasalActiveAt(timestamp: Long): Single> = database.temporaryBasalDao.getTemporaryBasalActiveAt(timestamp) .subscribeOn(Schedulers.io()) diff --git a/database/impl/src/main/java/app/aaps/database/impl/daos/BolusCalculatorResultDao.kt b/database/impl/src/main/java/app/aaps/database/impl/daos/BolusCalculatorResultDao.kt index 2887bbdcd1..49b6012d13 100644 --- a/database/impl/src/main/java/app/aaps/database/impl/daos/BolusCalculatorResultDao.kt +++ b/database/impl/src/main/java/app/aaps/database/impl/daos/BolusCalculatorResultDao.kt @@ -26,20 +26,20 @@ internal interface BolusCalculatorResultDao : TraceableDao= :timestamp AND referenceId IS NULL ORDER BY id DESC") + @Query("SELECT * FROM $TABLE_BOLUS_CALCULATOR_RESULTS WHERE likely(isValid = 1) AND unlikely(timestamp >= :timestamp) AND likely(referenceId IS NULL) ORDER BY id DESC") fun getBolusCalculatorResultsFromTime(timestamp: Long): Single> - @Query("SELECT * FROM $TABLE_BOLUS_CALCULATOR_RESULTS WHERE timestamp >= :timestamp AND referenceId IS NULL ORDER BY id DESC") + @Query("SELECT * FROM $TABLE_BOLUS_CALCULATOR_RESULTS WHERE unlikely(timestamp >= :timestamp) AND likely(referenceId IS NULL) ORDER BY id DESC") fun getBolusCalculatorResultsIncludingInvalidFromTime(timestamp: Long): Single> // This query will be used with v3 to get all changed records - @Query("SELECT * FROM $TABLE_BOLUS_CALCULATOR_RESULTS WHERE id > :id AND referenceId IS NULL OR id IN (SELECT DISTINCT referenceId FROM $TABLE_BOLUS_CALCULATOR_RESULTS WHERE id > :id) ORDER BY id ASC") + @Query("SELECT * FROM $TABLE_BOLUS_CALCULATOR_RESULTS WHERE unlikely(id > :id) AND likely(referenceId IS NULL) OR id IN (SELECT DISTINCT referenceId FROM $TABLE_BOLUS_CALCULATOR_RESULTS WHERE id > :id) ORDER BY id ASC") fun getModifiedFrom(id: Long): Single> // for WS we need 1 record only diff --git a/database/impl/src/main/java/app/aaps/database/impl/daos/BolusDao.kt b/database/impl/src/main/java/app/aaps/database/impl/daos/BolusDao.kt index f3b57198dd..3d3bd67d61 100644 --- a/database/impl/src/main/java/app/aaps/database/impl/daos/BolusDao.kt +++ b/database/impl/src/main/java/app/aaps/database/impl/daos/BolusDao.kt @@ -26,45 +26,41 @@ internal interface BolusDao : TraceableDao { @Query("SELECT id FROM $TABLE_BOLUSES ORDER BY id DESC limit 1") fun getLastId(): Long? - @Query("SELECT * FROM $TABLE_BOLUSES WHERE timestamp = :timestamp AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_BOLUSES WHERE unlikely(timestamp = :timestamp) AND likely(referenceId IS NULL)") fun findByTimestamp(timestamp: Long): Bolus? - @Query("SELECT * FROM $TABLE_BOLUSES WHERE nightscoutId = :nsId AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_BOLUSES WHERE unlikely(nightscoutId = :nsId) AND likely(referenceId IS NULL)") fun findByNSId(nsId: String): Bolus? - @Query("SELECT * FROM $TABLE_BOLUSES WHERE pumpId = :pumpId AND pumpType = :pumpType AND pumpSerial = :pumpSerial AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_BOLUSES WHERE unlikely(pumpId = :pumpId) AND likely(pumpType = :pumpType) AND likely(pumpSerial = :pumpSerial) AND likely(referenceId IS NULL)") fun findByPumpIds(pumpId: Long, pumpType: InterfaceIDs.PumpType, pumpSerial: String): Bolus? - @Query("SELECT * FROM $TABLE_BOLUSES WHERE temporaryId = :temporaryId AND pumpType = :pumpType AND pumpSerial = :pumpSerial AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_BOLUSES WHERE unlikely(temporaryId = :temporaryId) AND likely(pumpType = :pumpType) AND likely(pumpSerial = :pumpSerial) AND likely(referenceId IS NULL)") fun findByPumpTempIds(temporaryId: Long, pumpType: InterfaceIDs.PumpType, pumpSerial: String): Bolus? - @Query("SELECT * FROM $TABLE_BOLUSES WHERE isValid = 1 AND type <> :exclude AND referenceId IS NULL ORDER BY timestamp DESC LIMIT 1") + @Query("SELECT * FROM $TABLE_BOLUSES WHERE likely(isValid = 1) AND type <> :exclude AND likely(referenceId IS NULL) ORDER BY timestamp DESC LIMIT 1") fun getLastBolusRecord(exclude: Bolus.Type = Bolus.Type.PRIMING): Bolus? - @Query("SELECT * FROM $TABLE_BOLUSES WHERE isValid = 1 AND type <> :exclude AND referenceId IS NULL ORDER BY timestamp DESC LIMIT 1") + @Query("SELECT * FROM $TABLE_BOLUSES WHERE likely(isValid = 1) AND type <> :exclude AND likely(referenceId IS NULL) ORDER BY timestamp DESC LIMIT 1") fun getLastBolusRecordMaybe(exclude: Bolus.Type = Bolus.Type.PRIMING): Maybe - @Query("SELECT * FROM $TABLE_BOLUSES WHERE isValid = 1 AND type == :only AND referenceId IS NULL ORDER BY timestamp DESC LIMIT 1") + @Query("SELECT * FROM $TABLE_BOLUSES WHERE likely(isValid = 1) AND type == :only AND likely(referenceId IS NULL) ORDER BY timestamp DESC LIMIT 1") fun getLastBolusRecordOfType(only: Bolus.Type): Maybe - @Query("SELECT * FROM $TABLE_BOLUSES WHERE isValid = 1 AND type <> :exclude AND referenceId IS NULL ORDER BY timestamp ASC LIMIT 1") + @Query("SELECT * FROM $TABLE_BOLUSES WHERE likely(isValid = 1) AND unlikely(type <> :exclude) AND unlikely(referenceId IS NULL) ORDER BY timestamp ASC LIMIT 1") fun getOldestBolusRecord(exclude: Bolus.Type = Bolus.Type.PRIMING): Bolus? - @Query("SELECT * FROM $TABLE_BOLUSES WHERE isValid = 1 AND timestamp >= :timestamp AND referenceId IS NULL ORDER BY id DESC") + @Query("SELECT * FROM $TABLE_BOLUSES WHERE likely(isValid = 1) AND unlikely(timestamp >= :timestamp) AND likely(referenceId IS NULL) ORDER BY id DESC") fun getBolusesFromTime(timestamp: Long): Single> - @Query("SELECT * FROM $TABLE_BOLUSES WHERE isValid = 1 AND timestamp >= :start AND timestamp <= :end AND referenceId IS NULL ORDER BY id DESC") + @Query("SELECT * FROM $TABLE_BOLUSES WHERE likely(isValid = 1) AND unlikely(timestamp BETWEEN :start AND :end) AND likely(referenceId IS NULL) ORDER BY id DESC") fun getBolusesFromTime(start: Long, end: Long): Single> - @Query("SELECT * FROM $TABLE_BOLUSES WHERE timestamp >= :timestamp AND referenceId IS NULL ORDER BY id DESC") + @Query("SELECT * FROM $TABLE_BOLUSES WHERE unlikely(timestamp >= :timestamp) AND likely(referenceId IS NULL) ORDER BY id DESC") fun getBolusesIncludingInvalidFromTime(timestamp: Long): Single> - // This query will be used with v3 to get all changed records - @Query("SELECT * FROM $TABLE_BOLUSES WHERE id > :id AND pumpId IS NOT NULL AND type <> :exclude AND referenceId IS NULL OR id IN (SELECT DISTINCT referenceId FROM $TABLE_BOLUSES WHERE id > :id) ORDER BY id ASC") - fun getModifiedFrom(id: Long, exclude: Bolus.Type = Bolus.Type.PRIMING): Single> - // for WS we need 1 record only - @Query("SELECT * FROM $TABLE_BOLUSES WHERE id > :id AND pumpId IS NOT NULL AND type <> :exclude ORDER BY id ASC limit 1") + @Query("SELECT * FROM $TABLE_BOLUSES WHERE unlikely(id > :id) AND likely(pumpId IS NOT NULL) AND likely(type <> :exclude) ORDER BY id ASC limit 1") fun getNextModifiedOrNewAfterExclude(id: Long, exclude: Bolus.Type = Bolus.Type.PRIMING): Maybe @Query("SELECT * FROM $TABLE_BOLUSES WHERE id = :referenceId") diff --git a/database/impl/src/main/java/app/aaps/database/impl/daos/CarbsDao.kt b/database/impl/src/main/java/app/aaps/database/impl/daos/CarbsDao.kt index e5b1b49f6a..53e06804e9 100644 --- a/database/impl/src/main/java/app/aaps/database/impl/daos/CarbsDao.kt +++ b/database/impl/src/main/java/app/aaps/database/impl/daos/CarbsDao.kt @@ -25,10 +25,10 @@ internal interface CarbsDao : TraceableDao { @Query("SELECT id FROM $TABLE_CARBS ORDER BY id DESC limit 1") fun getLastId(): Long? - @Query("SELECT * FROM $TABLE_CARBS WHERE nightscoutId = :nsId AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_CARBS WHERE unlikely(nightscoutId = :nsId) AND likely(referenceId IS NULL)") fun findByNSId(nsId: String): Carbs? - @Query("SELECT * FROM $TABLE_CARBS WHERE timestamp = :timestamp AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_CARBS WHERE unlikely(timestamp = :timestamp) AND likely(referenceId IS NULL)") fun findByTimestamp(timestamp: Long): Carbs? @Query("SELECT * FROM $TABLE_CARBS WHERE isValid = 1 AND referenceId IS NULL ORDER BY id DESC LIMIT 1") @@ -40,23 +40,23 @@ internal interface CarbsDao : TraceableDao { @Query("SELECT * FROM $TABLE_CARBS WHERE isValid = 1 AND referenceId IS NULL ORDER BY id ASC LIMIT 1") fun getOldestCarbsRecord(): Carbs? - @Query("SELECT * FROM $TABLE_CARBS WHERE isValid = 1 AND timestamp >= :timestamp AND referenceId IS NULL ORDER BY id DESC") + @Query("SELECT * FROM $TABLE_CARBS WHERE likely(isValid = 1) AND unlikely(timestamp >= :timestamp) AND likely(referenceId IS NULL) ORDER BY id DESC") fun getCarbsFromTime(timestamp: Long): Single> - @Query("SELECT * FROM $TABLE_CARBS WHERE isValid = 1 AND timestamp + duration >= :timestamp AND referenceId IS NULL ORDER BY id DESC") + @Query("SELECT * FROM $TABLE_CARBS WHERE likely(isValid = 1) AND unlikely((timestamp + duration) >= :timestamp) AND likely(referenceId IS NULL) ORDER BY id DESC") fun getCarbsFromTimeExpandable(timestamp: Long): Single> - @Query("SELECT * FROM $TABLE_CARBS WHERE isValid = 1 AND timestamp + duration > :from AND timestamp <= :to AND referenceId IS NULL ORDER BY id DESC") + @Query("SELECT * FROM $TABLE_CARBS WHERE likely(isValid = 1) AND unlikely((timestamp + duration) > :from) AND unlikely(timestamp <= :to) AND likely(referenceId IS NULL) ORDER BY id DESC") fun getCarbsFromTimeToTimeExpandable(from: Long, to: Long): Single> - @Query("SELECT * FROM $TABLE_CARBS WHERE timestamp >= :timestamp AND referenceId IS NULL ORDER BY id DESC") + @Query("SELECT * FROM $TABLE_CARBS WHERE unlikely(timestamp >= :timestamp) AND likely(referenceId IS NULL) ORDER BY id DESC") fun getCarbsIncludingInvalidFromTime(timestamp: Long): Single> - @Query("SELECT * FROM $TABLE_CARBS WHERE timestamp >= :from AND timestamp <= :to AND referenceId IS NULL ORDER BY id DESC") + @Query("SELECT * FROM $TABLE_CARBS WHERE unlikely(timestamp BETWEEN :from AND :to) AND likely(referenceId IS NULL) ORDER BY id DESC") fun getCarbsIncludingInvalidFromTimeToTime(from: Long, to: Long): Single> // This query will be used with v3 to get all changed records - @Query("SELECT * FROM $TABLE_CARBS WHERE id > :id AND referenceId IS NULL OR id IN (SELECT DISTINCT referenceId FROM $TABLE_CARBS WHERE id > :id) ORDER BY id ASC") + @Query("SELECT * FROM $TABLE_CARBS WHERE unlikely(id > :id) AND likely(referenceId IS NULL) OR id IN (SELECT DISTINCT referenceId FROM $TABLE_CARBS WHERE id > :id) ORDER BY id ASC") fun getModifiedFrom(id: Long): Single> // for WS we need 1 record only diff --git a/database/impl/src/main/java/app/aaps/database/impl/daos/EffectiveProfileSwitchDao.kt b/database/impl/src/main/java/app/aaps/database/impl/daos/EffectiveProfileSwitchDao.kt index 29b2dacae0..873fce99b1 100644 --- a/database/impl/src/main/java/app/aaps/database/impl/daos/EffectiveProfileSwitchDao.kt +++ b/database/impl/src/main/java/app/aaps/database/impl/daos/EffectiveProfileSwitchDao.kt @@ -25,32 +25,32 @@ internal interface EffectiveProfileSwitchDao : TraceableDao= timestamp AND referenceId IS NULL AND isValid = 1 ORDER BY timestamp DESC LIMIT 1") + @Query("SELECT * FROM $TABLE_EFFECTIVE_PROFILE_SWITCHES WHERE unlikely(:timestamp >= timestamp) AND likely(referenceId IS NULL) AND likely(isValid = 1) ORDER BY timestamp DESC LIMIT 1") fun getEffectiveProfileSwitchActiveAt(timestamp: Long): Maybe - @Query("SELECT * FROM $TABLE_EFFECTIVE_PROFILE_SWITCHES WHERE timestamp >= :timestamp AND isValid = 1 AND referenceId IS NULL ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_EFFECTIVE_PROFILE_SWITCHES WHERE unlikely(timestamp >= :timestamp) AND likely(isValid = 1) AND likely(referenceId IS NULL) ORDER BY timestamp ASC") fun getEffectiveProfileSwitchDataFromTime(timestamp: Long): Single> - @Query("SELECT * FROM $TABLE_EFFECTIVE_PROFILE_SWITCHES WHERE timestamp BETWEEN :start AND :end AND isValid = 1 AND referenceId IS NULL ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_EFFECTIVE_PROFILE_SWITCHES WHERE unlikely(timestamp BETWEEN :start AND :end) AND likely(isValid = 1) AND likely(referenceId IS NULL) ORDER BY timestamp ASC") fun getEffectiveProfileSwitchDataFromTimeToTime(start: Long, end: Long): Single> - @Query("SELECT * FROM $TABLE_EFFECTIVE_PROFILE_SWITCHES WHERE timestamp >= :timestamp AND referenceId IS NULL ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_EFFECTIVE_PROFILE_SWITCHES WHERE unlikely(timestamp >= :timestamp) AND likely(referenceId IS NULL) ORDER BY timestamp ASC") fun getEffectiveProfileSwitchDataIncludingInvalidFromTime(timestamp: Long): Single> @Query("SELECT * FROM $TABLE_EFFECTIVE_PROFILE_SWITCHES WHERE isValid = 1 AND referenceId IS NULL ORDER BY timestamp ASC") fun getEffectiveProfileSwitchData(): Single> // This query will be used with v3 to get all changed records - @Query("SELECT * FROM $TABLE_EFFECTIVE_PROFILE_SWITCHES WHERE id > :id AND referenceId IS NULL OR id IN (SELECT DISTINCT referenceId FROM $TABLE_EFFECTIVE_PROFILE_SWITCHES WHERE id > :id) ORDER BY id ASC") + @Query("SELECT * FROM $TABLE_EFFECTIVE_PROFILE_SWITCHES WHERE unlikely(id > :id) AND likely(referenceId IS NULL) OR id IN (SELECT DISTINCT referenceId FROM $TABLE_EFFECTIVE_PROFILE_SWITCHES WHERE id > :id) ORDER BY id ASC") fun getModifiedFrom(id: Long): Single> // for WS we need 1 record only diff --git a/database/impl/src/main/java/app/aaps/database/impl/daos/ExtendedBolusDao.kt b/database/impl/src/main/java/app/aaps/database/impl/daos/ExtendedBolusDao.kt index 80e2ce8884..b6b2c080b6 100644 --- a/database/impl/src/main/java/app/aaps/database/impl/daos/ExtendedBolusDao.kt +++ b/database/impl/src/main/java/app/aaps/database/impl/daos/ExtendedBolusDao.kt @@ -26,31 +26,31 @@ internal interface ExtendedBolusDao : TraceableDao { @Query("SELECT id FROM $TABLE_EXTENDED_BOLUSES ORDER BY id DESC limit 1") fun getLastId(): Long? - @Query("SELECT * FROM $TABLE_EXTENDED_BOLUSES WHERE timestamp = :timestamp AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_EXTENDED_BOLUSES WHERE unlikely(timestamp = :timestamp) AND likely(referenceId IS NULL)") fun findByTimestamp(timestamp: Long): ExtendedBolus? - @Query("SELECT * FROM $TABLE_EXTENDED_BOLUSES WHERE nightscoutId = :nsId AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_EXTENDED_BOLUSES WHERE unlikely(nightscoutId = :nsId) AND likely(referenceId IS NULL)") fun findByNSId(nsId: String): ExtendedBolus? - @Query("SELECT * FROM $TABLE_EXTENDED_BOLUSES WHERE pumpId = :pumpId AND pumpType = :pumpType AND pumpSerial = :pumpSerial AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_EXTENDED_BOLUSES WHERE unlikely(pumpId = :pumpId) AND likely(pumpType = :pumpType) AND likely(pumpSerial = :pumpSerial) AND likely(referenceId IS NULL)") fun findByPumpIds(pumpId: Long, pumpType: InterfaceIDs.PumpType, pumpSerial: String): ExtendedBolus? - @Query("SELECT * FROM $TABLE_EXTENDED_BOLUSES WHERE endId = :endPumpId AND pumpType = :pumpType AND pumpSerial = :pumpSerial AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_EXTENDED_BOLUSES WHERE unlikely(endId = :endPumpId) AND likely(pumpType = :pumpType) AND likely(pumpSerial = :pumpSerial) AND likely(referenceId IS NULL)") fun findByPumpEndIds(endPumpId: Long, pumpType: InterfaceIDs.PumpType, pumpSerial: String): ExtendedBolus? - @Query("SELECT * FROM $TABLE_EXTENDED_BOLUSES WHERE timestamp <= :timestamp AND (timestamp + duration) > :timestamp AND pumpType = :pumpType AND pumpSerial = :pumpSerial AND referenceId IS NULL AND isValid = 1 ORDER BY timestamp DESC LIMIT 1") + @Query("SELECT * FROM $TABLE_EXTENDED_BOLUSES WHERE unlikely(timestamp <= :timestamp) AND unlikely((timestamp + duration) > :timestamp) AND likely(pumpType = :pumpType) AND likely(pumpSerial = :pumpSerial) AND likely(referenceId IS NULL) AND unlikely(isValid = 1) ORDER BY timestamp DESC LIMIT 1") fun getExtendedBolusActiveAt(timestamp: Long, pumpType: InterfaceIDs.PumpType, pumpSerial: String): Maybe - @Query("SELECT * FROM $TABLE_EXTENDED_BOLUSES WHERE timestamp <= :timestamp AND (timestamp + duration) > :timestamp AND referenceId IS NULL AND isValid = 1 ORDER BY timestamp DESC LIMIT 1") + @Query("SELECT * FROM $TABLE_EXTENDED_BOLUSES WHERE unlikely(timestamp <= :timestamp) AND unlikely((timestamp + duration) > :timestamp) AND likely(referenceId IS NULL) AND likely(isValid = 1) ORDER BY timestamp DESC LIMIT 1") fun getExtendedBolusActiveAt(timestamp: Long): Maybe - @Query("SELECT * FROM $TABLE_EXTENDED_BOLUSES WHERE timestamp >= :timestamp AND isValid = 1 AND referenceId IS NULL ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_EXTENDED_BOLUSES WHERE unlikely(timestamp >= :timestamp) AND likely(isValid = 1) AND likely(referenceId IS NULL) ORDER BY timestamp ASC") fun getExtendedBolusDataFromTime(timestamp: Long): Single> - @Query("SELECT * FROM $TABLE_EXTENDED_BOLUSES WHERE timestamp >= :from AND timestamp <= :to AND isValid = 1 AND referenceId IS NULL ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_EXTENDED_BOLUSES WHERE unlikely(timestamp BETWEEN :from AND :to) AND likely(isValid = 1) AND likely(referenceId IS NULL) ORDER BY timestamp ASC") fun getExtendedBolusDataFromTimeToTime(from: Long, to: Long): Single> - @Query("SELECT * FROM $TABLE_EXTENDED_BOLUSES WHERE timestamp >= :timestamp AND referenceId IS NULL ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_EXTENDED_BOLUSES WHERE unlikely(timestamp >= :timestamp) AND likely(referenceId IS NULL) ORDER BY timestamp ASC") fun getExtendedBolusDataIncludingInvalidFromTime(timestamp: Long): Single> // This query will be used with v3 to get all changed records diff --git a/database/impl/src/main/java/app/aaps/database/impl/daos/GlucoseValueDao.kt b/database/impl/src/main/java/app/aaps/database/impl/daos/GlucoseValueDao.kt index 3eb9cf8de4..e1ced4f1e5 100644 --- a/database/impl/src/main/java/app/aaps/database/impl/daos/GlucoseValueDao.kt +++ b/database/impl/src/main/java/app/aaps/database/impl/daos/GlucoseValueDao.kt @@ -28,23 +28,23 @@ internal interface GlucoseValueDao : TraceableDao { @Query("SELECT id FROM $TABLE_GLUCOSE_VALUES ORDER BY id DESC limit 1") fun getLastId(): Long? - @Query("SELECT * FROM $TABLE_GLUCOSE_VALUES WHERE nightscoutId = :nsId AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_GLUCOSE_VALUES WHERE unlikely(nightscoutId = :nsId) AND likely(referenceId IS NULL)") fun findByNSId(nsId: String): GlucoseValue? - @Query("SELECT * FROM $TABLE_GLUCOSE_VALUES WHERE timestamp = :timestamp AND sourceSensor = :sourceSensor AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_GLUCOSE_VALUES WHERE unlikely(timestamp = :timestamp) AND likely(sourceSensor = :sourceSensor) AND likely(referenceId IS NULL)") fun findByTimestampAndSensor(timestamp: Long, sourceSensor: GlucoseValue.SourceSensor): GlucoseValue? - @Query("SELECT * FROM $TABLE_GLUCOSE_VALUES WHERE timestamp >= :timestamp AND isValid = 1 AND referenceId IS NULL AND value >= 39 ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_GLUCOSE_VALUES WHERE unlikely(timestamp >= :timestamp) AND likely(isValid = 1) AND likely(referenceId IS NULL) AND likely(value >= 39) ORDER BY timestamp ASC") fun compatGetBgReadingsDataFromTime(timestamp: Long): Single> - @Query("SELECT * FROM $TABLE_GLUCOSE_VALUES WHERE timestamp BETWEEN :start AND :end AND isValid = 1 AND referenceId IS NULL AND value >= 39 ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_GLUCOSE_VALUES WHERE unlikely(timestamp BETWEEN :start AND :end) AND likely(isValid = 1) AND likely(referenceId IS NULL) AND likely(value >= 39) ORDER BY timestamp ASC") fun compatGetBgReadingsDataFromTime(start: Long, end: Long): Single> - @Query("SELECT * FROM $TABLE_GLUCOSE_VALUES WHERE id > :lastId AND referenceId IS NULL ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_GLUCOSE_VALUES WHERE unlikely(id > :lastId) AND likely(referenceId IS NULL) ORDER BY timestamp ASC") fun getDataFromId(lastId: Long): Single> // This query will be used with v3 to get all changed records - @Query("SELECT * FROM $TABLE_GLUCOSE_VALUES WHERE id > :id AND referenceId IS NULL OR id IN (SELECT DISTINCT referenceId FROM $TABLE_GLUCOSE_VALUES WHERE id > :id) ORDER BY id ASC") + @Query("SELECT * FROM $TABLE_GLUCOSE_VALUES WHERE unlikely(id > :id) AND likely(referenceId IS NULL) OR id IN (SELECT DISTINCT referenceId FROM $TABLE_GLUCOSE_VALUES WHERE id > :id) ORDER BY id ASC") fun getModifiedFrom(id: Long): Single> // for WS we need 1 record only diff --git a/database/impl/src/main/java/app/aaps/database/impl/daos/OfflineEventDao.kt b/database/impl/src/main/java/app/aaps/database/impl/daos/OfflineEventDao.kt index ebaa6cef05..061ca3c494 100644 --- a/database/impl/src/main/java/app/aaps/database/impl/daos/OfflineEventDao.kt +++ b/database/impl/src/main/java/app/aaps/database/impl/daos/OfflineEventDao.kt @@ -25,17 +25,18 @@ internal interface OfflineEventDao : TraceableDao { @Query("SELECT id FROM $TABLE_OFFLINE_EVENTS ORDER BY id DESC limit 1") fun getLastId(): Long? - @Query("SELECT * FROM $TABLE_OFFLINE_EVENTS WHERE nightscoutId = :nsId AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_OFFLINE_EVENTS WHERE unlikely(nightscoutId = :nsId) AND likely(referenceId IS NULL)") fun findByNSId(nsId: String): OfflineEvent? - @Query("SELECT * FROM $TABLE_OFFLINE_EVENTS WHERE timestamp <= :timestamp AND (timestamp + duration) > :timestamp AND referenceId IS NULL AND isValid = 1 ORDER BY timestamp DESC LIMIT 1") + @Query("SELECT * FROM $TABLE_OFFLINE_EVENTS WHERE unlikely(timestamp <= :timestamp) AND unlikely((timestamp + duration) > :timestamp) AND likely(referenceId IS NULL) AND likely(isValid = 1) " + + "ORDER BY timestamp DESC LIMIT 1") fun getOfflineEventActiveAt(timestamp: Long): Maybe - @Query("SELECT * FROM $TABLE_OFFLINE_EVENTS WHERE timestamp BETWEEN :start AND :end AND isValid = 1 AND referenceId IS NULL ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_OFFLINE_EVENTS WHERE unlikely(timestamp BETWEEN :start AND :end) AND likely(isValid = 1) AND likely(referenceId IS NULL) ORDER BY timestamp ASC") fun getOfflineEventDataFromTimeToTime(start: Long, end: Long): Single> // This query will be used with v3 to get all changed records - @Query("SELECT * FROM $TABLE_OFFLINE_EVENTS WHERE id > :id AND referenceId IS NULL OR id IN (SELECT DISTINCT referenceId FROM $TABLE_OFFLINE_EVENTS WHERE id > :id) ORDER BY id ASC") + @Query("SELECT * FROM $TABLE_OFFLINE_EVENTS WHERE unlikely(id > :id) AND likely(referenceId IS NULL) OR id IN (SELECT DISTINCT referenceId FROM $TABLE_OFFLINE_EVENTS WHERE id > :id) ORDER BY id ASC") fun getModifiedFrom(id: Long): Single> // for WS we need 1 record only diff --git a/database/impl/src/main/java/app/aaps/database/impl/daos/ProfileSwitchDao.kt b/database/impl/src/main/java/app/aaps/database/impl/daos/ProfileSwitchDao.kt index cdba01a7a5..d29d41de78 100644 --- a/database/impl/src/main/java/app/aaps/database/impl/daos/ProfileSwitchDao.kt +++ b/database/impl/src/main/java/app/aaps/database/impl/daos/ProfileSwitchDao.kt @@ -30,26 +30,26 @@ internal interface ProfileSwitchDao : ProfileSwitchDaoWorkaround { @Query("SELECT * FROM $TABLE_PROFILE_SWITCHES WHERE timestamp = :timestamp AND referenceId IS NULL") fun findByTimestamp(timestamp: Long): ProfileSwitch? - @Query("SELECT * FROM $TABLE_PROFILE_SWITCHES WHERE nightscoutId = :nsId AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_PROFILE_SWITCHES WHERE unlikely(nightscoutId = :nsId) AND likely(referenceId IS NULL)") fun findByNSId(nsId: String): ProfileSwitch? - @Query("SELECT * FROM $TABLE_PROFILE_SWITCHES WHERE timestamp <= :timestamp AND (timestamp + duration) > :timestamp AND referenceId IS NULL AND isValid = 1 ORDER BY timestamp DESC LIMIT 1") + @Query("SELECT * FROM $TABLE_PROFILE_SWITCHES WHERE unlikely(timestamp <= :timestamp) AND unlikely((timestamp + duration) > :timestamp) AND likely(referenceId IS NULL) AND likely(isValid = 1) ORDER BY timestamp DESC LIMIT 1") fun getTemporaryProfileSwitchActiveAt(timestamp: Long): Maybe - @Query("SELECT * FROM $TABLE_PROFILE_SWITCHES WHERE timestamp <= :timestamp AND duration = 0 AND referenceId IS NULL AND isValid = 1 ORDER BY timestamp DESC LIMIT 1") + @Query("SELECT * FROM $TABLE_PROFILE_SWITCHES WHERE unlikely(timestamp <= :timestamp) AND unlikely(duration = 0) AND likely(referenceId IS NULL) AND likely(isValid = 1) ORDER BY timestamp DESC LIMIT 1") fun getPermanentProfileSwitchActiveAt(timestamp: Long): Maybe @Query("SELECT * FROM $TABLE_PROFILE_SWITCHES WHERE referenceId IS NULL AND isValid = 1 ORDER BY timestamp DESC LIMIT 1") fun getAllProfileSwitches(): Single> - @Query("SELECT * FROM $TABLE_PROFILE_SWITCHES WHERE timestamp >= :timestamp AND referenceId IS NULL ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_PROFILE_SWITCHES WHERE unlikely(timestamp >= :timestamp) AND likely(referenceId IS NULL) ORDER BY timestamp ASC") fun getProfileSwitchDataIncludingInvalidFromTime(timestamp: Long): Single> - @Query("SELECT * FROM $TABLE_PROFILE_SWITCHES WHERE timestamp >= :timestamp AND isValid = 1 AND referenceId IS NULL ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_PROFILE_SWITCHES WHERE unlikely(timestamp >= :timestamp) AND likely(isValid = 1) AND likely(referenceId IS NULL) ORDER BY timestamp ASC") fun getProfileSwitchDataFromTime(timestamp: Long): Single> // This query will be used with v3 to get all changed records - @Query("SELECT * FROM $TABLE_PROFILE_SWITCHES WHERE id > :id AND referenceId IS NULL OR id IN (SELECT DISTINCT referenceId FROM $TABLE_PROFILE_SWITCHES WHERE id > :id) ORDER BY id ASC") + @Query("SELECT * FROM $TABLE_PROFILE_SWITCHES WHERE unlikely(id > :id) AND likely(referenceId IS NULL) OR id IN (SELECT DISTINCT referenceId FROM $TABLE_PROFILE_SWITCHES WHERE id > :id) ORDER BY id ASC") fun getModifiedFrom(id: Long): Single> // for WS we need 1 record only diff --git a/database/impl/src/main/java/app/aaps/database/impl/daos/TemporaryBasalDao.kt b/database/impl/src/main/java/app/aaps/database/impl/daos/TemporaryBasalDao.kt index 83158d5dda..3aef578941 100644 --- a/database/impl/src/main/java/app/aaps/database/impl/daos/TemporaryBasalDao.kt +++ b/database/impl/src/main/java/app/aaps/database/impl/daos/TemporaryBasalDao.kt @@ -29,48 +29,44 @@ internal interface TemporaryBasalDao : TraceableDao { @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE temporaryId = :temporaryId") fun findByTempId(temporaryId: Long): TemporaryBasal? - @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE timestamp = :timestamp AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE unlikely(timestamp = :timestamp) AND likely(referenceId IS NULL)") fun findByTimestamp(timestamp: Long): TemporaryBasal? - @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE pumpId = :pumpId AND pumpType = :pumpType AND pumpSerial = :pumpSerial AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE unlikely(pumpId = :pumpId) AND likely(pumpType = :pumpType) AND likely(pumpSerial = :pumpSerial) AND likely(referenceId IS NULL)") fun findByPumpIds(pumpId: Long, pumpType: InterfaceIDs.PumpType, pumpSerial: String): TemporaryBasal? - @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE endId = :endPumpId AND pumpType = :pumpType AND pumpSerial = :pumpSerial AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE endId = :endPumpId AND pumpType = :pumpType AND pumpSerial = :pumpSerial AND likely(referenceId IS NULL)") fun findByPumpEndIds(endPumpId: Long, pumpType: InterfaceIDs.PumpType, pumpSerial: String): TemporaryBasal? - @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE nightscoutId = :nsId AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE unlikely(nightscoutId = :nsId) AND likely(referenceId IS NULL)") fun findByNSId(nsId: String): TemporaryBasal? - @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE temporaryId = :temporaryId AND pumpType = :pumpType AND pumpSerial = :pumpSerial AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE unlikely(temporaryId = :temporaryId) AND likely(pumpType = :pumpType) AND likely(pumpSerial = :pumpSerial) AND likely(referenceId IS NULL)") fun findByPumpTempIds(temporaryId: Long, pumpType: InterfaceIDs.PumpType, pumpSerial: String): TemporaryBasal? - @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE timestamp <= :timestamp AND (timestamp + duration) > :timestamp AND pumpType = :pumpType AND pumpSerial = :pumpSerial AND referenceId IS NULL AND isValid = 1 ORDER BY timestamp DESC LIMIT 1") + @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE unlikely(timestamp <= :timestamp) AND unlikely((timestamp + duration) > :timestamp) AND likely(pumpType = :pumpType) AND likely(pumpSerial = :pumpSerial) AND likely(referenceId IS NULL) AND likely(isValid = 1) ORDER BY timestamp DESC LIMIT 1") fun getTemporaryBasalActiveAt(timestamp: Long, pumpType: InterfaceIDs.PumpType, pumpSerial: String): Maybe - @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE timestamp <= :timestamp AND (timestamp + duration) > :timestamp AND referenceId IS NULL AND isValid = 1 ORDER BY timestamp DESC LIMIT 1") + @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE unlikely(timestamp <= :timestamp) AND unlikely((timestamp + duration) > :timestamp) AND likely(referenceId IS NULL) AND likely(isValid = 1) ORDER BY timestamp DESC LIMIT 1") fun getTemporaryBasalActiveAt(timestamp: Long): Maybe - @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE timestamp <= :to AND (timestamp + duration) > :from AND referenceId IS NULL AND isValid = 1 ORDER BY timestamp DESC") + @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE unlikely(timestamp <= :to) AND unlikely((timestamp + duration) > :from) AND likely(referenceId IS NULL) AND likely(isValid = 1) ORDER BY timestamp DESC") fun getTemporaryBasalActiveBetweenTimeAndTime(from: Long, to: Long): Single> - @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE timestamp >= :timestamp AND isValid = 1 AND referenceId IS NULL ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE unlikely(timestamp >= :timestamp) AND likely(isValid = 1) AND likely(referenceId IS NULL) ORDER BY timestamp ASC") fun getTemporaryBasalDataFromTime(timestamp: Long): Single> - @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE timestamp >= :from AND timestamp <= :to AND isValid = 1 AND referenceId IS NULL ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE unlikely(timestamp BETWEEN :from and :to) AND likely(isValid = 1) AND likely(referenceId IS NULL) ORDER BY timestamp ASC") fun getTemporaryBasalDataFromTimeToTime(from: Long, to: Long): Single> - @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE timestamp >= :timestamp AND referenceId IS NULL ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE unlikely(timestamp >= :timestamp) AND likely(referenceId IS NULL) ORDER BY timestamp ASC") fun getTemporaryBasalDataIncludingInvalidFromTime(timestamp: Long): Single> @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE referenceId = :id ORDER BY id DESC LIMIT 1") fun getLastHistoryRecord(id: Long): TemporaryBasal? - // This query will be used with v3 to get all changed records - @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE id > :id AND pumpId IS NOT NULL AND referenceId IS NULL OR id IN (SELECT DISTINCT referenceId FROM $TABLE_TEMPORARY_BASALS WHERE id > :id) ORDER BY id ASC") - fun getModifiedFrom(id: Long): Single> - // for WS we need 1 record only - @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE id > :id AND pumpId IS NOT NULL ORDER BY id ASC limit 1") + @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE unlikely(id > :id) AND likely(pumpId IS NOT NULL) ORDER BY id ASC limit 1") fun getNextModifiedOrNewAfter(id: Long): Maybe @Query("SELECT * FROM $TABLE_TEMPORARY_BASALS WHERE id = :referenceId") diff --git a/database/impl/src/main/java/app/aaps/database/impl/daos/TemporaryTargetDao.kt b/database/impl/src/main/java/app/aaps/database/impl/daos/TemporaryTargetDao.kt index e4317d3ee5..0d18a9616c 100644 --- a/database/impl/src/main/java/app/aaps/database/impl/daos/TemporaryTargetDao.kt +++ b/database/impl/src/main/java/app/aaps/database/impl/daos/TemporaryTargetDao.kt @@ -25,22 +25,18 @@ internal interface TemporaryTargetDao : TraceableDao { @Query("SELECT id FROM $TABLE_TEMPORARY_TARGETS ORDER BY id DESC limit 1") fun getLastId(): Long? - @Query("SELECT * FROM $TABLE_TEMPORARY_TARGETS WHERE nightscoutId = :nsId AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_TEMPORARY_TARGETS WHERE unlikely(nightscoutId = :nsId) AND likely(referenceId IS NULL)") fun findByNSId(nsId: String): TemporaryTarget? - @Query("SELECT * FROM $TABLE_TEMPORARY_TARGETS WHERE timestamp <= :timestamp AND (timestamp + duration) > :timestamp AND referenceId IS NULL AND isValid = 1 ORDER BY timestamp DESC LIMIT 1") + @Query("SELECT * FROM $TABLE_TEMPORARY_TARGETS WHERE unlikely(timestamp <= :timestamp) AND unlikely((timestamp + duration) > :timestamp) AND likely(referenceId IS NULL) AND likely(isValid = 1) ORDER BY timestamp DESC LIMIT 1") fun getTemporaryTargetActiveAt(timestamp: Long): Maybe - @Query("SELECT * FROM $TABLE_TEMPORARY_TARGETS WHERE timestamp >= :timestamp AND isValid = 1 AND referenceId IS NULL ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_TEMPORARY_TARGETS WHERE unlikely(timestamp >= :timestamp) AND likely(isValid = 1) AND likely(referenceId IS NULL) ORDER BY timestamp ASC") fun getTemporaryTargetDataFromTime(timestamp: Long): Single> - @Query("SELECT * FROM $TABLE_TEMPORARY_TARGETS WHERE timestamp >= :timestamp AND referenceId IS NULL ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_TEMPORARY_TARGETS WHERE unlikely(timestamp >= :timestamp) AND likely(referenceId IS NULL) ORDER BY timestamp ASC") fun getTemporaryTargetDataIncludingInvalidFromTime(timestamp: Long): Single> - // This query will be used with v3 to get all changed records - @Query("SELECT * FROM $TABLE_TEMPORARY_TARGETS WHERE id > :id AND referenceId IS NULL OR id IN (SELECT DISTINCT referenceId FROM $TABLE_TEMPORARY_TARGETS WHERE id > :id) ORDER BY id ASC") - fun getModifiedFrom(id: Long): Single> - // for WS we need 1 record only @Query("SELECT * FROM $TABLE_TEMPORARY_TARGETS WHERE id > :id ORDER BY id ASC limit 1") fun getNextModifiedOrNewAfter(id: Long): Maybe diff --git a/database/impl/src/main/java/app/aaps/database/impl/daos/TherapyEventDao.kt b/database/impl/src/main/java/app/aaps/database/impl/daos/TherapyEventDao.kt index 7afcb17c78..d5f6283a17 100644 --- a/database/impl/src/main/java/app/aaps/database/impl/daos/TherapyEventDao.kt +++ b/database/impl/src/main/java/app/aaps/database/impl/daos/TherapyEventDao.kt @@ -25,32 +25,32 @@ internal interface TherapyEventDao : TraceableDao { @Query("SELECT id FROM $TABLE_THERAPY_EVENTS ORDER BY id DESC limit 1") fun getLastId(): Long? - @Query("SELECT * FROM $TABLE_THERAPY_EVENTS WHERE type = :type AND timestamp = :timestamp AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_THERAPY_EVENTS WHERE likely(type = :type) AND unlikely(timestamp = :timestamp) AND likely(referenceId IS NULL)") fun findByTimestamp(type: TherapyEvent.Type, timestamp: Long): TherapyEvent? - @Query("SELECT * FROM $TABLE_THERAPY_EVENTS WHERE type = :type AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_THERAPY_EVENTS WHERE unlikely(type = :type) AND likely(referenceId IS NULL)") fun getValidByType(type: TherapyEvent.Type): List - @Query("SELECT * FROM $TABLE_THERAPY_EVENTS WHERE nightscoutId = :nsId AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_THERAPY_EVENTS WHERE unlikely(nightscoutId = :nsId) AND likely(referenceId IS NULL)") fun findByNSId(nsId: String): TherapyEvent? - @Query("SELECT * FROM $TABLE_THERAPY_EVENTS WHERE timestamp >= :timestamp AND isValid = 1 AND referenceId IS NULL ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_THERAPY_EVENTS WHERE unlikely(timestamp >= :timestamp) AND likely(isValid = 1) AND likely(referenceId IS NULL) ORDER BY timestamp ASC") fun getTherapyEventDataFromTime(timestamp: Long): Single> - @Query("SELECT * FROM $TABLE_THERAPY_EVENTS WHERE type = :type AND timestamp >= :timestamp AND isValid = 1 AND referenceId IS NULL ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_THERAPY_EVENTS WHERE type = :type AND unlikely(timestamp >= :timestamp) AND likely(isValid = 1) AND likely(referenceId IS NULL) ORDER BY timestamp ASC") fun getTherapyEventDataFromTime(timestamp: Long, type: TherapyEvent.Type): Single> - @Query("SELECT * FROM $TABLE_THERAPY_EVENTS WHERE timestamp >= :timestamp AND referenceId IS NULL ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_THERAPY_EVENTS WHERE unlikely(timestamp >= :timestamp) AND likely(referenceId IS NULL) ORDER BY timestamp ASC") fun getTherapyEventDataIncludingInvalidFromTime(timestamp: Long): Single> - @Query("SELECT * FROM $TABLE_THERAPY_EVENTS WHERE type = :type AND isValid = 1 AND timestamp <= :now ORDER BY timestamp DESC LIMIT 1") + @Query("SELECT * FROM $TABLE_THERAPY_EVENTS WHERE type = :type AND likely(isValid = 1) AND unlikely(timestamp <= :now) ORDER BY timestamp DESC LIMIT 1") fun getLastTherapyRecord(type: TherapyEvent.Type, now: Long): Maybe - @Query("SELECT * FROM $TABLE_THERAPY_EVENTS WHERE timestamp >= :from AND timestamp <= :to AND isValid = 1 AND referenceId IS NULL ORDER BY timestamp ASC") + @Query("SELECT * FROM $TABLE_THERAPY_EVENTS WHERE unlikely(timestamp BETWEEN :from AND :to) AND likely(isValid = 1) AND likely(referenceId IS NULL) ORDER BY timestamp ASC") fun compatGetTherapyEventDataFromToTime(from: Long, to: Long): Single> // This query will be used with v3 to get all changed records - @Query("SELECT * FROM $TABLE_THERAPY_EVENTS WHERE id > :id AND referenceId IS NULL OR id IN (SELECT DISTINCT referenceId FROM $TABLE_THERAPY_EVENTS WHERE id > :id) ORDER BY id ASC") + @Query("SELECT * FROM $TABLE_THERAPY_EVENTS WHERE unlikely(id > :id) AND likely(referenceId IS NULL) OR id IN (SELECT DISTINCT referenceId FROM $TABLE_THERAPY_EVENTS WHERE id > :id) ORDER BY id ASC") fun getModifiedFrom(id: Long): Single> // for WS we need 1 record only diff --git a/database/impl/src/main/java/app/aaps/database/impl/daos/TotalDailyDoseDao.kt b/database/impl/src/main/java/app/aaps/database/impl/daos/TotalDailyDoseDao.kt index 686981ccb9..3774d5e75b 100644 --- a/database/impl/src/main/java/app/aaps/database/impl/daos/TotalDailyDoseDao.kt +++ b/database/impl/src/main/java/app/aaps/database/impl/daos/TotalDailyDoseDao.kt @@ -23,13 +23,13 @@ internal interface TotalDailyDoseDao : TraceableDao { @Query("DELETE FROM $TABLE_TOTAL_DAILY_DOSES WHERE referenceId IS NOT NULL") override fun deleteTrackedChanges(): Int - @Query("SELECT * FROM $TABLE_TOTAL_DAILY_DOSES WHERE pumpId = :pumpId AND pumpType = :pumpType AND pumpSerial = :pumpSerial AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_TOTAL_DAILY_DOSES WHERE unlikely(pumpId = :pumpId) AND likely(pumpType = :pumpType) AND likely(pumpSerial = :pumpSerial) AND likely(referenceId IS NULL)") fun findByPumpIds(pumpId: Long, pumpType: InterfaceIDs.PumpType, pumpSerial: String): TotalDailyDose? - @Query("SELECT * FROM $TABLE_TOTAL_DAILY_DOSES WHERE timestamp = :timestamp AND pumpType = :pumpType AND pumpSerial = :pumpSerial AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_TOTAL_DAILY_DOSES WHERE unlikely(timestamp = :timestamp) AND likely(pumpType = :pumpType) AND likely(pumpSerial = :pumpSerial) AND likely(referenceId IS NULL)") fun findByPumpTimestamp(timestamp: Long, pumpType: InterfaceIDs.PumpType, pumpSerial: String): TotalDailyDose? - @Query("SELECT * FROM $TABLE_TOTAL_DAILY_DOSES WHERE timestamp = :timestamp AND pumpType = :pumpType AND referenceId IS NULL") + @Query("SELECT * FROM $TABLE_TOTAL_DAILY_DOSES WHERE unlikely(timestamp = :timestamp) AND likely(pumpType = :pumpType) AND likely(referenceId IS NULL)") fun findByTimestamp(timestamp: Long, pumpType: InterfaceIDs.PumpType): Maybe @Query("SELECT * FROM $TABLE_TOTAL_DAILY_DOSES WHERE isValid = 1 AND referenceId IS NULL AND pumpType <> :exclude ORDER BY timestamp DESC LIMIT :count") diff --git a/database/impl/src/main/java/app/aaps/database/impl/daos/UserEntryDao.kt b/database/impl/src/main/java/app/aaps/database/impl/daos/UserEntryDao.kt index 93de4fe7d9..dc08dba01b 100644 --- a/database/impl/src/main/java/app/aaps/database/impl/daos/UserEntryDao.kt +++ b/database/impl/src/main/java/app/aaps/database/impl/daos/UserEntryDao.kt @@ -20,7 +20,7 @@ interface UserEntryDao { @Query("SELECT * FROM $TABLE_USER_ENTRY WHERE timestamp >= :timestamp ORDER BY id DESC") fun getUserEntryDataFromTime(timestamp: Long): Single> - @Query("SELECT * FROM $TABLE_USER_ENTRY WHERE timestamp >= :timestamp AND source != :excludeSource ORDER BY id DESC") + @Query("SELECT * FROM $TABLE_USER_ENTRY WHERE unlikely(timestamp >= :timestamp) AND likely(source != :excludeSource) ORDER BY id DESC") fun getUserEntryFilteredDataFromTime(excludeSource: Sources, timestamp: Long): Single> } \ No newline at end of file diff --git a/implementation/src/main/kotlin/app/aaps/implementation/protection/PasswordCheckImpl.kt b/implementation/src/main/kotlin/app/aaps/implementation/protection/PasswordCheckImpl.kt index 9874b556a0..8c7057aba6 100644 --- a/implementation/src/main/kotlin/app/aaps/implementation/protection/PasswordCheckImpl.kt +++ b/implementation/src/main/kotlin/app/aaps/implementation/protection/PasswordCheckImpl.kt @@ -11,6 +11,7 @@ import android.view.inputmethod.InputMethodManager import android.widget.EditText import android.widget.TextView import androidx.annotation.StringRes +import app.aaps.core.interfaces.extensions.runOnUiThread import app.aaps.core.interfaces.protection.PasswordCheck import app.aaps.core.interfaces.sharedPreferences.SP import app.aaps.core.main.R @@ -81,7 +82,7 @@ class PasswordCheckImpl @Inject constructor( val alert = alertDialogBuilder.create().apply { window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE) - show() + runOnUiThread { show() } } userInput.setOnEditorActionListener { _, actionId, _ -> diff --git a/implementation/src/main/res/values-af-rZA/strings.xml b/implementation/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 4eaf9a870a..0000000000 --- a/implementation/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - BG - Opdrag word nou uitgevoer - Basale waarde onder minimum. Profiel nie gestel nie! - Toestemming - - Laag - Hoog - diff --git a/implementation/src/main/res/values-ja-rJP/strings.xml b/implementation/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index b31c519926..0000000000 --- a/implementation/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/insight/src/main/res/values-af-rZA/alert_codes.xml b/insight/src/main/res/values-af-rZA/alert_codes.xml deleted file mode 100644 index 9379750f05..0000000000 --- a/insight/src/main/res/values-af-rZA/alert_codes.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - Herinner R1 - Herinner R2 - Herinner R3 - Herinner R4 - Herinner R7 - Waarskuwing W31 - Waarskuwing W33 - Waarskuwing W33 - Waarskuwing W34 - Waarskuwing W36 - Waarskuwing W38 - Waarskuwing W39 - Onderhoud M20 - Onderhoud M21 - Onderhoud M22 - Onderhoud M23 - Onderhoud M24 - Onderhoud M25 - Onderhoud M26 - Onderhoud M27 - Onderhoud M28 - Onderhoud M29 - Onderhoud M30 - Fout E6 - Fout E10 - Fout E13 - diff --git a/insight/src/main/res/values-af-rZA/alert_descriptions.xml b/insight/src/main/res/values-af-rZA/alert_descriptions.xml deleted file mode 100644 index ade568703d..0000000000 --- a/insight/src/main/res/values-af-rZA/alert_descriptions.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - %1$d%%\nDurasie: %2$s h]]> - %1$s U]]> - Verander battery. - Stel tyd/datum. - Kontak Accu-Chek ondersteuning. - %1$d%%
Durasie:%2$s h]]>
- %1$s U
gelewer: %2$s U]]>
- Voeg kasset. - Verander kasset. - Verander battery. - Kontroleer pomp status. - Verander infusie stel. - Kontak Accu-Chek ondersteuning. - Verander kasset. - Herhaal data aflaai. - Kontroleer pomp status. - Stel battery tipe. - Stel kasset tipe. - Verander battery en kasset. - Verander kasset. - Verander taal. -
diff --git a/insight/src/main/res/values-af-rZA/alert_titles.xml b/insight/src/main/res/values-af-rZA/alert_titles.xml deleted file mode 100644 index 87cd922237..0000000000 --- a/insight/src/main/res/values-af-rZA/alert_titles.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - Lewer Bolus - Bolus Gemis - Wekker - Verander infusie stel - TBR voltooi - Kasset laag - Battery is amper leeg - Ongeldige tyd/datum - Einde van waarborg - TBR gekanselleer - Bolus gekanselleer - Leentyd waarskuwing - Kasset nie ingevoeg - Kasset leeg - Battery leeg - Outomaties af -pomp gestaak - Verstopping - Leentyd oor - einde van werking - Kasset verandering nie voltooi - Data aflaai gefaal - Wag modus verskrei - Battery tipe nie gestel nie - Kasset tipe nie gestel nie - Meganiese fout - Herlaai fout - Taal fout - diff --git a/insight/src/main/res/values-af-rZA/exceptions.xml b/insight/src/main/res/values-af-rZA/exceptions.xml deleted file mode 100644 index 9470fcbd3a..0000000000 --- a/insight/src/main/res/values-af-rZA/exceptions.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - Verbinding het misluk - Konneksie verloor - Maat verwerp - Sok skepping gefaal - Afsnytyd - Maksimum bolus nr reeds gelaai - Geen aktiewe TBR om te kanselleer - Geen aktiewe TBR om te verander - Geen sodanige bolus om te kanselleer - Pomp reeds in daardie staat - Loop modus nie toegelaat - diff --git a/insight/src/main/res/values-af-rZA/strings.xml b/insight/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 6b27e59564..0000000000 --- a/insight/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - Skakel kennisgewing van TBR einde\n(pomp instelling) - Deaktiveer kennisgewing van TBR einde\n(pomp instelling) - Nie gemaat - Herstel - Status - Herstel duur - Laaste verbind - Begin pomp - Stop pomp - Begin - Gestaak - Bedryf modus - Integrasie vir Accu-Chek Insight pompe - Nie ingesteek - TDD Bolus - TDD basale - %1$d%% vir %2$d / %3$d min - Multigolf bolus - %1$.2f / %2$.2f U vir %3$d min - Soek vir toestelle… - Maats voltooi - Stem die kodes gewys op hierdie toestel en op jou pomp saam? - Insight maatjies - Accu-Chek Insight - %1$s:%2$s - Pyp verander - Sig - Afsnytyd gedurende handskud - terugstel bluetooth - Pomp gestop - Pomp is begin - Laaste kon: %1$d min gelede - TBR: %1$d%% vir %2$d / %3$d min - Verleng: %1$.2f / %2$.2f U vir %3$d min - Multigolf: %1$.2f / %2$.2f U vir %3$d min - TDD: %1$.2f - Bat.: %1$d%% - Vrygestelde sagteware weergawe - UI verwerker sagteware weergawe - PC verwerker sagteware weergawe - MD tel verwerker sagteware weergawe - Veiligheid verwerker sagteware weergawe - BT info bladsy weergawe - Bluetooth adres - Stelsel ID Aanhangsel - Vervaardigings datum - Verwyder maats - Log ligging veranderings - Log stoor veranderinge - Log voerpyp verandering - Log battery verandering - Log bedryf modus veranderinge - Log alarms - Skakel TBR emulasie aan - Gebruik verlengde boluses in plaas van TBRs om die 250%% perk te omseil - Ontkoppel vertraging [s] - Max. herstel duur [s] - Min. herstel duur [s] - Pomp alarm - Maat inligting - diff --git a/insight/src/main/res/values-ja-rJP/alert_codes.xml b/insight/src/main/res/values-ja-rJP/alert_codes.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/insight/src/main/res/values-ja-rJP/alert_codes.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/insight/src/main/res/values-ja-rJP/alert_descriptions.xml b/insight/src/main/res/values-ja-rJP/alert_descriptions.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/insight/src/main/res/values-ja-rJP/alert_descriptions.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/insight/src/main/res/values-ja-rJP/alert_titles.xml b/insight/src/main/res/values-ja-rJP/alert_titles.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/insight/src/main/res/values-ja-rJP/alert_titles.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/insight/src/main/res/values-ja-rJP/exceptions.xml b/insight/src/main/res/values-ja-rJP/exceptions.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/insight/src/main/res/values-ja-rJP/exceptions.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/insight/src/main/res/values-ja-rJP/strings.xml b/insight/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/insight/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/insight/src/main/res/values-nb-rNO/strings.xml b/insight/src/main/res/values-nb-rNO/strings.xml index 3e678013b2..9a923b443f 100644 --- a/insight/src/main/res/values-nb-rNO/strings.xml +++ b/insight/src/main/res/values-nb-rNO/strings.xml @@ -1,7 +1,7 @@ - Aktiver varsel når slutt på temp basal\n(pumpeinnstilling) - Slå av varsel når slutt på temp basal\n(pumpeinnstilling) + Aktiver varsel når slutt på midlertidig basal\n(pumpeinnstilling) + Slå av varsel når slutt på midlertidig basal\n(pumpeinnstilling) Ikke sammenkoblet Gjenoppretter Status @@ -32,7 +32,7 @@ Slå av vibrasjoner på manuell bolus For bolus og forlenget bolus (bare tilgjengelig med Insight firmware 3.x) Slå av vibrasjoner ved automatisk bolus - For SMB og temp basal med TBR emulering (bare tilgjengelig med Insight firmware 3.x) + For SMB og midlertidig basal med TBR emulering (bare tilgjengelig med Insight firmware 3.x) En timeout oppstod i paringsprosessen - restart Bluetooth Pumpen stoppet Pumpen startet @@ -60,7 +60,7 @@ Logg endring i driftsmodus Logg varslinger Aktiver emulering av TBR - Bruk forlenget bolus i stedet for temp basaler for å omgå 250%% grensen + Bruk forlenget bolus i stedet for midlertidig basaler for å omgå 250%% grensen Utsett frakobling [s] Maks pause mellom tilkoblingsforsøk [s] Min pause mellom tilkoblingsforsøk [s] diff --git a/plugins/aps/src/main/res/values-af-rZA/strings.xml b/plugins/aps/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index aaf21f14b7..0000000000 --- a/plugins/aps/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - Hoë tydelike doelwitte verhoog sensitiwiteit - = 100]]> - Lae tydelike doelwitte verlaag sensitiwiteit - - OpenAPS SMB - Plugin is gedeaktiveer - Geen beskikbare glukose data - Geen autosens data beskikbaar - Besig met uitvoering - OpenAPS AMA - Matriks van %1$d elemente. \nWerklike waarde: - OAPS - Status van die algoritme in 2017 - Mees onlangse algoritme vir gevorderde gebruikers - Bolus sluimer dia divisor - Begin nou - Vorige lopie - Insette parameters - Glukose status - Huidige temp - IOB data - Profiel - Maaltyd data - Versoek - Beperkings - Autosens data - Skrip foutopspoor - Gebruik autosens kenmerk - Die waarde word \"maks basal\" genoem in OpenAPS konteks - Maksimum basale IAB wat OpenAPS mag lewer [U] - Hierdie waarde word Maks IAB genoem in OpenAPS konteks\nDit is die maksimum insulien in [U] wat APS op een slag kan lewer. - Verstek waarde: waar\nDit word gebruik om autosens toe te laat om BG teikens aan te pas, benewens ISF en basale. - Verstek waarde: 3.0 (AMA) of 8.0 (SMB). Dit is \'n instelling vir verstek karb absorpsie impak per 5 minute. Die verstek is \'n verwagte 3mg/dl / 5min. Dit beïnvloed hoe vinnig KOB opgeneem word, en hoeveel karb absorpsie word aanvaar sodat in die berekening van toekomstige BG, voorspel wanneer BG val meer as verwagte, of nie soveel styg as verwag. - Verstek waarde: 3 dit is \'n sleutel OpenAPS veiligheidsdrumpels. Wat dit doen is om jou basale te berk tot 3 x (in hierdie mense) jou grootste basale koers. Jy sal waarskynlik nooit dit hoef te verander, maar jy moet bewus wees wat bespreek is oor \"3 x max daaglikse; 4 x huidige\"vir veiligheidsdrumpels. - Verstek waarde: 4 dit is die helfte van die sleutel OpenAPS veiligheid limiete, en die ander helfte van \"3 x maks daaglikse; 4 x huidige\"van die veiligheid limiet. Dit beteken jou basale, ongeag max basale stel op jou pomp, kan enige hoër wees as hierdie nommer tye die huidige vlak van jou basale. Dit is om te verhoed dat mense in gevaarlike gebied deur instelling buitensporig hoë max basals voor om te verstaan hoe die algoritme werk. Weer, die verstek is 4 x; die meeste mense sal nooit moet dit aanpas en is eerder meer geneig om te moet aanpas ander instellings as hulle voel hulle \"loop in\" hierdie veiligheid limiet. - Verstek waarde: 2\nBolus sluimer is verorden nadat jy \'n maaltyd bolus gedoen het, so die lus sal nie werk met lae tydelike wanneer jy nou net geëet het nie. Die voorbeeld hier se verstek is 2; so \'n 3 uur DIA beteken dat bolus sluimer sal geleidelik uitgefaseer sal word oor 1.5 uur (3DIA/2). - Aandag! \nNormaalweg hoef jy nie die waardes hieronder te verander nie. KLIEK HIER Asseblief en LEES die teks en maak seker jy verstaan dit voor enige verandering aan hierdie waardes. - Gebruik altyd kort gemiddelde delta in plaas van eenvoudige delta - Maks daaglikse veiligheids vermenigvuldiger - Huidige basale veiligheids vermenigvuldiger - Maksimum totale IAB OpenAPS kan nie oor [U] gaan - Hierdie waarde is Maks IAB genoem in OpenAPS kontekst\nOpenAPS sal nie meer insulien byvoeg as huidige IAB is groter as hierdie waarde - Aktiveer UAM - Aktiveer SMB - Gebruik Super Mikro Boluses in plaas van of tydelike basale vir vinniger resultate - Opsporing van Onaangekondigde etes - Aktiveer SMB altyd - Aktiveer SMB altyd onafhanklik van boluse. Slegs moonlik met BG source met goeie filter van data soos G5 - Aktiveer SMB na koolhidrate - Akitveer SMB vir 6h na karbohidrate, selfs met 0 KOB. Slegs moontlik met BG bron met goeiei filters van data soos G5 - Akitveer SMB met KOB - Aktiveer SMB wanneer daar KOB aktief is. - Aktiveer SMB met tydelike doelwitte - Aktiveer SMB wanneer daar tydelike doelwitte aktief is (eetgou, oefen) - Aktiveer SMB met hoë tydelike doelwitte - Maks minute van basale beperk SMB tot - maks basale vermenigvuldiger - maks daaglikse basale vermenigvuldiger - SMB gedeaktiveer in voorkeure - UAM in voorkeure gedeaktiveer - Autosens gedeaktiveer in voorkeure - - Beperk IAB tot %1$.1f U agv %2$s - maks waarde in voorkeure - harde limiet - - - \'n Bolus was binne die laaste 3 minute afgelewer, SMB is oorgespring - LUS - Aktiveer of deaktiveer die implementering die lus wakker maak. - Basale reggestel - APS - diff --git a/plugins/aps/src/main/res/values-ja-rJP/strings.xml b/plugins/aps/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 5ba7222cd7..0000000000 --- a/plugins/aps/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - プロファイル - - - - diff --git a/plugins/automation/src/main/res/values-af-rZA/strings.xml b/plugins/automation/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 49d7de5e61..0000000000 --- a/plugins/automation/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - Outo - Outomatisasie - Gebruiker outomatiesasie aksies - Verskaf asb \'n aksie. - Gee asseblief ten minste een sneller. - Spesifisieer ten minste een aksie. - Alarm: - Msg: - Reeds aangeskakel - Reeds afgeskakel - Alreeds opgeskort - Nie opgeskort - Skort lus vir %1$d min - Kennisgewing: %1$s - Verander profiel na - Verander profiel na %1$s - Laaste konneksie na pomp - Laaste konneksie na pomp [minute gelede] - Vorige konneksie na pomp %1$s %2$s min terug - Profiel persentasie - Begin profiel %1$d%% - Persentasie [%]: - Stuur\'n SMS: %1$s - Stuur\'n SMS met die teks - Tydelike teiken begin - is minder as - is ewe of groter as - is gelyk aan - is ewe of groter as - is groter as - is nie beskikbaar nie - Glukose is nie beskikbaar nie - Glukose %1$s %2$.0f %3$s - Glukose %1$s %2$.1f %3$s - Profiel pct %1$s %2$d - IAB %1$s %2$.1f - Of - Eksklusiewe of - By %1$s - Gebruik netwerk ligging - GPS ligging - Gebruik passiewe ligging - Liggingdienste - Kort gem. delta - Lang gem. delta - Delta - %1$s %2$s - Tyd reeks - Tyd is tussen %1$s en %2$s - Tussen - DEL - ADD - Kopieer - Tydelike teiken %1$s - WiFi SSID %1$s %2$s - Autosens %1$s %2$s %% - Outosens % - %3$s %1$s %2$s - BG verskil - Huidige Ligging - Ligging - Breedte: - Lengte: - Glukose [%1$s]: - Laaste bolus - Laaste bolus tyd %1$s %2$s min terug - KOB - KOB %1$s %2$.0f - IAB [U]: - Afst [m]: - Herhaaltyd - Elke - Nooit - Voorwaarde: - Aksie: - Aksie naam - WYSIG - Snellers: - Vereistes: - - diff --git a/plugins/automation/src/main/res/values-ja-rJP/strings.xml b/plugins/automation/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 49a964a9e8..0000000000 --- a/plugins/automation/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - デルタ - - - diff --git a/plugins/configuration/src/main/assets/AAPS V2.zip b/plugins/configuration/src/main/assets/AAPS V2.zip new file mode 100644 index 0000000000..77de36f142 Binary files /dev/null and b/plugins/configuration/src/main/assets/AAPS V2.zip differ diff --git a/plugins/configuration/src/main/assets/AAPS.zip b/plugins/configuration/src/main/assets/AAPS.zip new file mode 100644 index 0000000000..fa1c9a7df8 Binary files /dev/null and b/plugins/configuration/src/main/assets/AAPS.zip differ diff --git a/plugins/configuration/src/main/assets/SteamPunk mgdl.zip b/plugins/configuration/src/main/assets/SteamPunk mgdl.zip deleted file mode 100644 index f78a49f240..0000000000 Binary files a/plugins/configuration/src/main/assets/SteamPunk mgdl.zip and /dev/null differ diff --git a/plugins/configuration/src/main/assets/SteamPunk mmol.zip b/plugins/configuration/src/main/assets/SteamPunk mmol.zip deleted file mode 100644 index e15fb0fc2b..0000000000 Binary files a/plugins/configuration/src/main/assets/SteamPunk mmol.zip and /dev/null differ diff --git a/plugins/configuration/src/main/assets/SteamPunk.zip b/plugins/configuration/src/main/assets/SteamPunk.zip new file mode 100644 index 0000000000..2129ff923e Binary files /dev/null and b/plugins/configuration/src/main/assets/SteamPunk.zip differ diff --git a/plugins/configuration/src/main/res/values-af-rZA/strings.xml b/plugins/configuration/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index b8302b3a89..0000000000 --- a/plugins/configuration/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - Eenhede - Volgende - Vorige - Opstel Ghoeroe - EINDIG - Welkom by opstelling-Ghoeroe. Dit sal jou lei deur die opstelling proses\n - Eindverbruiker Lisensie Ooreenkoms - MOET NIE GEBRUIK WORD OM MEDIESE BESLUITE TE MAAK NIE. DAAR IS GEEN WAARBORG DAT DIE PROGRAM, ONDERWORPE AAN TOEPASSELIKE WETTE EN WETGEWING. TENSY ANDERS GEMELD IN TEKS VOORSIEN DIE KOPIEREG-HOUERS EN / OF ANDER PARTYE DIE PROGRAM \"AS IS\" SONDER ËNIGE WAARBORG VAN ENIGE ORDE, UITDRUKKELIK OF IMPLISIET, INKLUSIEF, MAAR NIE BEPERK TOT DIE IMPLISIETE WAARBORG VAN TOEPAASBAARHEID OF NUT VIR EEN SPESIFIEKE DOEL. DIE TOTALE EN ALLE RISIKOVIR DIE KWALITEIT EN PRESTASIE VAN DIE PROGRAM RUS MET JOUSELF. VIR ENIGE PROGRAM DEFEKTIEWE OF FALINGS MOET JY PERSOONLIK DIE KOSTE EN REGSAANSPREEKLIKHEID DRA VAN ALLE NODIGE AKSIES, DIENS, REPARASIES OF KORREKSIES VIR USELF OF ENIGE DERDE PARTYE EN/OF AKSIES, DIENS, REPARASIES OF KORREKSIES WAT DEUR DIE PROGRAM GEDOEN WAS. - EK VERSTAAN en STEM IN - Vertooninstellings - LAE merk - HOË punt - Toestemming - Vra vir toestemming - Gestoorde instellings gevind - Status: - Onthou asseblief: dat nuwe insulien profiele vereis DIA van minstens 5h. DIA 5 – 6h op nuwe profiel is gelyk aan DIA 3h op ou insulien profiele. - Profiel - Slaan opstelling-Ghoeroe oor - Sensitiwiteit plugin vir sensitiwiteit opsporing en KAB berekening. Vir meer inligting besoek: - Kies een van beskikbare algoritmes. Hulle is gesorteer vanaf oudste tot jongste. Nuwer algoritmes is gewoonlik kragtiger en meer aggressief. Dus as jy nuut is met jou lus, sal jy waarskynlik begin met AMA en nie met jongste een. Moenie vergeet om die OpenAPS dokumentasie te lees en te konfigureer voor gebruik. - Begin jou eerste doelwit - Lees status - Data keuses - Fabric Upload - Laat outomatiese Foutverslagdoening en kenmerk data stuur na die ontwikkelaars via die fabric.io diens. - Versoek - APS modus - Verkose APS modus - - Konfigurasie bouer - Pomp - Profiel - APS - Watter APS algoritme moet terapie aanpassings maak? - Algemene - Hier is \'n paar algemene invoegtoepassings wat jy dalk nuttig sal vind. - Watter beperkings word toegepas? - Lus - Watter tipe insulien gebruik jy? - BG bron - Sensitiwiteit opsporing - Watter sensitiwiteit algoritme moet gebruik word? - CONF - Gebruik vir die aktiewe plugins te konfigureer - - Voorkeure - Voer instellings in - Voer instellings uit na - Uitvoer instellings na - Voer instellings in vanaf - Instellings ingevoer - Voorkeure uitgevoer - Lêer nie gevind nie - Begin toepassing weer om instellings toe te pas. - - Onderhoud - MAINT - Bied verskeie funksies vir onderhoud (bv. log stuur, log skrapping). - Wil jy regtig die databasis herstel? - Onderhoud instellings - E-pos - Hoeveel Logs om te stuur - Stuur Logs per Epos - Skrap joernaal - Nightscout-weergawe: - Ingenieurswese modus geaktiveer - Logboekinstellings - Herstel databasis - Herstel na verstek - - - - - diff --git a/plugins/configuration/src/main/res/values-ja-rJP/strings.xml b/plugins/configuration/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index e0bd486057..0000000000 --- a/plugins/configuration/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - Units - 低血糖マーク - 高血糖マーク - プロファイル - - コンフィグビルダー - ポンプ - AAPSで使用するポンプはどれですか? - プロファイル - どのプロファイルを使用しますか? - APS - どのアルゴリズムを使用しますか? - 全般 - CONF - アクティブなプラグインの設定に使用 - - 設定 - インポートされた設定を復元するために、マスターパスワードが必要です。 - エクスポートをキャンセルしました!設定はエクスポートされませんでした! - インポートがキャンセルされました!設定はインポートされませんでした! - 設定をインポートできません! - 設定をエクスポート - 設定をエクスポート - 設定をインポート: - 設定をインポートしました - 古いマスターパスワードです - このファイルは異なるマスターパスワードでエクスポートされ暗号化されました。ファイルを復号するには古いマスターパスワードを入力してください。 - マスターパスワードはインポートされ、古いマスターパスワードは置き換えられます。 - 設定をエクスポートしました - ファイルが見つかりません - メイン画面に戻ってもう一度やり直してください。 - アプリケーションを終了して設定を適用します - ユーザーエントリをエクスポートしました - - データベースをリセットしますか? - Nightscoutバージョン: - リセット データベース - - - - diff --git a/plugins/constraints/src/main/res/values-af-rZA/exam.xml b/plugins/constraints/src/main/res/values-af-rZA/exam.xml deleted file mode 100644 index 1ac932370b..0000000000 --- a/plugins/constraints/src/main/res/values-af-rZA/exam.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - Wat is waar oor DIA? - Watter profiel kan gebruik en ingestel word van lyn af? - Onderwerp: Aflyn Profiel - NS-Profiel kan gebruik word, maar nie ingestel. - Wat moet gedoen word as CGM data raserig is? - \'n Google-rekening. - \'n Github rekening. - \'n Slimhorlosie. - diff --git a/plugins/constraints/src/main/res/values-af-rZA/objectives.xml b/plugins/constraints/src/main/res/values-af-rZA/objectives.xml deleted file mode 100644 index 7f33087202..0000000000 --- a/plugins/constraints/src/main/res/values-af-rZA/objectives.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - Begin - Verifieer - %1$d. Doelwit - Doel %1$d nie begin - Objektief %1$d nie klaar - Opstel van visualisering en monitering, en ontleed basale en verhoudings - Bevestig dat BG is beskikbaar in Nightscout, en insulien pomp data is opgelaai - Begin op\'n oop lus - Loop in oop lus modus vir \'n paar dae en boots met hand met baie tydelike basale. Stel tydelike gebruik en verstek tydelike teikens (bv. vir aktiwiteit of hipo behandeling koolhidrate) - Verstaan jou oop lus, insluitend sy tydelike basale aanbevelings - Gebaseer op daardie ervaring, besluit watter maks basale moet gebruik word, en stel dit op die pomp en voorkeure - Begin toe die lus met lae glukose opgeskort - Loop in geslote lus met max IAB = 0 vir \'n paar dae sonder te veel LGS gebeure - Verstel die geslote lus, verhoog maks IAB bo 0 en geleidelik verlaag BG doelwitte - Lus vir \'n paar dae, en ten minste een nag met geen lae BG alarms, voor BG val - Pas basale en verhoudings aan as nodig, en dan aktiveer auto-sens - 1 week suksesvolle dagtyd lus met gereelde karb toevoegings - Skakel bykomende nutsfunskies aan vir bedags gebruik, soos bv. SMB - Per hand aksies - Bereik: %1$s - Stel profiel 90% vir 10 min (Lang-pers profiel naam op Oorsig) - Simuleer stort. Ontkoppel pomp vir 1h (Lang-pers op\'n Oop Lus) - ... en weer terug in die dieselfde manier - Skep\'n persoonlike tydelike teiken met 10 min duur (Lang-pers op jou huidige teiken) - In die konfig Bouer aktiveer Aksies plugin, maak dit sigbaar en vertoon die inhoud van die top menu - Vertoon die inhoud van die Lus plugin - Gebruik skaal funksie deur\'n lang druk op BG grafiek - Bewys jou kennis - Beantwoording opgeskort tot: %1$s - Verkeerde antwoord! - Volgende onvoltooide - Versoek kode: %1$s - (kyk al die korrekte antwoorde) - Nie aan internet gekoppel nie - Misluk haal tyd - Objektiewe vereistes nie nagekom nie - diff --git a/plugins/constraints/src/main/res/values-af-rZA/strings.xml b/plugins/constraints/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 960ad5f64e..0000000000 --- a/plugins/constraints/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - Beperk koolhidrate tot %1$d g agv %2$s - Pomp is nie tydelike basale bekwame - Geslote lus modus in voorkeure gedeaktiveer - Veranderende ontwikkelende weergawe. Geslote lus is gedeaktiveerd. - SMB is altyd na koolhidrate versper omdat aktiewe BG bron nie gevorderde filter ondersteun nie - SMB nie toegelaat in open lus modus - maks waarde in voorkeure - harde limiet - Behandelings veiligheid - - Nog nie voltooi nie - Tydsverloop - Maksimum IAB behoorlik gestel - BG beskikbaar vanaf geselekteerde bron - Lus geaktiveer - APS gekies - Geslote modus geaktiveer - OBJ - Onderrig program - diff --git a/plugins/constraints/src/main/res/values-ja-rJP/exam.xml b/plugins/constraints/src/main/res/values-ja-rJP/exam.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/plugins/constraints/src/main/res/values-ja-rJP/exam.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/plugins/constraints/src/main/res/values-ja-rJP/objectives.xml b/plugins/constraints/src/main/res/values-ja-rJP/objectives.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/plugins/constraints/src/main/res/values-ja-rJP/objectives.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/plugins/constraints/src/main/res/values-ja-rJP/strings.xml b/plugins/constraints/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 25fed4a847..0000000000 --- a/plugins/constraints/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/plugins/constraints/src/main/res/values-nb-rNO/exam.xml b/plugins/constraints/src/main/res/values-nb-rNO/exam.xml index ee21a0a22c..b11346f829 100644 --- a/plugins/constraints/src/main/res/values-nb-rNO/exam.xml +++ b/plugins/constraints/src/main/res/values-nb-rNO/exam.xml @@ -7,8 +7,8 @@ https://wiki.aaps.app/en/latest/Configuration/Config-Builder.html#insulin Hvis du føler at DIA verdien (insulinvarigheten) som du benyttet i pumpen fungerte godt før du tok i bruk AndroidAPS, da er det ikke nødvendig å endre dette når du starter å loope. Du må selv bestemme hvilken verdi som passer for DIA. - Hypo Temp-Target (TT) - Hva er hovedgrunnen til å velge en hypo temp-target? + Hypo midlertidig mål (TT) + Hva er hovedgrunnen til å velge et Hypo midlertidig mål? For å korrigere følinger som er forårsaket av feil i dine basalinnstillinger. For å forhindre at AAPS overkorrigerer for en blodglukoseøkning forårsaket av de hurtigvirkende karbohydratene som brukes til behandling av en hypo. For å korrigere for en føling som er et resultat av trening. @@ -55,11 +55,11 @@ Trening og midlertidige målverdier (temp targets) Hvordan kan du bruke midlertidige målverdier til å hjelpe systemet å håndtere aerobic trening? Sett et midlertidig mål for blodsukkeret som starter en passende tid før treningen begynner. - Angi en temp mål for Trening etter at du har avsluttet treningen. + Angi et midlertidig mål for Aktivitet etter at du har avsluttet treningen. La målverdien for ditt blodsukker være uforandret. - Vent til blodsukkeret ditt synker under Hypo temp target og spis så 15 gram med hurtigvirkende karbohydrater. + Vent til blodsukkeret ditt synker under Hypo midlertidig mål og spis så 15 gram med hurtigvirkende karbohydrater. https://wiki.aaps.app/en/latest/Usage/temptarget.html#activity-temp-target - Får jag insulin når loop er stanset/pauset? + Får jeg insulin når loop er stanset/pauset? Ja, basal insulin vil fortsatt bli levert. Nei, levering av insulin er stanset. Test av basaldoser, ISF og KH ratio @@ -150,7 +150,7 @@ Ved å sette profilen til 150% påvirkes ikke beregningen av absorbering av karbohydrater https://wiki.aaps.app/en/latest/Usage/COB-calculation.html#how-does-aaps-calculate-the-cob-value IOB verdi påvirkes av midlertidige temp basaler. - Høy temp basal vil ikke bli gitt når ditt blodsukker er under målverdi. + Høy midlertidig basal vil ikke bli gitt når ditt blodsukker er under målverdi. Negativ IOB i en lengre periode selv om du ikke trener tyder på at profilen din gir for mye insulin og kanskje bør reduseres i innstillingene. Positiv IOB for en lengre periode tyder på enten økt insulinresistens eller uannonserte måltider. Karbohydrater og bolus @@ -207,7 +207,7 @@ Hvis du står opp 2 timer tidligere enn vanlig, hvordan forteller du AndroidAPS om endringen i døgnrytmen din? Gjør et profilbytte med en tidsforskyvning på 2 Gjør et profilbytte med en tidsforskyvning på -2 - Angi et \"spise snart\" temp target. + Angi et \"Spise snart\" midlertidig mål. Gjør et profilbytte til mer enn 100%. https://wiki.aaps.app/en/latest/Usage/Profiles.html#timeshift Endring av profil diff --git a/plugins/constraints/src/main/res/values-nb-rNO/objectives.xml b/plugins/constraints/src/main/res/values-nb-rNO/objectives.xml index 1ab33145aa..9663716381 100644 --- a/plugins/constraints/src/main/res/values-nb-rNO/objectives.xml +++ b/plugins/constraints/src/main/res/values-nb-rNO/objectives.xml @@ -54,12 +54,12 @@ Insulinvarighet (DIA) i looping har en annen betydning (tid før alt insulin er absorbert) enn ved klassisk pumpebehandling (tid før det meste av insulinet er absorbert). Du lærte betydningen av ISF-verdien og hvordan det påvirker mengden insulin som brukes for korreksjon av BS. Du lærte betydningen av IK-verdien og hvordan det påvirker mengden insulin som brukes for dekke karbohydratene. - Hypo temp target bør brukes for å forhindre enn overkorreksjon etter en hypo situasjon, når det vanligvis er bygget opp negativ IOB. Ytterligere tiltak bør vurderes for å forebygge denne situasjonen igjen i fremtiden. + Hypo midlertidig mål bør brukes for å forhindre enn overkorreksjon etter en hypo situasjon, når det vanligvis er bygget opp negativ IOB. Ytterligere tiltak bør vurderes for å forebygge denne situasjonen igjen i fremtiden. Bruk av prosent påvirker ikke målverdier for BS men basal, ISF og IK justeres for å gi mer insulin (over 100%%) eller mindre insulin (under 100%%). Ved å bruke tidsskifte i profilbytte kan du tilpasse døgnprofilen til uregelmessigheter som for eksempel en sen oppvåkning. Redigering av profilen er ikke tilstrekkelig til å gjøre en endring. Du må fremdeles fysisk aktivere et profil bytte for å registrere endringene. Du bør redusere mengden insulin i kroppen minst 1 time før du starter treningen ved å velge profil under 100 %. - Ved å sette høyere temp target minst 1 time før trening så vil det bidra til å redusere mengden med insulin i kroppen. + Ved å sette høyere midlertidig mål minst 1 time før trening så vil det bidra til å redusere mengden med insulin i kroppen. Hvis du ikke stoler på CGM-verdier bør du ikke bruke loop uten tilsyn. AAPS må vite at pumpen ikke er tilkoblet for å beregne IOB riktig. Å vite hvilken type insulin som er i pumpen er nødvendig for å beregne IOB korrekt. diff --git a/plugins/constraints/src/main/res/values-pt-rBR/strings.xml b/plugins/constraints/src/main/res/values-pt-rBR/strings.xml index 65f5dcc99c..12842503ca 100644 --- a/plugins/constraints/src/main/res/values-pt-rBR/strings.xml +++ b/plugins/constraints/src/main/res/values-pt-rBR/strings.xml @@ -48,6 +48,6 @@ Deseja reiniciar o objetivo? Pode perder seu progresso. Próxima Anterior - Redefinir estado terminado - Redefinir estado terminado + Reiniciar objetivo + Reiniciar objetivo diff --git a/plugins/insulin/src/main/res/values-af-rZA/strings.xml b/plugins/insulin/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 5fb6d9b49a..0000000000 --- a/plugins/insulin/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - Insulien voorkeure vir Humalog en NovoRapid / NovoLog - Insulien voorkeure vir Fiasp - Laat jou toe om die piek van die insulien aktiwiteit definieer en behoort slegs gebruik te word deur gevorderde gebruikers - INS - IAB kurwe piek tyd - Piek tyd [min] - Vry-piek Oref - Snelaksie Oref - DIA van %1$f is te kort - %2$f in stede gebruik! - diff --git a/plugins/insulin/src/main/res/values-ja-rJP/strings.xml b/plugins/insulin/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 202a838052..0000000000 --- a/plugins/insulin/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/plugins/main/src/main/res/layout/overview_fragment.xml b/plugins/main/src/main/res/layout/overview_fragment.xml index d55930675a..a55025674e 100644 --- a/plugins/main/src/main/res/layout/overview_fragment.xml +++ b/plugins/main/src/main/res/layout/overview_fragment.xml @@ -28,9 +28,11 @@ android:id="@+id/loop_layout" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginStart="4dp" + android:layout_marginEnd="4dp" android:orientation="horizontal" > - - @@ -72,7 +68,7 @@ android:layout_height="wrap_content" android:layout_marginStart="4dp" android:layout_marginEnd="4dp" - android:layout_marginTop="4dp" + android:layout_marginTop="1dp" app:cardCornerRadius="4dp" app:contentPadding="2dp" app:cardElevation="2dp" diff --git a/plugins/main/src/main/res/values-af-rZA/strings.xml b/plugins/main/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 12d888af2c..0000000000 --- a/plugins/main/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,163 +0,0 @@ - - - - SMS Communicator - SMS - Verkeerde kode. Opdrag gekanselleer. - Toegelate telefoon nommers - +XXXXXXXXXX;+YYYYYYYYYY - Om %1$.2fU bolus te lewer antwoord met kode %2$s - Om kalibrasie %1$.2f te stuur antwoord met kode %2$s - Bolus het misluk - Laat afstandbeheerde bevele toe via SMS - Loop is gedeaktiveer - Loop is geaktiveerd - Lus geaktiveer - Afstandbeheerde bevel word nie toegelaat nie - Afstandbeheerde bolus nie beskikbaar nie. Probeer later weer. - Om profiel te verander na %1$s %2$d%% antwoord met %3$s - Om basal e %1$d%% vir %2$d min te begin kies %3$s - Om lus op te skort vir %1$d minute antwoord met kode %2$s - Temp basale %1$.2fU/h vir %2$d min suksesvol geaktiveerd - Verlengde bolus %1$.2fU vir %2$d min is begin - Tydelike basale %1$d%% vir %2$d min hardloop - Tydelike basale aktivering het gefaal - Verlengde bolus het misluk - Stop tydelike basale antwoord met kode %1$s - Stop tydelike basale antwoord met kode %1$s - Tydelike basale gekanselleer - Verlengde bolus gekanselleer - Kansellassie van tydelike basale het gefaal - Kansellasie van verlengde bolus het misluk - Onbekende opdrag of verkeerde opsie - Verkeerde duur - Lus opgeskort - Lus hervat - Ongeldige SMS selfoon nommer - Kalibrasie gestuur. Ontvang moet geaktiveer word in xDrip+. - Ongeldig boodskap teks - Verkeerde formaat - BG: - Laaste BG: - Delta: - IAB: - Bolus: - Basale: - %1$d min terug - Opgeskort (%1$d m) - Lees status gefaal - Profiel skakelaar geskep - Loop Afgeskakel - - Kos - Vertoon kos-voorafinstellings soos omskryf in Nightscout - Kos - kJ - En - Pr - Vet - Kategorie - Subkategorie - Rekenaar - - - Profiel - LP - Definieer\'n profiel wat beskikbaar is aflyn. - Eenhede: - Foute - DIA - BAS - - Aksies - \'n Paar knoppies vir vinnige algemene nutsfunskies - ACT - TydelikeBasaal - Verlengde Bolus - Kanselleer Verlengde Bolus - Geskiedenis blaaier - Sensor - Insulien - - Wys status vlae op tuisskerm - Drempel waarskuwings stoor vlak [U] - Drempel kritieke stoor vlak [U] - insulien - Aanvaar nuwe tydelike basale: - CGM - Oorsig - TUIS - Wys die huidige staat van jou lus en knoppies vir mees algemene optrede - Knoppies - Dexcom toep is nie geïnstalleer nie. - Hernuwe asseblief jou G5 toepassing na \'n ondersteunde weergawe - Kon nie CGM toepassing laat hardloop nie. Maak seker dat dit geïnstalleer is. - Nie beskikbaar nie - Beperkings skending - Verander jou insette! - OpenAPS - Oplaaier - SlimNutsman instellings - Hou skerm aktief - Verhoed dat Android skerm afskakel. Dit sal baie meer energie vereis wanneer nie in krag prop is nie. - Behandelings - Hoeveelheid karbs om by te voeg op druk van knoppie - Hoeveelheid Insulien om by te voeg op druk van knoppie - Eerste insulien inkrement - Tweede insulien inkrement - Derde insulien inkrement - Eerste koolhidrate inkrement - Tweede koolhidrate inkrement - Derde koolhidrate inkrement - CGM - Verstek Tydelike-doelwitte - eetgou durasie - eetgou doelwit - aktiwiteits tydsduur - aktiwiteit doelwit - hipo duur - hipo doelwit - Vul/prima standaard insulien hoeveelhede - Knoppie 1 - Knoppie 2 - Knoppie 3 - Reeks vir visualisering - Hoë en lae merke vir die diagramme in Overview en Smartwatch - LAE merk - HOË punt - Verkort oortjie titels - Wys notas veld in behandeling dialoë - Ontsper superbolus in Ghoeroe - Ontsper superbolus funksionaliteit in Ghoeroe. Moenie aktiveer totdat jy leer wat dit werklik doen. DIT KAN \'n INSULIEN OORDOSIS VEROORSAAK AS BLINDELINGS GEBRUIK WORD! - - Projeksies - Behandelings - Aktiwiteit - Sensitiewiteit - Afwykings - Karbs AanBoord - Insulien AanBoord - Basale - BAS - ACT - BEHANDEL - SENS - - - Stuur vandag se loglêers aan ontwikkelaars saam met hierdie tyd. Onverwagte situasie. - - WEAR - nie suksesvol - Kontroleer asseblief foon - Wear instellings - Kontroles van horlosie - Stel tydeleike doelwitte en behandelings vanaf horlosie. - Berekeninge is ingesluit in die ghoeroe verslag: - Algemene instellings - Vermeld op SMB - Wys SMB op horlosie soos \'n standaard bolus. - Stuur alle Data weer - Oop instellings op Wear - - Toon \'n voortgesette kennisgewing met \'n kort oorsig van wat jou lus besig is om te doen - OU DATA - diff --git a/plugins/main/src/main/res/values-ja-rJP/strings.xml b/plugins/main/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 2415bd8e9b..0000000000 --- a/plugins/main/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - ポンプへの接続に失敗しました - ポンプが切断されました - ポンプが再接続しました - リモートコマンドが許可されていません - リモートボーラスが利用できません。後でもう一度お試しください。 - デルタ: - ベーサル: - - - - プロファイル - Units: - DIA - BAS - - ACT - - 概要 - HOME - Loopの状態と一般的なボタンの表示 - ボタン - Xdrip+にキャリブレーションを送付する。もしくはBYODAキャリブレーションダイアログを開く。 - Opens xDrip+ か BYODAを開く、 戻るボタンでAAPSに戻る。 - CGM アプリケーションを起動できません。インストールされていることを確認してください。 - 制約違反 - 入力を変更します! - OpenAPS - アップローダー - クイックウィザードの設定 - 画面をオンに保つ - Androidが画面をオフにするのを防ぎます。電源コンセントに接続されていないと、多くのエネルギーを消費します。 - 治療 - ボタンが押されたときに追加する炭水化物数 - ボタンを押すと追加するインスリン量 - デフォルトの一時ターゲット - eatingsoon 時間 - eatingsoon ターゲット - アクティビティ 時間 - アクティビティ ターゲット - 低血糖 時間 - 低血糖 ターゲット - 表示範囲 - スマートウォッチ チャートの高血糖 低血糖マーク - 低血糖マーク - 高血糖マーク - タブのタイトルを短縮 - ウィザードでスーパーボーラスを有効化 - ウィザードでスーパーボーラス機能を有効にします。どういう機能か本当に理解出来るまで有効にしないでください。使用中の場合は、無効にすることができます! - - 治療 - PRED - BAS - DEV - ACT - -BGI - ABS - DEVSLOPE - TREAT - - - - WEAR - WearOS ウォッチを使用して AAPS を監視、制御します。 - 失敗しました - 携帯電話をご確認ください - ウェアの設定 - ウォッチからコントロール - ウォッチから一時ターゲットとトリートメントを入力。 - SMBを通知する - すべてのデータを再送信 - ウェアの設定を開く - - ループの状態を通知に表示する - 旧データ - diff --git a/plugins/main/src/main/res/values-nb-rNO/strings.xml b/plugins/main/src/main/res/values-nb-rNO/strings.xml index 744707877f..80763c022b 100644 --- a/plugins/main/src/main/res/values-nb-rNO/strings.xml +++ b/plugins/main/src/main/res/values-nb-rNO/strings.xml @@ -156,7 +156,7 @@ Handlinger Hurtigknapper for rask tilgang til ofte brukte funksjoner - HNDL + HAN Midlertidig basal Forlenget bolus Avbryt forlenget bolus diff --git a/plugins/sensitivity/src/main/res/values-af-rZA/strings.xml b/plugins/sensitivity/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 4fa0e23c11..0000000000 --- a/plugins/sensitivity/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - SENS - Sensitiwiteit Oref1 - Sensitiwiteit AAPS - Sensitiwiteit GeweegdeGemiddelde - Sensitiwiteit word bereken op dieselfde manier as Oref0, maar jy kan die tydsraamwerk spesifiseer in die verlede. Minimale karb absorpsie is bereken uit maks karb absorpsie tyd vanaf voorkeure. - Sensitiwiteit word bereken uit 8h data in die verlede en koolhidrate (indien nie geabsorbeer) is na die tyd vermeld in voorkeure gesny. Plugin bereken ook UAM. - Sensitiwiteit word bereken as \'n geweegde gemiddelde van dwalinge. Nuwer dwalinge het hoër gewig. Minimale karb absorpsie is bereken uit max karb absorpsie tyd vanaf voorkeure. Hierdie algoritme is die vinnigste om sensitiwiteit veranderinge te volg. - UAM versper omdat dit staatmaak op Oref1 sensitiwiteit plugin - Absorpsie instellings - Maaltyd max\ks absorpsie tyd [h] - Tyd in ure waarna verwag word dat alle koolhidrate uit maaltyd geabsorbeer sal wees - Interval vir autosens [h] - Hoeveelheid ure in die verlede vir sensitiwiteit opsporing (karbohidrate opname tyd is uitgesluit) - Verstek waarde: 1.2\nThis is \'n vermenigvuldiger plafon vir autosens (en gou autotune) stel \'n 20%% max limiet op hoe hoog die autosens verhouding kan wees, wat op sy beurt bepaal hoe hoog autosens basale kan aanpas, hoe laag dit ISF kan aanpas, en hoe laag dit die BG teiken kan stel. - Verstek waarde: 0.7\nDie ander kant van die autosens veiligheidsperke, sit \'n limiet op hoe laag autosens basals kan aanpas, en hoe hoog dit ISF en BG teikens kan verstel. - Max autosens ratio - Min autosens ratio - Verstek waarde: 3.0 (AMA) of 8.0 (SMB). Dit is \'n instelling vir verstek karb absorpsie impak per 5 minute. Die verstek is \'n verwagte 3mg/dl / 5min. Dit beïnvloed hoe vinnig KOB opgeneem word, en hoeveel karb absorpsie word aanvaar sodat in die berekening van toekomstige BG, voorspel wanneer BG val meer as verwagte, of nie soveel styg as verwag. - Maaltyd maks absorpsie tyd [h] - Tyd waarteen enige maaltyd as geabsorbeer beskou word. Oorblywende koolhidrate sal afgesny word. - diff --git a/plugins/sensitivity/src/main/res/values-ja-rJP/strings.xml b/plugins/sensitivity/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 9591896f41..0000000000 --- a/plugins/sensitivity/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - Sensitivity(感度)はOref0と同じ方法で計算されますが、過去の参照時間を指定することができます。 最小炭水化物吸収は環境設置の最大炭水化物吸収時間から計算されます。 - diff --git a/plugins/smoothing/src/main/res/values-af-rZA/strings.xml b/plugins/smoothing/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/plugins/smoothing/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/plugins/smoothing/src/main/res/values-ja-rJP/strings.xml b/plugins/smoothing/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/plugins/smoothing/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/plugins/source/src/main/res/values-af-rZA/strings.xml b/plugins/source/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 844c8e545d..0000000000 --- a/plugins/source/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - Laai BG data af vanaf Nightscout - Eversense App (bygewerk) - Ontvang BG waardes uit die gelapte Eversense toep. - Ontvang BG waardes vanaf Glimp. - Onvang BG waardes vanaf die 600SeriesAndroidUploader. - Poctech - Ontvang BG waardes van Poctech toepassing - Tomato (MiaoMiao) - Tomato - Ontvang BG waardes vanaf Tomato toep (MiaoMiao toestel) - BG oplaai instellings - diff --git a/plugins/source/src/main/res/values-ja-rJP/strings.xml b/plugins/source/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index c1e70718e3..0000000000 --- a/plugins/source/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/plugins/sync/src/main/res/values-af-rZA/oh_strings.xml b/plugins/sync/src/main/res/values-af-rZA/oh_strings.xml deleted file mode 100644 index d71bb6f6f0..0000000000 --- a/plugins/sync/src/main/res/values-af-rZA/oh_strings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - Volgende - Karbohidrate - Instellings - Toestel Model - Kanselleer - Maak toe - diff --git a/plugins/sync/src/main/res/values-af-rZA/strings.xml b/plugins/sync/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 8fba0ae113..0000000000 --- a/plugins/sync/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - WiFi SSID - Verbindinginstellings - Toegelate SSID\'s (kommapunt geskei) - Laat verbindings toe terwyl swerf - Skep aankondigings vanaf foute - Skep Nightscout aankondiging vir foutdialoë en plaaslike waarskuwings (ook vertoonbaar in Careportal onder behandelings) - Sinkroniseer jou data met Nightscout - Weergawe van Nightscout nie ondersteun - OAPS - UPLD - NSClient onklaar. Oorweeg om NS en NSClient te herlaai. - - NSCLIENT het geen skryfregte. Dalk verkeerde API secret? - NSClient - NSCI - URL: - Herbegin - NSClient - Nightscout URL - Tik jou Nightscout URL - NS API geheim - NS API geheim - Tik NS API geheim (min 12 karakters) - Lewer nou - Vee tou uit - Wys tou - Tou: - Status: - Maak log skoon - Alarm Opsies - Ou data drumpel [min] - Nood ou data drumpel [min] - Log app begin na NS - - JouTidepool login gebruiker, normaallweg \'n email adres - Login Gebruiker Naam - Jou Tidepool login kode - Login wagwoord - Toets Tidepool Login - As ge-aktiveer sal data oplaai na https://int-app.tidepool.org instede van die gewone https://app.tidepool.org/ - Gebruik Integrasie (toets) bedieners - Tidepool - TDP - Laai data op na Tidepool - Laai CGM data op - Laai behandelings op (insulien, karbs) - Laai tydelike basale op - Laai profiel veranderings, tydelike teikens op - Laai BG toetse op - - - - diff --git a/plugins/sync/src/main/res/values-cs-rCZ/strings.xml b/plugins/sync/src/main/res/values-cs-rCZ/strings.xml index 7a7f1f4ef7..7a4f5469a3 100644 --- a/plugins/sync/src/main/res/values-cs-rCZ/strings.xml +++ b/plugins/sync/src/main/res/values-cs-rCZ/strings.xml @@ -120,6 +120,7 @@ Odesílání dat do Garmin aplikace G-Watch Wear App Garmin + Připojení k zařízení Garmin (Fenix, Edge, …) Nastavení hodinek Garmin WEAR diff --git a/plugins/sync/src/main/res/values-es-rES/strings.xml b/plugins/sync/src/main/res/values-es-rES/strings.xml index 8f53774a5f..9ec404aa85 100644 --- a/plugins/sync/src/main/res/values-es-rES/strings.xml +++ b/plugins/sync/src/main/res/values-es-rES/strings.xml @@ -116,6 +116,8 @@ Enviar datos de glucosa y tratamientos a xDrip+. La fuente de datos \"xDrip+ Sync Follower\" debe estar seleccionada y la aceptación de datos debe estar activada en Ajustes - Ajustes entre aplicaciones - Aceptar glucosa/tratamientos Activar las transmisiones a xDrip+ + DBRO + Transmitir datos a la aplicación G-Watch Wear de Garmin Garmin Conexión al dispositivo Garmin (Fénix, Edge, …) diff --git a/plugins/sync/src/main/res/values-fr-rFR/strings.xml b/plugins/sync/src/main/res/values-fr-rFR/strings.xml index 5c6bed1f5f..ff12a17acf 100644 --- a/plugins/sync/src/main/res/values-fr-rFR/strings.xml +++ b/plugins/sync/src/main/res/values-fr-rFR/strings.xml @@ -116,7 +116,12 @@ Envoyer les glycémies et les traitements à xDrip+. La source de données \"xDrip+ Sync Follower\" doit être sélectionnée et l\'acceptation des données doit être activée dans Paramètres - Paramètres Inter-app - Accepter Glycémies/Traitements Activer les diffusions vers xDrip+. + DD + Diffuser des données sur l\'application G-Watch Wear de Garmin + Garmin + Connexion au périphérique Garmin (Fenix, Edge, …) + Préferences Garmin WEAR Surveillez et contrôlez AAPS en utilisant votre montre WearOS. diff --git a/plugins/sync/src/main/res/values-ja-rJP/oh_strings.xml b/plugins/sync/src/main/res/values-ja-rJP/oh_strings.xml deleted file mode 100644 index b2cd565b1c..0000000000 --- a/plugins/sync/src/main/res/values-ja-rJP/oh_strings.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - キャンセル - 閉じる - diff --git a/plugins/sync/src/main/res/values-ja-rJP/strings.xml b/plugins/sync/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 38dd084d87..0000000000 --- a/plugins/sync/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - アラームオプション - NSアラームから通知を作成する - NSからのお知らせを通知する - 古いデータしきい値 [min] - Urgent stale data threshold [min] - - - - - diff --git a/plugins/sync/src/main/res/values-nb-rNO/oh_strings.xml b/plugins/sync/src/main/res/values-nb-rNO/oh_strings.xml index 4ec943494a..f7c56b1798 100644 --- a/plugins/sync/src/main/res/values-nb-rNO/oh_strings.xml +++ b/plugins/sync/src/main/res/values-nb-rNO/oh_strings.xml @@ -31,7 +31,7 @@ Profilbytter Totale daglige doser Midlertidige basal doser - Temp Target + Midlertidige mål Innstillinger Programversjon Enhetsmodell diff --git a/plugins/sync/src/main/res/values-nb-rNO/strings.xml b/plugins/sync/src/main/res/values-nb-rNO/strings.xml index fca3b4dd70..a8ed13d158 100644 --- a/plugins/sync/src/main/res/values-nb-rNO/strings.xml +++ b/plugins/sync/src/main/res/values-nb-rNO/strings.xml @@ -18,8 +18,8 @@ Blokkert på grunn av ladealternativer Blokkert på grunn av tilkoblingsalternativer Versjonen av Nightscout støttes ikke - OAPS - OPPL + OpenAPS + Opplaster NSClient feil. Vurder omstart av NS og NSClient. NSCLIENT har ingen skriverettighet. Feil API-nøkkel? @@ -116,7 +116,12 @@ Send data om glukose og behandling til xDrip+. Velg datakilde \"xDrip+ Sync Følger\" og aktiver mottak av data under Innstillinger - Inter-app innstillinger - Aksepter glukose/behandlinger Aktiver sending til xDrip+. + DBRO + Kringkast data til Garmin\'s G-Watch Wear app + Garmin + Tilkobling til Garmin-enheter (Fenix, Edge,…) + Innstillinger for Garmin WEAR Overvåke og kontrollere AAPS ved hjelp av WearOS-klokken. diff --git a/plugins/sync/src/main/res/values-nl-rNL/strings.xml b/plugins/sync/src/main/res/values-nl-rNL/strings.xml index 14d5adc4d0..442817ec94 100644 --- a/plugins/sync/src/main/res/values-nl-rNL/strings.xml +++ b/plugins/sync/src/main/res/values-nl-rNL/strings.xml @@ -116,11 +116,14 @@ Verzend glucose en behandelingsgegevens naar xDrip+. Gegevensbron \"xDrip+ Sync Follower\" moet worden geselecteerd en het accepteren van gegevens moet worden ingeschakeld in Instellingen - Inter-app instellingen - Accepteer Glucose/Behandelingen Activeer uitzendingen naar xDrip+. + DBRO + Verzend gegevens naar Garmin\'s G-Watch Wear App Garmin Verbinding met Garmin apparaat (Fenix, Edge, …) Garmin instellingen + WEAR Monitor en bedien AAPS met uw WearOS horloge. (Geen horloge verbonden) Pomp status diff --git a/plugins/sync/src/main/res/values-ro-rRO/strings.xml b/plugins/sync/src/main/res/values-ro-rRO/strings.xml index 47289e1d9a..39563a4dd1 100644 --- a/plugins/sync/src/main/res/values-ro-rRO/strings.xml +++ b/plugins/sync/src/main/res/values-ro-rRO/strings.xml @@ -116,6 +116,8 @@ Trimite date despre glucoză și tratamente către xDrip+. Trebuie să fie selectată sursa de date \"Sincronizare xDrip+ Urmăritor\" și acceptarea datelor trebuie să fie activată în „Setări - Setări între aplicații - Acceptă Glucoză/Tratamente” Activează transmisiuni spre xDrip+. + DBRO + Transmitere date către aplicaţia G-Watch Wear pe Garmin Garmin Conexiune la dispozitivul Garmin (Fenix, Edge, …) diff --git a/pump/combo/src/main/res/values-af-rZA/strings.xml b/pump/combo/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index ae984735c7..0000000000 --- a/pump/combo/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - Pomp Integrasie met Accu-Chek Combo pompe, vereis dat ruffy geïnstalleer is - Programmeer pomp vir bolusing - Staat - Aktiwiteit - Geen verbinding vir %1$d min - %1$d%% (%2$d min oorblywend) - Inisialiseer tans - Opgeskort weens fout - Opgeskort deur gebruiker - Loop tans - Kanselleer TBR - Stel TBR (%1$d%% / %2$d min) - Bolusing (%1$.1f U) - Verfris - Versoekte bewerking nie ondersteun deur pomp - Onveilige gebruik: uitgebreide of multigolf boluses is aktief. Lus modus is gestel om laag te opskort net 6 ure. Net gewone boluses is ondersteun in lus modus - Onveilige gebruik: die pomp gebruik \'n verskillende basale koers profiel as die eerste. Die lus is gedeaktiveer. Kies die eerste profiel op die pomp en verfris. - \'n Bolus met dieselfde hoeveelheid was versoek binne die laaste twee minute. Om te waak teen toevallige dubbele boluses en om te waak teen goggas is dit nie toegelaat nie. - Nou - Instelling basale profiel - Pomp kasset vlak is laag - Pomp battery is laag - Die pomp toon die fout E%1$d: %2$s - Laag - Leeg - Normaal - Pomp tyd/horlosie se opdatering is nodig - TBR GEKANSELLEER waarskuwing is bevestig - Die pomp kon nie bereik word nie. Geen bolus is gegee nie - Bolus aflewering het misluk. Dit blyk dat geen bolus gelewer was. Om seker te maak, gaan die pomp asseblief na om \'n dubbele bolus te vermy en dan bolus weer indien veilig. Om te waak teen goggas, word boluse nie outomaties weer probeer nie. - Slegs %1$.2f U van die aangevraagde bolus van %2$.2f U was gelewer as gevolg van \'n probleem. Kontroleer asseblief die pomp om dit te verifieer en neem dan gepaste aksie. - Lewering van die bolus en verifiëring van die pomp se geskiedenis het misluk, Kontroleer asseblief die pomp. As \'n bolus afgelewer is, sal dit bygevoeg word om behandelings gedurende die volgende verbinding met die pomp. - Nie genoeg insulien vir bolus oor in reserwe - Ongeldige pomp opstelling kontroleer die hulpdokumente en verifieer dat die vinnige inligting kieslys wel QUICK INFO benaam is met behulp van die 360 konfigurasie sagteware. - Lees basale profiel - Die pomp geskiedenis het verander nadat die bolus berekening uitgevoer was. Die bolus was nie afgelewer nie. Herbereken asseblief of \'n bolus steeds nodig is. - Bolus suksesvol afgelewer, maar die behandeling inskrywing het gefaal. Dit kan gebeur as twee klein boluses van dieselfde grootte binne die laaste twee minute toegedien word. Kontroleer die pomp geskiedenis en behandeling inskrywings en gebruik die Careportal om vermiste inskrywings te voeg. Maak seker om nie enige inskrywings vir dieselfde minuut en dieselfde bedrag by te voeg. - Hoë tydelike verwerp aangesien berekening nie onlangse veranderings in pomp geskiedenis oorweeg het nie - Verfris pomp status - Die basale tempo op die pomp het verander en sal binnekort opgedateer word - Basale koers is verander op pomp, maar kon nie dit teruglees nie - Kontroleer tans vir geskiedenis veranderinge - Veelvuldige boluses met dieselfde hoeveelheid binne die dieselfde minuut was nounet ingevoer. Slegs een rekord kon bygevoeg word in behandelings. Kontroleer asseblief die pomp en voeg per hand \'n bolus rekord met behulp van die Careportal oortjie maak seker om \'n bolus te skep met \'n tyd deur geen ander bolus gebruik. - Die laaste bolus is ouer as 24 uur of is in die toekoms. Kontroleer asseblief of die datum op die pomp reg ingestel is. - Tyd/datum van die gelewerde bolus op pomp lyk verkeerd, IAB is waarskynlik verkeerd. Kontroleer asseblief pomp tyd/datum. - Bolus telling - TBR telling - Bolus gestaak - Staak bolus - Nooit - onveilige gebruik - diff --git a/pump/combo/src/main/res/values-ja-rJP/strings.xml b/pump/combo/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/pump/combo/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/pump/combo/src/main/res/values-nb-rNO/strings.xml b/pump/combo/src/main/res/values-nb-rNO/strings.xml index b13cd45cd5..833ea8926c 100644 --- a/pump/combo/src/main/res/values-nb-rNO/strings.xml +++ b/pump/combo/src/main/res/values-nb-rNO/strings.xml @@ -27,7 +27,7 @@ Tom Normal Pumpens tid må oppdateres - Varsel om kansellering av temp basal er bekreftet + Varsel om kansellering av midlertidig basal er bekreftet Ingen kontakt med pumpen. Ingen bolus er levert Bolus avbrutt. Det virker som ingen bolus er levert. For å være sikker, sjekk pumpen for å unngå levering av dobbel bolus og gjør evt et nytt forsøk. For å unngå feil vil systemet aldri prøve å levere ny bolus. Bare %1$.2f E av bolusdosen på %2$.2f E ble levert på grunn av en feil. Sjekk pumpen for å kontrollere dette og iverksett nødvendige tiltak. @@ -37,7 +37,7 @@ Leser basalprofil Pumpe historikken har blitt endret siden bolus kalkuleringen ble utført. Bolus har ikke blitt levert. Vennligst rekalkuler om bolus fortsatt er nødvendig. Bolus har blitt levert, men det oppsto en feil ved loggføring i behandlinger. Dette kan oppstå hvis to små bolus på samme størrelse blir levert i løpet av to minutter. Vennligst sjekk pumpe historikken og behandlinger loggen, og bruk Helseportal for å legge til de manglende behandlingene. Pass på at du ikke legger til to identiske behandlinger på samme minutt. - Avviser høy temp target siden kalkuleringen ikke tok hensyn til nylige endringer i pumpe historikken + Avviser høyt midlertidig mål siden kalkuleringen ikke tok hensyn til nylige endringer i pumpe historikken Oppdaterer pumpestatus Basal dosen i pumpen har blitt endret og vil i løpet av kort tid bli oppdatert Basalsats endret i pumpe, men lesing av den feilet @@ -46,7 +46,7 @@ Den siste bolus er eldre enn 24t eller er i fremtiden. Vennligst sjekk at datoen i pumpen er korrekt. Tid/dato for levert bolus i pumpen er trolig feil, og IOB beregningen blir da feil. Vennligst sjekk pumpens tid/dato. Antall boluser - Antall temp basaler TBR + Antall midlertidige basaler TBR Bolus stoppet Stopper bolus Komm. feiltelling diff --git a/pump/combov2/src/main/res/values-af-rZA/strings.xml b/pump/combov2/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 69c5a4f841..0000000000 --- a/pump/combov2/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - Battery leeg - Verstopping - Meganiese fout - Bluetooth adres - Instelling basale profiel - Bolus gekanselleer - Bolus aflewering het misluk. Dit blyk dat geen bolus gelewer was. Om seker te maak, gaan die pomp asseblief na om \'n dubbele bolus te vermy en dan bolus weer indien veilig. Om te waak teen goggas, word boluse nie outomaties weer probeer nie. - %1$d%% (%2$d min oorblywend) - Pomp battery is laag - leeg - laag - diff --git a/pump/combov2/src/main/res/values-iw-rIL/strings.xml b/pump/combov2/src/main/res/values-iw-rIL/strings.xml index 37f974cb89..f231e76bd7 100644 --- a/pump/combov2/src/main/res/values-iw-rIL/strings.xml +++ b/pump/combov2/src/main/res/values-iw-rIL/strings.xml @@ -97,7 +97,6 @@ לא ניתן להגדיר בזאלי זמני אם המינון הבזאלי הבסיסי הוא 0 צימוד AndroidAPS ואנדרואיד עם משאבת Accu-Chek combo שאינה מצומדת ביטול צימוד AndroidAPS ואנדרואיד ממשאבת Accu-Chek combo המצומדת - נמצא מינון בזאלי זמני לא ברור והוא נעצר; %1$d%; זמן נותר: %2$s שגיאת חיבור: %1$s חיבור אחרון: לפני %1$d דקות התראה: %s diff --git a/pump/combov2/src/main/res/values-ja-rJP/strings.xml b/pump/combov2/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/pump/combov2/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/pump/dana/src/main/res/values-af-rZA/strings.xml b/pump/dana/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 3f0f1df2f6..0000000000 --- a/pump/dana/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - Paring - Geen toestel gevind so ver - Paring OK - Paring tyd verstreke - Wag vir paring op pomp - Dana - Max bolus skending - Opdrag fout - Spoedfout - Insulien limiet skending - Versoek: %1$.2fU Gelewer: %2$.2fU Fout kode: %3$s - Waarde nie behoorlik gestel - Stel basale stap tot 0.01 U/h - Verwerk gebeurtenis - Uitgebreide boluses op pomp aktiveer - Gelewer - Gestaak - Onondersteunde pomp firmware - Pomp fout - Battery laag - Pomp afskakeling - Pomp Battery leeg - Verstopping - Leë stoor - Bloed suiker meting alarm - Oorblywende insulien vlak - Verkry pomp status - Verkry verlengde bolus status - Verkry bolus status - Verkry tydelike basale status - Kry pomp instellings - Verkry pomp tyd - Enorme tydsverskil - Groot tydverskil: \nTyd in pomp is uit met meer as 1,5 uur. \nVerstel asb die tyd per hand op die pomp en maak seker dat lees die geskiedenis van die pomp nie onverwagte gedrag veroorsaak. \nAs moontlik, verwyder die geskiedenis vanaf die pomp voor die verandering van die tyd of versper die geslote lus vir een DIA na die laaste verkeerde geskiedenis inskrywing maar minimum een DIA van nou. - Verbind asseblief jou pomp met jou selfoon! - Naderende insulien daaglikse limiet - Begin bolus aflewering - Wag tans vir bolus se einde. Oorblywende %1$d sec. - Stop tydelike basale - Stel verlengde bolus - Stop verlengde bolus - Outobywerking basale tariewe - Stel tydelike basale - Wag vir tydsinkronisasie (%1$d sec) - Verkeerde pomp wagwoord! - Alarms - Basale ure - Boluses - Karbohidrate - Daaglikse insulien - Foute - Glukose - Hervul - Opgeskort - Prima - Gebruiker opsies - Vertoon tyd formaat - Knoppie rol - Biep op knoppie druk - Alarm - Klank - Vibreer - Beide - LCD aantyd [seconds] - Agterlig aantyd [seconds] - Glukose eenhede - Afsluit [hours] - Lae reserwe [Units] - Stoor opsies te pomp - Pomp integrasie vir DANA Diabecare R pompe - Pomp integrasie vir Koreanse DANA Diabecare R pompe - Pomp integrasie vir DANA Diabecare R pompe met opgegradeerde firmware - DANA - Geen bluetooth passtuk gevind - Geselekteerde toestel nie gevind nie - Verander in modus van U/d U/h op pomp - DanaR Koreaans - DanaR - Pomp drywer gekorrigeer - DanaRv2 - Versper EasyUI modus in pomp - Instelling van basale profiel het misluk - Bluetooth status - Pomp IAB - Firmware - Dana pomp instellings - Aan - Af - DanaR Bluetooth-toestel - Pomp wagwoord - Gebruik verlengde boluses vir >200%% - Bolus spoed - Geselekteerde pomp - diff --git a/pump/dana/src/main/res/values-ja-rJP/strings.xml b/pump/dana/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/pump/dana/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/pump/dana/src/main/res/values-nb-rNO/strings.xml b/pump/dana/src/main/res/values-nb-rNO/strings.xml index e561897b03..3e46d39399 100644 --- a/pump/dana/src/main/res/values-nb-rNO/strings.xml +++ b/pump/dana/src/main/res/values-nb-rNO/strings.xml @@ -39,7 +39,7 @@ Henter pumpestatus Henter forlenget bolus status Henter bolus status - Henter temp basal status + Henter status om midlertidig basal Henter pumpe innstillinger Henter pumpens tid Stor tidsforskjell @@ -48,11 +48,11 @@ Maksimal daglig insulindose er snart nådd Starter bolus dosering Venter på bolus slutt. Gjenværende %1$d sek. - Stopper temp basal + Stopper midlertidig basal Setter forlenget bolus Stopper forlenget bolus Oppdaterer basaldoser - Setter temp basal + Setter midlertidig basal Venter på tidsykronisering (%1$d sek) Feil pumpepassord! Alarmer diff --git a/pump/danar/src/main/res/values-af-rZA/strings.xml b/pump/danar/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/pump/danar/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/pump/danar/src/main/res/values-ja-rJP/strings.xml b/pump/danar/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/pump/danar/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/pump/diaconn/src/main/res/values-af-rZA/strings.xml b/pump/diaconn/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 3b7cd2274e..0000000000 --- a/pump/diaconn/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - Pomp fout - Alarms - Basale ure - Boluses - Daaglikse insulien - Foute - Prima - Hervul - Opgeskort - Kry pomp instellings - Verkry pomp tyd - Groot tydverskil: \nTyd in pomp is uit met meer as 1,5 uur. \nVerstel asb die tyd per hand op die pomp en maak seker dat lees die geskiedenis van die pomp nie onverwagte gedrag veroorsaak. \nAs moontlik, verwyder die geskiedenis vanaf die pomp voor die verandering van die tyd of versper die geslote lus vir een DIA na die laaste verkeerde geskiedenis inskrywing maar minimum een DIA van nou. - Naderende insulien daaglikse limiet - Begin bolus aflewering - Stop tydelike basale - Stel tydelike basale - Stel verlengde bolus - Stop verlengde bolus - Outobywerking basale tariewe - Max bolus skending - Opdrag fout - Spoedfout - Insulien limiet skending - Versoek: %1$.2fU Gelewer: %2$.2fU Fout kode: %3$s - Waarde nie behoorlik gestel - Bolus spoed - Geselekteerde pomp - Gebruik verlengde boluses vir >200%% - Visualiseer verlengde bolus as %% - TDD - Bolus Stap - Basale Stap - Firmware - Verbind asseblief jou pomp met jou selfoon! - Klank - klank - vibreer - laag - hoog - LCD aantyd [second] - Bolus spoed - Engels - laag - Ander - Sukses - diff --git a/pump/diaconn/src/main/res/values-ja-rJP/strings.xml b/pump/diaconn/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/pump/diaconn/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/pump/diaconn/src/main/res/values-nb-rNO/strings.xml b/pump/diaconn/src/main/res/values-nb-rNO/strings.xml index 744ca26447..0f357fbe30 100644 --- a/pump/diaconn/src/main/res/values-nb-rNO/strings.xml +++ b/pump/diaconn/src/main/res/values-nb-rNO/strings.xml @@ -24,8 +24,8 @@ Starter bolus dosering Venter på avsluttet bolus dosering Leser bolus status - Stopper temp basal - Setter temp basal + Stopper midlertidig basal + Setter midlertidig basal Setter forlenget bolus Stopper forlenget bolus Oppdaterer basaldoser @@ -54,7 +54,7 @@ "Behandler hendelse " aps_last_log_num aps_wrapping_count - Temp basal + Midlertidig basal Diaconn pumpe innstillinger Lyd lyd @@ -146,12 +146,12 @@ Kommandoen ble ikke utført. Vennligst prøv igjen. Logg bytte av slangesett Legg til \"Slangesettbytte\" i Helseportal når den oppdages i historikken - Temp Basal startet + Midlertidig basal startet Vel Lav Glukose Stopp (LGS) er injeksjoner begrenset LGS status er PÅ. PÅ kommando er nektet. LGS status er AV. AV kommandoen er avslått. - Temp basal avslått siden det allerede kjøres en temp basal - Stopp av temp basal avslått siden det ikke kjøres en temp basal + Midlertidig basal avslått siden det allerede kjøres en midlertidig basal + Stopp av midlertidig basal avslått siden det ikke kjøres en midlertidig basal Send pumpe logger til Diaconn Cloud. Diaconn Cloud Sync diff --git a/pump/eopatch/src/main/res/values-af-rZA/strings.xml b/pump/eopatch/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 1d9e0c8389..0000000000 --- a/pump/eopatch/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - Status - dag - dae - Hervat - Opgeskort - Loop tans - Kanselleer - Bevestig - Alarm - Koppel - Volgende - diff --git a/pump/eopatch/src/main/res/values-af-rZA/strings_alarm.xml b/pump/eopatch/src/main/res/values-af-rZA/strings_alarm.xml deleted file mode 100644 index 61862d1424..0000000000 --- a/pump/eopatch/src/main/res/values-af-rZA/strings_alarm.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/pump/eopatch/src/main/res/values-ja-rJP/strings.xml b/pump/eopatch/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 584b7ae292..0000000000 --- a/pump/eopatch/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - キャンセル - 接続中 - diff --git a/pump/eopatch/src/main/res/values-ja-rJP/strings_alarm.xml b/pump/eopatch/src/main/res/values-ja-rJP/strings_alarm.xml deleted file mode 100644 index 61862d1424..0000000000 --- a/pump/eopatch/src/main/res/values-ja-rJP/strings_alarm.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/pump/eopatch/src/main/res/values-nb-rNO/strings.xml b/pump/eopatch/src/main/res/values-nb-rNO/strings.xml index 4f4d1f0686..ae85750325 100644 --- a/pump/eopatch/src/main/res/values-nb-rNO/strings.xml +++ b/pump/eopatch/src/main/res/values-nb-rNO/strings.xml @@ -92,9 +92,9 @@ Avbryt paringen dager  E - Når du pauser pumpen vil gjeldende bolus dosering & Temp basal bli kansellert. \n\nDosering : %1$s E/time\nGjenstående tid : %2$s\n& Gjenværende insulin å levere: %3$.2f E + Når du pauser pumpen vil gjeldende bolus dosering & midlertidig basal bli kansellert. \n\nDosering : %1$s E/time\nGjenstående tid : %2$s\n& Gjenværende insulin å levere: %3$.2f E Når du pauser pumpen vil levering av bolus dose bli avbrutt. \n\nGjenværende insulin : %1$.2f E - Når du pauser pumpen vil gjeldende Temp basal dosering bli kansellert. \n\nDosering : %1$s E/time\nGjenstående tid : %2$s + Når du pauser pumpen vil gjeldende midlertidig basaldosering bli kansellert. \n\nDosering : %1$s E/time\nGjenstående tid : %2$s Insulintilførsel er pauset. Kast/bytt patch Aktiver Patch diff --git a/pump/medtronic/src/main/res/values-af-rZA/strings.xml b/pump/medtronic/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 01d2cbc61d..0000000000 --- a/pump/medtronic/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - Pomp integrasie vir Medtronic vereis RileyLink en spesifieke modelle - - Pomp Reeks Nommer - Pomp Tipe - Pomp Frekwensie - Wagtyd voor Bolus begin (s) - Maks Bolus op Pomp (U) - Maks Basale op Pomp (U/h) - Medtronic Enkodering - US & Canada (916 MHz) - Wêreldwyd (868 Mhz) - Sagteware 4b6b Enkodeerding - Hardeware 4b6b Enkodeerding - Wek en stel in - Vee Bolus Blok - Herstel RileyLink Konfig - Battery Tipe(Krag Oorsig) - Nie gekies (Eenvoudige oorsig) - Alkaliese (Uitgebreide modus) - Lithium (Uitgebreide modus) - - - Foute - Reeksno # nie gestel. - Reeksno # is ongeldig. - Pomp tipe nie gestel. - Pomp tipe word nie ondersteun nie. - Pomp frekwensie nie gestel. - Pomp frekwensie word nie ondersteun. - RileyLink Adres ongeldig. - Pomp tipe bespeur en is nie dieselfde as gestelde. - Basale profiel is verkeerd op pomp (moet STD wees). - Verkeerde TBR op pomp (Moet Absoluut wees). - Verkeerde Maks Bolus gestel op Pomp(moet %1$.2f wees). - Verkeerde Maks Basale op Pomp (moet %1$.2f wees). - Operasie nie moontlik.\n\n Jy moet jou Medtronic pomp opstel voordat jy die operasie kan gebruik. - Oor 24h Tyd was versoek. - - - - - - - - Medtronic Pomp Geskiedenis - - U het Bolus gekanselleer nadat dit reeds gestel was op pomp. Aangesien Medtronic pomp nie kansellasie ondesteun sal jy dit self moet kanselleer. Sit pomp in Suspend en hervat(Resume) (as jy steeds wil kanselleer). Spplikasie sal die verandering sppor op volgende opdatering in minder as 5 minute. - Kon nie huidige TBR lees. - Kon nie TBR kanselleer. Operasie is gestaak. - Profiel stel gefaal want die patroon het \'n te groot basale koers: %1$s - Bolus kon nie gelewer word nie. - Bolus kon nie gelewer word nie, want beskikbare insulin (%1$.2f) is mider as bolus versoek(%2$.2f). - TBR Kon nie stel. - Kon nie huidige TBR staak. - Basale profiel kon nie stel. - Basal profiel is dieselfde, so dit is so gelos. - Verkry Geskiedenis - Bladsy %1$d (%2$d/16) - Verkry Geskiedenis - Bladsy %1$d - Kry Pomp Tyd - Verkry Instellings - Kry Pomp Model - Kry Basale Profiel - Stel Basale Profiel - Verkry Tydelike Basale - Stel Tydelike Basale - Stel Bolus - Pomp onbeskikbaar - Waarskuwing - - Nou - - terug - Pomp tyd/horlosie se opdatering is nodig - - Aan - Af - Pomp tyd opgedateer - diff --git a/pump/medtronic/src/main/res/values-ja-rJP/strings.xml b/pump/medtronic/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 4feeb48b2b..0000000000 --- a/pump/medtronic/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - Medtronic製のポンプ統合には、RileyLinkデバイスと特定のポンプモデルが必要です - - ポンプのシリアル番号 - ポンプの種類 - ポンプ周波数 - ボーラス開始までの遅延時間(s) - ポンプの最大ボーラス (U) - ポンプの最大ベーサル(U/h) - アメリカ & カナダ (916 MHz) - ワールドワイド(868 Mhz) - ソフトウェア 4b6b エンコード - ソフトウェア 4b6b エンコード - ウェイクアップとチューニング - - - - - - - - - - - - - - diff --git a/pump/medtronic/src/main/res/values-nb-rNO/strings.xml b/pump/medtronic/src/main/res/values-nb-rNO/strings.xml index 7a7ffa8595..065eecdecb 100644 --- a/pump/medtronic/src/main/res/values-nb-rNO/strings.xml +++ b/pump/medtronic/src/main/res/values-nb-rNO/strings.xml @@ -71,8 +71,8 @@ Henter pumpe modell Henter basal profil Angi basal profil - Henter Temp Basal - Angi Temp Basal + Henter midlertidig basal + Angi midlertidig basal Avbryt midlertidig basal Angi Bolus Oppdater status insulinvolum @@ -88,7 +88,7 @@ Av Pumpens tid ble oppdatert Sett nøytrale temp basaler - Hvis aktivert så vil den stoppe en temp basal rett før hver hele time for å stoppe noen pumpers varsler/vibreringer på hver hele time. + Hvis aktivert så vil den stoppe en midlertidig basal rett før hver hele time for å stoppe noen pumpers varsler/vibreringer på hver hele time. %1$.1f E/t (%2$d min gjenstår) Ugyldige data for pumpehistorikken er oppdaget. Rapporter hendelsen til APPS og legg ved logg. RL statistikk diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/MedtrumPlugin.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/MedtrumPlugin.kt index 2adb563031..c237d9c2fd 100644 --- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/MedtrumPlugin.kt +++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/MedtrumPlugin.kt @@ -141,6 +141,7 @@ import kotlin.math.abs preprocessAlarmSettings(preferenceFragment) preprocessMaxInsulinSettings(preferenceFragment) preprocessConnectionAlertSettings(preferenceFragment) + preprocessPumpWarningSettings(preferenceFragment) } private fun preprocessSerialSettings(preferenceFragment: PreferenceFragmentCompat) { @@ -263,6 +264,14 @@ import kotlin.math.abs } } + private fun preprocessPumpWarningSettings(preferenceFragment: PreferenceFragmentCompat) { + val patchExpirationPref = preferenceFragment.findPreference(rh.gs(R.string.key_patch_expiration)) + val pumpWarningNotificationPref = preferenceFragment.findPreference(rh.gs(R.string.key_pump_warning_notification)) + val pumpWarningExpiryHourPref = preferenceFragment.findPreference(rh.gs(R.string.key_pump_warning_expiry_hour)) + + pumpWarningExpiryHourPref?.isEnabled = patchExpirationPref?.isChecked == true && pumpWarningNotificationPref?.isChecked == true + } + override fun isInitialized(): Boolean { return medtrumPump.pumpState > MedtrumPumpState.EJECTED && medtrumPump.pumpState < MedtrumPumpState.STOPPED } diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/MedtrumPump.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/MedtrumPump.kt index 4a7f99e566..54dadef505 100644 --- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/MedtrumPump.kt +++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/MedtrumPump.kt @@ -288,6 +288,8 @@ class MedtrumPump @Inject constructor( var desiredAlarmSetting = AlarmSetting.LIGHT_VIBRATE_AND_BEEP var desiredHourlyMaxInsulin: Int = 40 var desiredDailyMaxInsulin: Int = 180 + var desiredPumpWarning = true + var desiredPumpWarningExpiryThresholdHours = 72L fun pumpType(): PumpType = pumpType(deviceType) @@ -333,6 +335,8 @@ class MedtrumPump @Inject constructor( desiredAlarmSetting = AlarmSetting.values().firstOrNull { it.code == alarmSettingCode } ?: AlarmSetting.LIGHT_VIBRATE_AND_BEEP desiredHourlyMaxInsulin = sp.getInt(R.string.key_hourly_max_insulin, 40) desiredDailyMaxInsulin = sp.getInt(R.string.key_daily_max_insulin, 180) + desiredPumpWarning = sp.getBoolean(R.string.key_pump_warning_notification, true) + desiredPumpWarningExpiryThresholdHours = sp.getLong(R.string.key_pump_warning_expiry_hour, 72L) _pumpSN = pumpSNFromSP } diff --git a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/services/MedtrumService.kt b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/services/MedtrumService.kt index ae596414e9..887c4c1a95 100644 --- a/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/services/MedtrumService.kt +++ b/pump/medtrum/src/main/java/info/nightscout/pump/medtrum/services/MedtrumService.kt @@ -101,6 +101,8 @@ class MedtrumService : DaggerService(), BLECommCallback { private const val COMMAND_CONNECTING_TIMEOUT_SEC: Long = 30 private const val ALARM_HOURLY_MAX_CLEAR_CODE = 4 private const val ALARM_DAILY_MAX_CLEAR_CODE = 5 + + private const val CHECK_EXPIRY_WARNING_TIME_MS = 5 * 60 * 1000L } private val disposable = CompositeDisposable() @@ -135,6 +137,11 @@ class MedtrumService : DaggerService(), BLECommCallback { pumpSync.connectNewPump() medtrumPump.setFakeTBRIfNotSet() } + if (event.isChanged(rh.gs(R.string.key_pump_warning_notification)) + || event.isChanged(rh.gs(R.string.key_pump_warning_expiry_hour)) + ) { + medtrumPump.loadUserSettingsFromSP() + } if (event.isChanged(rh.gs(R.string.key_alarm_setting)) || event.isChanged(rh.gs(R.string.key_patch_expiration)) || event.isChanged(rh.gs(R.string.key_hourly_max_insulin)) @@ -169,6 +176,12 @@ class MedtrumService : DaggerService(), BLECommCallback { notifyPumpWarning(pumpWarning) } } + scope.launch { + while (true) { + checkExpiryWarning() + kotlinx.coroutines.delay(CHECK_EXPIRY_WARNING_TIME_MS) + } + } } override fun onDestroy() { @@ -700,7 +713,7 @@ class MedtrumService : DaggerService(), BLECommCallback { private fun notifyPumpWarning(alarmState: AlarmState) { // Notification on pump warning - if (sp.getBoolean(R.string.key_pump_warning_notification, true) && alarmState != AlarmState.NONE) { + if (medtrumPump.desiredPumpWarning && alarmState != AlarmState.NONE) { uiInteraction.addNotification( Notification.PUMP_WARNING, rh.gs(R.string.pump_warning, medtrumPump.alarmStateToString(alarmState)), @@ -715,6 +728,25 @@ class MedtrumService : DaggerService(), BLECommCallback { } } + private fun checkExpiryWarning() { + if (medtrumPump.desiredPatchExpiration && medtrumPump.desiredPumpWarning) { + val warningAt = medtrumPump.patchStartTime + T.hours(medtrumPump.desiredPumpWarningExpiryThresholdHours).msecs() + if (dateUtil.now() >= warningAt && dateUtil.now() <= warningAt + CHECK_EXPIRY_WARNING_TIME_MS) { + uiInteraction.addNotification( + Notification.PUMP_WARNING, + rh.gs(R.string.alarm_pump_expires_soon), + Notification.ANNOUNCEMENT, + ) + pumpSync.insertAnnouncement( + rh.gs(R.string.alarm_pump_expires_soon), + null, + medtrumPump.pumpType(), + medtrumPump.pumpSN.toString(radix = 16) + ) + } + } + } + /** BLECommCallbacks */ override fun onBLEConnected() { aapsLogger.debug(LTag.PUMPCOMM, "<<<<< onBLEConnected") diff --git a/pump/medtrum/src/main/res/values-af-rZA/arrays.xml b/pump/medtrum/src/main/res/values-af-rZA/arrays.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/pump/medtrum/src/main/res/values-af-rZA/arrays.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/pump/medtrum/src/main/res/values-af-rZA/strings.xml b/pump/medtrum/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 36c8a820fe..0000000000 --- a/pump/medtrum/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/pump/medtrum/src/main/res/values-bg-rBG/strings.xml b/pump/medtrum/src/main/res/values-bg-rBG/strings.xml index 0fc18261f7..84c09b2d0c 100644 --- a/pump/medtrum/src/main/res/values-bg-rBG/strings.xml +++ b/pump/medtrum/src/main/res/values-bg-rBG/strings.xml @@ -105,9 +105,7 @@ Изберете предпочитани настройки за аларми на помпата. Срок на пач помпата След активация, пач помпата има срок от 3 дни с допълнителен период от 8 часа след това. - Максимално количество инсулин за час Посочете максималните единици инсулин за час. Ако бъдат превишени, помпата ще бъде изключена. - Максимално количество инсулин за ден Посочете максималните единици инсулин за ден. Ако бъдат превишени, помпата ще бъде изключена. Получава статус на помпата diff --git a/pump/medtrum/src/main/res/values-cs-rCZ/strings.xml b/pump/medtrum/src/main/res/values-cs-rCZ/strings.xml index 1493204dbf..2cf4e15177 100644 --- a/pump/medtrum/src/main/res/values-cs-rCZ/strings.xml +++ b/pump/medtrum/src/main/res/values-cs-rCZ/strings.xml @@ -112,11 +112,13 @@ Vyberte preferované nastavení alarmů. Oznámení o varování pumpy Zobrazit upozornění na nekritická varování pumpy: vybitá baterie, téměř prázdný zásobník (20 jednotek) a brzy dojde inzulin. Doporučeno ponechat zapnuté, když jsou výstrahy pumpy nastaveny na ticho. + Varování před vypršením platnosti pumpy [hodiny] + Zobrazit upozornění v určené hodině po aktivaci. Vypršení platnosti Patche Pokud je povoleno, Patch vyprší po 3 dnech s maximální dobou odkladu 8 hodin. - Hodinové maximum inzulínu + Hodinové maximum inzulínu [U] Zadejte maximální povolený počet jednotek inzulínu za hodinu. Pokud je překročeno, pumpa bude pozastavena. - Denní maximální inzulín + Denní maximum inzulínu [U] Zadejte maximální povolené množství inzulínu za den. Pokud je překročeno, pumpa bude pozastavena. Nahrávám stav pumpy diff --git a/pump/medtrum/src/main/res/values-da-rDK/strings.xml b/pump/medtrum/src/main/res/values-da-rDK/strings.xml index 1195d5afbe..9e7e7ca7c8 100644 --- a/pump/medtrum/src/main/res/values-da-rDK/strings.xml +++ b/pump/medtrum/src/main/res/values-da-rDK/strings.xml @@ -107,9 +107,7 @@ Vælg dine fortrukne pumpealarmindstillinger. Patch Udløber Efter aktivering udløber patchen efter 3 dage med en nådeperiode på 8 timer herefter. - Maksimal Insulin pr. Time Specificér det maksimale tilladte antal enheder insulin per time. Hvis denne overskrides, pauseres pumpen. - Maksimal Insulin pr. Dag Specificér det maksimale tilladte antal enheder insulin per Dag. Hvis denne overskrides, pauseres pumpen. Henter pumpestatus diff --git a/pump/medtrum/src/main/res/values-de-rDE/strings.xml b/pump/medtrum/src/main/res/values-de-rDE/strings.xml index 997e3b8ef9..51f6acd6cb 100644 --- a/pump/medtrum/src/main/res/values-de-rDE/strings.xml +++ b/pump/medtrum/src/main/res/values-de-rDE/strings.xml @@ -105,9 +105,7 @@ Wählen Sie Ihre bevorzugten Pumpen-Alarmeinstellungen. Patch Ablaufdatum Wenn aktiviert, läuft der Patch nach 3 Tagen ab, mit einer Nachfrist von 8 Stunden danach. - Stündliches Maximum Insulin Lege die maximale Anzahl an Insulineinheiten pro Stunde fest. Bei Überschreitung wird die Pumpe ausgesetzt. - Tägliches Maximum Insulin Legen Sie die maximale Anzahl an Insulineinheiten pro Tag fest. Bei Überschreitung wird die Pumpe ausgesetzt. Pumpenstatus wird abgerufen diff --git a/pump/medtrum/src/main/res/values-el-rGR/strings.xml b/pump/medtrum/src/main/res/values-el-rGR/strings.xml index 68d9aed6f3..8158a6bc8b 100644 --- a/pump/medtrum/src/main/res/values-el-rGR/strings.xml +++ b/pump/medtrum/src/main/res/values-el-rGR/strings.xml @@ -107,9 +107,7 @@ Επιλέξτε τις προτιμώμενες ρυθμίσεις συναγερμού της αντλίας σας. Λήξη Patch Όταν ενεργοποιηθεί, το patch θα λήξει μετά από 3 ημέρες, με περίοδο χάριτος 8 ώρες μετά από αυτό. - Μέγιστη Ωριαία Ινσουλίνη Καθορίστε τις μέγιστες μονάδες ινσουλίνης που επιτρέπονται ανά ώρα. Αν ξεπεραστείη ποσότητα αυτή, η αντλία θα αναστείλει. - Ημερήσια Μέγιστη Ινσουλίνη Καθορίστε τις μέγιστες μονάδες ινσουλίνης που επιτρέπονται ανά ημέρα. Αν ξεπεραστεί η ποσότητα αυτή, η αντλία θα αναστείλει. Φόρτωση κατάστασης αντλίας diff --git a/pump/medtrum/src/main/res/values-es-rES/strings.xml b/pump/medtrum/src/main/res/values-es-rES/strings.xml index c8c013cc15..388e599806 100644 --- a/pump/medtrum/src/main/res/values-es-rES/strings.xml +++ b/pump/medtrum/src/main/res/values-es-rES/strings.xml @@ -114,9 +114,7 @@ Mostrar notificación en advertencias de la bomba no críticas: batería baja, reserva baja (20 unidades) y próxima a caducar. Se recomienda dejarlo habilitado cuando las alarmas de la bomba estén configuradas en silencio. Caducidad del parche Cuando está activado, el parche caducará a los 3 días, con un periodo de gracia de 8 horas adicionales - Insulina máxima por hora Especificar las unidades máximas de insulina permitidas por hora. Si se supera, la bomba se suspenderá. - Insulina máxima diaria Especificar las unidades máximas de insulina permitidas por día. Si se superan, la bomba se suspenderá. Obteniendo el estado de la bomba diff --git a/pump/medtrum/src/main/res/values-fr-rFR/strings.xml b/pump/medtrum/src/main/res/values-fr-rFR/strings.xml index f4e37d7382..a971250f5f 100644 --- a/pump/medtrum/src/main/res/values-fr-rFR/strings.xml +++ b/pump/medtrum/src/main/res/values-fr-rFR/strings.xml @@ -6,6 +6,7 @@ Intégration des pompes Medtrum Nano et Medtrum 300U Paramètres de la pompe Medtrum Erreur pompe: %1$s!! + Avertissement pompe : %1$s La pompe est suspendue La pompe est suspendue, la quantité maximum d\'insuline par heure est dépassée La pompe est suspendue, la quantité maximum d\'insuline par jour est dépassée @@ -52,6 +53,7 @@ Pile morte Absence d\'étalonnage Impossible de mettre à jour le fuseau horaire de la pompe, mettre en veille le message et rafraîchir manuellement. + Erreur de bolus Réessayer Suivant @@ -100,17 +102,19 @@ Appuyez sur Suivant pour reprendre l\'activation ou Supprimer pour réinitialiser l\'état d\'activation. Veuillez patienter, lecture de l\'état d\'activation de la pompe. + Alerte injoignable forcée, car le pod Medtrum peut échouer et être inaccessible. + Réglage à 30 minutes conseillé car le pod Medtrum peut échouer et être inaccessible. Numéro de série Entrez le numéro de série de la base de votre pompe. Numéro de série invalide ! Pompe non testée : %1$d! Veuillez nous contacter sur discord ou github pour obtenir de l\'aide Paramètres d\'Alarme Sélectionnez vos préférences d’alarme de votre pompe. + Notification sur l\'alerte pompe + Afficher une notification sur les avertissements non critiques de la pompe : pile faible, réservoir faible (20 unités) et expire bientôt. Il est recommandé de laisser activé lorsque les alarmes de la pompe sont réglées sur silencieux. Expiration du Patch Lorsqu\'il est activé, le Patch expirera après 3 jours, avec un délai de grâce de 8 heures au-delà. - Insuline maximale horaire Spécifiez le nombre maximum d\'unités d\'insuline autorisées par heure. Si ce montant est dépassé, la pompe sera suspendue. - Insuline maximale quotidienne Spécifiez le nombre maximum d\'unités d\'insuline autorisées par jour. Si ce montant est dépassé, la pompe sera suspendue. Mise à jour de l\'état pompe diff --git a/pump/medtrum/src/main/res/values-it-rIT/strings.xml b/pump/medtrum/src/main/res/values-it-rIT/strings.xml index 594c3290fb..b5de1d6fea 100644 --- a/pump/medtrum/src/main/res/values-it-rIT/strings.xml +++ b/pump/medtrum/src/main/res/values-it-rIT/strings.xml @@ -105,9 +105,7 @@ Seleziona le tue impostazioni di allarme del micro preferite. Scadenza patch Una volta abilitata, la patch scadrà dopo 3 giorni, con un periodo di grazia di 8 ore. - Insulina massima oraria Specificare le unità massime di insulina consentite per ora. Se superate, il micro sarà sospeso. - Insulina massima giornaliera Specificare le unità massime di insulina consentite per giorno. Se superate, il micro sarà sospeso. Ricezione stato micro diff --git a/pump/medtrum/src/main/res/values-ja-rJP/arrays.xml b/pump/medtrum/src/main/res/values-ja-rJP/arrays.xml deleted file mode 100644 index 3ea04e700d..0000000000 --- a/pump/medtrum/src/main/res/values-ja-rJP/arrays.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/pump/medtrum/src/main/res/values-ja-rJP/strings.xml b/pump/medtrum/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 36c8a820fe..0000000000 --- a/pump/medtrum/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/pump/medtrum/src/main/res/values-ko-rKR/strings.xml b/pump/medtrum/src/main/res/values-ko-rKR/strings.xml index 7046fb4f4f..c84fadfdef 100644 --- a/pump/medtrum/src/main/res/values-ko-rKR/strings.xml +++ b/pump/medtrum/src/main/res/values-ko-rKR/strings.xml @@ -106,9 +106,7 @@ 선호하는 펌프 알람 설정을 선택하세요. Patch 만료 활성화되면, patch는 3일 후에 만료되며, 이후 8시간의 유예 기간이 적용됩니다. - 시간당 최대 인슐린 시간당 허용되는 인슐린 최대 unit을 정합니다. 이를 초과하면, 펌프는 중지됩니다. - 일일 최대 인슐린 하루에 허용되는 인슐린 최대 unit을 정합니다. 이를 초과하면, 펌프는 중지됩니다. 펌프 상태 가져오기 diff --git a/pump/medtrum/src/main/res/values-lt-rLT/strings.xml b/pump/medtrum/src/main/res/values-lt-rLT/strings.xml index da7983f437..7c1e714e87 100644 --- a/pump/medtrum/src/main/res/values-lt-rLT/strings.xml +++ b/pump/medtrum/src/main/res/values-lt-rLT/strings.xml @@ -108,9 +108,7 @@ Pasirinkite pompos aliarmų nustatymus Rezervuaras išsijungs Įgalinus, rezervuaras išsijungs po 3 parų ir 8 val. - Valandos insulino limitas Nustatykite maksimalų insulino kiekį valandai. Jį viršijus pompa bus sustabdyta. - Paros insulino limitas Nustatykite maksimalų insulino kiekį parai. Jį viršijus pompa bus sustabdyta. Gaunamas pompos statusas diff --git a/pump/medtrum/src/main/res/values-nb-rNO/strings.xml b/pump/medtrum/src/main/res/values-nb-rNO/strings.xml index 8100bc66f2..3a459c4d90 100644 --- a/pump/medtrum/src/main/res/values-nb-rNO/strings.xml +++ b/pump/medtrum/src/main/res/values-nb-rNO/strings.xml @@ -114,9 +114,7 @@ Vis varsel om ikke-kritisk pumpeadvarsel: lavt batteri, lavt reservoar (20 enheter) og utløper snart. Anbefales og la være aktivert når pumpealarmer er satt til stillemodus. Patch utløpsdato Når aktivert vil plasteret utløpe etter 3 dager, med en nådeperiode på 8 timer etter det. - Maksimal insulin per time Angi maksimalt antall enheter insulin tillatt per time. Hvis overskredet vil pumpen suspendere. - Maksimal insulin per dag Angi maksimalt antall enheter insulin tillatt per dag. Hvis overskredet vil pumpen suspendere. Henter pumpestatus diff --git a/pump/medtrum/src/main/res/values-nl-rNL/strings.xml b/pump/medtrum/src/main/res/values-nl-rNL/strings.xml index c566589058..33773439f3 100644 --- a/pump/medtrum/src/main/res/values-nl-rNL/strings.xml +++ b/pump/medtrum/src/main/res/values-nl-rNL/strings.xml @@ -114,9 +114,7 @@ Melding weergeven op niet-kritische pompwaarschuwingen: batterij bijna leeg, reservoir bijna leeg (20 eenheden) en vervalt bijna. Aanbevolen om ingeschakeld te laten wanneer pomp alarmen op stil zijn ingesteld. Patch vervalt Wanneer ingeschakeld, zal de patch na 3 dagen verlopen met een extra periode van 8 uur coulance. - Maximale insuline per uur Geef de maximale hoeveelheid insuline per uur op. Indien overschreden zal de pomp de insuline toediening onderbreken. - Maximale insuline per dag Geef de maximale hoeveelheid insuline per dag op. Indien overschreden zal de pomp de insuline toediening onderbreken. Pompstatus aan het ophalen diff --git a/pump/medtrum/src/main/res/values-pl-rPL/strings.xml b/pump/medtrum/src/main/res/values-pl-rPL/strings.xml index ddccc09c6d..9c0d32b315 100644 --- a/pump/medtrum/src/main/res/values-pl-rPL/strings.xml +++ b/pump/medtrum/src/main/res/values-pl-rPL/strings.xml @@ -111,9 +111,7 @@ Pokaż powiadomienia o niekrytycznych ostrzeżeniach pompy takich jak: niski poziom baterii, niski poziom zbiornika (20 jednostek) i wkrótce wygasa. Zalecane zostawianie włączonych powiadomień, gdy alarmy pompy są wyciszone. Wygaśnięcie Patcha Po uruchomieniu Patch wygaśnie po 3 dniach, z dodatkowym 8 godzinowym okresem karencji. - Maksymalna Insulina w godzinę Określ maksymalną dozwoloną ilość jednostek insuliny podanych na godzinę. Po przekroczeniu tego limitu pompa zawiesi podaż insuliny. - Maksymalna Insulina dziennie Określ maksymalną dozwoloną ilość jednostek insuliny podanych na dzień. Po przekroczeniu tego limitu pompa zawiesi podaż insuliny. Uzyskiwanie statusu pompy diff --git a/pump/medtrum/src/main/res/values-ro-rRO/strings.xml b/pump/medtrum/src/main/res/values-ro-rRO/strings.xml index 01b5297304..0fdf3679e8 100644 --- a/pump/medtrum/src/main/res/values-ro-rRO/strings.xml +++ b/pump/medtrum/src/main/res/values-ro-rRO/strings.xml @@ -114,9 +114,7 @@ Arată notificare cu privire la avertismentele non-critice ale pompei: baterie scăzută, rezervor redus (20 de unități) și expiră în curând. Se recomandă să lăsaţi activat când alarmele pompei sunt setate la silențios. Patch Expirare Când este activat, patchul va expira după 3 zile, cu o perioadă de graţie de 8 ore după expirare. - Insulină maximă pe oră Specifică numărul maxim de unități de insulină permise pe oră. Dacă sunt depăşite, pompa se va suspenda. - Insulină maximă zilnică Specifică numărul maxim de unități de insulină permise pe zi. Dacă sunt depăşite, pompa se va suspenda. Se primește starea pompei diff --git a/pump/medtrum/src/main/res/values-ru-rRU/strings.xml b/pump/medtrum/src/main/res/values-ru-rRU/strings.xml index c029351280..ec2b2ded32 100644 --- a/pump/medtrum/src/main/res/values-ru-rRU/strings.xml +++ b/pump/medtrum/src/main/res/values-ru-rRU/strings.xml @@ -114,9 +114,7 @@ Показывать уведомления о некритических оповещениях помпы: низком заряде батареи, низком запасе инсулина (20 единиц) и приближающемся истечении срока работы. Рекомендуется оставить включенным, когда звук оповещений выключен. Окончание срока действия патча Если включено, то патч закончит свое действие через 3 дня, с дополнительными 8 часами после этого. - Максимальное количество инсулина в час Укажите максимальное количество инсулина, допустимое для ввода в течение часа. Если оно будет превышено - помпа будет приостановлена. - Максимальное количество инсулина в сутки Укажите максимальное количество инсулина, допустимое для ввода в течение суток. Если оно будет превышено - помпа будет приостановлена. Получение статуса помпы diff --git a/pump/medtrum/src/main/res/values-sk-rSK/strings.xml b/pump/medtrum/src/main/res/values-sk-rSK/strings.xml index a03c3f0d9a..0b179c64c9 100644 --- a/pump/medtrum/src/main/res/values-sk-rSK/strings.xml +++ b/pump/medtrum/src/main/res/values-sk-rSK/strings.xml @@ -114,9 +114,7 @@ Zobraziť upozornenie na nie kritické varovanie pumpy: vybitá batéria, takmer prázdny zásobník (20 jednotiek) a čoskoro dojde inzulín. Doporučené ponechať zapnuté, keď sú výstrahy pumpy nastavené na ticho. Expirácia Patch Pokiaľ je povolené, Patch expiruje po 3 dňoch s maximálnou dobou odkladu 8 hodín. - Hodinové maximum inzulínu Zadajte maximálny povolený počet jednotiek inzulínu za hodinu. Pokiaľ budú prekročené, pumpa bude pozastavená. - Denný maximálny inzulín Zadajte maximálny povolený počet jednotiek inzulínu za deň. Pokiaľ budú prekročené, pumpa bude pozastavená. Načítavam stav pumpy diff --git a/pump/medtrum/src/main/res/values-sv-rSE/strings.xml b/pump/medtrum/src/main/res/values-sv-rSE/strings.xml index b15bcb2527..16c2153f26 100644 --- a/pump/medtrum/src/main/res/values-sv-rSE/strings.xml +++ b/pump/medtrum/src/main/res/values-sv-rSE/strings.xml @@ -106,9 +106,7 @@ Ställ in dina föredragna larminställningar för pumpen. Poddens utgångsdatum När den är aktiverad, kommer podden att löpa ut efter 3 dagar, med en tidsfrist på 8 timmar efter det. - Maximalt insulin per timme Ange maximalt tillåtna insulin-enheter per timme. Om den överskrids kommer pumpen att pausas. - Maximal daglig insulin-dos Ange maximalt tillåtna insulin-enheter per dag. Om den överskrids kommer pumpen att pausas. Hämtar pumpstatus diff --git a/pump/medtrum/src/main/res/values-tr-rTR/strings.xml b/pump/medtrum/src/main/res/values-tr-rTR/strings.xml index 143f6dab14..f0b22a57aa 100644 --- a/pump/medtrum/src/main/res/values-tr-rTR/strings.xml +++ b/pump/medtrum/src/main/res/values-tr-rTR/strings.xml @@ -114,9 +114,7 @@ Kritik olmayan pompa uyarılarıyla ilgili bildirimi göster: düşük pil, düşük rezervuar (20 birim) ve yakında süresi doluyor. Pompa alarmları sessize ayarlandığında etkin bırakılması önerilir. Patch süre sonu Etkinleştirildiğinde, patch 3 gün sonra sona erecek ve bunun ardından 8 saatlik bir ek süre tanınacaktır. - Saatlik Maksimum insülin Bir saatte izin verilen maksimum insülini (Ü) belirtin. Bu değer aşılırsa pompa askıya alınır. - Günlük Maksimum insülin Bir günde izin verilen maksimum insülini (Ü) belirtin. Bu değer aşılırsa pompa askıya alınır. Pompa durumu alınıyor diff --git a/pump/medtrum/src/main/res/values/strings.xml b/pump/medtrum/src/main/res/values/strings.xml index 01bbe48505..f2a283e42f 100644 --- a/pump/medtrum/src/main/res/values/strings.xml +++ b/pump/medtrum/src/main/res/values/strings.xml @@ -5,6 +5,7 @@ alarm_setting patch_expiration pump_warning_notification + pump_expiry_warning_hour hourly_max_insulin daily_max_insulin @@ -145,11 +146,13 @@ Select your preferred pump alarm settings. Notification on pump warning Show notification on non critical pump warnings: low battery, low reservoir (20 units) and expires soon. Recommended to leave enabled when pump alarms are set to silent. + Pump expiry warning [hours] + Show notification on specified hour after activation. Patch Expiration When enabled, the patch will expire after 3 days, with a grace period of 8 hours after that. - Hourly Maximum Insulin + Hourly Maximum Insulin [Units] Specify the maximum units of insulin allowed per hour. If exceeded, the pump will suspend. - Daily Maximum Insulin + Daily Maximum Insulin [Units] Specify the maximum units of insulin allowed per day. If exceeded, the pump will suspend. diff --git a/pump/medtrum/src/main/res/xml/pref_medtrum_pump.xml b/pump/medtrum/src/main/res/xml/pref_medtrum_pump.xml index 4e4ff321ba..67f807e549 100644 --- a/pump/medtrum/src/main/res/xml/pref_medtrum_pump.xml +++ b/pump/medtrum/src/main/res/xml/pref_medtrum_pump.xml @@ -13,12 +13,6 @@ android:singleLine="true" android:title="@string/sn_input_title" /> - - + + + + - - - - Aksies - - - Bevestiging - - Opgeskort - %1$.2f U - Stoor - Foute - - Kanselleer - Volgende - Gaan uit - - - - Ander - Kennisgewings - - Loop tans - - Stel Bolus - Stel Tydelike Basale - - - - Ja - Nee - OK - Kanselleer - Waarskuwing - - - %1$d minuut - %1$d minute - - - %1$d uur - %1$d ure - - - %1$d dae - %1$d dae - - diff --git a/pump/omnipod-common/src/main/res/values-ja-rJP/strings.xml b/pump/omnipod-common/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 794ed6584c..0000000000 --- a/pump/omnipod-common/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - 確認 - - %1$.2f U - リザーバ - - キャンセル - 終了 - - - - - - - - - Yes - No - OK - キャンセル - - diff --git a/pump/omnipod-common/src/main/res/values-nb-rNO/strings.xml b/pump/omnipod-common/src/main/res/values-nb-rNO/strings.xml index 6682ce3e14..121dfd1331 100644 --- a/pump/omnipod-common/src/main/res/values-nb-rNO/strings.xml +++ b/pump/omnipod-common/src/main/res/values-nb-rNO/strings.xml @@ -116,7 +116,7 @@ Varsler Bekreftelseslyd Varsler - Lydvarsel for ubekreftet temp basal dosering (TBR) er aktivert + Lydvarsel for ubekreftet midlertidig basaldosering (TBR) er aktivert Lydvarsel for ubekreftet SMB er aktivert Lydvarsel for ubekreftet bolus er aktivert @@ -134,7 +134,7 @@ Forkast Pod Angi Bolus Avbryt Bolus - Angi Midlertidig Basal + Angi midlertidig basal Avbryt midlertidig basal (internt av driver) Avbryt midlertidig basal Angi basalprogram diff --git a/pump/omnipod-dash/src/main/res/values-af-rZA/strings.xml b/pump/omnipod-dash/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 759fb22223..0000000000 --- a/pump/omnipod-dash/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - Datum - %1$.2f U - - - - %1$.2f U - diff --git a/pump/omnipod-dash/src/main/res/values-ja-rJP/strings.xml b/pump/omnipod-dash/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index c8c46f9360..0000000000 --- a/pump/omnipod-dash/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - 日時 - %1$.2f U - - - - %1$.2f U - diff --git a/pump/omnipod-eros/src/main/res/values-af-rZA/strings.xml b/pump/omnipod-eros/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 6f19cf1460..0000000000 --- a/pump/omnipod-eros/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - Kennisgewings - RileyLink - - Datum - %1$.2f U - - - - Herstel RileyLink Konfig - - - diff --git a/pump/omnipod-eros/src/main/res/values-ja-rJP/strings.xml b/pump/omnipod-eros/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 4d4460e0ac..0000000000 --- a/pump/omnipod-eros/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - 日時 - %1$.2f U - - - - - - diff --git a/pump/omnipod-eros/src/main/res/values-nb-rNO/strings.xml b/pump/omnipod-eros/src/main/res/values-nb-rNO/strings.xml index ba11108eea..3c5e9c91cb 100644 --- a/pump/omnipod-eros/src/main/res/values-nb-rNO/strings.xml +++ b/pump/omnipod-eros/src/main/res/values-nb-rNO/strings.xml @@ -44,10 +44,10 @@ Endring av basalprofil mislyktes. Insulinlevering kan bli stoppet! Vennligst velg Oppdater Pod fra Omnipod fanen og velg gjenoppta levering hvis nødvendig. Endring av basalprofil kan ha feilet. Insulinlevering kan bli stoppet! Vennligst velg Oppdater Pod fra Omnipod fanen og velg gjenoppta levering hvis nødvendig. Endring av basal profil mislyktes. Insulinlevering er stoppet! Velg gjenoppta levering manuelt fra Omnipod-menyen. - Mislyktes trolig med å kansellere temp basal. Vennligst oppdater Pod status manuelt fra Omnipod menyen. + Mislyktes trolig med å kansellere midlertidig basal. Vennligst oppdater Pod-status manuelt fra Omnipod-menyen. Endring av midlertidig basal var mislykket. En tidligere midlertidig basal kan ha blitt kansellert. Oppdater statusen på Pod manuelt fra Omnipod fanen. - Setting av temp basal kan ha feilet. Hvis en temp basal allerede var aktiv så er den nå avbrutt. Vennligst oppdater Pod status manuelt fra Omnipod menyen. - TBR varighet må være større enn null og et multiplum av %1$s minutter. + Setting av midlertidig basal kan ha feilet. Hvis en midlertidig basal allerede var aktiv så er den nå avbrutt. Vennligst oppdater Pod-status manuelt fra Omnipod-menyen. + Midlertidig basalvarighet må være større enn null og et multiplum av %1$s minutter. Innstilling av tid kan ha mislyktes. Insulinlevering kan være pauset! Oppdater statusen manuelt fra fanen Omnipod og gjenoppta levering hvis nødvendig. Endring av tid mislyktes. Insulinlevering er pauset! Velg gjenoppta levering manuelt fra Omnipod-fanen. Feilet i å lese Pulsloggen diff --git a/pump/pump-common/src/main/res/values-af-rZA/strings.xml b/pump/pump-common/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index bd2651a3b3..0000000000 --- a/pump/pump-common/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - Operasie nie ondersteun deur pomp en/of drywer. - Operasie nog nie ondersteun deur pomp. - OK - Pomp Reeks Nommer - - - Basale - Konfigurasies - Kennisgewings - Statistiek - Onbekend - Alle - Boluses - Prima - Alarms - Glukose - Ander - - - Skan - Staak - Verkose - Skandeer - Skandering voltooi - Skaderings fout: %1$d - Nooit - Verwyder - - Bluetooth afgeskakel - Geen Bluetooth Toestel - Pomp onbereikbaar - - Verkeerde Maks Bolus gestel op Pomp(moet %1$.2f wees). - Verkeerde Maks Basale op Pomp (moet %1$.2f %1$.2f wees),. - - - Slaap - Besig om te wek - Aktief - Fout met kommunikasie - Te lank op kommunikasie gewag - Pomp onbereikbaar - Ongeldige konfigirasie - - %1$d dae - %1$d dae - - - %1$d uur - %1$d ure - - diff --git a/pump/pump-common/src/main/res/values-ja-rJP/strings.xml b/pump/pump-common/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index b5564ebfd8..0000000000 --- a/pump/pump-common/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - OK - ポンプのシリアル番号 - - - - 今日 - - 停止 - - - - - %1$d 日前 - - diff --git a/pump/rileylink/src/main/AndroidManifest.xml b/pump/rileylink/src/main/AndroidManifest.xml index 684a90fcf6..fd581e2dd0 100644 --- a/pump/rileylink/src/main/AndroidManifest.xml +++ b/pump/rileylink/src/main/AndroidManifest.xml @@ -17,7 +17,7 @@ android:exported="false" android:theme="@style/AppTheme"> - + diff --git a/pump/rileylink/src/main/res/values-af-rZA/strings.xml b/pump/rileylink/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 4a0fcf8e96..0000000000 --- a/pump/rileylink/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - Skan - Staak - Verkose - RileyLink Skan - Skandeer - Skandering voltooi - Skaderings fout: %1$d - Nooit - Verwyder - - Instellings - Geskiedenis - RileyLink Status - Pomp Status - RileyLink Instellings - RileyLink - Naam: - %1$d%% - Verbindingstatus: - Verbindingsfout: - Toestel - Toestel Tipe: - Pomp Reeks Nommer: - Pomp Frekwensie: - - Bluetooth Inisiasie… - Bluetooth Fout - Bluetooth Gereed - Nie Begin - RileyLink inisiasie… - RileyLink Fout - Probleel om met pomp te praat - Gekoppel - - Toestel is nie RileyLink - RileyLink onverkry - Bluetooth afgeskakel - Geen Bluetooth Toestel - Opstel het gefaal - Pomp onbereikbaar - Pod onbereikbaar - - Medtronic Pomp - Ja - Nee - - - %1$d dae - %1$d dae - - - %1$d uur - %1$d ure - - diff --git a/pump/rileylink/src/main/res/values-ja-rJP/strings.xml b/pump/rileylink/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 7580980a18..0000000000 --- a/pump/rileylink/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - 停止 - - ポンプのシリアル番号: - ポンプ周波数: - - 接続されました - - - Yes - No - - diff --git a/pump/virtual/src/main/res/values-af-rZA/strings.xml b/pump/virtual/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 92c6f05599..0000000000 --- a/pump/virtual/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Pomp integrasie vir pompe wat nog nie enige drywer het nie (oop lus) - Virtuele pomp instellings - - * Slegs diskrete waardes geen reekse word ondersteun as granulariteit vir basale/bolus in virtuele pomp. - diff --git a/pump/virtual/src/main/res/values-ja-rJP/strings.xml b/pump/virtual/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index 5f1fadd4ab..0000000000 --- a/pump/virtual/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/shared/impl/src/main/kotlin/app/aaps/shared/impl/sharedPreferences/SPImplementation.kt b/shared/impl/src/main/kotlin/app/aaps/shared/impl/sharedPreferences/SPImplementation.kt index 3c4cf0bb19..b4fbc5f852 100644 --- a/shared/impl/src/main/kotlin/app/aaps/shared/impl/sharedPreferences/SPImplementation.kt +++ b/shared/impl/src/main/kotlin/app/aaps/shared/impl/sharedPreferences/SPImplementation.kt @@ -149,7 +149,11 @@ class SPImplementation @Inject constructor( return try { sharedPreferences.getLong(context.getString(resourceID), defaultValue) } catch (e: Exception) { - SafeParse.stringToLong(sharedPreferences.getString(context.getString(resourceID), defaultValue.toString()), defaultValue) + try { + SafeParse.stringToLong(sharedPreferences.getString(context.getString(resourceID), defaultValue.toString()), defaultValue) + } catch (e1: Exception) { + return defaultValue + } } } @@ -157,7 +161,11 @@ class SPImplementation @Inject constructor( return try { sharedPreferences.getLong(key, defaultValue) } catch (e: Exception) { - SafeParse.stringToLong(sharedPreferences.getString(key, defaultValue.toString()), defaultValue) + try { + SafeParse.stringToLong(sharedPreferences.getString(key, defaultValue.toString()), defaultValue) + } catch (e1: Exception) { + return defaultValue + } } } diff --git a/ui/src/main/res/values-af-rZA/strings.xml b/ui/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index 2d968e1422..0000000000 --- a/ui/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - Bolus beperking toegepas - Karbs beperking toegepas - TT - Begin aktiwiteit TT - Begin eet gou TT - Begin hipo TT - Tyd verskil - min - - - Statistiek - Gewig - Glukose tipe - Ander - Meter - Sensor - - %1$s ISF: %2$.1f - %1$.1fg IC: %2$.1f - %1$.0fg IC: %2$.1f - Totaal - - Maak asseblief seker dat die hoeveelheid ooreenstem met die spesifikasies van jou infusie stel! - Rekord pomp ligging verandering - Rekord insulien kasset verandering - - Moet nie bolus. Rekord alleen - - Tyd verskuiwing - Persentasie - - Skort lus vir 1h - Skort lus vir 2h - Skort lus vir 3h - Skort lus vir 10 h - Ontkoppel pomp vir 15 min - Ontkoppel pomp vir 30 min - Ontkoppel pomp vir 1 h - Ontkoppel pomp vir 2 h - Ontkoppel pomp vir 3 h - Hervat - Herverbind Pomp - - 2h - Resultaat: %1$s %2$s - Karb tyd - - Bereken - IAB: - Insulien: - Karbs: - Totale IAB: - Totale IAB aktiwiteit: - Dur: - Verhouding: - Ins: - IAB: - Corr - Maaltyd - Prima - - Verkose: - - Basale waarde - - STAAK GEDRUK - - diff --git a/ui/src/main/res/values-ja-rJP/strings.xml b/ui/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index cbc8360fc2..0000000000 --- a/ui/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - 炭水化物: - Corr - - - 基礎レート - - - diff --git a/ui/src/main/res/values-nb-rNO/strings.xml b/ui/src/main/res/values-nb-rNO/strings.xml index 206e1310d4..35ae9e2eb5 100644 --- a/ui/src/main/res/values-nb-rNO/strings.xml +++ b/ui/src/main/res/values-nb-rNO/strings.xml @@ -7,7 +7,7 @@ Start midlertidig mål for Aktivitet Start midlertidig mål for Spise snart Start midlertidig mål for Hypo - Tids- forskyvning + Tidsforskyvning min Påminnelse om å gi bolus senere angi påminnelse @@ -45,7 +45,7 @@ Ikke gi bolus, bare loggfør hendelse Gjenbruk %1$d%% %2$dt - Tids- forskyving + Tidsforskyving Prosent Pause loop i 1t diff --git a/wear/build.gradle b/wear/build.gradle index adce2fa861..11c4ddad0f 100644 --- a/wear/build.gradle +++ b/wear/build.gradle @@ -5,7 +5,7 @@ buildscript { } dependencies { - classpath "org.jacoco:org.jacoco.core:0.8.10" + classpath "org.jacoco:org.jacoco.core:0.8.11" } } diff --git a/wear/src/main/AndroidManifest.xml b/wear/src/main/AndroidManifest.xml index 0a21c75013..e78e3571a2 100644 --- a/wear/src/main/AndroidManifest.xml +++ b/wear/src/main/AndroidManifest.xml @@ -70,56 +70,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/wear/src/main/kotlin/app/aaps/wear/di/WearServicesModule.kt b/wear/src/main/kotlin/app/aaps/wear/di/WearServicesModule.kt index 9a7f137b0f..cfcda2146f 100644 --- a/wear/src/main/kotlin/app/aaps/wear/di/WearServicesModule.kt +++ b/wear/src/main/kotlin/app/aaps/wear/di/WearServicesModule.kt @@ -20,8 +20,6 @@ import app.aaps.wear.tile.QuickWizardTileService import app.aaps.wear.tile.TempTargetTileService import app.aaps.wear.tile.TileBase import app.aaps.wear.watchfaces.AapsLargeWatchface -import app.aaps.wear.watchfaces.AapsV2Watchface -import app.aaps.wear.watchfaces.AapsWatchface import app.aaps.wear.watchfaces.BigChartWatchface import app.aaps.wear.watchfaces.CircleWatchface import app.aaps.wear.watchfaces.CustomWatchface @@ -52,8 +50,6 @@ abstract class WearServicesModule { @ContributesAndroidInjector abstract fun contributesWallpaperComplication(): WallpaperComplication @ContributesAndroidInjector abstract fun contributesBaseWatchFace(): BaseWatchFace - @ContributesAndroidInjector abstract fun contributesAapsWatchface(): AapsWatchface - @ContributesAndroidInjector abstract fun contributesAapsV2Watchface(): AapsV2Watchface @ContributesAndroidInjector abstract fun contributesAapsLargeWatchface(): AapsLargeWatchface @ContributesAndroidInjector abstract fun contributesDigitalStyleWatchface(): DigitalStyleWatchface @ContributesAndroidInjector abstract fun contributesBIGChart(): BigChartWatchface diff --git a/wear/src/main/kotlin/app/aaps/wear/watchfaces/AapsV2Watchface.kt b/wear/src/main/kotlin/app/aaps/wear/watchfaces/AapsV2Watchface.kt deleted file mode 100644 index df7723998d..0000000000 --- a/wear/src/main/kotlin/app/aaps/wear/watchfaces/AapsV2Watchface.kt +++ /dev/null @@ -1,172 +0,0 @@ -package app.aaps.wear.watchfaces - -import android.graphics.Color -import android.view.LayoutInflater -import androidx.annotation.ColorInt -import androidx.core.content.ContextCompat -import androidx.viewbinding.ViewBinding -import app.aaps.wear.R -import app.aaps.wear.databinding.ActivityHome2Binding -import app.aaps.wear.watchfaces.utils.BaseWatchFace -import com.ustwo.clockwise.common.WatchMode - -class AapsV2Watchface : BaseWatchFace() { - - private lateinit var binding: ActivityHome2Binding - - override fun inflateLayout(inflater: LayoutInflater): ViewBinding { - binding = ActivityHome2Binding.inflate(inflater) - return binding - } - - override fun setColorDark() { - @ColorInt val dividerTxtColor = if (dividerMatchesBg) ContextCompat.getColor(this, R.color.dark_midColor) else Color.BLACK - @ColorInt val dividerBatteryOkColor = ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_uploaderBattery) - @ColorInt val dividerBgColor = ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_background else R.color.dark_statusView) - binding.secondaryLayout.setBackgroundColor(dividerBgColor) - binding.tertiaryLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background)) - binding.mainLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background)) - binding.time.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor)) - binding.iob1.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor)) - binding.iob2.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor)) - binding.cob1.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor)) - binding.cob2.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor)) - binding.day.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor)) - binding.month.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor)) - binding.loop.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor)) - setTextSizes() - val color = when (singleBg.sgvLevel) { - 1L -> R.color.dark_highColor - 0L -> R.color.dark_midColor - -1L -> R.color.dark_lowColor - else -> R.color.dark_midColor - } - binding.sgv.setTextColor(ContextCompat.getColor(this, color)) - binding.direction.setTextColor(ContextCompat.getColor(this, color)) - - val colorTime = if (ageLevel == 1) R.color.dark_midColor else R.color.dark_TimestampOld - binding.timestamp.setTextColor(ContextCompat.getColor(this, colorTime)) - val colourBat = if (status.batteryLevel == 1) dividerBatteryOkColor else ContextCompat.getColor(this, R.color.dark_uploaderBatteryEmpty) - binding.uploaderBattery.setTextColor(colourBat) - - binding.rigBattery.setTextColor(dividerTxtColor) - binding.delta.setTextColor(dividerTxtColor) - binding.avgDelta.setTextColor(dividerTxtColor) - binding.basalRate.setTextColor(dividerTxtColor) - binding.bgi.setTextColor(dividerTxtColor) - when (loopLevel) { - -1 -> binding.loop.setBackgroundResource(R.drawable.loop_grey_25) - 1 -> binding.loop.setBackgroundResource(R.drawable.loop_green_25) - else -> binding.loop.setBackgroundResource(R.drawable.loop_red_25) - } - - highColor = ContextCompat.getColor(this, R.color.dark_highColor) - lowColor = ContextCompat.getColor(this, R.color.dark_lowColor) - midColor = ContextCompat.getColor(this, R.color.dark_midColor) - gridColor = ContextCompat.getColor(this, R.color.dark_gridColor) - basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_dark) - basalCenterColor = ContextCompat.getColor(this, R.color.basal_light) - pointSize = 2 - setupCharts() - } - - override fun setColorLowRes() { - @ColorInt val dividerTxtColor = if (dividerMatchesBg) ContextCompat.getColor(this, R.color.dark_midColor) else Color.BLACK - @ColorInt val dividerBgColor = ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_background else R.color.dark_statusView) - binding.secondaryLayout.setBackgroundColor(dividerBgColor) - binding.tertiaryLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background)) - binding.mainLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background)) - binding.loop.setBackgroundResource(R.drawable.loop_grey_25) - binding.loop.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor)) - binding.sgv.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor)) - binding.direction.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor)) - binding.timestamp.setTextColor(ContextCompat.getColor(this, R.color.dark_Timestamp)) - binding.delta.setTextColor(dividerTxtColor) - binding.avgDelta.setTextColor(dividerTxtColor) - binding.rigBattery.setTextColor(dividerTxtColor) - binding.uploaderBattery.setTextColor(dividerTxtColor) - binding.basalRate.setTextColor(dividerTxtColor) - binding.bgi.setTextColor(dividerTxtColor) - binding.iob1.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor)) - binding.iob2.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor)) - binding.cob1.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor)) - binding.cob2.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor)) - binding.day.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor)) - binding.month.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor)) - binding.time.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime)) - - highColor = ContextCompat.getColor(this, R.color.dark_midColor) - lowColor = ContextCompat.getColor(this, R.color.dark_midColor) - midColor = ContextCompat.getColor(this, R.color.dark_midColor) - gridColor = ContextCompat.getColor(this, R.color.dark_gridColor) - basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_dark_lowres) - basalCenterColor = ContextCompat.getColor(this, R.color.basal_light_lowres) - pointSize = 2 - setupCharts() - - setTextSizes() - } - - override fun setColorBright() { - if (currentWatchMode == WatchMode.INTERACTIVE) { - @ColorInt val dividerTxtColor = if (dividerMatchesBg) Color.BLACK else ContextCompat.getColor(this, R.color.dark_midColor) - @ColorInt val dividerBgColor = ContextCompat.getColor(this, if (dividerMatchesBg) R.color.light_background else R.color.light_stripe_background) - binding.secondaryLayout.setBackgroundColor(dividerBgColor) - binding.tertiaryLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.light_background)) - binding.mainLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.light_background)) - binding.time.setTextColor(Color.BLACK) - binding.iob1.setTextColor(Color.BLACK) - binding.iob2.setTextColor(Color.BLACK) - binding.cob1.setTextColor(Color.BLACK) - binding.cob2.setTextColor(Color.BLACK) - binding.day.setTextColor(Color.BLACK) - binding.month.setTextColor(Color.BLACK) - binding.loop.setTextColor(Color.BLACK) - setTextSizes() - val color = when (singleBg.sgvLevel) { - 1L -> R.color.light_highColor - 0L -> R.color.light_midColor - -1L -> R.color.light_lowColor - else -> R.color.light_midColor - } - binding.sgv.setTextColor(ContextCompat.getColor(this, color)) - binding.direction.setTextColor(ContextCompat.getColor(this, color)) - val colorTime = if (ageLevel == 1) Color.BLACK else Color.RED - binding.timestamp.setTextColor(colorTime) - val colourBat = if (status.batteryLevel == 1) dividerTxtColor else Color.RED - binding.uploaderBattery.setTextColor(colourBat) - binding.rigBattery.setTextColor(dividerTxtColor) - binding.delta.setTextColor(dividerTxtColor) - binding.avgDelta.setTextColor(dividerTxtColor) - binding.basalRate.setTextColor(dividerTxtColor) - binding.bgi.setTextColor(dividerTxtColor) - when (loopLevel) { - -1 -> binding.loop.setBackgroundResource(R.drawable.loop_grey_25) - 1 -> binding.loop.setBackgroundResource(R.drawable.loop_green_25) - else -> binding.loop.setBackgroundResource(R.drawable.loop_red_25) - } - - highColor = ContextCompat.getColor(this, R.color.light_highColor) - lowColor = ContextCompat.getColor(this, R.color.light_lowColor) - midColor = ContextCompat.getColor(this, R.color.light_midColor) - gridColor = ContextCompat.getColor(this, R.color.light_gridColor) - basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_light) - basalCenterColor = ContextCompat.getColor(this, R.color.basal_dark) - pointSize = 2 - setupCharts() - - } else { - setColorDark() - } - } - - private fun setTextSizes() { - if (detailedIob) { - binding.iob1.textSize = 14f - binding.iob2.textSize = 10f - } else { - binding.iob1.textSize = 10f - binding.iob2.textSize = 14f - } - } -} diff --git a/wear/src/main/kotlin/app/aaps/wear/watchfaces/AapsWatchface.kt b/wear/src/main/kotlin/app/aaps/wear/watchfaces/AapsWatchface.kt deleted file mode 100644 index 5523e06b88..0000000000 --- a/wear/src/main/kotlin/app/aaps/wear/watchfaces/AapsWatchface.kt +++ /dev/null @@ -1,107 +0,0 @@ -package app.aaps.wear.watchfaces - -import android.graphics.Color -import android.view.LayoutInflater -import androidx.core.content.ContextCompat -import androidx.viewbinding.ViewBinding -import app.aaps.wear.R -import app.aaps.wear.databinding.ActivityHomeBinding -import app.aaps.wear.watchfaces.utils.BaseWatchFace -import com.ustwo.clockwise.common.WatchMode - -class AapsWatchface : BaseWatchFace() { - - private lateinit var binding: ActivityHomeBinding - - override fun inflateLayout(inflater: LayoutInflater): ViewBinding { - binding = ActivityHomeBinding.inflate(inflater) - return binding - } - - override fun setColorDark() { - binding.mainLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background)) - binding.secondaryLayout.setBackgroundColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_background else R.color.dark_statusView)) - binding.time.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime)) - val color = when (singleBg.sgvLevel) { - 1L -> R.color.dark_highColor - 0L -> R.color.dark_midColor - -1L -> R.color.dark_lowColor - else -> R.color.dark_midColor - } - binding.sgv.setTextColor(ContextCompat.getColor(this, color)) - binding.delta.setTextColor(ContextCompat.getColor(this, color)) - binding.direction.setTextColor(ContextCompat.getColor(this, color)) - - val colorTime = if (ageLevel == 1) if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_mTimestamp1_home else R.color.dark_TimestampOld - binding.timestamp.setTextColor(ContextCompat.getColor(this, colorTime)) - - val colourBat = if (status.batteryLevel == 1) if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_uploaderBattery else R.color.dark_uploaderBatteryEmpty - binding.uploaderBattery.setTextColor(ContextCompat.getColor(this, colourBat)) - - binding.status.setTextColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_mStatus_home)) - - highColor = ContextCompat.getColor(this, R.color.dark_highColor) - lowColor = ContextCompat.getColor(this, R.color.dark_lowColor) - midColor = ContextCompat.getColor(this, R.color.dark_midColor) - gridColor = ContextCompat.getColor(this, R.color.dark_gridColor) - basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_dark) - basalCenterColor = ContextCompat.getColor(this, R.color.basal_light) - pointSize = 2 - setupCharts() - - } - - override fun setColorLowRes() { - binding.time.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime)) - binding.mainLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background)) - binding.sgv.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor)) - binding.delta.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor)) - binding.timestamp.setTextColor(ContextCompat.getColor(this, R.color.dark_Timestamp)) - - highColor = ContextCompat.getColor(this, R.color.dark_midColor) - lowColor = ContextCompat.getColor(this, R.color.dark_midColor) - midColor = ContextCompat.getColor(this, R.color.dark_midColor) - gridColor = ContextCompat.getColor(this, R.color.dark_gridColor) - basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_dark_lowres) - basalCenterColor = ContextCompat.getColor(this, R.color.basal_light_lowres) - pointSize = 2 - setupCharts() - } - - override fun setColorBright() { - if (currentWatchMode == WatchMode.INTERACTIVE) { - binding.secondaryLayout.setBackgroundColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.light_background else R.color.light_stripe_background)) - binding.mainLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.light_background)) - val color = when (singleBg.sgvLevel) { - 1L -> R.color.light_highColor - 0L -> R.color.light_midColor - -1L -> R.color.light_lowColor - else -> R.color.light_midColor - } - binding.sgv.setTextColor(ContextCompat.getColor(this, color)) - binding.delta.setTextColor(ContextCompat.getColor(this, color)) - binding.direction.setTextColor(ContextCompat.getColor(this, color)) - - val colorTime = if (ageLevel == 1) if (dividerMatchesBg) Color.BLACK else Color.WHITE else Color.RED - binding.timestamp.setTextColor(colorTime) - - val colourBat = if (status.batteryLevel == 1) if (dividerMatchesBg) Color.BLACK else Color.WHITE else Color.RED - binding.uploaderBattery.setTextColor(colourBat) - - binding.status.setTextColor(if (dividerMatchesBg) Color.BLACK else Color.WHITE) - binding.time.setTextColor(Color.BLACK) - - highColor = ContextCompat.getColor(this, R.color.light_highColor) - lowColor = ContextCompat.getColor(this, R.color.light_lowColor) - midColor = ContextCompat.getColor(this, R.color.light_midColor) - gridColor = ContextCompat.getColor(this, R.color.light_gridColor) - basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_light) - basalCenterColor = ContextCompat.getColor(this, R.color.basal_dark) - pointSize = 2 - setupCharts() - - } else { - setColorDark() - } - } -} diff --git a/wear/src/main/kotlin/app/aaps/wear/watchfaces/CustomWatchface.kt b/wear/src/main/kotlin/app/aaps/wear/watchfaces/CustomWatchface.kt index 6f7e93d53a..62fa6701f0 100644 --- a/wear/src/main/kotlin/app/aaps/wear/watchfaces/CustomWatchface.kt +++ b/wear/src/main/kotlin/app/aaps/wear/watchfaces/CustomWatchface.kt @@ -62,7 +62,7 @@ class CustomWatchface : BaseWatchFace() { private lateinit var binding: ActivityCustomBinding private var zoomFactor = 1.0 private val displaySize = Point() - private val TEMPLATE_RESOLUTION = 400 + private val templeResolution = 400 private var lowBatColor = Color.RED private var resDataMap: CwfResDataMap = mutableMapOf() private var json = JSONObject() @@ -81,7 +81,7 @@ class CustomWatchface : BaseWatchFace() { setDefaultColors() persistence.store(defaultWatchface(), true) (context.getSystemService(WINDOW_SERVICE) as WindowManager).defaultDisplay.getSize(displaySize) - zoomFactor = (displaySize.x).toDouble() / TEMPLATE_RESOLUTION.toDouble() + zoomFactor = (displaySize.x).toDouble() / templeResolution.toDouble() return binding } @@ -106,15 +106,15 @@ class CustomWatchface : BaseWatchFace() { override fun setColorDark() { setWatchfaceStyle() - if ((ViewMap.SGV.dynData?.stepFontColor ?: 0) == 0) + if ((ViewMap.SGV.dynData?.stepFontColor ?: 0) <= 0) binding.sgv.setTextColor(bgColor) - if ((ViewMap.DIRECTION.dynData?.stepColor ?: 0) == 0) + if ((ViewMap.DIRECTION.dynData?.stepColor ?: 0) <= 0) binding.direction2.colorFilter = changeDrawableColor(bgColor) - if (ageLevel != 1 && (ViewMap.TIMESTAMP.dynData?.stepFontColor ?: 0) == 0) + if (ageLevel != 1 && (ViewMap.TIMESTAMP.dynData?.stepFontColor ?: 0) <= 0) binding.timestamp.setTextColor(ContextCompat.getColor(this, R.color.dark_TimestampOld)) - if (status.batteryLevel != 1 && (ViewMap.UPLOADER_BATTERY.dynData?.stepFontColor ?: 0) == 0) + if (status.batteryLevel != 1 && (ViewMap.UPLOADER_BATTERY.dynData?.stepFontColor ?: 0) <= 0) binding.uploaderBattery.setTextColor(lowBatColor) - if ((ViewMap.LOOP.dynData?.stepDraw ?: 0) == 0) // Apply automatic background image only if no dynData or no step images + if ((ViewMap.LOOP.dynData?.stepDraw ?: 0) <= 0) // Apply automatic background image only if no dynData or no step images when (loopLevel) { -1 -> binding.loop.setBackgroundResource(R.drawable.loop_grey_25) 1 -> binding.loop.setBackgroundResource(R.drawable.loop_green_25) @@ -156,25 +156,30 @@ class CustomWatchface : BaseWatchFace() { if (!resDataMap.isEquals(it.customWatchfaceData.resDatas) || jsonString != it.customWatchfaceData.json) { resDataMap = it.customWatchfaceData.resDatas jsonString = it.customWatchfaceData.json + DynProvider.init(this, json) FontMap.init(this) ViewMap.init(this) TrendArrowMap.init(this) - DynProvider.init(json.optJSONObject(DYNDATA.key)) } + if (checkPref()) { + DynProvider.init(this, json) + } + enableSecond = json.optBoolean(ENABLESECOND.key) && sp.getBoolean(R.string.key_show_seconds, true) - highColor = getColor(json.optString(HIGHCOLOR.key), ContextCompat.getColor(this, R.color.dark_highColor)) - midColor = getColor(json.optString(MIDCOLOR.key), ContextCompat.getColor(this, R.color.inrange)) - lowColor = getColor(json.optString(LOWCOLOR.key), ContextCompat.getColor(this, R.color.low)) - lowBatColor = getColor(json.optString(LOWBATCOLOR.key), ContextCompat.getColor(this, R.color.dark_uploaderBatteryEmpty)) - carbColor = getColor(json.optString(CARBCOLOR.key), ContextCompat.getColor(this, R.color.carbs)) - basalBackgroundColor = getColor(json.optString(BASALBACKGROUNDCOLOR.key), ContextCompat.getColor(this, R.color.basal_dark)) - basalCenterColor = getColor(json.optString(BASALCENTERCOLOR.key), ContextCompat.getColor(this, R.color.basal_light)) - gridColor = getColor(json.optString(GRIDCOLOR.key), Color.WHITE) pointSize = json.optInt(POINTSIZE.key, 2) dayNameFormat = json.optString(DAYNAMEFORMAT.key, "E").takeIf { it.matches(Regex("E{1,4}")) } ?: "E" monthFormat = json.optString(MONTHFORMAT.key, "MMM").takeIf { it.matches(Regex("M{1,4}")) } ?: "MMM" - binding.dayName.text = dateUtil.dayNameString(dayNameFormat).substringBeforeLast(".") // Update daynName and month according to format on cwf loading + binding.dayName.text = dateUtil.dayNameString(dayNameFormat).substringBeforeLast(".") // Update dayName and month according to format on cwf loading binding.month.text = dateUtil.monthString(monthFormat).substringBeforeLast(".") + val jsonColor = dynPref[json.optString(DYNPREFCOLOR.key)] ?: json + highColor = getColor(jsonColor.optString(HIGHCOLOR.key), ContextCompat.getColor(this, R.color.dark_highColor)) + midColor = getColor(jsonColor.optString(MIDCOLOR.key), ContextCompat.getColor(this, R.color.inrange)) + lowColor = getColor(jsonColor.optString(LOWCOLOR.key), ContextCompat.getColor(this, R.color.low)) + lowBatColor = getColor(jsonColor.optString(LOWBATCOLOR.key), ContextCompat.getColor(this, R.color.dark_uploaderBatteryEmpty)) + carbColor = getColor(jsonColor.optString(CARBCOLOR.key), ContextCompat.getColor(this, R.color.carbs)) + basalBackgroundColor = getColor(jsonColor.optString(BASALBACKGROUNDCOLOR.key), ContextCompat.getColor(this, R.color.basal_dark)) + basalCenterColor = getColor(jsonColor.optString(BASALCENTERCOLOR.key), ContextCompat.getColor(this, R.color.basal_light)) + gridColor = getColor(jsonColor.optString(GRIDCOLOR.key), Color.WHITE) binding.mainLayout.forEach { view -> ViewMap.fromId(view.id)?.let { viewMap -> @@ -333,7 +338,7 @@ class CustomWatchface : BaseWatchFace() { private fun manageSpecificViews() { //Background should fill all the watchface and must be visible - val params = FrameLayout.LayoutParams((TEMPLATE_RESOLUTION * zoomFactor).toInt(), (TEMPLATE_RESOLUTION * zoomFactor).toInt()) + val params = FrameLayout.LayoutParams((templeResolution * zoomFactor).toInt(), (templeResolution * zoomFactor).toInt()) params.topMargin = 0 params.leftMargin = 0 binding.background.layoutParams = params @@ -388,10 +393,10 @@ class CustomWatchface : BaseWatchFace() { MINUTE(ViewKeys.MINUTE.key, R.id.minute), SECOND(ViewKeys.SECOND.key, R.id.second, R.string.key_show_seconds), TIMEPERIOD(ViewKeys.TIMEPERIOD.key, R.id.timePeriod), - DAY_NAME(ViewKeys.DAY_NAME.key, R.id.day_name), - DAY(ViewKeys.DAY.key, R.id.day), + DAY_NAME(ViewKeys.DAY_NAME.key, R.id.day_name, R.string.key_show_date), + DAY(ViewKeys.DAY.key, R.id.day, R.string.key_show_date), WEEKNUMBER(ViewKeys.WEEKNUMBER.key, R.id.week_number, R.string.key_show_week_number), - MONTH(ViewKeys.MONTH.key, R.id.month), + MONTH(ViewKeys.MONTH.key, R.id.month, R.string.key_show_date), LOOP(ViewKeys.LOOP.key, R.id.loop, R.string.key_show_external_status), DIRECTION(ViewKeys.DIRECTION.key, R.id.direction2, R.string.key_show_direction), TIMESTAMP(ViewKeys.TIMESTAMP.key, R.id.timestamp, R.string.key_show_ago), @@ -431,7 +436,7 @@ class CustomWatchface : BaseWatchFace() { ); companion object { - val TRANSPARENT = "#00000000" + const val TRANSPARENT = "#00000000" fun init(cwf: CustomWatchface) = values().forEach { it.cwf = cwf // reset all customized drawable when new watchface is loaded @@ -486,7 +491,7 @@ class CustomWatchface : BaseWatchFace() { left = (viewJson.optInt(LEFTMARGIN.key) * cwf.zoomFactor).toInt() top = (viewJson.optInt(TOPMARGIN.key) * cwf.zoomFactor).toInt() val params = FrameLayout.LayoutParams(width, height) - dynData = DynProvider.getDyn(cwf, viewJson.optString(DYNDATA.key), width, height, key) + dynData = DynProvider.getDyn(cwf, viewJson.optString(DYNPREF.key), viewJson.optString(DYNDATA.key), width, height, key) val topOffset = if (viewJson.optBoolean(TOPOFFSET.key, false)) dynData?.getTopOffset() ?: 0 else 0 val topOffsetTwin = ((twinView?.let { if (it.visibility != View.VISIBLE) viewJson.optInt(TOPOFFSETTWINHIDDEN.key,0) else 0 } ?: 0 ) * cwf.zoomFactor).toInt() params.topMargin = top + topOffset + topOffsetTwin @@ -502,7 +507,7 @@ class CustomWatchface : BaseWatchFace() { fun customizeTextView(view: TextView) { customizeViewCommon(view) viewJson?.let { viewJson -> - view.setTextSize(TypedValue.COMPLEX_UNIT_PX, (viewJson.optInt(TEXTSIZE.key, 22) * cwf.zoomFactor).toFloat()) + view.setTextSize(TypedValue.COMPLEX_UNIT_PX, ((dynData?.getTextSize() ?: viewJson.optInt(TEXTSIZE.key, 22)) * cwf.zoomFactor).toFloat()) view.gravity = GravityMap.gravity(viewJson.optString(GRAVITY.key, GravityMap.CENTER.key)) view.setTypeface( FontMap.font(viewJson.optString(FONT.key, FontMap.DEFAULT.key)), @@ -651,26 +656,36 @@ class CustomWatchface : BaseWatchFace() { } // This class containt mapping between keys used within json of Custom Watchface and preferences - private enum class PrefMap(val key: String, @StringRes val prefKey: Int) { + private enum class PrefMap(val key: String, @StringRes val prefKey: Int, val typeBool: Boolean) { - SHOW_IOB(CwfMetadataKey.CWF_PREF_WATCH_SHOW_IOB.key, R.string.key_show_iob), - SHOW_DETAILED_IOB(CwfMetadataKey.CWF_PREF_WATCH_SHOW_DETAILED_IOB.key, R.string.key_show_detailed_iob), - SHOW_COB(CwfMetadataKey.CWF_PREF_WATCH_SHOW_COB.key, R.string.key_show_cob), - SHOW_DELTA(CwfMetadataKey.CWF_PREF_WATCH_SHOW_DELTA.key, R.string.key_show_delta), - SHOW_AVG_DELTA(CwfMetadataKey.CWF_PREF_WATCH_SHOW_AVG_DELTA.key, R.string.key_show_avg_delta), - SHOW_DETAILED_DELTA(CwfMetadataKey.CWF_PREF_WATCH_SHOW_DETAILED_DELTA.key, R.string.key_show_detailed_delta), - SHOW_UPLOADER_BATTERY(CwfMetadataKey.CWF_PREF_WATCH_SHOW_UPLOADER_BATTERY.key, R.string.key_show_uploader_battery), - SHOW_RIG_BATTERY(CwfMetadataKey.CWF_PREF_WATCH_SHOW_RIG_BATTERY.key, R.string.key_show_rig_battery), - SHOW_TEMP_BASAL(CwfMetadataKey.CWF_PREF_WATCH_SHOW_TEMP_BASAL.key, R.string.key_show_temp_basal), - SHOW_DIRECTION(CwfMetadataKey.CWF_PREF_WATCH_SHOW_DIRECTION.key, R.string.key_show_direction), - SHOW_AGO(CwfMetadataKey.CWF_PREF_WATCH_SHOW_AGO.key, R.string.key_show_ago), - SHOW_BG(CwfMetadataKey.CWF_PREF_WATCH_SHOW_BG.key, R.string.key_show_bg), - SHOW_BGI(CwfMetadataKey.CWF_PREF_WATCH_SHOW_BGI.key, R.string.key_show_bgi), - SHOW_LOOP_STATUS(CwfMetadataKey.CWF_PREF_WATCH_SHOW_LOOP_STATUS.key, R.string.key_show_external_status), - SHOW_WEEK_NUMBER(CwfMetadataKey.CWF_PREF_WATCH_SHOW_WEEK_NUMBER.key, R.string.key_show_week_number) + SHOW_IOB(CwfMetadataKey.CWF_PREF_WATCH_SHOW_IOB.key, R.string.key_show_iob, true), + SHOW_DETAILED_IOB(CwfMetadataKey.CWF_PREF_WATCH_SHOW_DETAILED_IOB.key, R.string.key_show_detailed_iob, true), + SHOW_COB(CwfMetadataKey.CWF_PREF_WATCH_SHOW_COB.key, R.string.key_show_cob, true), + SHOW_DELTA(CwfMetadataKey.CWF_PREF_WATCH_SHOW_DELTA.key, R.string.key_show_delta, true), + SHOW_AVG_DELTA(CwfMetadataKey.CWF_PREF_WATCH_SHOW_AVG_DELTA.key, R.string.key_show_avg_delta, true), + SHOW_DETAILED_DELTA(CwfMetadataKey.CWF_PREF_WATCH_SHOW_DETAILED_DELTA.key, R.string.key_show_detailed_delta, true), + SHOW_UPLOADER_BATTERY(CwfMetadataKey.CWF_PREF_WATCH_SHOW_UPLOADER_BATTERY.key, R.string.key_show_uploader_battery, true), + SHOW_RIG_BATTERY(CwfMetadataKey.CWF_PREF_WATCH_SHOW_RIG_BATTERY.key, R.string.key_show_rig_battery, true), + SHOW_TEMP_BASAL(CwfMetadataKey.CWF_PREF_WATCH_SHOW_TEMP_BASAL.key, R.string.key_show_temp_basal, true), + SHOW_DIRECTION(CwfMetadataKey.CWF_PREF_WATCH_SHOW_DIRECTION.key, R.string.key_show_direction, true), + SHOW_AGO(CwfMetadataKey.CWF_PREF_WATCH_SHOW_AGO.key, R.string.key_show_ago, true), + SHOW_BG(CwfMetadataKey.CWF_PREF_WATCH_SHOW_BG.key, R.string.key_show_bg, true), + SHOW_BGI(CwfMetadataKey.CWF_PREF_WATCH_SHOW_BGI.key, R.string.key_show_bgi, true), + SHOW_LOOP_STATUS(CwfMetadataKey.CWF_PREF_WATCH_SHOW_LOOP_STATUS.key, R.string.key_show_external_status, true), + SHOW_WEEK_NUMBER(CwfMetadataKey.CWF_PREF_WATCH_SHOW_WEEK_NUMBER.key, R.string.key_show_week_number, true), + SHOW_DATE(CwfMetadataKey.CWF_PREF_WATCH_SHOW_DATE.key, R.string.key_show_date, true), + PREF_UNITS(JsonKeyValues.PREF_UNITS.key, R.string.key_units_mgdl, true), + PREF_DARK(JsonKeyValues.PREF_DARK.key, R.string.key_dark, true), + PREF_MATCH_DIVIDER(JsonKeyValues.PREF_MATCH_DIVIDER.key, R.string.key_match_divider, true); + + var value: String = "" + companion object { + fun fromKey(key: String) = PrefMap.values().firstOrNull { it.key == key } + } } private enum class ValueMap(val key: String, val min: Double, val max: Double) { + NONE("", 0.0, 0.0), SGV(ViewKeys.SGV.key, 39.0, 400.0), SGVLEVEL(JsonKeyValues.SGVLEVEL.key, -1.0, 1.0), DIRECTION(ViewKeys.DIRECTION.key, 1.0, 7.0), @@ -704,7 +719,7 @@ class CustomWatchface : BaseWatchFace() { companion object { - fun fromKey(key: String) = values().firstOrNull { it.key == key } + fun fromKey(key: String) = values().firstOrNull { it.key == key } ?: NONE } } @@ -713,6 +728,7 @@ class CustomWatchface : BaseWatchFace() { private val dynDrawable = mutableMapOf() private val dynColor = mutableMapOf() private val dynFontColor = mutableMapOf() + private val dynTextSize = mutableMapOf() private var dataRange: DataRange? = null private var topRange: DataRange? = null private var leftRange: DataRange? = null @@ -720,12 +736,15 @@ class CustomWatchface : BaseWatchFace() { val stepDraw: Int get() = dynDrawable.size - 1 val stepColor: Int - get() = dynColor.size - 1 + get() = dynColor[0]?.let { dynColor.size - 1 } ?: dynColor.size val stepFontColor: Int - get() = dynFontColor.size - 1 + get() = dynFontColor[0]?.let { dynFontColor.size - 1 } ?: dynFontColor.size + val stepTextSize: Int + get() = dynTextSize[0]?.let { dynTextSize.size - 1 } ?: dynTextSize.size val dataValue: Double? get() = when (valueMap) { + ValueMap.NONE -> 0.0 ValueMap.SGV -> if (cwf.singleBg.sgvString != "---") cwf.singleBg.sgv else null ValueMap.SGVLEVEL -> if (cwf.singleBg.sgvString != "---") cwf.singleBg.sgvLevel.toDouble() else null ValueMap.DIRECTION -> TrendArrowMap.value() @@ -747,50 +766,76 @@ class CustomWatchface : BaseWatchFace() { ?: (leftRange.invalidData * cwf.zoomFactor).toInt() } } ?: 0 fun getRotationOffset(): Int = dataRange?.let { dataRange -> rotationRange?.let { rotRange -> dataValue?.let { valueMap.dynValue(it, dataRange, rotRange) } ?: rotRange.invalidData } } ?: 0 fun getDrawable() = dataRange?.let { dataRange -> dataValue?.let { dynDrawable[valueMap.stepValue(it, dataRange, stepDraw)] } ?: dynDrawable[0] } - fun getFontColor() = if (stepFontColor > 0) dataRange?.let { dataRange -> dataValue?.let { dynFontColor[valueMap.stepValue(it, dataRange, stepFontColor)] } ?: dynFontColor[0] } else null - fun getColor() = if (stepColor > 0) dataRange?.let { dataRange -> dataValue?.let { dynColor[valueMap.stepValue(it, dataRange, stepColor)] } ?: dynColor[0] } else null + fun getFontColor() = if (stepFontColor > 0) dataRange?.let { dataRange -> dataValue?.let { dynFontColor[valueMap.stepValue(it, dataRange, stepFontColor)] } ?: dynFontColor[0] ?: dynFontColor[1] } else null + fun getTextSize() = if (stepTextSize > 0) dataRange?.let { dataRange -> dataValue?.let { dynTextSize[valueMap.stepValue(it, dataRange, stepTextSize)] } ?: dynTextSize[0] ?: dynTextSize[1] } else null + fun getColor() = if (stepColor > 0) dataRange?.let { dataRange -> dataValue?.let { dynColor[valueMap.stepValue(it, dataRange, stepColor)] } ?: dynColor[0] ?: dynColor[1] } else null private fun load() { - dynDrawable[0] = dataJson.optString(INVALIDIMAGE.key)?.let { cwf.resDataMap[it]?.toDrawable(cwf.resources, width, height) } - var idx = 1 - while (dataJson.has("${IMAGE.key}$idx")) { - cwf.resDataMap[dataJson.optString("${IMAGE.key}$idx")]?.toDrawable(cwf.resources, width, height).also { dynDrawable[idx] = it } - idx++ - } - dynColor[0] = cwf.getColor(dataJson.optString(INVALIDCOLOR.key)) - idx = 1 - while (dataJson.has("${COLOR.key}$idx")) { - dynColor[idx] = cwf.getColor(dataJson.optString("${COLOR.key}$idx")) - idx++ - } - dynFontColor[0] = cwf.getColor(dataJson.optString(INVALIDFONTCOLOR.key)) - idx = 1 - while (dataJson.has("${FONTCOLOR.key}$idx")) { - dynFontColor[idx] = cwf.getColor(dataJson.optString("${FONTCOLOR.key}$idx")) - idx++ - } DataRange(dataJson.optDouble(MINDATA.key, valueMap.min), dataJson.optDouble(MAXDATA.key, valueMap.max)).let { defaultRange -> dataRange = defaultRange topRange = parseDataRange(dataJson.optJSONObject(TOPOFFSET.key), defaultRange) leftRange = parseDataRange(dataJson.optJSONObject(LEFTOFFSET.key), defaultRange) rotationRange = parseDataRange(dataJson.optJSONObject(ROTATIONOFFSET.key), defaultRange) } + if (dataJson.has(INVALIDIMAGE.key)) + dynDrawable[0] = dataJson.optString(INVALIDIMAGE.key)?.let { cwf.resDataMap[it]?.toDrawable(cwf.resources, width, height) } + var idx = 1 + while (dataJson.has("${IMAGE.key}$idx")) { + cwf.resDataMap[dataJson.optString("${IMAGE.key}$idx")]?.toDrawable(cwf.resources, width, height).also { dynDrawable[idx] = it } + idx++ + } + if (dataJson.has(INVALIDCOLOR.key)) + dynColor[0] = cwf.getColor(dataJson.optString(INVALIDCOLOR.key)) + idx = 1 + while (dataJson.has("${COLOR.key}$idx")) { + dynColor[idx] = cwf.getColor(dataJson.optString("${COLOR.key}$idx")) + idx++ + } + if (dataJson.has(INVALIDFONTCOLOR.key)) + dynFontColor[0] = cwf.getColor(dataJson.optString(INVALIDFONTCOLOR.key)) + idx = 1 + while (dataJson.has("${FONTCOLOR.key}$idx")) { + dynFontColor[idx] = cwf.getColor(dataJson.optString("${FONTCOLOR.key}$idx")) + idx++ + } + if (dataJson.has(INVALIDTEXTSIZE.key)) + dynTextSize[0] = cwf.getColor(dataJson.optString(INVALIDTEXTSIZE.key)) + idx = 1 + while (dataJson.has("${TEXTSIZE.key}$idx")) { + dynTextSize[idx] = dataJson.optInt("${TEXTSIZE.key}$idx", 22) + idx++ + } } companion object { - val dynData = mutableMapOf() var dynJson: JSONObject? = null - fun init(dynJson: JSONObject?) { - this.dynJson = dynJson + fun init(cwf: CustomWatchface, json: JSONObject?) { + cwf.dynPref(json?.optJSONObject((DYNPREF.key))) + this.dynJson = json?.optJSONObject((DYNDATA.key)) dynData.clear() } - fun getDyn(cwf: CustomWatchface, key: String, width: Int, height: Int, defaultViewKey: String): DynProvider? = dynData["${defaultViewKey}_$key"] - ?: dynJson?.optJSONObject(key)?.let { dataJson -> - ValueMap.fromKey(dataJson.optString(VALUEKEY.key, defaultViewKey))?.let { valueMap -> - DynProvider(cwf, dataJson, valueMap, width, height).also { it.load() } + fun getDyn(cwf: CustomWatchface, keyPref: String, key: String, width: Int, height: Int, defaultViewKey: String): DynProvider? { + if (dynData[defaultViewKey] != null) + return dynData[defaultViewKey] + + cwf.dynPref[keyPref]?.let { dynPref -> + ValueMap.fromKey(dynPref.optString(VALUEKEY.key, defaultViewKey)).let { valueMap -> + DynProvider(cwf, dynPref, valueMap, width, height).also { it.load() } } - }?.also { dynData["${defaultViewKey}_$key"] = it } + }?.also { dynData[defaultViewKey] = it } + + if (dynData[defaultViewKey] != null) + return dynData[defaultViewKey] + + dynJson?.optJSONObject(key)?.let { dynJson -> + ValueMap.fromKey(dynJson.optString(VALUEKEY.key, defaultViewKey)).let { valueMap -> + DynProvider(cwf, dynJson, valueMap, width, height).also { it.load() } + } + }?.also { dynData[defaultViewKey] = it } + + return dynData[defaultViewKey] + } private fun parseDataRange(json: JSONObject?, defaultData: DataRange) = json?.let { @@ -804,6 +849,53 @@ class CustomWatchface : BaseWatchFace() { } private class DataRange (val minData: Double, val maxData: Double, val invalidData: Int = 0) + + // block below build a map of prefKey => json Bloc recursively + val dynPref = mutableMapOf() + private val valPref = mutableMapOf() + fun dynPref(dynJson: JSONObject?) { + valPref.clear() + dynPref.clear() + dynJson?.keys()?.forEach { key -> + val targetJson = JSONObject() + dynJson.optJSONObject(key)?.let { buildDynPrefs(dynJson, targetJson, it, key, mutableSetOf()) } + } + } + + private fun buildDynPrefs(dynJson: JSONObject, targetJson: JSONObject, json: JSONObject, key: String, visitedKeys: MutableSet) { + val prefKey = json.optString(PREFKEY.key) + PrefMap.fromKey(prefKey)?.let { prefMap -> + val value = valPref[prefMap.key] + ?: (if (prefMap.typeBool) sp.getBoolean(prefMap.prefKey, false).toString() else sp.getString(prefMap.prefKey, "")).also { + valPref[prefMap.key] = it + } + json.optJSONObject(value)?.let { nextJson -> + if (nextJson.has(DYNPREF.key)) { + nextJson.keys().forEach { key -> + if ( key != DYNPREF.key) + targetJson.putOpt(key, nextJson.opt(key)) + } + val nextKey = nextJson.optString(DYNPREF.key) + if (nextKey.isNotEmpty() && nextKey !in visitedKeys) { + visitedKeys += nextKey + dynJson.optJSONObject(nextKey)?.let { + buildDynPrefs(dynJson, targetJson, it, key, visitedKeys) + } + } + } else { + nextJson.keys().forEach { key -> + if ( key != DYNPREF.key) + targetJson.putOpt(key, nextJson.opt(key)) + } + dynPref[key] = targetJson + } + } + } + } + + private fun checkPref() = valPref.any { (prefMap, s) -> + s != PrefMap.fromKey(prefMap)?.let { if (it.typeBool) sp.getBoolean(it.prefKey, false).toString() else sp.getString(it.prefKey, "") } + } } diff --git a/wear/src/main/kotlin/app/aaps/wear/watchfaces/utils/WatchfaceViewAdapter.kt b/wear/src/main/kotlin/app/aaps/wear/watchfaces/utils/WatchfaceViewAdapter.kt index 18c06f1ef1..70748075b8 100644 --- a/wear/src/main/kotlin/app/aaps/wear/watchfaces/utils/WatchfaceViewAdapter.kt +++ b/wear/src/main/kotlin/app/aaps/wear/watchfaces/utils/WatchfaceViewAdapter.kt @@ -4,8 +4,6 @@ import androidx.viewbinding.ViewBinding import app.aaps.wear.databinding.ActivityBigchartBinding import app.aaps.wear.databinding.ActivityCustomBinding import app.aaps.wear.databinding.ActivityDigitalstyleBinding -import app.aaps.wear.databinding.ActivityHome2Binding -import app.aaps.wear.databinding.ActivityHomeBinding import app.aaps.wear.databinding.ActivityHomeLargeBinding import app.aaps.wear.databinding.ActivityNochartBinding @@ -15,8 +13,6 @@ import app.aaps.wear.databinding.ActivityNochartBinding */ class WatchfaceViewAdapter( aL: ActivityHomeLargeBinding? = null, - a2: ActivityHome2Binding? = null, - aa: ActivityHomeBinding? = null, bC: ActivityBigchartBinding? = null, ds: ActivityDigitalstyleBinding? = null, nC: ActivityNochartBinding? = null, @@ -24,7 +20,7 @@ class WatchfaceViewAdapter( ) { init { - if (aL == null && a2 == null && aa == null && bC == null && ds == null && nC == null && cU == null) { + if (aL == null && bC == null && ds == null && nC == null && cU == null) { throw IllegalArgumentException("Require at least on Binding parameter") } } @@ -33,47 +29,46 @@ class WatchfaceViewAdapter( // Required attributes val mainLayout = - aL?.mainLayout ?: a2?.mainLayout ?: aa?.mainLayout ?: bC?.mainLayout ?: bC?.mainLayout ?: ds?.mainLayout ?: nC?.mainLayout ?: cU?.mainLayout + aL?.mainLayout ?: bC?.mainLayout ?: bC?.mainLayout ?: ds?.mainLayout ?: nC?.mainLayout ?: cU?.mainLayout ?: throw IllegalArgumentException(errorMessage) val timestamp = - aL?.timestamp ?: a2?.timestamp ?: aa?.timestamp ?: bC?.timestamp ?: bC?.timestamp ?: ds?.timestamp ?: nC?.timestamp ?: cU?.timestamp + aL?.timestamp ?: bC?.timestamp ?: bC?.timestamp ?: ds?.timestamp ?: nC?.timestamp ?: cU?.timestamp ?: throw IllegalArgumentException(errorMessage) val root = - aL?.root ?: a2?.root ?: aa?.root ?: bC?.root ?: bC?.root ?: ds?.root ?: nC?.root ?: cU?.root + aL?.root ?: bC?.root ?: bC?.root ?: ds?.root ?: nC?.root ?: cU?.root ?: throw IllegalArgumentException(errorMessage) // Optional attributes - val sgv = aL?.sgv ?: a2?.sgv ?: aa?.sgv ?: bC?.sgv ?: bC?.sgv ?: ds?.sgv ?: nC?.sgv ?: cU?.sgv - val direction = aL?.direction ?: a2?.direction ?: aa?.direction ?: ds?.direction - val loop = a2?.loop ?: cU?.loop - val delta = aL?.delta ?: a2?.delta ?: aa?.delta ?: bC?.delta ?: bC?.delta ?: ds?.delta ?: nC?.delta ?: cU?.delta - val avgDelta = a2?.avgDelta ?: bC?.avgDelta ?: bC?.avgDelta ?: ds?.avgDelta ?: nC?.avgDelta ?: cU?.avgDelta - val uploaderBattery = aL?.uploaderBattery ?: a2?.uploaderBattery ?: aa?.uploaderBattery ?: ds?.uploaderBattery ?: cU?.uploaderBattery - val rigBattery = a2?.rigBattery ?: ds?.rigBattery ?: cU?.rigBattery - val basalRate = a2?.basalRate ?: ds?.basalRate ?: cU?.basalRate - val bgi = a2?.bgi ?: ds?.bgi ?: cU?.bgi - val AAPSv2 = a2?.AAPSv2 ?: ds?.AAPSv2 ?: cU?.AAPSv2 - val cob1 = a2?.cob1 ?: ds?.cob1 ?: cU?.cob1 - val cob2 = a2?.cob2 ?: ds?.cob2 ?: cU?.cob2 - val time = aL?.time ?: a2?.time ?: aa?.time ?: bC?.time ?: bC?.time ?: nC?.time ?: cU?.time + val sgv = aL?.sgv ?: bC?.sgv ?: bC?.sgv ?: ds?.sgv ?: nC?.sgv ?: cU?.sgv + val direction = aL?.direction ?: ds?.direction + val loop = cU?.loop + val delta = aL?.delta ?: bC?.delta ?: bC?.delta ?: ds?.delta ?: nC?.delta ?: cU?.delta + val avgDelta = bC?.avgDelta ?: bC?.avgDelta ?: ds?.avgDelta ?: nC?.avgDelta ?: cU?.avgDelta + val uploaderBattery = aL?.uploaderBattery ?: ds?.uploaderBattery ?: cU?.uploaderBattery + val rigBattery = ds?.rigBattery ?: cU?.rigBattery + val basalRate = ds?.basalRate ?: cU?.basalRate + val bgi = ds?.bgi ?: cU?.bgi + val AAPSv2 = ds?.AAPSv2 ?: cU?.AAPSv2 + val cob1 = ds?.cob1 ?: cU?.cob1 + val cob2 = ds?.cob2 ?: cU?.cob2 + val time = aL?.time ?: bC?.time ?: bC?.time ?: nC?.time ?: cU?.time val second = cU?.second val minute = ds?.minute ?: cU?.minute val hour = ds?.hour ?: cU?.hour - val day = a2?.day ?: ds?.day ?: cU?.day - val month = a2?.month ?: ds?.month ?: cU?.month - val iob1 = a2?.iob1 ?: ds?.iob1 ?: cU?.iob1 - val iob2 = a2?.iob2 ?: ds?.iob2 ?: cU?.iob2 - val chart = a2?.chart ?: aa?.chart ?: bC?.chart ?: bC?.chart ?: ds?.chart ?: cU?.chart - val status = aL?.status ?: aa?.status ?: bC?.status ?: bC?.status ?: nC?.status + val day = ds?.day ?: cU?.day + val month = ds?.month ?: cU?.month + val iob1 = ds?.iob1 ?: cU?.iob1 + val iob2 = ds?.iob2 ?: cU?.iob2 + val chart = bC?.chart ?: bC?.chart ?: ds?.chart ?: cU?.chart + val status = aL?.status ?: bC?.status ?: bC?.status ?: nC?.status val timePeriod = ds?.timePeriod ?: aL?.timePeriod ?: nC?.timePeriod ?: bC?.timePeriod ?: cU?.timePeriod val dayName = ds?.dayName ?: cU?.dayName val mainMenuTap = ds?.mainMenuTap val chartZoomTap = ds?.chartZoomTap - val dateTime = ds?.dateTime ?: a2?.dateTime + val dateTime = ds?.dateTime val weekNumber = ds?.weekNumber ?: cU?.weekNumber // val minuteHand = cU?.minuteHand - // val secondaryLayout = aL?.secondaryLayout ?: a2?.secondaryLayout ?: aa?.secondaryLayout ?: ds?.secondaryLayout - // val tertiaryLayout = a2?.tertiaryLayout + // val secondaryLayout = aL?.secondaryLayout ?: ds?.secondaryLayout // val hourHand = cU?.hourHand companion object { @@ -81,12 +76,10 @@ class WatchfaceViewAdapter( fun getBinding(bindLayout: ViewBinding): WatchfaceViewAdapter { return when (bindLayout) { is ActivityHomeLargeBinding -> WatchfaceViewAdapter(bindLayout) - is ActivityHome2Binding -> WatchfaceViewAdapter(null, bindLayout) - is ActivityHomeBinding -> WatchfaceViewAdapter(null, null, bindLayout) - is ActivityBigchartBinding -> WatchfaceViewAdapter(null, null, null, bindLayout) - is ActivityDigitalstyleBinding -> WatchfaceViewAdapter(null, null, null, null, bindLayout) - is ActivityNochartBinding -> WatchfaceViewAdapter(null, null, null, null, null, bindLayout) - is ActivityCustomBinding -> WatchfaceViewAdapter(null, null, null, null, null, null, bindLayout) + is ActivityBigchartBinding -> WatchfaceViewAdapter(null, bindLayout) + is ActivityDigitalstyleBinding -> WatchfaceViewAdapter(null, null, bindLayout) + is ActivityNochartBinding -> WatchfaceViewAdapter(null, null, null, bindLayout) + is ActivityCustomBinding -> WatchfaceViewAdapter(null, null, null, null, bindLayout) else -> throw IllegalArgumentException("ViewBinding is not implement in WatchfaceViewAdapter") } } diff --git a/wear/src/main/res/drawable/watchface_graph.png b/wear/src/main/res/drawable/watchface_graph.png deleted file mode 100644 index af9e88a227..0000000000 Binary files a/wear/src/main/res/drawable/watchface_graph.png and /dev/null differ diff --git a/wear/src/main/res/drawable/watchface_graph_2.png b/wear/src/main/res/drawable/watchface_graph_2.png deleted file mode 100644 index de0aab2d42..0000000000 Binary files a/wear/src/main/res/drawable/watchface_graph_2.png and /dev/null differ diff --git a/wear/src/main/res/layout/activity_home.xml b/wear/src/main/res/layout/activity_home.xml deleted file mode 100644 index 6a046da239..0000000000 --- a/wear/src/main/res/layout/activity_home.xml +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/wear/src/main/res/layout/activity_home_2.xml b/wear/src/main/res/layout/activity_home_2.xml deleted file mode 100644 index 0244393e33..0000000000 --- a/wear/src/main/res/layout/activity_home_2.xml +++ /dev/null @@ -1,285 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/wear/src/main/res/values-af-rZA/strings.xml b/wear/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index beda65c2f1..0000000000 --- a/wear/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - Laag - Hoog - Outo - Rekenaar - Bereken - Behandeling - Bolus - Karbs - Instellings - Status - Prima/vul - Duur - Doelwit - Laag - Hoog - Karbs - Persentasie - Durasie [h] - Insulien - Bolus - Pomp - Lus - Profiel wissel - TDD - IAB - Af - Hipo - Aktiwiteit - Per hand - Kanselleer - --U - diff --git a/wear/src/main/res/values-bg-rBG/strings.xml b/wear/src/main/res/values-bg-rBG/strings.xml index eeca18334c..3bfc3b9773 100644 --- a/wear/src/main/res/values-bg-rBG/strings.xml +++ b/wear/src/main/res/values-bg-rBG/strings.xml @@ -7,7 +7,6 @@ AAPS(Графика) AAPS(без Графика) AAPS(Кръгъл) - AAPS(v2) AAPS (DigitalStyle) AAPS(Персонализиран) AAPS(Действия) diff --git a/wear/src/main/res/values-cs-rCZ/strings.xml b/wear/src/main/res/values-cs-rCZ/strings.xml index ff0f4e4dfb..30e21a1d06 100644 --- a/wear/src/main/res/values-cs-rCZ/strings.xml +++ b/wear/src/main/res/values-cs-rCZ/strings.xml @@ -7,7 +7,6 @@ AAPS(VelkýGraf) AAPS(BezGrafu) AAPS(Kruhový) - AAPS(v2) AAPS (DigitalStyle) AAPS (vlastní) AAPS(Akce) diff --git a/wear/src/main/res/values-da-rDK/strings.xml b/wear/src/main/res/values-da-rDK/strings.xml index 3dc905dda5..7253646633 100644 --- a/wear/src/main/res/values-da-rDK/strings.xml +++ b/wear/src/main/res/values-da-rDK/strings.xml @@ -7,7 +7,6 @@ AAPS(StorGraf) AAPS(IngenGraf) AAPS(Cirkel) - AAPS(v2) AAPS (DigitalStil) AAPS(Brugerdefineret) AAPS (Handlinger) diff --git a/wear/src/main/res/values-de-rDE/strings.xml b/wear/src/main/res/values-de-rDE/strings.xml index ea613f1c35..05c79df832 100644 --- a/wear/src/main/res/values-de-rDE/strings.xml +++ b/wear/src/main/res/values-de-rDE/strings.xml @@ -7,7 +7,6 @@ AAPS(GroßerGraph) AAPS(KeinGraph) AAPS(Kreis) - AAPS(v2) AAPS(DigitalStyle) AAPS(Custom) AAPS(Aktionen) diff --git a/wear/src/main/res/values-el-rGR/strings.xml b/wear/src/main/res/values-el-rGR/strings.xml index 52efac981f..2b1ce01ed0 100644 --- a/wear/src/main/res/values-el-rGR/strings.xml +++ b/wear/src/main/res/values-el-rGR/strings.xml @@ -7,7 +7,6 @@ AAPS(μεγαλο_γράφημα) AAPS(χωρίς_γράφημα) AAPS(Κυκλικό) - AAPS(v2) AAPS(ψηφιακό) AAPS(προσαρμοσμένα_χαρακτηριστικά) AAPS( Ενέργειες) diff --git a/wear/src/main/res/values-es-rES/strings.xml b/wear/src/main/res/values-es-rES/strings.xml index d7dd4c9ac3..7cbbf11d3d 100644 --- a/wear/src/main/res/values-es-rES/strings.xml +++ b/wear/src/main/res/values-es-rES/strings.xml @@ -7,7 +7,6 @@ AAPS (Aumentado) AAPS (SinGráfico) AAPS (Círculo) - AAPS(v2) AAPS (Digital) AAPS(personalizado) AAPS(Acciones) diff --git a/wear/src/main/res/values-fr-rFR/strings.xml b/wear/src/main/res/values-fr-rFR/strings.xml index 3c0669aac0..fe943cf4cb 100644 --- a/wear/src/main/res/values-fr-rFR/strings.xml +++ b/wear/src/main/res/values-fr-rFR/strings.xml @@ -7,7 +7,6 @@ AAPS (GrandGraph) AAPS (SansGraph) AAPS (Cercle) - AAPS (v2) AAPS (Digital) AAPS(perso) AAPS (Actions) diff --git a/wear/src/main/res/values-hr-rHR/strings.xml b/wear/src/main/res/values-hr-rHR/strings.xml index 9d657e0902..756134da41 100644 --- a/wear/src/main/res/values-hr-rHR/strings.xml +++ b/wear/src/main/res/values-hr-rHR/strings.xml @@ -7,7 +7,6 @@ AAPS(Veliki Graf) AAPS(Bez grafa) AAPS(Kružni) - AAPS(v2) Nisko Visoko Kalkulator diff --git a/wear/src/main/res/values-it-rIT/strings.xml b/wear/src/main/res/values-it-rIT/strings.xml index bd62bf02ab..6f0c290eb7 100644 --- a/wear/src/main/res/values-it-rIT/strings.xml +++ b/wear/src/main/res/values-it-rIT/strings.xml @@ -7,7 +7,6 @@ AAPS(BigChart) AAPS(NoChart) AAPS(Circle) - AAPS(v2) AAPS(DigitalStyle) AAPS(Personalizzato) AAPS(azioni) diff --git a/wear/src/main/res/values-iw-rIL/strings.xml b/wear/src/main/res/values-iw-rIL/strings.xml index f967777df3..cce9270b65 100644 --- a/wear/src/main/res/values-iw-rIL/strings.xml +++ b/wear/src/main/res/values-iw-rIL/strings.xml @@ -7,7 +7,6 @@ AAPS (תרשים גדול) AAPS (ללא תרשים) AAPS (עיגול) - AAPS (v2) AAPS (דיגיטלי) AAPS (פעולות) AAPS (מטרה זמנית) diff --git a/wear/src/main/res/values-ja-rJP/strings.xml b/wear/src/main/res/values-ja-rJP/strings.xml deleted file mode 100644 index da5a4a92d6..0000000000 --- a/wear/src/main/res/values-ja-rJP/strings.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - 炭水化物 - ターゲット - 炭水化物 - ポンプ - キャンセル - diff --git a/wear/src/main/res/values-ko-rKR/strings.xml b/wear/src/main/res/values-ko-rKR/strings.xml index fd4d545f9e..d29ae5d50f 100644 --- a/wear/src/main/res/values-ko-rKR/strings.xml +++ b/wear/src/main/res/values-ko-rKR/strings.xml @@ -7,7 +7,6 @@ AAPS(큰차트) AAPS(차트없음) AAPS(원형) - AAPS(v2) AAPS(디지털방식) AAPS(Custom) AAPS(Actions) diff --git a/wear/src/main/res/values-lt-rLT/strings.xml b/wear/src/main/res/values-lt-rLT/strings.xml index 4fe153c042..cc2c637eb5 100644 --- a/wear/src/main/res/values-lt-rLT/strings.xml +++ b/wear/src/main/res/values-lt-rLT/strings.xml @@ -7,7 +7,6 @@ AAPS(DidelisGrafikas) AAPS(BeGrafiko) AAPS(Apvalus) - AAPS(v2) AAPS(DigitalStyle) AAPS(suasmeninta) AAPS(Veiksmai) diff --git a/wear/src/main/res/values-nb-rNO/strings.xml b/wear/src/main/res/values-nb-rNO/strings.xml index a42336a2f1..6c153b2e00 100644 --- a/wear/src/main/res/values-nb-rNO/strings.xml +++ b/wear/src/main/res/values-nb-rNO/strings.xml @@ -7,7 +7,6 @@ AAPS (stor graf) AAPS (ingen graf) AAPS (sirkel) - AAPS(v2) AAPS(Digitalstil) AAPS(Tilpasset) AAPS(Actions) @@ -42,7 +41,7 @@ Vis BGI Vis retningspil Vis siden - Vis TBR + Vis midl. basal Vis Bolus & SMB Vis rutenett Mørkt diff --git a/wear/src/main/res/values-nl-rNL/strings.xml b/wear/src/main/res/values-nl-rNL/strings.xml index 704466c59a..9bd4769f6a 100644 --- a/wear/src/main/res/values-nl-rNL/strings.xml +++ b/wear/src/main/res/values-nl-rNL/strings.xml @@ -7,7 +7,6 @@ AAPS(GroteGrafiek) AAPS(GeenGrafiek) AAPS(Cirkel) - AAPS(v2) AAPS(DigitaleStijl) AAPS(Custom) AAPS(Acties) diff --git a/wear/src/main/res/values-pl-rPL/strings.xml b/wear/src/main/res/values-pl-rPL/strings.xml index 2eb5cd5f3b..ba9833c5a6 100644 --- a/wear/src/main/res/values-pl-rPL/strings.xml +++ b/wear/src/main/res/values-pl-rPL/strings.xml @@ -7,7 +7,6 @@ AAPS(DużyWykres) AAPS(BezWykresu) AAPS(Koło) - AAPS(v2) AAPS(StylCyfrowy) AAPS(niestandardowy) AAPS(Ustawienia) diff --git a/wear/src/main/res/values-pt-rBR/strings.xml b/wear/src/main/res/values-pt-rBR/strings.xml index a30c53b003..e3e7c48a72 100644 --- a/wear/src/main/res/values-pt-rBR/strings.xml +++ b/wear/src/main/res/values-pt-rBR/strings.xml @@ -7,7 +7,6 @@ AAPS(GrafGrande) AAPS(SemGraf) AAPS(Círculo) - AAPS(v2) AAPS(DigitalStyle) AAPS(Ações) AAPS(Meta Temporária) diff --git a/wear/src/main/res/values-pt-rPT/strings.xml b/wear/src/main/res/values-pt-rPT/strings.xml index 41bc5307b5..82c68af408 100644 --- a/wear/src/main/res/values-pt-rPT/strings.xml +++ b/wear/src/main/res/values-pt-rPT/strings.xml @@ -7,7 +7,6 @@ AAPS(GrafGrande) AAPS(SemGraf) AAPS(Círculo) - AAPS(v2) AAPS(DigitalStyle) AAPS(personalizado) AAPS(Ações) diff --git a/wear/src/main/res/values-ro-rRO/strings.xml b/wear/src/main/res/values-ro-rRO/strings.xml index 0fd9642499..ab68de875f 100644 --- a/wear/src/main/res/values-ro-rRO/strings.xml +++ b/wear/src/main/res/values-ro-rRO/strings.xml @@ -7,7 +7,6 @@ AAPS(GraficMare) AAPS(FărăGrafic) AAPS(Cerc) - AAPS(v2) AAPS (DigitalStyle) AAPS (Personalizat) AAPS(Acțiuni) diff --git a/wear/src/main/res/values-ru-rRU/strings.xml b/wear/src/main/res/values-ru-rRU/strings.xml index b1adbce79f..4e69bf0231 100644 --- a/wear/src/main/res/values-ru-rRU/strings.xml +++ b/wear/src/main/res/values-ru-rRU/strings.xml @@ -7,7 +7,6 @@ AAPS (Крупный график) AAPS (Без графика) AAPS (круглый) - AAPS(v2) AAPS (ЦифровойСтиль) AAPS (настраиваемый) AAPS (Действия) diff --git a/wear/src/main/res/values-sk-rSK/strings.xml b/wear/src/main/res/values-sk-rSK/strings.xml index 86bdf56cb4..b1ce45a13d 100644 --- a/wear/src/main/res/values-sk-rSK/strings.xml +++ b/wear/src/main/res/values-sk-rSK/strings.xml @@ -7,7 +7,6 @@ AAPS(VeľkýGraf) AAPS(ŽiadnyGraf) AAPS(Kruhový) - AAPS(v2) AAPS (DigitalStyle) AAPS (vlastný) AAPS (Akcie) diff --git a/wear/src/main/res/values-sv-rSE/strings.xml b/wear/src/main/res/values-sv-rSE/strings.xml index 022ee17421..5de615b58c 100644 --- a/wear/src/main/res/values-sv-rSE/strings.xml +++ b/wear/src/main/res/values-sv-rSE/strings.xml @@ -7,7 +7,6 @@ AAPS (BigChart) AAPS (NoChart) AAPS (Circle) - AAPS(v2) AAPS (DigitalStyle) AAPS (anpassad) AAPS(Åtgärder) diff --git a/wear/src/main/res/values-tr-rTR/strings.xml b/wear/src/main/res/values-tr-rTR/strings.xml index 5e2e96c084..37a7593d7e 100644 --- a/wear/src/main/res/values-tr-rTR/strings.xml +++ b/wear/src/main/res/values-tr-rTR/strings.xml @@ -7,7 +7,6 @@ AAPS(BüyükGrafik) AAPS(GrafikYok) AAPS(Daire) - AAPS (v2) AAPS(DijitalStil) AAPS(Özel) AAPS(Eylemler) diff --git a/wear/src/main/res/values-zh-rCN/strings.xml b/wear/src/main/res/values-zh-rCN/strings.xml index 1d8d4093ae..5f1c9c315f 100644 --- a/wear/src/main/res/values-zh-rCN/strings.xml +++ b/wear/src/main/res/values-zh-rCN/strings.xml @@ -7,7 +7,6 @@ AAPS(大图) AAPS(无图) AAPS(圆形) - AAPS(v2) AAPS(数字风格) AAPS(操作) AAPS(临时目标) diff --git a/wear/src/main/res/values/strings.xml b/wear/src/main/res/values/strings.xml index 6599af1430..b346d4010c 100644 --- a/wear/src/main/res/values/strings.xml +++ b/wear/src/main/res/values/strings.xml @@ -2,12 +2,10 @@ AAPS AAPS - AAPS AAPS(Large) AAPS(BigChart) AAPS(NoChart) AAPS(Circle) - AAPS(v2) AAPS(DigitalStyle) AAPS(Custom) AAPS(Actions) diff --git a/wear/src/main/res/xml/watch_face_configuration_custom.xml b/wear/src/main/res/xml/watch_face_configuration_custom.xml index 57de0089a4..e6e2f3408d 100644 --- a/wear/src/main/res/xml/watch_face_configuration_custom.xml +++ b/wear/src/main/res/xml/watch_face_configuration_custom.xml @@ -16,6 +16,28 @@ app:wear_iconOff="@drawable/settings_off" app:wear_iconOn="@drawable/settings_on" /> + + + + + + - - - - - - - - - - - diff --git a/wear/src/main/res/xml/watch_face_configuration_home2.xml b/wear/src/main/res/xml/watch_face_configuration_home2.xml deleted file mode 100644 index 3d86ad7cc6..0000000000 --- a/wear/src/main/res/xml/watch_face_configuration_home2.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - -