From de8f10f456f9b281f6079424b857a62e0c95243d Mon Sep 17 00:00:00 2001 From: osodebailar Date: Wed, 13 Apr 2022 09:48:20 +0200 Subject: [PATCH 01/27] attributes for icons --- app/src/main/res/drawable/ic_cp_basal_no_tbr.xml | 2 +- app/src/main/res/drawable/ic_cp_basal_start.xml | 2 +- app/src/main/res/drawable/ic_cp_basal_tbr_high.xml | 2 +- app/src/main/res/drawable/ic_cp_basal_tbr_low.xml | 2 +- .../main/res/drawable/ic_swap_vert_black_48dp_green.xml | 2 +- app/src/main/res/drawable/ic_x_swap_vert.xml | 7 ++++--- core/src/main/res/drawable/ic_cp_stats.xml | 8 ++++---- core/src/main/res/drawable/ic_temptarget_high.xml | 2 +- core/src/main/res/values-night/colors.xml | 2 ++ core/src/main/res/values-night/styles.xml | 7 +++++++ core/src/main/res/values/attrs.xml | 7 +++++++ core/src/main/res/values/colors.xml | 2 ++ core/src/main/res/values/styles.xml | 7 +++++++ 13 files changed, 39 insertions(+), 13 deletions(-) diff --git a/app/src/main/res/drawable/ic_cp_basal_no_tbr.xml b/app/src/main/res/drawable/ic_cp_basal_no_tbr.xml index 840a639f9c..e9385125b6 100644 --- a/app/src/main/res/drawable/ic_cp_basal_no_tbr.xml +++ b/app/src/main/res/drawable/ic_cp_basal_no_tbr.xml @@ -5,5 +5,5 @@ android:viewportHeight="24"> + android:fillColor="?attr/basalNoTbrColor"/> diff --git a/app/src/main/res/drawable/ic_cp_basal_start.xml b/app/src/main/res/drawable/ic_cp_basal_start.xml index 1b7781daed..d8b927366e 100644 --- a/app/src/main/res/drawable/ic_cp_basal_start.xml +++ b/app/src/main/res/drawable/ic_cp_basal_start.xml @@ -5,5 +5,5 @@ android:viewportHeight="24"> + android:fillColor="?attr/basalstartColor"/> diff --git a/app/src/main/res/drawable/ic_cp_basal_tbr_high.xml b/app/src/main/res/drawable/ic_cp_basal_tbr_high.xml index 1b7781daed..dba9f794d9 100644 --- a/app/src/main/res/drawable/ic_cp_basal_tbr_high.xml +++ b/app/src/main/res/drawable/ic_cp_basal_tbr_high.xml @@ -5,5 +5,5 @@ android:viewportHeight="24"> + android:fillColor="?attr/basalHighColor"/> diff --git a/app/src/main/res/drawable/ic_cp_basal_tbr_low.xml b/app/src/main/res/drawable/ic_cp_basal_tbr_low.xml index 9f3d94563f..bcac9407aa 100644 --- a/app/src/main/res/drawable/ic_cp_basal_tbr_low.xml +++ b/app/src/main/res/drawable/ic_cp_basal_tbr_low.xml @@ -5,5 +5,5 @@ android:viewportHeight="24"> + android:fillColor="?attr/basalLowColor"/> diff --git a/app/src/main/res/drawable/ic_swap_vert_black_48dp_green.xml b/app/src/main/res/drawable/ic_swap_vert_black_48dp_green.xml index f78eaede2c..e5dc16a43e 100644 --- a/app/src/main/res/drawable/ic_swap_vert_black_48dp_green.xml +++ b/app/src/main/res/drawable/ic_swap_vert_black_48dp_green.xml @@ -1,4 +1,4 @@ - diff --git a/app/src/main/res/drawable/ic_x_swap_vert.xml b/app/src/main/res/drawable/ic_x_swap_vert.xml index f5182fe7b4..3d6735ae12 100644 --- a/app/src/main/res/drawable/ic_x_swap_vert.xml +++ b/app/src/main/res/drawable/ic_x_swap_vert.xml @@ -4,7 +4,8 @@ android:viewportHeight="24" android:viewportWidth="24" xmlns:android="http://schemas.android.com/apk/res/android"> - - - + + + diff --git a/core/src/main/res/drawable/ic_cp_stats.xml b/core/src/main/res/drawable/ic_cp_stats.xml index 81b3952eb4..a95eef3884 100644 --- a/core/src/main/res/drawable/ic_cp_stats.xml +++ b/core/src/main/res/drawable/ic_cp_stats.xml @@ -7,24 +7,24 @@ android:pathData="M5.719,19.125L5.719,11.828" android:strokeWidth="2.2677" android:fillColor="#00000000" - android:strokeColor="#FEAF05" + android:strokeColor="?attr/statsColor" android:strokeLineCap="round"/> diff --git a/core/src/main/res/drawable/ic_temptarget_high.xml b/core/src/main/res/drawable/ic_temptarget_high.xml index ae0e9799ca..38c1f04bb7 100644 --- a/core/src/main/res/drawable/ic_temptarget_high.xml +++ b/core/src/main/res/drawable/ic_temptarget_high.xml @@ -5,7 +5,7 @@ android:viewportHeight="24"> + android:fillColor="?attr/tempTargetbgInRange"/> diff --git a/core/src/main/res/values-night/colors.xml b/core/src/main/res/values-night/colors.xml index 56c54d9d6e..a75dfe6902 100644 --- a/core/src/main/res/values-night/colors.xml +++ b/core/src/main/res/values-night/colors.xml @@ -92,6 +92,7 @@ #E83258 #00FFFF #00FFFF + #008585 #5a595b #D000FF00 @@ -217,6 +218,7 @@ #FEAF05 #67DFE8 #6AE86D + #FEAF05 #323232 diff --git a/core/src/main/res/values-night/styles.xml b/core/src/main/res/values-night/styles.xml index 33786a51d6..f7b6521c01 100644 --- a/core/src/main/res/values-night/styles.xml +++ b/core/src/main/res/values-night/styles.xml @@ -49,6 +49,8 @@ @color/cardColorBackground @color/exercise + + @color/stats @color/low @@ -171,6 +173,7 @@ @color/carbs @color/tempTargetConfirmation + @color/tempTargetConfirmation @color/loopSuspended @@ -189,6 +192,9 @@ @color/extBolusStop @color/actionBasal @color/actionBasal + @color/actionBasal + @color/actionBasal + @color/actionBasal @color/pumpCanula @color/cgmInsert @color/pumpBattery @@ -197,6 +203,7 @@ @color/question @color/pumpHistory @color/userOption + @color/sens @color/cob @color/uam diff --git a/core/src/main/res/values/attrs.xml b/core/src/main/res/values/attrs.xml index a035d32fa4..e6c81ff89f 100644 --- a/core/src/main/res/values/attrs.xml +++ b/core/src/main/res/values/attrs.xml @@ -19,6 +19,7 @@ + @@ -37,6 +38,8 @@ + + @@ -165,6 +168,9 @@ + + + @@ -173,6 +179,7 @@ + diff --git a/core/src/main/res/values/colors.xml b/core/src/main/res/values/colors.xml index 87d70d7b3e..3210d91495 100644 --- a/core/src/main/res/values/colors.xml +++ b/core/src/main/res/values/colors.xml @@ -95,6 +95,7 @@ #00FFFF #FF0000 #0000FF + #008585 #8C8C8C #D000FF00 @@ -220,6 +221,7 @@ #FEAF05 #42A5F5 #66BB6A + #FEAF05 #323232 diff --git a/core/src/main/res/values/styles.xml b/core/src/main/res/values/styles.xml index 5dc2179216..d945378321 100644 --- a/core/src/main/res/values/styles.xml +++ b/core/src/main/res/values/styles.xml @@ -54,6 +54,8 @@ ?attr/colorSurface @color/exercise + + @color/stats @color/low @@ -174,6 +176,7 @@ @color/carbs @color/tempTargetConfirmation + @color/tempTargetConfirmation @color/loopSuspended @@ -192,6 +195,9 @@ @color/extBolusStop @color/actionBasal @color/actionBasal + @color/actionBasal + @color/actionBasal + @color/actionBasal @color/pumpCanula @color/cgmInsert @color/pumpBattery @@ -200,6 +206,7 @@ @color/question @color/pumpHistory @color/userOption + @color/sens @color/cob @color/uam From 1684b88270b34d0205f3e10ad3109e2319802532 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Wed, 13 Apr 2022 13:40:50 +0200 Subject: [PATCH 02/27] fix cutting TBR & EB --- ...PumpCancelExtendedBolusIfAnyTransaction.kt | 2 +- ...umpCancelTemporaryBasalIfAnyTransaction.kt | 14 +++++----- .../SyncPumpExtendedBolusTransaction.kt | 24 ++++++++--------- .../SyncPumpTemporaryBasalTransaction.kt | 26 +++++++++---------- 4 files changed, 33 insertions(+), 33 deletions(-) diff --git a/database/src/main/java/info/nightscout/androidaps/database/transactions/SyncPumpCancelExtendedBolusIfAnyTransaction.kt b/database/src/main/java/info/nightscout/androidaps/database/transactions/SyncPumpCancelExtendedBolusIfAnyTransaction.kt index c73b7bb201..5553a7b1b1 100644 --- a/database/src/main/java/info/nightscout/androidaps/database/transactions/SyncPumpCancelExtendedBolusIfAnyTransaction.kt +++ b/database/src/main/java/info/nightscout/androidaps/database/transactions/SyncPumpCancelExtendedBolusIfAnyTransaction.kt @@ -13,7 +13,7 @@ class SyncPumpCancelExtendedBolusIfAnyTransaction( val existing = database.extendedBolusDao.findByPumpEndIds(endPumpId, pumpType, pumpSerial) if (existing != null) // assume EB has been cut already return result - val running = database.extendedBolusDao.getExtendedBolusActiveAt(timestamp, pumpType, pumpSerial).blockingGet() + val running = database.extendedBolusDao.getExtendedBolusActiveAt(timestamp).blockingGet() if (running != null && running.interfaceIDs.endId == null) { // do not allow overwrite if cut by end event val pctRun = (timestamp - running.timestamp) / running.duration.toDouble() running.amount *= pctRun diff --git a/database/src/main/java/info/nightscout/androidaps/database/transactions/SyncPumpCancelTemporaryBasalIfAnyTransaction.kt b/database/src/main/java/info/nightscout/androidaps/database/transactions/SyncPumpCancelTemporaryBasalIfAnyTransaction.kt index 58510f58c2..d7c3d528a0 100644 --- a/database/src/main/java/info/nightscout/androidaps/database/transactions/SyncPumpCancelTemporaryBasalIfAnyTransaction.kt +++ b/database/src/main/java/info/nightscout/androidaps/database/transactions/SyncPumpCancelTemporaryBasalIfAnyTransaction.kt @@ -13,13 +13,13 @@ class SyncPumpCancelTemporaryBasalIfAnyTransaction( val existing = database.temporaryBasalDao.findByPumpEndIds(endPumpId, pumpType, pumpSerial) if (existing != null) // assume TBR has been cut already return result - val current = database.temporaryBasalDao.getTemporaryBasalActiveAt(timestamp, pumpType, pumpSerial).blockingGet() - if (current != null && current.interfaceIDs.endId == null) { // do not allow overwrite if cut by end event - if (current.timestamp != timestamp) current.end = timestamp // prevent zero duration - else current.duration = 1 - current.interfaceIDs.endId = endPumpId - database.temporaryBasalDao.updateExistingEntry(current) - result.updated.add(current) + val running = database.temporaryBasalDao.getTemporaryBasalActiveAt(timestamp).blockingGet() + if (running != null && running.interfaceIDs.endId == null) { // do not allow overwrite if cut by end event + if (running.timestamp != timestamp) running.end = timestamp // prevent zero duration + else running.duration = 1 + running.interfaceIDs.endId = endPumpId + database.temporaryBasalDao.updateExistingEntry(running) + result.updated.add(running) } return result } diff --git a/database/src/main/java/info/nightscout/androidaps/database/transactions/SyncPumpExtendedBolusTransaction.kt b/database/src/main/java/info/nightscout/androidaps/database/transactions/SyncPumpExtendedBolusTransaction.kt index 2cf424fe80..ac73ba74ef 100644 --- a/database/src/main/java/info/nightscout/androidaps/database/transactions/SyncPumpExtendedBolusTransaction.kt +++ b/database/src/main/java/info/nightscout/androidaps/database/transactions/SyncPumpExtendedBolusTransaction.kt @@ -13,21 +13,21 @@ class SyncPumpExtendedBolusTransaction(private val extendedBolus: ExtendedBolus) ?: extendedBolus.interfaceIDs.pumpSerial ?: throw IllegalStateException("Some pump ID is null") val result = TransactionResult() - val current = database.extendedBolusDao.findByPumpIds(extendedBolus.interfaceIDs.pumpId!!, extendedBolus.interfaceIDs.pumpType!!, extendedBolus.interfaceIDs.pumpSerial!!) - if (current != null) { - if (current.interfaceIDs.endId == null && - (current.timestamp != extendedBolus.timestamp || - current.amount != extendedBolus.amount || - current.duration != extendedBolus.duration) + val existing = database.extendedBolusDao.findByPumpIds(extendedBolus.interfaceIDs.pumpId!!, extendedBolus.interfaceIDs.pumpType!!, extendedBolus.interfaceIDs.pumpSerial!!) + if (existing != null) { + if (existing.interfaceIDs.endId == null && + (existing.timestamp != extendedBolus.timestamp || + existing.amount != extendedBolus.amount || + existing.duration != extendedBolus.duration) ) { - current.timestamp = extendedBolus.timestamp - current.amount = extendedBolus.amount - current.duration = extendedBolus.duration - database.extendedBolusDao.updateExistingEntry(current) - result.updated.add(current) + existing.timestamp = extendedBolus.timestamp + existing.amount = extendedBolus.amount + existing.duration = extendedBolus.duration + database.extendedBolusDao.updateExistingEntry(existing) + result.updated.add(existing) } } else { - val running = database.extendedBolusDao.getExtendedBolusActiveAt(extendedBolus.timestamp, extendedBolus.interfaceIDs.pumpType!!, extendedBolus.interfaceIDs.pumpSerial!!).blockingGet() + val running = database.extendedBolusDao.getExtendedBolusActiveAt(extendedBolus.timestamp).blockingGet() if (running != null) { val pctRun = (extendedBolus.timestamp - running.timestamp) / running.duration.toDouble() running.amount *= pctRun diff --git a/database/src/main/java/info/nightscout/androidaps/database/transactions/SyncPumpTemporaryBasalTransaction.kt b/database/src/main/java/info/nightscout/androidaps/database/transactions/SyncPumpTemporaryBasalTransaction.kt index e3303c5c90..bcd49fd43a 100644 --- a/database/src/main/java/info/nightscout/androidaps/database/transactions/SyncPumpTemporaryBasalTransaction.kt +++ b/database/src/main/java/info/nightscout/androidaps/database/transactions/SyncPumpTemporaryBasalTransaction.kt @@ -16,23 +16,23 @@ class SyncPumpTemporaryBasalTransaction( ?: temporaryBasal.interfaceIDs.pumpSerial ?: throw IllegalStateException("Some pump ID is null") val result = TransactionResult() - val current = database.temporaryBasalDao.findByPumpIds(temporaryBasal.interfaceIDs.pumpId!!, temporaryBasal.interfaceIDs.pumpType!!, temporaryBasal.interfaceIDs.pumpSerial!!) - if (current != null) { + val existing = database.temporaryBasalDao.findByPumpIds(temporaryBasal.interfaceIDs.pumpId!!, temporaryBasal.interfaceIDs.pumpType!!, temporaryBasal.interfaceIDs.pumpSerial!!) + if (existing != null) { if ( - current.timestamp != temporaryBasal.timestamp || - current.rate != temporaryBasal.rate || - current.duration != temporaryBasal.duration && current.interfaceIDs.endId == null || - current.type != type ?: current.type + existing.timestamp != temporaryBasal.timestamp || + existing.rate != temporaryBasal.rate || + existing.duration != temporaryBasal.duration && existing.interfaceIDs.endId == null || + existing.type != type ?: existing.type ) { - current.timestamp = temporaryBasal.timestamp - current.rate = temporaryBasal.rate - current.duration = temporaryBasal.duration - current.type = type ?: current.type - database.temporaryBasalDao.updateExistingEntry(current) - result.updated.add(current) + existing.timestamp = temporaryBasal.timestamp + existing.rate = temporaryBasal.rate + existing.duration = temporaryBasal.duration + existing.type = type ?: existing.type + database.temporaryBasalDao.updateExistingEntry(existing) + result.updated.add(existing) } } else { - val running = database.temporaryBasalDao.getTemporaryBasalActiveAt(temporaryBasal.timestamp, temporaryBasal.interfaceIDs.pumpType!!, temporaryBasal.interfaceIDs.pumpSerial!!).blockingGet() + val running = database.temporaryBasalDao.getTemporaryBasalActiveAt(temporaryBasal.timestamp).blockingGet() if (running != null) { running.end = temporaryBasal.timestamp running.interfaceIDs.endId = temporaryBasal.interfaceIDs.pumpId From baf740fc6d6d0692c8c9f814326a0e81da14c835 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Wed, 13 Apr 2022 14:15:08 +0200 Subject: [PATCH 03/27] New Crowdin updates (#1593) * New translations strings.xml (Russian) * New translations strings.xml (Russian) * New translations strings.xml (Russian) * New translations strings.xml (Russian) * New translations strings.xml (Spanish) * New translations strings.xml (Turkish) * New translations strings.xml (French) --- app/src/main/res/values-es-rES/strings.xml | 2 +- app/src/main/res/values-fr-rFR/strings.xml | 5 ++ app/src/main/res/values-ru-rRU/strings.xml | 50 +++++++++++++++++++ app/src/main/res/values-tr-rTR/strings.xml | 1 + .../src/main/res/values-ru-rRU/strings.xml | 7 +++ core/src/main/res/values-ru-rRU/strings.xml | 16 ++++++ wear/src/main/res/values-ru-rRU/strings.xml | 11 ++++ 7 files changed, 91 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index f2e22c879e..5168e374f2 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -450,7 +450,7 @@ ACTIVAR PERFIL INVÁLIDO Porcentaje - Cambio de tiempo + Tiempo del cambio Objetivo temporal por defecto Duración OT Comiendo Pronto Objetivo Comiendo Pronto diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index 84ca1479ce..7b255bbf49 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -435,6 +435,8 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S Activer les transmissions locales OpenAPS SMB SI dynamique + Facteur d\'ajustement SI dynamique %% + Facteur d\'ajustement pour SI dynamique. Définissez plus de 100 %% pour des corrections plus agressives et moins de 100 %% pour des corrections moins agressives. Activer RNS Activer SMB Utiliser les Super Micro Bolus au lieu des débits de base temporaires pour une action rapide @@ -814,6 +816,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S Sur chaque téléphone suiveur, installez une appli. Authentificateur qui prend en charge les jetons RFC 6238 TOTP. Les applications libres populaires sont:\n • Authy\n • Google Authenticator\n • LastPass Authenticator\n • FreeOTP Authenticator En réinitialisant l\'Authentificateur, vous invalidez tous les authentificateurs déjà initialisés. Vous devrez les reconfigurer ! Prédictions + Traitements Pente de déviations Echec de l\'authentification Insuline absolue @@ -993,6 +996,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S Cibles Temp Glucides et bolus Êtes-vous sûr de vouloir supprimer %1$d entrée(s) + Aucun enregistrement disponible Masquer la boucle Afficher les entrées boucle %1$d sélectionnée(s) @@ -1004,4 +1008,5 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S Afficher les entrées de la boucle Masquer les entrées de la boucle Widget AndroidAPS + Configurer l’opacité diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 5b6ef2440f..3edbacc44f 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -246,6 +246,7 @@ Смарт-часы Wear повторить отправку всех данных Открыть настройки на Wear + Базальная скорость значение базала ниже минимума. профиль не создан! гликемия: прошлый СК: @@ -433,6 +434,8 @@ Активировать локальную передачу Супер микро болюс OpenAPS Динамический ISF + Коэффициент регулировки динамического диапазона чувствительности ISF %% + Коэффициент корректировки динамического диапазона чувствительности ISF. Установите более 100% для более агрессивных доз коррекции и менее 100% для менее агрессивной коррекции. Включить непредвиденный прием пищи UAM Включить супер микро болюс SMB Для ускорения действия используйте супер микро болюсы SMB вместо временного базала @@ -812,6 +815,7 @@ В каждом отслеживающем телефоне установите приложение Authenticator, поддерживающее маркеры TOTP RFC 6238. Популярные бесплатные приложения: \n Authy\n Google Authenticator\n LastPass Authenticator\n FreeOTP Authenticator После сброса аутентификатора вы делаете все созданные идентификаторы недействительными. Вам нужно будет снова создать их! Прогнозирование + Терапия Линия отклонения Ошибка авторизации Абсолютный инсулин @@ -881,6 +885,7 @@ Принимать события APS автономно Принимать события APS введенные через NS или клиент NS автономно Получать временную базальную скорость TBR и пролонгированный болюс EB + Принять TBR и EB введеные с другого устройства Принимать инсулин Принимать инсулин, введенный через NS или NSClient (не подается, только рассчитывается как активный IOB) Принимать углеводы @@ -903,6 +908,7 @@ Ошибки Замедлить выгрузку Состояние данных ГК + Удалить значения ГК время, отработанное катетером помпы время отработанное разовой помпой Разовая помпа @@ -934,7 +940,17 @@ инсулин уровень глюкозы в крови (ГК) устаревшие данные + установить напоминание + добавить новый профиль + клонировать текущий профиль + удалить текущий профиль + добавить новый в список + Выберите темную, светлую или системную тему + Цветовая схема приложения + Тёмная тема + Светлая тема + Использовать тему устройства Неизвестная конфигурация врем цели: %1$s Отменить врем цели? @@ -944,6 +960,33 @@ Макс ГК вне диапазона! ВремЦель:\nМин: %1$s\nМакс.: %2$s\nДлительность: %3$s ВремЦель:\nЦель: %1$s\nДлительность: %2$s + ВремЦель:\Причина: %1$s\nЦель.: %2$s\nДлительность: %3$s + Мастер: %1$s\nИнсулин: %2$.2fЕд\nУгл: %3$dg + Мастер:\nИнсулин: %1$.2fЕд\nУгл: %2$dg + Показать запись на устройстве: + Выбранный мастер быстрого доступа больше недоступен, обновите плитку + Нет данных ГК для основы расчета! + Активный профиль не установлен! + Неизвестный COB! Отсутствуют данные ГК или приложения недавно перезапущено? + Нарушено ограничение по углеводам! + Кальк (IC: %2$.1f, ISF: %2$.1f) из:\" + Углеводов: %1$.2fгУ + Акт Инс COB: %1$.0fг %2$.2fед + ГК: %1$.2f + Базал IOB: %1$.2fед + Болюсный IOB: %1$.2fед + Суперболюсный: %1$.2fед + тренд 15\': %1$.2f + Процент: %1$.2fU x %2$d%% = %3$.2f + Нарушено ограничение по инсулину!\nНевозможно подать %1$.2fед + ВремЦ: %1$s + %1$s до %2$s + Нет доступных помп! + Неизвестная команда: + Процент + По умолчанию приложения + Показать недействительные / удаленные записи + Скрыть недействительные / удаленные записи Выберите профиль для изменения Обновить из Nightscout Удалить выбранные элементы @@ -952,10 +995,17 @@ Временные цели Углеводы и болюс Вы уверены, что хотите удалить %1$d элементов + Нет доступных записей Скрыть цикл Показать цикл %1$d выбрано + Сортировать + Диалог отменен Ниже целевых В целевом диапазоне Выше целевых + Показать записи цикла + Скрыть записи цикла + Виджет androidAPS + Настроить прозрачность diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml index 4bba41c245..31784497f1 100644 --- a/app/src/main/res/values-tr-rTR/strings.xml +++ b/app/src/main/res/values-tr-rTR/strings.xml @@ -816,6 +816,7 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d Her takipçi telefonunda, RFC 6238 TOTP belirteçlerini destekleyen Kimlik Doğrulayıcı uygulamasını yükleyin. Popüler ücretsiz uygulamalar şunlardır:\n • Authy\n • Google Authenticator\n • LastPass Authenticator\n • FreeOTP Authenticator Doğrulayıcıyı (Authenticator) sıfırlayarak, önceden sağlanmış tüm doğrulayıcıları geçersiz kılarsınız. Onları tekrar kurmanız gerekecek! Tahminler + Tedaviler Sapma eğimi Yetkilendirme başarısız oldu Mutlak insülin diff --git a/automation/src/main/res/values-ru-rRU/strings.xml b/automation/src/main/res/values-ru-rRU/strings.xml index a1d0b8c967..2caaa73c95 100644 --- a/automation/src/main/res/values-ru-rRU/strings.xml +++ b/automation/src/main/res/values-ru-rRU/strings.xml @@ -113,4 +113,11 @@ Автоматизированное событие Повторный заказ Действия пользователя + Удалить автоматизацию + Сортировать автоматизацию + Удалить выбранные элементы + %1$d выбрано + Вы уверены, что хотите удалить %1$d элемент + Сортировать + Автоматизация системы diff --git a/core/src/main/res/values-ru-rRU/strings.xml b/core/src/main/res/values-ru-rRU/strings.xml index 58bf822127..127932c2d6 100644 --- a/core/src/main/res/values-ru-rRU/strings.xml +++ b/core/src/main/res/values-ru-rRU/strings.xml @@ -4,6 +4,7 @@ Обновить Ошибка + Сохранить Не выбрано не удалось обновить базальный профиль базальный профиль помпы обновлен @@ -135,6 +136,10 @@ %1$d мин. назад %1$d минут назад %1$.1fч. назад + %1$s дн назад + %1$s дн назад + через %1$.0f дн + через %1$.0f дн ч дн час @@ -150,9 +155,15 @@ нед мин дн + Позднее сегодня + Завтра + Cегодня + Вчера Неверный пароль + Неверный PIN-код Пароли не совпадают + PIN-коды не совпадают Базальные значения не выровнены по часам: %1$s Значение базала заменено минимальной поддерживаемой величиной: %1$s @@ -449,6 +460,11 @@ %1$.0f%% Базал Базал % + %1$d выбрано + Сортировать + Удалить элементы + Сортировать элементы + Удалить выбранные элементы %1$d день %1$d дня diff --git a/wear/src/main/res/values-ru-rRU/strings.xml b/wear/src/main/res/values-ru-rRU/strings.xml index ffddf2b5f6..879fa2f70d 100644 --- a/wear/src/main/res/values-ru-rRU/strings.xml +++ b/wear/src/main/res/values-ru-rRU/strings.xml @@ -11,6 +11,9 @@ AAPS (кабина пилота) AAPS (Стимпанк) AAPS (DigitalStyle) + AAPS (Действия) + AAPS(ВремЦель) + AAPS(Мастер) Данные не поступают! Старые данные! Длится с: %1$s @@ -54,15 +57,22 @@ Показывать историю в кольце Показывать историю в кольце менее подробно Анимация + Калькулятор в меню Первичное заполнение в меню Единичная цель + Процент калькулятора Действия при нажатии кнопки расширений Юникод в репликации Версия: еще настройки циферблатов Смотрите конфигурацию циферблата. ВремЦ + Калькулятор + Кальк + Терапия Болюс + Углеводы + растянутые углеводы eCarbs Настройки Состояние Синхронизировать повторно @@ -70,6 +80,7 @@ Не показывать По умолчанию Menu + растянутые углеводы eCarbs Предустановка 1 Предустановка 2 Предустановка 3 From 80e10389ab402db72f52637471cbc8edd8f717e6 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Wed, 13 Apr 2022 14:46:34 +0200 Subject: [PATCH 04/27] compile options --- build.gradle | 8 ++++++-- .../androidaps/plugin/general/openhumans/OpenHumansAPI.kt | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 0de39506d7..b64096c828 100644 --- a/build.gradle +++ b/build.gradle @@ -72,13 +72,17 @@ allprojects { tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { kotlinOptions { freeCompilerArgs = [ - // Ignore warning for @ExperimentalCoroutinesApi - "-Xuse-experimental=kotlinx.coroutines.ExperimentalCoroutinesApi", + '-opt-in=kotlin.RequiresOptIn', '-Xjvm-default=all' //Support @JvmDefault ] jvmTarget = "11" } } + gradle.projectsEvaluated { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" + } + } } apply from: 'gradle/jacoco_project.gradle' diff --git a/openhumans/src/main/java/info/nightscout/androidaps/plugin/general/openhumans/OpenHumansAPI.kt b/openhumans/src/main/java/info/nightscout/androidaps/plugin/general/openhumans/OpenHumansAPI.kt index 4d93eba5d2..1c1a8376f2 100644 --- a/openhumans/src/main/java/info/nightscout/androidaps/plugin/general/openhumans/OpenHumansAPI.kt +++ b/openhumans/src/main/java/info/nightscout/androidaps/plugin/general/openhumans/OpenHumansAPI.kt @@ -6,6 +6,7 @@ import info.nightscout.androidaps.plugin.general.openhumans.dagger.BaseUrl import info.nightscout.androidaps.plugin.general.openhumans.dagger.ClientId import info.nightscout.androidaps.plugin.general.openhumans.dagger.ClientSecret import info.nightscout.androidaps.plugin.general.openhumans.dagger.RedirectUrl +import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.suspendCancellableCoroutine import okhttp3.* import okio.BufferedSink @@ -115,6 +116,7 @@ internal class OpenHumansAPI @Inject constructor( if (!response.isSuccessful) throw OHHttpException(response.code, response.message, null) } + @OptIn(ExperimentalCoroutinesApi::class) private suspend fun Request.await(): Response { val call = client.newCall(this) return suspendCancellableCoroutine { From 2ac4cbd1db1f8d9c8de3c0ae3a792af1e4b9f6e2 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 14 Apr 2022 10:16:00 +0200 Subject: [PATCH 05/27] combo: show generated serial in fragment --- .../plugins/pump/combo/ComboFragment.java | 3 ++ .../main/res/layout/combopump_fragment.xml | 45 +++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboFragment.java b/combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboFragment.java index b0fc0d809c..85407b6b07 100644 --- a/combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboFragment.java +++ b/combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboFragment.java @@ -61,6 +61,7 @@ public class ComboFragment extends DaggerFragment { private TextView errorCountLabel; private TextView errorCountDots; private TextView errorCountValue; + private TextView serialNumber; @Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, @@ -77,6 +78,7 @@ public class ComboFragment extends DaggerFragment { tempBasalText = view.findViewById(R.id.combo_temp_basal); bolusCount = view.findViewById(R.id.combo_bolus_count); tbrCount = view.findViewById(R.id.combo_tbr_count); + serialNumber = view.findViewById(R.id.serial_number); errorCountDelimiter = view.findViewById(R.id.combo_connection_error_delimiter); errorCountLayout = view.findViewById(R.id.combo_connection_error_layout); @@ -255,6 +257,7 @@ public class ComboFragment extends DaggerFragment { // stats bolusCount.setText(String.valueOf(comboPlugin.getBolusesDelivered())); tbrCount.setText(String.valueOf(comboPlugin.getTbrsSet())); + serialNumber.setText(comboPlugin.serialNumber()); updateErrorDisplay(false); } else { diff --git a/combo/src/main/res/layout/combopump_fragment.xml b/combo/src/main/res/layout/combopump_fragment.xml index 8225bb48e7..e5395759d8 100644 --- a/combo/src/main/res/layout/combopump_fragment.xml +++ b/combo/src/main/res/layout/combopump_fragment.xml @@ -510,6 +510,51 @@ + + + + + + + + + + + + Date: Thu, 14 Apr 2022 10:39:32 +0200 Subject: [PATCH 06/27] ComboFragment -> kt --- .../pump/virtual/VirtualPumpFragment.kt | 6 +- .../plugins/pump/combo/ComboFragment.java | 302 ------------------ .../plugins/pump/combo/ComboFragment.kt | 254 +++++++++++++++ .../main/res/layout/combopump_fragment.xml | 2 - 4 files changed, 256 insertions(+), 308 deletions(-) delete mode 100644 combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboFragment.java create mode 100644 combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboFragment.kt diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/virtual/VirtualPumpFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/pump/virtual/VirtualPumpFragment.kt index ea85e983b5..d36c5225ea 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/virtual/VirtualPumpFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/virtual/VirtualPumpFragment.kt @@ -47,10 +47,8 @@ class VirtualPumpFragment : DaggerFragment() { // onDestroyView. private val binding get() = _binding!! - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { - _binding = VirtualpumpFragmentBinding.inflate(inflater, container, false) - return binding.root - } + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View = + VirtualpumpFragmentBinding.inflate(inflater, container, false).also { _binding = it }.root @Synchronized override fun onResume() { diff --git a/combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboFragment.java b/combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboFragment.java deleted file mode 100644 index 85407b6b07..0000000000 --- a/combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboFragment.java +++ /dev/null @@ -1,302 +0,0 @@ -package info.nightscout.androidaps.plugins.pump.combo; - - -import android.graphics.Color; -import android.graphics.Typeface; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.Button; -import android.widget.LinearLayout; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.fragment.app.FragmentActivity; - -import javax.inject.Inject; - -import dagger.android.support.DaggerFragment; -import info.nightscout.androidaps.combo.R; -import info.nightscout.androidaps.interfaces.CommandQueue; -import info.nightscout.androidaps.plugins.bus.RxBus; -import info.nightscout.androidaps.plugins.pump.combo.data.ComboErrorUtil; -import info.nightscout.androidaps.plugins.pump.combo.events.EventComboPumpUpdateGUI; -import info.nightscout.androidaps.plugins.pump.combo.ruffyscripter.PumpState; -import info.nightscout.androidaps.plugins.pump.combo.ruffyscripter.history.Bolus; -import info.nightscout.androidaps.queue.Callback; -import info.nightscout.androidaps.queue.events.EventQueueChanged; -import info.nightscout.androidaps.utils.DateUtil; -import info.nightscout.androidaps.utils.FabricPrivacy; -import info.nightscout.androidaps.utils.resources.ResourceHelper; -import info.nightscout.androidaps.utils.rx.AapsSchedulers; -import io.reactivex.rxjava3.disposables.CompositeDisposable; - -public class ComboFragment extends DaggerFragment { - @Inject ComboPlugin comboPlugin; - @Inject CommandQueue commandQueue; - @Inject ResourceHelper rh; - @Inject RxBus rxBus; - @Inject DateUtil dateUtil; - @Inject FabricPrivacy fabricPrivacy; - @Inject AapsSchedulers aapsSchedulers; - @Inject ComboErrorUtil errorUtil; - - private final CompositeDisposable disposable = new CompositeDisposable(); - - private TextView stateView; - private TextView activityView; - private TextView batteryView; - private TextView reservoirView; - private TextView lastConnectionView; - private TextView lastBolusView; - private TextView baseBasalRate; - private TextView tempBasalText; - private Button refreshButton; - private TextView bolusCount; - private TextView tbrCount; - - private View errorCountDelimiter; - private LinearLayout errorCountLayout; - private TextView errorCountLabel; - private TextView errorCountDots; - private TextView errorCountValue; - private TextView serialNumber; - - @Override - public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.combopump_fragment, container, false); - - stateView = view.findViewById(R.id.combo_state); - activityView = view.findViewById(R.id.combo_activity); - batteryView = view.findViewById(R.id.combo_pumpstate_battery); - reservoirView = view.findViewById(R.id.combo_insulinstate); - lastBolusView = view.findViewById(R.id.combo_last_bolus); - lastConnectionView = view.findViewById(R.id.combo_lastconnection); - baseBasalRate = view.findViewById(R.id.combo_base_basal_rate); - tempBasalText = view.findViewById(R.id.combo_temp_basal); - bolusCount = view.findViewById(R.id.combo_bolus_count); - tbrCount = view.findViewById(R.id.combo_tbr_count); - serialNumber = view.findViewById(R.id.serial_number); - - errorCountDelimiter = view.findViewById(R.id.combo_connection_error_delimiter); - errorCountLayout = view.findViewById(R.id.combo_connection_error_layout); - errorCountLabel = view.findViewById(R.id.combo_connection_error_label); - errorCountDots = view.findViewById(R.id.combo_connection_error_dots); - errorCountValue = view.findViewById(R.id.combo_connection_error_value); - - refreshButton = view.findViewById(R.id.combo_refresh_button); - refreshButton.setOnClickListener(v -> { - refreshButton.setEnabled(false); - commandQueue.readStatus(rh.gs(R.string.user_request), new Callback() { - @Override - public void run() { - runOnUiThread(() -> refreshButton.setEnabled(true)); - } - }); - }); - - return view; - } - - @Override - public synchronized void onResume() { - super.onResume(); - disposable.add(rxBus - .toObservable(EventComboPumpUpdateGUI.class) - .observeOn(aapsSchedulers.getMain()) - .subscribe(event -> updateGui(), fabricPrivacy::logException) - ); - disposable.add(rxBus - .toObservable(EventQueueChanged.class) - .observeOn(aapsSchedulers.getMain()) - .subscribe(event -> updateGui(), fabricPrivacy::logException) - ); - updateGui(); - } - - @Override - public synchronized void onPause() { - super.onPause(); - disposable.clear(); - } - - private void runOnUiThread(Runnable action) { - FragmentActivity activity = getActivity(); - if (activity != null) { - activity.runOnUiThread(action); - } - } - - public void updateGui() { - - // state - stateView.setText(comboPlugin.getStateSummary()); - PumpState ps = comboPlugin.getPump().state; - if (ps.insulinState == PumpState.EMPTY || ps.batteryState == PumpState.EMPTY - || ps.activeAlert != null && ps.activeAlert.errorCode != null) { - stateView.setTextColor(rh.gac(getContext(), R.attr.warningColor)); - stateView.setTypeface(null, Typeface.BOLD); - } else if (comboPlugin.getPump().state.suspended - || ps.activeAlert != null && ps.activeAlert.warningCode != null) { - stateView.setTextColor(rh.gac(getContext(), R.attr.omniYellowColor)); - stateView.setTypeface(null, Typeface.BOLD); - } else { - stateView.setTextColor(rh.gac(getContext(), R.attr.defaultTextColor)); - stateView.setTypeface(null, Typeface.NORMAL); - } - - // activity - String activity = comboPlugin.getPump().activity; - if (activity != null) { - activityView.setTextColor(rh.gac(getContext(), R.attr.defaultTextColor)); - activityView.setTextSize(14); - activityView.setText(activity); - } else if (commandQueue.size() > 0) { - activityView.setTextColor(rh.gac(getContext(), R.attr.defaultTextColor)); - activityView.setTextSize(14); - activityView.setText(""); - } else if (comboPlugin.isInitialized()) { - activityView.setTextColor(rh.gac(getContext(), R.attr.defaultTextColor)); - activityView.setTextSize(20); - activityView.setText("{fa-bed}"); - } else { - activityView.setTextColor(rh.gac(getContext(), R.attr.warningColor)); - activityView.setTextSize(14); - activityView.setText(rh.gs(R.string.pump_unreachable)); - } - - if (comboPlugin.isInitialized()) { - // battery - batteryView.setTextSize(20); - if (ps.batteryState == PumpState.EMPTY) { - batteryView.setText("{fa-battery-empty}"); - batteryView.setTextColor(rh.gac(getContext(), R.attr.warningColor)); - } else if (ps.batteryState == PumpState.LOW) { - batteryView.setText("{fa-battery-quarter}"); - batteryView.setTextColor(rh.gac(getContext(), R.attr.omniYellowColor)); - } else { - batteryView.setText("{fa-battery-full}"); - batteryView.setTextColor(Color.WHITE); - } - - // reservoir - int reservoirLevel = comboPlugin.getPump().reservoirLevel; - if (reservoirLevel != -1) { - reservoirView.setText(reservoirLevel + " " + rh.gs(R.string.insulin_unit_shortname)); - } else if (ps.insulinState == PumpState.LOW) { - reservoirView.setText(rh.gs(R.string.combo_reservoir_low)); - } else if (ps.insulinState == PumpState.EMPTY) { - reservoirView.setText(rh.gs(R.string.combo_reservoir_empty)); - } else { - reservoirView.setText(rh.gs(R.string.combo_reservoir_normal)); - } - - if (ps.insulinState == PumpState.UNKNOWN) { - reservoirView.setTextColor(rh.gac(getContext(), R.attr.defaultTextColor)); - reservoirView.setTypeface(null, Typeface.NORMAL); - } else if (ps.insulinState == PumpState.LOW) { - reservoirView.setTextColor(rh.gac(getContext(), R.attr.omniYellowColor)); - reservoirView.setTypeface(null, Typeface.BOLD); - } else if (ps.insulinState == PumpState.EMPTY) { - reservoirView.setTextColor(rh.gac(getContext(), R.attr.warningColor)); - reservoirView.setTypeface(null, Typeface.BOLD); - } else { - reservoirView.setTextColor(rh.gac(getContext(), R.attr.defaultTextColor)); - reservoirView.setTypeface(null, Typeface.NORMAL); - } - - // last connection - String minAgo = dateUtil.minAgo(rh, comboPlugin.getPump().lastSuccessfulCmdTime); - long min = (System.currentTimeMillis() - comboPlugin.getPump().lastSuccessfulCmdTime) / 1000 / 60; - if (comboPlugin.getPump().lastSuccessfulCmdTime + 60 * 1000 > System.currentTimeMillis()) { - lastConnectionView.setText(R.string.combo_pump_connected_now); - lastConnectionView.setTextColor(rh.gac(getContext(), R.attr.defaultTextColor)); - } else if (comboPlugin.getPump().lastSuccessfulCmdTime + 30 * 60 * 1000 < System.currentTimeMillis()) { - lastConnectionView.setText(rh.gs(R.string.combo_no_pump_connection, min)); - lastConnectionView.setTextColor(rh.gac(getContext(), R.attr.warningColor)); - } else { - lastConnectionView.setText(minAgo); - lastConnectionView.setTextColor(rh.gac(getContext(), R.attr.defaultTextColor)); - } - - // last bolus - Bolus bolus = comboPlugin.getPump().lastBolus; - if (bolus != null) { - long agoMsc = System.currentTimeMillis() - bolus.timestamp; - double bolusMinAgo = agoMsc / 60d / 1000d; - String unit = rh.gs(R.string.insulin_unit_shortname); - String ago; - if ((agoMsc < 60 * 1000)) { - ago = rh.gs(R.string.combo_pump_connected_now); - } else if (bolusMinAgo < 60) { - ago = dateUtil.minAgo(rh, bolus.timestamp); - } else { - ago = dateUtil.hourAgo(bolus.timestamp, rh); - } - lastBolusView.setText(rh.gs(R.string.combo_last_bolus, bolus.amount, unit, ago)); - } else { - lastBolusView.setText(""); - } - - // base basal rate - baseBasalRate.setText(rh.gs(R.string.pump_basebasalrate, comboPlugin.getBaseBasalRate())); - - // TBR - String tbrStr = ""; - if (ps.tbrPercent != -1 && ps.tbrPercent != 100) { - long minSinceRead = (System.currentTimeMillis() - comboPlugin.getPump().state.timestamp) / 1000 / 60; - long remaining = ps.tbrRemainingDuration - minSinceRead; - if (remaining >= 0) { - tbrStr = rh.gs(R.string.combo_tbr_remaining, ps.tbrPercent, remaining); - } - } - tempBasalText.setText(tbrStr); - - // stats - bolusCount.setText(String.valueOf(comboPlugin.getBolusesDelivered())); - tbrCount.setText(String.valueOf(comboPlugin.getTbrsSet())); - serialNumber.setText(comboPlugin.serialNumber()); - - updateErrorDisplay(false); - } else { - updateErrorDisplay(true); - } - } - - private void updateErrorDisplay(boolean forceHide) { - int errorCount = -1; - - if (!forceHide) { - ComboErrorUtil.DisplayType displayType = errorUtil.getDisplayType(); - - if (displayType== ComboErrorUtil.DisplayType.ON_ERROR || displayType== ComboErrorUtil.DisplayType.ALWAYS) { - int errorCountInternal = errorUtil.getErrorCount(); - - if (errorCountInternal>0) { - errorCount = errorCountInternal; - } else if (displayType== ComboErrorUtil.DisplayType.ALWAYS) { - errorCount = 0; - } - } - } - - if (errorCount >=0) { - errorCountDelimiter.setVisibility(View.VISIBLE); - errorCountLayout.setVisibility(View.VISIBLE); - errorCountLabel.setVisibility(View.VISIBLE); - errorCountDots.setVisibility(View.VISIBLE); - errorCountValue.setVisibility(View.VISIBLE); - errorCountValue.setText(errorCount==0 ? - "-" : - ""+errorCount); - } else { - errorCountDelimiter.setVisibility(View.GONE); - errorCountLayout.setVisibility(View.GONE); - errorCountLabel.setVisibility(View.GONE); - errorCountDots.setVisibility(View.GONE); - errorCountValue.setVisibility(View.GONE); - } - } -} diff --git a/combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboFragment.kt b/combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboFragment.kt new file mode 100644 index 0000000000..91b6a34aa0 --- /dev/null +++ b/combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboFragment.kt @@ -0,0 +1,254 @@ +package info.nightscout.androidaps.plugins.pump.combo + +import android.annotation.SuppressLint +import android.graphics.Color +import android.graphics.Typeface +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import dagger.android.support.DaggerFragment +import info.nightscout.androidaps.combo.R +import info.nightscout.androidaps.combo.databinding.CombopumpFragmentBinding +import info.nightscout.androidaps.extensions.runOnUiThread +import info.nightscout.androidaps.interfaces.CommandQueue +import info.nightscout.androidaps.plugins.bus.RxBus +import info.nightscout.androidaps.plugins.pump.combo.data.ComboErrorUtil +import info.nightscout.androidaps.plugins.pump.combo.data.ComboErrorUtil.DisplayType +import info.nightscout.androidaps.plugins.pump.combo.events.EventComboPumpUpdateGUI +import info.nightscout.androidaps.plugins.pump.combo.ruffyscripter.PumpState +import info.nightscout.androidaps.queue.Callback +import info.nightscout.androidaps.queue.events.EventQueueChanged +import info.nightscout.androidaps.utils.DateUtil +import info.nightscout.androidaps.utils.FabricPrivacy +import info.nightscout.androidaps.utils.resources.ResourceHelper +import info.nightscout.androidaps.utils.rx.AapsSchedulers +import io.reactivex.rxjava3.disposables.CompositeDisposable +import io.reactivex.rxjava3.kotlin.plusAssign +import javax.inject.Inject + +class ComboFragment : DaggerFragment() { + + @Inject lateinit var comboPlugin: ComboPlugin + @Inject lateinit var commandQueue: CommandQueue + @Inject lateinit var rh: ResourceHelper + @Inject lateinit var rxBus: RxBus + @Inject lateinit var dateUtil: DateUtil + @Inject lateinit var fabricPrivacy: FabricPrivacy + @Inject lateinit var aapsSchedulers: AapsSchedulers + @Inject lateinit var errorUtil: ComboErrorUtil + + private val disposable = CompositeDisposable() + + private var _binding: CombopumpFragmentBinding? = null + + // This property is only valid between onCreateView and + // onDestroyView. + private val binding get() = _binding!! + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View = + CombopumpFragmentBinding.inflate(inflater, container, false).also { _binding = it }.root + + @Synchronized override fun onResume() { + super.onResume() + disposable += rxBus + .toObservable(EventComboPumpUpdateGUI::class.java) + .observeOn(aapsSchedulers.main) + .subscribe({ updateGui() }, fabricPrivacy::logException) + disposable += rxBus + .toObservable(EventQueueChanged::class.java) + .observeOn(aapsSchedulers.main) + .subscribe({ updateGui() }, fabricPrivacy::logException) + binding.comboRefreshButton.setOnClickListener { + binding.comboRefreshButton.isEnabled = false + commandQueue.readStatus(rh.gs(R.string.user_request), object : Callback() { + override fun run() { + runOnUiThread { binding.comboRefreshButton.isEnabled = true } + } + }) + } + updateGui() + } + + @Synchronized override fun onPause() { + super.onPause() + disposable.clear() + } + + @SuppressLint("SetTextI18n") + fun updateGui() { + _binding ?: return + // state + binding.comboState.text = comboPlugin.stateSummary + val ps = comboPlugin.pump.state + if (ps.insulinState == PumpState.EMPTY || ps.batteryState == PumpState.EMPTY || ps.activeAlert != null && ps.activeAlert.errorCode != null) { + binding.comboState.setTextColor(rh.gac(context, R.attr.warningColor)) + binding.comboState.setTypeface(null, Typeface.BOLD) + } else if (comboPlugin.pump.state.suspended + || ps.activeAlert != null && ps.activeAlert.warningCode != null + ) { + binding.comboState.setTextColor(rh.gac(context, R.attr.omniYellowColor)) + binding.comboState.setTypeface(null, Typeface.BOLD) + } else { + binding.comboState.setTextColor(rh.gac(context, R.attr.defaultTextColor)) + binding.comboState.setTypeface(null, Typeface.NORMAL) + } + + // activity + val activity = comboPlugin.pump.activity + when { + activity != null -> { + binding.comboActivity.setTextColor(rh.gac(context, R.attr.defaultTextColor)) + binding.comboActivity.textSize = 14f + binding.comboActivity.text = activity + } + + commandQueue.size() > 0 -> { + binding.comboActivity.setTextColor(rh.gac(context, R.attr.defaultTextColor)) + binding.comboActivity.textSize = 14f + binding.comboActivity.text = "" + } + + comboPlugin.isInitialized() -> { + binding.comboActivity.setTextColor(rh.gac(context, R.attr.defaultTextColor)) + binding.comboActivity.textSize = 20f + binding.comboActivity.text = "{fa-bed}" + } + + else -> { + binding.comboActivity.setTextColor(rh.gac(context, R.attr.warningColor)) + binding.comboActivity.textSize = 14f + binding.comboActivity.text = rh.gs(R.string.pump_unreachable) + } + } + if (comboPlugin.isInitialized()) { + // battery + binding.comboPumpstateBattery.textSize = 20f + when (ps.batteryState) { + PumpState.EMPTY -> { + binding.comboPumpstateBattery.text = "{fa-battery-empty}" + binding.comboPumpstateBattery.setTextColor(rh.gac(context, R.attr.warningColor)) + } + + PumpState.LOW -> { + binding.comboPumpstateBattery.text = "{fa-battery-quarter}" + binding.comboPumpstateBattery.setTextColor(rh.gac(context, R.attr.omniYellowColor)) + } + + else -> { + binding.comboPumpstateBattery.text = "{fa-battery-full}" + binding.comboPumpstateBattery.setTextColor(Color.WHITE) + } + } + + // reservoir + val reservoirLevel = comboPlugin.pump.reservoirLevel + when { + reservoirLevel != -1 -> binding.comboInsulinstate.text = reservoirLevel.toString() + " " + rh.gs(R.string.insulin_unit_shortname) + ps.insulinState == PumpState.LOW -> binding.comboInsulinstate.text = rh.gs(R.string.combo_reservoir_low) + ps.insulinState == PumpState.EMPTY -> binding.comboInsulinstate.text = rh.gs(R.string.combo_reservoir_empty) + else -> binding.comboInsulinstate.text = rh.gs(R.string.combo_reservoir_normal) + } + when (ps.insulinState) { + PumpState.UNKNOWN -> { + binding.comboInsulinstate.setTextColor(rh.gac(context, R.attr.defaultTextColor)) + binding.comboInsulinstate.setTypeface(null, Typeface.NORMAL) + } + PumpState.LOW -> { + binding.comboInsulinstate.setTextColor(rh.gac(context, R.attr.omniYellowColor)) + binding.comboInsulinstate.setTypeface(null, Typeface.BOLD) + } + PumpState.EMPTY -> { + binding.comboInsulinstate.setTextColor(rh.gac(context, R.attr.warningColor)) + binding.comboInsulinstate.setTypeface(null, Typeface.BOLD) + } + else -> { + binding.comboInsulinstate.setTextColor(rh.gac(context, R.attr.defaultTextColor)) + binding.comboInsulinstate.setTypeface(null, Typeface.NORMAL) + } + } + + // last connection + val minAgo = dateUtil.minAgo(rh, comboPlugin.pump.lastSuccessfulCmdTime) + val min = (System.currentTimeMillis() - comboPlugin.pump.lastSuccessfulCmdTime) / 1000 / 60 + when { + comboPlugin.pump.lastSuccessfulCmdTime + 60 * 1000 > System.currentTimeMillis() -> { + binding.comboLastconnection.setText(R.string.combo_pump_connected_now) + binding.comboLastconnection.setTextColor(rh.gac(context, R.attr.defaultTextColor)) + } + comboPlugin.pump.lastSuccessfulCmdTime + 30 * 60 * 1000 < System.currentTimeMillis() -> { + binding.comboLastconnection.text = rh.gs(R.string.combo_no_pump_connection, min) + binding.comboLastconnection.setTextColor(rh.gac(context, R.attr.warningColor)) + } + else -> { + binding.comboLastconnection.text = minAgo + binding.comboLastconnection.setTextColor(rh.gac(context, R.attr.defaultTextColor)) + } + } + + // last bolus + val bolus = comboPlugin.pump.lastBolus + if (bolus != null) { + val agoMsc = System.currentTimeMillis() - bolus.timestamp + val bolusMinAgo = agoMsc / 60.0 / 1000.0 + val unit = rh.gs(R.string.insulin_unit_shortname) + val ago: String = when { + agoMsc < 60 * 1000 -> rh.gs(R.string.combo_pump_connected_now) + bolusMinAgo < 60 -> dateUtil.minAgo(rh, bolus.timestamp) + + else -> dateUtil.hourAgo(bolus.timestamp, rh) + } + binding.comboLastBolus.text = rh.gs(R.string.combo_last_bolus, bolus.amount, unit, ago) + } else { + binding.comboLastBolus.text = "" + } + + // base basal rate + binding.comboBaseBasalRate.text = rh.gs(R.string.pump_basebasalrate, comboPlugin.baseBasalRate) + + // TBR + var tbrStr = "" + if (ps.tbrPercent != -1 && ps.tbrPercent != 100) { + val minSinceRead = (System.currentTimeMillis() - comboPlugin.pump.state.timestamp) / 1000 / 60 + val remaining = ps.tbrRemainingDuration - minSinceRead + if (remaining >= 0) { + tbrStr = rh.gs(R.string.combo_tbr_remaining, ps.tbrPercent, remaining) + } + } + binding.comboTempBasal.text = tbrStr + + // stats + binding.comboBolusCount.text = comboPlugin.bolusesDelivered.toString() + binding.comboTbrCount.text = comboPlugin.tbrsSet.toString() + binding.serialNumber.text = comboPlugin.serialNumber() + updateErrorDisplay(false) + } else { + updateErrorDisplay(true) + } + } + + private fun updateErrorDisplay(forceHide: Boolean) { + var errorCount = -1 + if (!forceHide) { + val displayType = errorUtil.displayType + if (displayType === DisplayType.ON_ERROR || displayType === DisplayType.ALWAYS) { + val errorCountInternal = errorUtil.errorCount + if (errorCountInternal > 0) { + errorCount = errorCountInternal + } else if (displayType === DisplayType.ALWAYS) { + errorCount = 0 + } + } + } + if (errorCount >= 0) { + binding.comboConnectionErrorValue.visibility = View.VISIBLE + binding.comboConnectionErrorLayout.visibility = View.VISIBLE + binding.comboConnectionErrorValue.visibility = View.VISIBLE + binding.comboConnectionErrorValue.text = if (errorCount == 0) "-" else "" + errorCount + } else { + binding.comboConnectionErrorValue.visibility = View.GONE + binding.comboConnectionErrorLayout.visibility = View.GONE + binding.comboConnectionErrorValue.visibility = View.GONE + } + } +} \ No newline at end of file diff --git a/combo/src/main/res/layout/combopump_fragment.xml b/combo/src/main/res/layout/combopump_fragment.xml index e5395759d8..616d7e0654 100644 --- a/combo/src/main/res/layout/combopump_fragment.xml +++ b/combo/src/main/res/layout/combopump_fragment.xml @@ -479,7 +479,6 @@ android:orientation="horizontal"> Date: Thu, 14 Apr 2022 10:41:02 +0200 Subject: [PATCH 07/27] style: use material date time ticker --- .../activities/HistoryBrowseActivity.kt | 41 +++---- .../overview/dialogs/EditQuickWizardDialog.kt | 57 +++++----- .../automation/elements/InputDateTime.kt | 79 ++++++------- .../general/automation/elements/InputTime.kt | 44 +++++--- .../automation/elements/InputTimeRange.kt | 69 +++++++----- .../dialogs/DialogFragmentWithDate.kt | 104 +++++++----------- .../nightscout/androidaps/utils/DateUtil.kt | 32 +++++- core/src/main/res/values-night/styles.xml | 2 + core/src/main/res/values/styles.xml | 2 + 9 files changed, 220 insertions(+), 210 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/activities/HistoryBrowseActivity.kt b/app/src/main/java/info/nightscout/androidaps/activities/HistoryBrowseActivity.kt index d3736c6869..8abf3ff860 100644 --- a/app/src/main/java/info/nightscout/androidaps/activities/HistoryBrowseActivity.kt +++ b/app/src/main/java/info/nightscout/androidaps/activities/HistoryBrowseActivity.kt @@ -1,7 +1,6 @@ package info.nightscout.androidaps.activities import android.annotation.SuppressLint -import android.app.DatePickerDialog import android.content.Context import android.os.Bundle import android.util.DisplayMetrics @@ -9,6 +8,7 @@ import android.view.ViewGroup import android.widget.LinearLayout import android.widget.RelativeLayout import android.widget.TextView +import com.google.android.material.datepicker.MaterialDatePicker import com.jjoe64.graphview.GraphView import dagger.android.HasAndroidInjector import info.nightscout.androidaps.R @@ -148,33 +148,18 @@ class HistoryBrowseActivity : NoSplashAppCompatActivity() { true } - // create an OnDateSetListener - val dateSetListener = DatePickerDialog.OnDateSetListener { _, year, monthOfYear, dayOfMonth -> - Calendar.getInstance().also { calendar -> - calendar.timeInMillis = overviewData.fromTime - calendar[Calendar.YEAR] = year - calendar[Calendar.MONTH] = monthOfYear - calendar[Calendar.DAY_OF_MONTH] = dayOfMonth - calendar[Calendar.MILLISECOND] = 0 - calendar[Calendar.SECOND] = 0 - calendar[Calendar.MINUTE] = 0 - calendar[Calendar.HOUR_OF_DAY] = 0 - setTime(calendar.timeInMillis) - binding.date.text = dateUtil.dateAndTimeString(overviewData.fromTime) - } - loadAll("onClickDate") - } - binding.date.setOnClickListener { - val cal = Calendar.getInstance() - cal.timeInMillis = overviewData.fromTime - DatePickerDialog( - this, - dateSetListener, - cal.get(Calendar.YEAR), - cal.get(Calendar.MONTH), - cal.get(Calendar.DAY_OF_MONTH) - ).show() + MaterialDatePicker.Builder.datePicker() + .setSelection(dateUtil.timeStampToUtcDateMilis(overviewData.fromTime)) + .build() + .apply { + addOnPositiveButtonClickListener { selection -> + setTime(dateUtil.mergeUtcDateToTimestamp(overviewData.fromTime, selection)) + binding.date.text = dateUtil.dateAndTimeString(overviewData.fromTime) + loadAll("onClickDate") + } + } + .show(supportFragmentManager, "history_date_picker") } val dm = DisplayMetrics() @@ -421,4 +406,4 @@ class HistoryBrowseActivity : NoSplashAppCompatActivity() { binding.progressBar.progress = percent binding.progressBar.visibility = (percent != 100).toVisibilityKeepSpace() } -} \ No newline at end of file +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/EditQuickWizardDialog.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/EditQuickWizardDialog.kt index 41f210e7eb..9341f74dc7 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/EditQuickWizardDialog.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/EditQuickWizardDialog.kt @@ -1,6 +1,5 @@ package info.nightscout.androidaps.plugins.general.overview.dialogs -import android.app.TimePickerDialog import android.os.Bundle import android.text.format.DateFormat import android.view.LayoutInflater @@ -8,6 +7,8 @@ import android.view.View import android.view.ViewGroup import android.view.Window import android.view.WindowManager +import com.google.android.material.timepicker.MaterialTimePicker +import com.google.android.material.timepicker.TimeFormat import dagger.android.support.DaggerDialogFragment import info.nightscout.androidaps.R import info.nightscout.androidaps.databinding.OverviewEditquickwizardDialogBinding @@ -24,6 +25,7 @@ import info.nightscout.androidaps.utils.wizard.QuickWizard import info.nightscout.androidaps.utils.wizard.QuickWizardEntry import info.nightscout.shared.sharedPreferences.SP import org.json.JSONException +import java.util.* import javax.inject.Inject class EditQuickWizardDialog : DaggerDialogFragment(), View.OnClickListener { @@ -40,8 +42,7 @@ class EditQuickWizardDialog : DaggerDialogFragment(), View.OnClickListener { private var _binding: OverviewEditquickwizardDialogBinding? = null - // This property is only valid between onCreateView and - // onDestroyView. + // This property is only valid between onCreateView and onDestroyView. private val binding get() = _binding!! override fun onCreateView( @@ -96,41 +97,35 @@ class EditQuickWizardDialog : DaggerDialogFragment(), View.OnClickListener { } binding.okcancel.cancel.setOnClickListener { dismiss() } - // create an OnTimeSetListener - val fromTimeSetListener = TimePickerDialog.OnTimeSetListener { _, hour, minute -> - fromSeconds = (T.hours(hour.toLong()).secs() + T.mins(minute.toLong()).secs()).toInt() - binding.from.text = dateUtil.timeString(dateUtil.secondsOfTheDayToMilliseconds(fromSeconds)) + binding.from.setOnClickListener { + val clockFormat = if (DateFormat.is24HourFormat(context)) TimeFormat.CLOCK_24H else TimeFormat.CLOCK_12H + val timePicker = MaterialTimePicker.Builder() + .setTimeFormat(clockFormat) + .setHour(T.secs(fromSeconds.toLong()).hours().toInt()) + .setMinute(T.secs((fromSeconds % 3600).toLong()).mins().toInt()) + .build() + timePicker.addOnPositiveButtonClickListener { + fromSeconds = (T.hours(timePicker.hour.toLong()).secs() + T.mins(timePicker.minute.toLong()).secs()).toInt() + binding.from.text = dateUtil.timeString(dateUtil.secondsOfTheDayToMilliseconds(fromSeconds)) + } + timePicker.show(parentFragmentManager, "event_time_time_picker") } - binding.from.setOnClickListener { - context?.let { - TimePickerDialog( - it, - fromTimeSetListener, - T.secs(fromSeconds.toLong()).hours().toInt(), - T.secs((fromSeconds % 3600).toLong()).mins().toInt(), - DateFormat.is24HourFormat(context) - ).show() - } - } fromSeconds = entry.validFrom() binding.from.text = dateUtil.timeString(dateUtil.secondsOfTheDayToMilliseconds(fromSeconds)) - val toTimeSetListener = TimePickerDialog.OnTimeSetListener { _, hour, minute -> - toSeconds = (T.hours(hour.toLong()).secs() + T.mins(minute.toLong()).secs()).toInt() - binding.to.text = dateUtil.timeString(dateUtil.secondsOfTheDayToMilliseconds(toSeconds)) - } - binding.to.setOnClickListener { - context?.let { - TimePickerDialog( - it, - toTimeSetListener, - T.secs(toSeconds.toLong()).hours().toInt(), - T.secs((toSeconds % 3600).toLong()).mins().toInt(), - DateFormat.is24HourFormat(context) - ).show() + val clockFormat = if (DateFormat.is24HourFormat(context)) TimeFormat.CLOCK_24H else TimeFormat.CLOCK_12H + val timePicker = MaterialTimePicker.Builder() + .setTimeFormat(clockFormat) + .setHour(T.secs(toSeconds.toLong()).hours().toInt()) + .setMinute(T.secs((toSeconds % 3600).toLong()).mins().toInt()) + .build() + timePicker.addOnPositiveButtonClickListener { + toSeconds = (T.hours(timePicker.hour.toLong()).secs() + T.mins(timePicker.minute.toLong()).secs()).toInt() + binding.to.text = dateUtil.timeString(dateUtil.secondsOfTheDayToMilliseconds(toSeconds)) } + timePicker.show(parentFragmentManager, "event_time_time_picker") } fun usePercentage(custom: Boolean) { diff --git a/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDateTime.kt b/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDateTime.kt index fb1f779f0f..861cf8a194 100644 --- a/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDateTime.kt +++ b/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDateTime.kt @@ -1,12 +1,17 @@ package info.nightscout.androidaps.plugins.general.automation.elements -import android.app.DatePickerDialog -import android.app.TimePickerDialog +import android.content.Context import android.graphics.Typeface import android.text.format.DateFormat import android.view.ViewGroup import android.widget.LinearLayout import android.widget.TextView +import androidx.appcompat.app.AppCompatActivity +import android.view.ContextThemeWrapper +import androidx.fragment.app.FragmentManager +import com.google.android.material.datepicker.MaterialDatePicker +import com.google.android.material.timepicker.MaterialTimePicker +import com.google.android.material.timepicker.TimeFormat import info.nightscout.androidaps.automation.R import info.nightscout.androidaps.utils.DateUtil import info.nightscout.androidaps.utils.resources.ResourceHelper @@ -32,24 +37,17 @@ class InputDateTime(private val rh: ResourceHelper, private val dateUtil: DateUt text = dateUtil.dateString(value) setPadding(px, px, px, px) setOnClickListener { - root.context?.let { - val cal = Calendar.getInstance() - cal.timeInMillis = value - DatePickerDialog( - it, - { _, year, monthOfYear, dayOfMonth -> - value = Calendar.getInstance().apply { - timeInMillis = value - set(Calendar.YEAR, year) - set(Calendar.MONTH, monthOfYear) - set(Calendar.DAY_OF_MONTH, dayOfMonth) - }.timeInMillis - text = dateUtil.dateString(value) - }, - cal.get(Calendar.YEAR), - cal.get(Calendar.MONTH), - cal.get(Calendar.DAY_OF_MONTH) - ).show() + getFragmentManager(root.context)?.let { fm -> + MaterialDatePicker.Builder.datePicker() + .setSelection(dateUtil.timeStampToUtcDateMilis(value)) + .build() + .apply { + addOnPositiveButtonClickListener { selection -> + value = dateUtil.mergeUtcDateToTimestamp(value, selection) + text = dateUtil.dateString(value) + } + } + .show(fm, "input_date_picker") } } }) @@ -58,28 +56,31 @@ class InputDateTime(private val rh: ResourceHelper, private val dateUtil: DateUt text = dateUtil.timeString(value) setPadding(px, px, px, px) setOnClickListener { - root.context?.let { - val cal = Calendar.getInstance() - cal.timeInMillis = value - TimePickerDialog( - it, - { _, hour, minute -> - value = Calendar.getInstance().apply { - timeInMillis = value - set(Calendar.HOUR_OF_DAY, hour) - set(Calendar.MINUTE, minute) - set(Calendar.SECOND, 0) // randomize seconds to prevent creating record of the same time, if user choose time manually - }.timeInMillis - text = dateUtil.timeString(value) - }, - cal.get(Calendar.HOUR_OF_DAY), - cal.get(Calendar.MINUTE), - DateFormat.is24HourFormat(it) - ).show() + getFragmentManager(root.context)?.let { fm -> + val cal = Calendar.getInstance().apply { timeInMillis = value } + val clockFormat = if (DateFormat.is24HourFormat(context)) TimeFormat.CLOCK_24H else TimeFormat.CLOCK_12H + val timePicker = MaterialTimePicker.Builder() + .setTimeFormat(clockFormat) + .setHour(cal.get(Calendar.HOUR_OF_DAY)) + .setMinute(cal.get(Calendar.MINUTE)) + .build() + timePicker.addOnPositiveButtonClickListener { + value = dateUtil.mergeHourMinuteToTimestamp(value, timePicker.hour, timePicker.minute) + text = dateUtil.timeString(value) + } + timePicker.show(fm, "input_time_picker") } } } ) }) } -} \ No newline at end of file + + private fun getFragmentManager(context: Context?): FragmentManager? { + return when (context) { + is AppCompatActivity -> context.supportFragmentManager + is ContextThemeWrapper -> getFragmentManager(context.baseContext) + else -> null + } + } +} diff --git a/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTime.kt b/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTime.kt index fcee35b411..5ea6c66ff0 100644 --- a/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTime.kt +++ b/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTime.kt @@ -1,12 +1,16 @@ package info.nightscout.androidaps.plugins.general.automation.elements -import android.app.TimePickerDialog +import android.content.Context import android.graphics.Typeface import android.text.format.DateFormat -import android.view.Gravity +import android.view.ContextThemeWrapper import android.view.ViewGroup import android.widget.LinearLayout import android.widget.TextView +import androidx.appcompat.app.AppCompatActivity +import androidx.fragment.app.FragmentManager +import com.google.android.material.timepicker.MaterialTimePicker +import com.google.android.material.timepicker.TimeFormat import info.nightscout.androidaps.automation.R import info.nightscout.androidaps.interfaces.Profile import info.nightscout.androidaps.utils.DateUtil @@ -34,19 +38,19 @@ class InputTime(private val rh: ResourceHelper, private val dateUtil: DateUtil) val px = rh.dpToPx(10) setPadding(px, px, px, px) setOnClickListener { - root.context?.let { - val cal = Calendar.getInstance() - cal.timeInMillis = toMills(value) - TimePickerDialog( - it, - { _, hour, minute -> - value = 60 * hour + minute - text = dateUtil.timeString(toMills(value)) - }, - cal.get(Calendar.HOUR_OF_DAY), - cal.get(Calendar.MINUTE), - DateFormat.is24HourFormat(it) - ).show() + getFragmentManager(root.context)?.let { fm -> + val cal = Calendar.getInstance().apply { timeInMillis = toMills(value) } + val clockFormat = if (DateFormat.is24HourFormat(context)) TimeFormat.CLOCK_24H else TimeFormat.CLOCK_12H + val timePicker = MaterialTimePicker.Builder() + .setTimeFormat(clockFormat) + .setHour(cal.get(Calendar.HOUR_OF_DAY)) + .setMinute(cal.get(Calendar.MINUTE)) + .build() + timePicker.addOnPositiveButtonClickListener { + value = 60 * timePicker.hour + timePicker.minute + text = dateUtil.timeString(toMills(value)) + } + timePicker.show(fm, "input_time_picker") } } }) @@ -56,4 +60,12 @@ class InputTime(private val rh: ResourceHelper, private val dateUtil: DateUtil) private fun toMills(minutesSinceMidnight: Int): Long = MidnightTime.calcPlusMinutes(minutesSinceMidnight) private fun getMinSinceMidnight(time: Long): Int = Profile.secondsFromMidnight(time) / 60 -} \ No newline at end of file + + private fun getFragmentManager(context: Context?): FragmentManager? { + return when (context) { + is AppCompatActivity -> context.supportFragmentManager + is ContextThemeWrapper -> getFragmentManager(context.baseContext) + else -> null + } + } +} diff --git a/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTimeRange.kt b/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTimeRange.kt index 343f617a27..a417c1891b 100644 --- a/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTimeRange.kt +++ b/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTimeRange.kt @@ -1,12 +1,17 @@ package info.nightscout.androidaps.plugins.general.automation.elements -import android.app.TimePickerDialog +import android.content.Context import android.graphics.Typeface import android.text.format.DateFormat +import android.view.ContextThemeWrapper import android.view.Gravity import android.view.ViewGroup import android.widget.LinearLayout import android.widget.TextView +import androidx.appcompat.app.AppCompatActivity +import androidx.fragment.app.FragmentManager +import com.google.android.material.timepicker.MaterialTimePicker +import com.google.android.material.timepicker.TimeFormat import info.nightscout.androidaps.automation.R import info.nightscout.androidaps.interfaces.Profile import info.nightscout.androidaps.utils.DateUtil @@ -38,19 +43,19 @@ class InputTimeRange(private val rh: ResourceHelper, private val dateUtil: DateU text = dateUtil.timeString(toMills(start)) setPadding(px, px, px, px) setOnClickListener { - root.context?.let { - val cal = Calendar.getInstance() - cal.timeInMillis = toMills(start) - TimePickerDialog( - it, - { _, hour, minute -> - start = 60 * hour + minute - text = dateUtil.timeString(toMills(start)) - }, - cal.get(Calendar.HOUR_OF_DAY), - cal.get(Calendar.MINUTE), - DateFormat.is24HourFormat(it) - ).show() + getFragmentManager(root.context)?.let { fm -> + val cal = Calendar.getInstance().apply { timeInMillis = toMills(start) } + val clockFormat = if (DateFormat.is24HourFormat(context)) TimeFormat.CLOCK_24H else TimeFormat.CLOCK_12H + val timePicker = MaterialTimePicker.Builder() + .setTimeFormat(clockFormat) + .setHour(cal.get(Calendar.HOUR_OF_DAY)) + .setMinute(cal.get(Calendar.MINUTE)) + .build() + timePicker.addOnPositiveButtonClickListener { + start = 60 * timePicker.hour + timePicker.minute + text = dateUtil.timeString(toMills(start)) + } + timePicker.show(fm, "input_time_range_start_picker") } } }) @@ -59,19 +64,19 @@ class InputTimeRange(private val rh: ResourceHelper, private val dateUtil: DateU text = rh.gs(R.string.and) + " " + dateUtil.timeString(toMills(end)) setPadding(px, px, px, px) setOnClickListener { - root.context?.let { - val cal = Calendar.getInstance() - cal.timeInMillis = toMills(end) - TimePickerDialog( - it, - { _, hour, minute -> - end = 60 * hour + minute - text = dateUtil.timeString(toMills(end)) - }, - cal.get(Calendar.HOUR_OF_DAY), - cal.get(Calendar.MINUTE), - DateFormat.is24HourFormat(it) - ).show() + getFragmentManager(root.context)?.let { fm -> + val cal = Calendar.getInstance().apply { timeInMillis = toMills(end) } + val clockFormat = if (DateFormat.is24HourFormat(context)) TimeFormat.CLOCK_24H else TimeFormat.CLOCK_12H + val timePicker = MaterialTimePicker.Builder() + .setTimeFormat(clockFormat) + .setHour(cal.get(Calendar.HOUR_OF_DAY)) + .setMinute(cal.get(Calendar.MINUTE)) + .build() + timePicker.addOnPositiveButtonClickListener { + end = 60 * timePicker.hour + timePicker.minute + text = dateUtil.timeString(toMills(end)) + } + timePicker.show(fm, "input_time_range_end_picker") } } }) @@ -81,4 +86,12 @@ class InputTimeRange(private val rh: ResourceHelper, private val dateUtil: DateU private fun toMills(minutesSinceMidnight: Int): Long = MidnightTime.calcPlusMinutes(minutesSinceMidnight) private fun getMinSinceMidnight(time: Long): Int = Profile.secondsFromMidnight(time) / 60 -} \ No newline at end of file + + private fun getFragmentManager(context: Context?): FragmentManager? { + return when (context) { + is AppCompatActivity -> context.supportFragmentManager + is ContextThemeWrapper -> getFragmentManager(context.baseContext) + else -> null + } + } +} diff --git a/core/src/main/java/info/nightscout/androidaps/dialogs/DialogFragmentWithDate.kt b/core/src/main/java/info/nightscout/androidaps/dialogs/DialogFragmentWithDate.kt index a4cff0630e..7a56579093 100644 --- a/core/src/main/java/info/nightscout/androidaps/dialogs/DialogFragmentWithDate.kt +++ b/core/src/main/java/info/nightscout/androidaps/dialogs/DialogFragmentWithDate.kt @@ -1,7 +1,5 @@ package info.nightscout.androidaps.dialogs -import android.app.DatePickerDialog -import android.app.TimePickerDialog import android.os.Bundle import android.text.format.DateFormat import android.view.View @@ -11,12 +9,15 @@ import android.view.WindowManager import android.widget.Button import android.widget.TextView import androidx.fragment.app.FragmentManager +import com.google.android.material.datepicker.MaterialDatePicker +import com.google.android.material.timepicker.MaterialTimePicker +import com.google.android.material.timepicker.TimeFormat import dagger.android.support.DaggerDialogFragment import info.nightscout.androidaps.core.R +import info.nightscout.androidaps.extensions.toVisibility +import info.nightscout.androidaps.utils.DateUtil import info.nightscout.shared.logging.AAPSLogger import info.nightscout.shared.logging.LTag -import info.nightscout.androidaps.utils.DateUtil -import info.nightscout.androidaps.extensions.toVisibility import info.nightscout.shared.sharedPreferences.SP import java.util.* import java.util.concurrent.atomic.AtomicBoolean @@ -29,6 +30,7 @@ abstract class DialogFragmentWithDate : DaggerDialogFragment() { @Inject lateinit var dateUtil: DateUtil fun interface OnValueChangedListener { + fun onValueChanged(value: Long) } @@ -44,11 +46,6 @@ abstract class DialogFragmentWithDate : DaggerDialogFragment() { //one shot guards private var okClicked: AtomicBoolean = AtomicBoolean(false) - companion object { - - private var seconds: Int = (Math.random() * 59.0).toInt() - } - override fun onStart() { super.onStart() dialog?.window?.setLayout( @@ -78,69 +75,44 @@ abstract class DialogFragmentWithDate : DaggerDialogFragment() { } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - eventDateView = view.findViewById(R.id.eventdate) as TextView? - eventTimeView = view.findViewById(R.id.eventtime) as TextView? - eventTimeOriginal = savedInstanceState?.getLong("eventTimeOriginal") ?: dateUtil.nowWithoutMilliseconds() eventTime = savedInstanceState?.getLong("eventTime") ?: eventTimeOriginal + eventDateView = view.findViewById(R.id.eventdate) as TextView? eventDateView?.text = dateUtil.dateString(eventTime) - eventTimeView?.text = dateUtil.timeString(eventTime) + eventDateView?.setOnClickListener { + val selection = dateUtil.timeStampToUtcDateMilis(eventTime) + MaterialDatePicker.Builder.datePicker() + .setSelection(selection) + .build() + .apply { + addOnPositiveButtonClickListener { selection -> + eventTime = dateUtil.mergeUtcDateToTimestamp(eventTime, selection) + eventDateView?.text = dateUtil.dateString(eventTime) + callValueChangedListener() - // create an OnDateSetListener - val dateSetListener = - DatePickerDialog.OnDateSetListener { _, year, monthOfYear, dayOfMonth -> - val cal = Calendar.getInstance() - cal.timeInMillis = eventTime - cal.set(Calendar.YEAR, year) - cal.set(Calendar.MONTH, monthOfYear) - cal.set(Calendar.DAY_OF_MONTH, dayOfMonth) - eventTime = cal.timeInMillis - eventDateView?.text = dateUtil.dateString(eventTime) + } + } + .show(parentFragmentManager, "event_time_date_picker") + } + + eventTimeView = view.findViewById(R.id.eventtime) as TextView? + eventTimeView?.text = dateUtil.timeString(eventTime) + eventTimeView?.setOnClickListener { + val clockFormat = if (DateFormat.is24HourFormat(context)) TimeFormat.CLOCK_24H else TimeFormat.CLOCK_12H + val cal = Calendar.getInstance().apply { timeInMillis = eventTime } + val timePicker = MaterialTimePicker.Builder() + .setTimeFormat(clockFormat) + .setHour(cal.get(Calendar.HOUR_OF_DAY)) + .setMinute(cal.get(Calendar.MINUTE)) + .build() + timePicker.addOnPositiveButtonClickListener { + // Randomize seconds to prevent creating record of the same time, if user choose time manually + eventTime = dateUtil.mergeHourMinuteToTimestamp(eventTime, timePicker.hour, timePicker.minute, true) + eventTimeView?.text = dateUtil.timeString(eventTime) callValueChangedListener() } - - eventDateView?.setOnClickListener { - context?.let { - val cal = Calendar.getInstance() - cal.timeInMillis = eventTime - DatePickerDialog( - it, - dateSetListener, - cal.get(Calendar.YEAR), - cal.get(Calendar.MONTH), - cal.get(Calendar.DAY_OF_MONTH) - ).show() - } - } - - // create an OnTimeSetListener - val timeSetListener = TimePickerDialog.OnTimeSetListener { _, hour, minute -> - val cal = Calendar.getInstance() - cal.timeInMillis = eventTime - cal.set(Calendar.HOUR_OF_DAY, hour) - cal.set(Calendar.MINUTE, minute) - cal.set( - Calendar.SECOND, - seconds++ - ) // randomize seconds to prevent creating record of the same time, if user choose time manually - eventTime = cal.timeInMillis - eventTimeView?.text = dateUtil.timeString(eventTime) - callValueChangedListener() - } - - eventTimeView?.setOnClickListener { - context?.let { - val cal = Calendar.getInstance() - cal.timeInMillis = eventTime - TimePickerDialog( - it, - timeSetListener, - cal.get(Calendar.HOUR_OF_DAY), - cal.get(Calendar.MINUTE), - DateFormat.is24HourFormat(context) - ).show() - } + timePicker.show(parentFragmentManager, "event_time_time_picker") } (view.findViewById(R.id.notes_layout) as View?)?.visibility = @@ -189,4 +161,4 @@ abstract class DialogFragmentWithDate : DaggerDialogFragment() { } abstract fun submit(): Boolean -} \ No newline at end of file +} diff --git a/core/src/main/java/info/nightscout/androidaps/utils/DateUtil.kt b/core/src/main/java/info/nightscout/androidaps/utils/DateUtil.kt index 6b6f79f493..a4b072057b 100644 --- a/core/src/main/java/info/nightscout/androidaps/utils/DateUtil.kt +++ b/core/src/main/java/info/nightscout/androidaps/utils/DateUtil.kt @@ -386,12 +386,40 @@ class DateUtil @Inject constructor(private val context: Context) { .firstOrNull() ?: ZoneId.of("UTC") ) + fun timeStampToUtcDateMilis(timestamp: Long): Long { + val current = Calendar.getInstance().apply { timeInMillis = timestamp } + return Calendar.getInstance().apply { + set(Calendar.YEAR, current.get(Calendar.YEAR)) + set(Calendar.MONTH, current.get(Calendar.MONTH)) + set(Calendar.DAY_OF_MONTH, current.get(Calendar.DAY_OF_MONTH)) + }.timeInMillis + } + + fun mergeUtcDateToTimestamp(timestamp: Long, dateUtcMilis: Long): Long { + val selected = Calendar.getInstance().apply { timeInMillis = dateUtcMilis } + return Calendar.getInstance().apply { + timeInMillis = timestamp + set(Calendar.YEAR, selected.get(Calendar.YEAR)) + set(Calendar.MONTH, selected.get(Calendar.MONTH)) + set(Calendar.DAY_OF_MONTH, selected.get(Calendar.DAY_OF_MONTH)) + }.timeInMillis + } + + fun mergeHourMinuteToTimestamp(timestamp: Long, hour: Int, minute: Int, randomSecond: Boolean = false): Long { + return Calendar.getInstance().apply { + timeInMillis = timestamp + set(Calendar.HOUR_OF_DAY, hour) + set(Calendar.MINUTE, minute) + if (randomSecond) set(Calendar.SECOND, seconds++) + }.timeInMillis + } + companion object { private val timeStrings = LongSparseArray() - + private var seconds: Int = (Math.random() * 59.0).toInt() // singletons to avoid repeated allocation private var dfs: DecimalFormatSymbols? = null private var df: DecimalFormat? = null } -} \ No newline at end of file +} diff --git a/core/src/main/res/values-night/styles.xml b/core/src/main/res/values-night/styles.xml index f7b6521c01..400072835a 100644 --- a/core/src/main/res/values-night/styles.xml +++ b/core/src/main/res/values-night/styles.xml @@ -9,6 +9,8 @@ @color/dialog_title_color @color/dialog_title_icon_tint + @style/ThemeOverlay.MaterialComponents.TimePicker + @style/ThemeOverlay.MaterialComponents.MaterialCalendar @color/aaps_theme_dark_secondary @color/primaryLightColorDefault @color/secondaryLightColorDefault diff --git a/core/src/main/res/values/styles.xml b/core/src/main/res/values/styles.xml index d945378321..acb2b76ea6 100644 --- a/core/src/main/res/values/styles.xml +++ b/core/src/main/res/values/styles.xml @@ -19,6 +19,8 @@ @color/dialog_title_color @color/dialog_title_icon_tint + @style/ThemeOverlay.MaterialComponents.TimePicker + @style/ThemeOverlay.MaterialComponents.MaterialCalendar @color/primaryLightColorDefault @color/secondaryLightColorDefault @color/mtrl_scrim_color From b81bc4b5a7f11feabb52766c7ef9e2b9d3bd1d47 Mon Sep 17 00:00:00 2001 From: Andries Smit Date: Thu, 14 Apr 2022 13:49:08 +0200 Subject: [PATCH 08/27] chore: convert to material alert dialogs --- .../alertDialogs/PrefImportSummaryDialog.kt | 9 ++++----- .../alertDialogs/TwoMessagesAlertDialog.kt | 6 +++--- .../androidaps/utils/alertDialogs/OKDialog.kt | 19 ++++++++++--------- .../utils/alertDialogs/WarningDialog.kt | 5 +++-- .../utils/protection/PasswordCheck.kt | 7 ++++--- 5 files changed, 24 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/utils/alertDialogs/PrefImportSummaryDialog.kt b/app/src/main/java/info/nightscout/androidaps/utils/alertDialogs/PrefImportSummaryDialog.kt index 46756397d5..60edb6b6ad 100644 --- a/app/src/main/java/info/nightscout/androidaps/utils/alertDialogs/PrefImportSummaryDialog.kt +++ b/app/src/main/java/info/nightscout/androidaps/utils/alertDialogs/PrefImportSummaryDialog.kt @@ -16,6 +16,7 @@ import androidx.annotation.DrawableRes import androidx.annotation.StringRes import androidx.annotation.StyleRes import androidx.appcompat.view.ContextThemeWrapper +import com.google.android.material.dialog.MaterialAlertDialogBuilder import info.nightscout.androidaps.R import info.nightscout.androidaps.extensions.runOnUiThread import info.nightscout.androidaps.plugins.general.maintenance.formats.Prefs @@ -49,7 +50,6 @@ object PrefImportSummaryDialog { var idx = 0 val details = LinkedList() - for ((metaKey, metaEntry) in prefs.metadata) { val rowLayout = LayoutInflater.from(themedCtx).inflate(R.layout.import_summary_item, null) val label = (rowLayout.findViewById(R.id.summary_text) as TextView) @@ -92,7 +92,7 @@ object PrefImportSummaryDialog { webView.setBackgroundColor(Color.TRANSPARENT) webView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null) - AlertDialogHelper.Builder(context, R.style.DialogTheme) + MaterialAlertDialogBuilder(context, R.style.DialogTheme) .setCustomTitle( AlertDialogHelper.buildCustomTitle( context, @@ -109,11 +109,10 @@ object PrefImportSummaryDialog { } } - val builder = AlertDialogHelper.Builder(context, theme) + val builder = MaterialAlertDialogBuilder(context, theme) .setMessage(context.getString(messageRes)) .setCustomTitle(AlertDialogHelper.buildCustomTitle(context, context.getString(R.string.nav_import), headerIcon, theme)) .setView(innerLayout) - .setNegativeButton(android.R.string.cancel) { dialog: DialogInterface, _: Int -> dialog.dismiss() SystemClock.sleep(100) @@ -137,4 +136,4 @@ object PrefImportSummaryDialog { dialog.setCanceledOnTouchOutside(false) } -} \ No newline at end of file +} diff --git a/app/src/main/java/info/nightscout/androidaps/utils/alertDialogs/TwoMessagesAlertDialog.kt b/app/src/main/java/info/nightscout/androidaps/utils/alertDialogs/TwoMessagesAlertDialog.kt index 0bfd1f72f9..d4f2787538 100644 --- a/app/src/main/java/info/nightscout/androidaps/utils/alertDialogs/TwoMessagesAlertDialog.kt +++ b/app/src/main/java/info/nightscout/androidaps/utils/alertDialogs/TwoMessagesAlertDialog.kt @@ -8,6 +8,7 @@ import android.view.LayoutInflater import android.view.View import android.widget.TextView import androidx.annotation.DrawableRes +import com.google.android.material.dialog.MaterialAlertDialogBuilder import info.nightscout.androidaps.R import info.nightscout.androidaps.extensions.runOnUiThread @@ -19,7 +20,7 @@ object TwoMessagesAlertDialog { val secondMessageLayout = LayoutInflater.from(context).inflate(R.layout.dialog_alert_two_messages, null) (secondMessageLayout.findViewById(R.id.password_prompt_title) as TextView).text = secondMessage - AlertDialogHelper.Builder(context, R.style.DialogTheme) + MaterialAlertDialogBuilder(context, R.style.DialogTheme) .setMessage(message) .setCustomTitle( AlertDialogHelper.buildCustomTitle( @@ -32,7 +33,6 @@ object TwoMessagesAlertDialog { dialog.dismiss() SystemClock.sleep(100) if (ok != null) runOnUiThread { ok() } - } .setNegativeButton(android.R.string.cancel) { dialog: DialogInterface, _: Int -> dialog.dismiss() @@ -43,4 +43,4 @@ object TwoMessagesAlertDialog { .setCanceledOnTouchOutside(false) } -} \ No newline at end of file +} diff --git a/core/src/main/java/info/nightscout/androidaps/utils/alertDialogs/OKDialog.kt b/core/src/main/java/info/nightscout/androidaps/utils/alertDialogs/OKDialog.kt index 0de43096e0..53b25b4a67 100644 --- a/core/src/main/java/info/nightscout/androidaps/utils/alertDialogs/OKDialog.kt +++ b/core/src/main/java/info/nightscout/androidaps/utils/alertDialogs/OKDialog.kt @@ -6,6 +6,7 @@ import android.content.DialogInterface import android.os.SystemClock import android.text.Spanned import androidx.fragment.app.FragmentActivity +import com.google.android.material.dialog.MaterialAlertDialogBuilder import info.nightscout.androidaps.core.R import info.nightscout.androidaps.extensions.runOnUiThread @@ -17,7 +18,7 @@ object OKDialog { var notEmptyTitle = title if (notEmptyTitle.isEmpty()) notEmptyTitle = context.getString(R.string.message) - AlertDialogHelper.Builder(context, R.style.DialogTheme) + MaterialAlertDialogBuilder(context, R.style.DialogTheme) .setCustomTitle(AlertDialogHelper.buildCustomTitle(context, notEmptyTitle)) .setMessage(message) .setPositiveButton(context.getString(R.string.ok)) { dialog: DialogInterface, _: Int -> @@ -39,7 +40,7 @@ object OKDialog { var notEmptyTitle = title if (notEmptyTitle.isEmpty()) notEmptyTitle = activity.getString(R.string.message) - AlertDialogHelper.Builder(activity, R.style.DialogTheme) + MaterialAlertDialogBuilder(activity, R.style.DialogTheme) .setCustomTitle(AlertDialogHelper.buildCustomTitle(activity, notEmptyTitle)) .setMessage(message) .setPositiveButton(activity.getString(R.string.ok)) { dialog: DialogInterface, _: Int -> @@ -66,7 +67,7 @@ object OKDialog { @SuppressLint("InflateParams") fun showConfirmation(activity: FragmentActivity, title: String, message: Spanned, ok: Runnable?, cancel: Runnable? = null) { var okClicked = false - AlertDialogHelper.Builder(activity, R.style.DialogTheme) + MaterialAlertDialogBuilder(activity, R.style.DialogTheme) .setMessage(message) .setCustomTitle(AlertDialogHelper.buildCustomTitle(activity, title)) .setPositiveButton(android.R.string.ok) { dialog: DialogInterface, _: Int -> @@ -94,7 +95,7 @@ object OKDialog { @SuppressLint("InflateParams") fun showConfirmation(activity: FragmentActivity, title: String, message: String, ok: Runnable?, cancel: Runnable? = null) { var okClicked = false - AlertDialogHelper.Builder(activity, R.style.DialogTheme) + MaterialAlertDialogBuilder(activity, R.style.DialogTheme) .setMessage(message) .setCustomTitle(AlertDialogHelper.buildCustomTitle(activity, title)) .setPositiveButton(android.R.string.ok) { dialog: DialogInterface, _: Int -> @@ -126,7 +127,7 @@ object OKDialog { @SuppressLint("InflateParams") fun showConfirmation(context: Context, title: String, message: Spanned, ok: Runnable?, cancel: Runnable? = null) { var okClicked = false - AlertDialogHelper.Builder(context, R.style.DialogTheme) + MaterialAlertDialogBuilder(context, R.style.DialogTheme) .setMessage(message) .setCustomTitle(AlertDialogHelper.buildCustomTitle(context, title)) .setPositiveButton(android.R.string.ok) { dialog: DialogInterface, _: Int -> @@ -158,7 +159,7 @@ object OKDialog { @SuppressLint("InflateParams") fun showConfirmation(context: Context, title: String, message: String, ok: Runnable?, cancel: Runnable? = null) { var okClicked = false - AlertDialogHelper.Builder(context, R.style.DialogTheme) + MaterialAlertDialogBuilder(context, R.style.DialogTheme) .setMessage(message) .setCustomTitle(AlertDialogHelper.buildCustomTitle(context, title)) .setPositiveButton(android.R.string.ok) { dialog: DialogInterface, _: Int -> @@ -186,7 +187,7 @@ object OKDialog { @SuppressLint("InflateParams") fun showConfirmation(context: Context, title: String, message: String, ok: DialogInterface.OnClickListener?, cancel: DialogInterface.OnClickListener? = null) { var okClicked = false - AlertDialogHelper.Builder(context, R.style.DialogTheme) + MaterialAlertDialogBuilder(context, R.style.DialogTheme) .setMessage(message) .setCustomTitle(AlertDialogHelper.buildCustomTitle(context, title)) .setPositiveButton(android.R.string.ok) { dialog: DialogInterface, which: Int -> @@ -214,7 +215,7 @@ object OKDialog { @SuppressLint("InflateParams") fun showYesNoCancel(context: Context, title: String, message: String, yes: Runnable?, no: Runnable? = null) { var okClicked = false - AlertDialogHelper.Builder(context, R.style.DialogTheme) + MaterialAlertDialogBuilder(context, R.style.DialogTheme) .setMessage(message) .setCustomTitle(AlertDialogHelper.buildCustomTitle(context, title)) .setPositiveButton(R.string.yes) { dialog: DialogInterface, _: Int -> @@ -242,4 +243,4 @@ object OKDialog { .setCanceledOnTouchOutside(false) } -} \ No newline at end of file +} diff --git a/core/src/main/java/info/nightscout/androidaps/utils/alertDialogs/WarningDialog.kt b/core/src/main/java/info/nightscout/androidaps/utils/alertDialogs/WarningDialog.kt index 38f3314667..1c72451ee3 100644 --- a/core/src/main/java/info/nightscout/androidaps/utils/alertDialogs/WarningDialog.kt +++ b/core/src/main/java/info/nightscout/androidaps/utils/alertDialogs/WarningDialog.kt @@ -5,6 +5,7 @@ import android.content.Context import android.content.DialogInterface import android.os.SystemClock import androidx.annotation.StringRes +import com.google.android.material.dialog.MaterialAlertDialogBuilder import info.nightscout.androidaps.core.R import info.nightscout.androidaps.extensions.runOnUiThread @@ -15,7 +16,7 @@ object WarningDialog { @SuppressLint("InflateParams") fun showWarning(context: Context, title: String, message: String, @StringRes positiveButton: Int = -1, ok: (() -> Unit)? = null, cancel: (() -> Unit)? = null) { var okClicked = false - val builder = AlertDialogHelper.Builder(context, R.style.AppThemeWarningDialog) + val builder = MaterialAlertDialogBuilder(context, R.style.AppThemeWarningDialog) .setMessage(message) .setCustomTitle(AlertDialogHelper.buildCustomTitle(context, title, R.drawable.ic_header_warning, R.style.AppThemeWarningDialog)) .setNegativeButton(R.string.dismiss) { dialog: DialogInterface, _: Int -> @@ -52,4 +53,4 @@ object WarningDialog { dialog.setCanceledOnTouchOutside(true) } -} \ No newline at end of file +} diff --git a/core/src/main/java/info/nightscout/androidaps/utils/protection/PasswordCheck.kt b/core/src/main/java/info/nightscout/androidaps/utils/protection/PasswordCheck.kt index a395cdc111..9d03d04cbc 100644 --- a/core/src/main/java/info/nightscout/androidaps/utils/protection/PasswordCheck.kt +++ b/core/src/main/java/info/nightscout/androidaps/utils/protection/PasswordCheck.kt @@ -11,6 +11,7 @@ import android.view.inputmethod.InputMethodManager import android.widget.EditText import android.widget.TextView import androidx.annotation.StringRes +import com.google.android.material.dialog.MaterialAlertDialogBuilder import info.nightscout.androidaps.core.R import info.nightscout.androidaps.interfaces.ActivePlugin import info.nightscout.androidaps.plugins.general.maintenance.PrefFileListProvider @@ -44,7 +45,7 @@ class PasswordCheck @Inject constructor( return } val promptsView = LayoutInflater.from(context).inflate(R.layout.passwordprompt, null) - val alertDialogBuilder = AlertDialogHelper.Builder(context, R.style.DialogTheme) + val alertDialogBuilder = MaterialAlertDialogBuilder(context, R.style.DialogTheme) alertDialogBuilder.setView(promptsView) val userInput = promptsView.findViewById(R.id.password_prompt_pass) as EditText @@ -101,7 +102,7 @@ class PasswordCheck @Inject constructor( @SuppressLint("InflateParams") fun setPassword(context: Context, @StringRes labelId: Int, @StringRes preference: Int, ok: ((String) -> Unit)? = null, cancel: (() -> Unit)? = null, clear: (() -> Unit)? = null, pinInput: Boolean = false) { val promptsView = LayoutInflater.from(context).inflate(R.layout.passwordprompt, null) - val alertDialogBuilder = AlertDialogHelper.Builder(context, R.style.DialogTheme) + val alertDialogBuilder = MaterialAlertDialogBuilder(context, R.style.DialogTheme) alertDialogBuilder.setView(promptsView) val userInput = promptsView.findViewById(R.id.password_prompt_pass) as EditText @@ -165,7 +166,7 @@ class PasswordCheck @Inject constructor( @StringRes passwordWarning: Int?, ok: ((String) -> Unit)?, cancel: (() -> Unit)? = null) { val promptsView = LayoutInflater.from(context).inflate(R.layout.passwordprompt, null) - val alertDialogBuilder = AlertDialogHelper.Builder(context, R.style.DialogTheme) + val alertDialogBuilder = MaterialAlertDialogBuilder(context, R.style.DialogTheme) alertDialogBuilder.setView(promptsView) passwordExplanation?.let { alertDialogBuilder.setMessage(it) } From 967ca198fcfb1f8756878853784e402d7001e10a Mon Sep 17 00:00:00 2001 From: osodebailar Date: Thu, 14 Apr 2022 15:19:38 +0200 Subject: [PATCH 09/27] objective colors by attribut --- .../constraints/objectives/ObjectivesFragment.kt | 16 +++++++++------- .../objectives/objectives/Objective.kt | 2 +- core/src/main/res/values-night/colors.xml | 6 ++++-- core/src/main/res/values-night/styles.xml | 5 +++++ core/src/main/res/values/attrs.xml | 5 +++++ core/src/main/res/values/colors.xml | 8 +++++--- core/src/main/res/values/styles.xml | 5 +++++ 7 files changed, 34 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesFragment.kt index 5b412076b5..7b254e4f72 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesFragment.kt @@ -1,5 +1,6 @@ package info.nightscout.androidaps.plugins.constraints.objectives +import android.annotation.SuppressLint import android.graphics.Color import android.os.Bundle import android.os.Handler @@ -153,6 +154,7 @@ class ObjectivesFragment : DaggerFragment() { return ViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.objectives_item, parent, false)) } + @SuppressLint("SetTextI18n") override fun onBindViewHolder(holder: ViewHolder, position: Int) { val objective = objectivesPlugin.objectives[position] holder.binding.title.text = rh.gs(R.string.nth_objective, position + 1) @@ -167,7 +169,7 @@ class ObjectivesFragment : DaggerFragment() { } else holder.binding.gate.visibility = View.GONE if (!objective.isStarted) { - holder.binding.gate.setTextColor(-0x1) + holder.binding.gate.setTextColor(rh.gac(context, R.attr.defaultTextColor)) holder.binding.verify.visibility = View.GONE holder.binding.progress.visibility = View.GONE holder.binding.accomplished.visibility = View.GONE @@ -178,7 +180,7 @@ class ObjectivesFragment : DaggerFragment() { else holder.binding.start.visibility = View.GONE } else if (objective.isAccomplished) { - holder.binding.gate.setTextColor(-0xb350b0) + holder.binding.gate.setTextColor(rh.gac(context, R.attr.isAccomplishedColor)) holder.binding.verify.visibility = View.GONE holder.binding.progress.visibility = View.GONE holder.binding.start.visibility = View.GONE @@ -186,7 +188,7 @@ class ObjectivesFragment : DaggerFragment() { holder.binding.unfinish.visibility = View.VISIBLE holder.binding.unstart.visibility = View.GONE } else if (objective.isStarted) { - holder.binding.gate.setTextColor(-0x1) + holder.binding.gate.setTextColor(rh.gac(context,R.attr.defaultTextColor)) holder.binding.verify.visibility = View.VISIBLE holder.binding.verify.isEnabled = objective.isCompleted || binding.fake.isChecked holder.binding.start.visibility = View.GONE @@ -200,7 +202,7 @@ class ObjectivesFragment : DaggerFragment() { // name val name = TextView(holder.binding.progress.context) name.text = "${rh.gs(task.task)}:" - name.setTextColor(-0x1) + name.setTextColor(rh.gac(context,R.attr.defaultTextColor) ) holder.binding.progress.addView(name, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT) // hint task.hints.forEach { h -> @@ -209,9 +211,9 @@ class ObjectivesFragment : DaggerFragment() { } // state val state = TextView(holder.binding.progress.context) - state.setTextColor(-0x1) + state.setTextColor(rh.gac(context,R.attr.defaultTextColor)) val basicHTML = "%2\$s" - val formattedHTML = String.format(basicHTML, if (task.isCompleted()) "#4CAF50" else "#FF9800", task.progress) + val formattedHTML = String.format(basicHTML, if (task.isCompleted()) rh.gac(context, R.attr.isCompletedColor) else rh.gac(context, R.attr.isNotCompletedColor), task.progress) state.text = HtmlHelper.fromHtml(formattedHTML) state.gravity = Gravity.END holder.binding.progress.addView(state, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT) @@ -228,7 +230,7 @@ class ObjectivesFragment : DaggerFragment() { } // horizontal line val separator = View(holder.binding.progress.context) - separator.setBackgroundColor(Color.DKGRAY) + separator.setBackgroundColor(rh.gac(context, R.attr.seperatorColor)) holder.binding.progress.addView(separator, LinearLayout.LayoutParams.MATCH_PARENT, 2) } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective.kt b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective.kt index 0da7daa37c..9faa974d1f 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective.kt @@ -176,7 +176,7 @@ abstract class Objective(injector: HasAndroidInjector, spName: String, @StringRe textView.setText(hint) textView.autoLinkMask = Linkify.WEB_URLS textView.linksClickable = true - textView.setLinkTextColor(Color.YELLOW) + textView.setLinkTextColor(rh.gac(context, R.attr.colorSecondary)) Linkify.addLinks(textView, Linkify.WEB_URLS) return textView } diff --git a/core/src/main/res/values-night/colors.xml b/core/src/main/res/values-night/colors.xml index a75dfe6902..ff02e8002f 100644 --- a/core/src/main/res/values-night/colors.xml +++ b/core/src/main/res/values-night/colors.xml @@ -183,8 +183,6 @@ #ffffbb33 #ffff4444 - #779ECB - #f4d700 #67dfe8 #67dfe8 @@ -196,7 +194,11 @@ #FFDD7792 #ca77dd + #779ECB #FF5722 + #67e86a + #4CAF50 + #FF9800 #de7550 #25912e diff --git a/core/src/main/res/values-night/styles.xml b/core/src/main/res/values-night/styles.xml index f7b6521c01..83e203d0ae 100644 --- a/core/src/main/res/values-night/styles.xml +++ b/core/src/main/res/values-night/styles.xml @@ -239,6 +239,11 @@ @color/textAppearancemediumDark @style/Aaps_ActionBarStyle + + @color/isAccomplished + @color/sphere_plastic_grey + @color/isCompleted + @color/isNotCompleted diff --git a/core/src/main/res/values/styles.xml b/core/src/main/res/values/styles.xml index 362b3c0ea9..b0d4533c8b 100644 --- a/core/src/main/res/values/styles.xml +++ b/core/src/main/res/values/styles.xml @@ -311,8 +311,8 @@ @null @drawable/material_button_background @dimen/material_button_min_width - @dimen/material_button_text_padding_horizontal - @dimen/material_button_text_padding_horizontal + @dimen/material_button_text_padding_horizontal + @dimen/material_button_text_padding_horizontal @color/okButtonText true diff --git a/dana/src/main/res/layout/danar_fragment.xml b/dana/src/main/res/layout/danar_fragment.xml index 1c6c7359f3..034d176906 100644 --- a/dana/src/main/res/layout/danar_fragment.xml +++ b/dana/src/main/res/layout/danar_fragment.xml @@ -61,8 +61,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -112,8 +112,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -161,8 +161,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -209,8 +209,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -257,8 +257,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -305,8 +305,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -321,7 +321,7 @@ android:layout_height="wrap_content" android:layout_weight="1" android:gravity="end" - android:paddingRight="5dp" + android:paddingEnd="5dp" android:text="@string/basebasalrate_label" android:textSize="14sp" tools:ignore="RtlHardcoded,RtlSymmetry" /> @@ -353,8 +353,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -401,8 +401,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -449,8 +449,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -497,8 +497,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -545,8 +545,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -593,8 +593,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -626,8 +626,8 @@ android:layout_height="wrap_content" android:paddingTop="6dp" android:paddingBottom="6dp" - android:layout_marginLeft="5dp" - android:layout_marginRight="5dp" + android:layout_marginStart="5dp" + android:layout_marginEnd="5dp" android:background="?attr/pumpStatusBackground" android:gravity="center_vertical|center_horizontal" android:textAppearance="?android:attr/textAppearanceSmall" /> @@ -648,8 +648,8 @@ android:layout_height="wrap_content" android:paddingTop="6dp" android:paddingBottom="6dp" - android:layout_marginLeft="5dp" - android:layout_marginRight="5dp" + android:layout_marginStart="5dp" + android:layout_marginEnd="5dp" android:background="?attr/pumpStatusBackground" android:gravity="center_vertical|center_horizontal" android:textAppearance="?android:attr/textAppearanceSmall" /> @@ -668,8 +668,8 @@ android:layout_height="match_parent" android:layout_weight="1" android:drawableTop="@drawable/ic_danarprofile" - android:paddingLeft="0dp" - android:paddingRight="0dp" + android:paddingStart="0dp" + android:paddingEnd="0dp" android:text="@string/viewprofile" /> @@ -680,8 +680,8 @@ android:layout_height="match_parent" android:layout_weight="1" android:drawableTop="@drawable/ic_pump_history" - android:paddingLeft="0dp" - android:paddingRight="0dp" + android:paddingStart="0dp" + android:paddingEnd="0dp" android:text="@string/pumphistory" tools:ignore="TooManyViews" /> @@ -692,8 +692,8 @@ android:layout_height="match_parent" android:layout_weight="1" android:drawableTop="@drawable/ic_danarstats" - android:paddingLeft="0dp" - android:paddingRight="0dp" + android:paddingStart="0dp" + android:paddingEnd="0dp" android:text="@string/stats" /> diff --git a/dana/src/main/res/layout/danar_history_activity.xml b/dana/src/main/res/layout/danar_history_activity.xml index 7ad697e463..8ee98515b3 100644 --- a/dana/src/main/res/layout/danar_history_activity.xml +++ b/dana/src/main/res/layout/danar_history_activity.xml @@ -38,8 +38,8 @@ android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:layout_gravity="center" - android:layout_marginLeft="10dp" - android:layout_marginRight="10dp" + android:layout_marginStart="10dp" + android:layout_marginEnd="10dp" android:text="@string/pumphistory" android:textAlignment="center" android:textAppearance="?android:attr/textAppearanceLarge" diff --git a/dana/src/main/res/layout/danar_history_item.xml b/dana/src/main/res/layout/danar_history_item.xml index a0e5001855..23b37e9e00 100644 --- a/dana/src/main/res/layout/danar_history_item.xml +++ b/dana/src/main/res/layout/danar_history_item.xml @@ -31,7 +31,7 @@ android:id="@+id/time" android:layout_width="120dp" android:layout_height="wrap_content" - android:paddingLeft="5dp" + android:paddingStart="5dp" android:text="27.06.2016 18:00" tools:ignore="HardcodedText,RtlHardcoded,RtlSymmetry" /> @@ -40,7 +40,7 @@ android:layout_width="50dp" android:layout_height="wrap_content" android:gravity="right" - android:paddingLeft="5dp" + android:paddingStart="5dp" android:text="0.25" tools:ignore="HardcodedText,RtlHardcoded,RtlSymmetry" /> @@ -48,7 +48,7 @@ android:id="@+id/bolus_type" android:layout_width="20dp" android:layout_height="wrap_content" - android:paddingLeft="5dp" + android:paddingStart="5dp" android:text="E" tools:ignore="HardcodedText,RtlHardcoded,RtlSymmetry" /> @@ -56,7 +56,7 @@ android:id="@+id/string_value" android:layout_width="150dp" android:layout_height="wrap_content" - android:paddingLeft="5dp" + android:paddingStart="5dp" android:text="" tools:ignore="HardcodedText,RtlHardcoded,RtlSymmetry" /> @@ -65,7 +65,7 @@ android:layout_width="30dp" android:layout_height="wrap_content" android:gravity="right" - android:paddingLeft="5dp" + android:paddingStart="5dp" android:text="30" tools:ignore="HardcodedText,RtlHardcoded,RtlSymmetry" /> @@ -74,7 +74,7 @@ android:layout_width="50dp" android:layout_height="wrap_content" android:gravity="right" - android:paddingLeft="5dp" + android:paddingStart="5dp" tools:ignore="RtlHardcoded,RtlSymmetry" /> @@ -98,7 +98,7 @@ android:id="@+id/alarm" android:layout_width="100dp" android:layout_height="wrap_content" - android:paddingLeft="5dp" + android:paddingStart="5dp" tools:ignore="RtlHardcoded,RtlSymmetry" /> @@ -106,9 +106,9 @@ diff --git a/dana/src/main/res/layout/danar_user_options_activity.xml b/dana/src/main/res/layout/danar_user_options_activity.xml index 73ef407562..ee76cba6bf 100644 --- a/dana/src/main/res/layout/danar_user_options_activity.xml +++ b/dana/src/main/res/layout/danar_user_options_activity.xml @@ -34,8 +34,8 @@ android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_gravity="center" - android:layout_marginLeft="10dp" - android:layout_marginRight="10dp" + android:layout_marginStart="10dp" + android:layout_marginEnd="10dp" android:text="@string/danar_pump_settings" android:textAlignment="center" android:textAppearance="?android:attr/textAppearanceLarge" /> @@ -63,9 +63,9 @@ @@ -82,9 +82,9 @@ @@ -101,9 +101,9 @@ @@ -154,9 +154,9 @@ @@ -181,17 +181,17 @@ android:layout_width="wrap_content" android:layout_height="40dp" android:layout_gravity="end" - android:paddingLeft="5dp" - android:paddingRight="5dp" /> + android:paddingStart="5dp" + android:paddingEnd="5dp" /> @@ -218,17 +218,17 @@ android:layout_width="wrap_content" android:layout_height="40dp" android:layout_gravity="end" - android:paddingLeft="5dp" - android:paddingRight="5dp" /> + android:paddingStart="5dp" + android:paddingEnd="5dp" /> @@ -247,9 +247,9 @@ @@ -274,17 +274,17 @@ android:layout_width="wrap_content" android:layout_height="40dp" android:layout_gravity="end" - android:paddingLeft="5dp" - android:paddingRight="5dp" /> + android:paddingStart="5dp" + android:paddingEnd="5dp" /> @@ -311,8 +311,8 @@ android:layout_width="wrap_content" android:layout_height="40dp" android:layout_gravity="end" - android:paddingLeft="5dp" - android:paddingRight="5dp" /> + android:paddingStart="5dp" + android:paddingEnd="5dp" /> diff --git a/danars/src/main/res/layout/danars_blescanner_activity.xml b/danars/src/main/res/layout/danars_blescanner_activity.xml index 2a61d0ba7f..eeb2310de8 100644 --- a/danars/src/main/res/layout/danars_blescanner_activity.xml +++ b/danars/src/main/res/layout/danars_blescanner_activity.xml @@ -26,8 +26,8 @@ android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_gravity="center" - android:layout_marginLeft="10dp" - android:layout_marginRight="10dp" + android:layout_marginStart="10dp" + android:layout_marginEnd="10dp" android:text="@string/danars_pairing" android:textAlignment="center" android:textAppearance="?android:attr/textAppearanceLarge" /> diff --git a/danars/src/main/res/layout/danars_blescanner_item.xml b/danars/src/main/res/layout/danars_blescanner_item.xml index 6ff5828f67..df85e66a60 100644 --- a/danars/src/main/res/layout/danars_blescanner_item.xml +++ b/danars/src/main/res/layout/danars_blescanner_item.xml @@ -1,8 +1,8 @@ + android:layout_marginStart="15.67dp" + android:layout_marginEnd="15.67dp"> diff --git a/danars/src/main/res/layout/danars_pairing_progress_dialog.xml b/danars/src/main/res/layout/danars_pairing_progress_dialog.xml index b5ce3d531b..044f01f8a8 100644 --- a/danars/src/main/res/layout/danars_pairing_progress_dialog.xml +++ b/danars/src/main/res/layout/danars_pairing_progress_dialog.xml @@ -23,8 +23,8 @@ android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_gravity="center" - android:layout_marginLeft="10dp" - android:layout_marginRight="10dp" + android:layout_marginStart="10dp" + android:layout_marginEnd="10dp" android:text="@string/pairing" android:textAlignment="center" android:textAppearance="?android:attr/textAppearanceLarge" /> @@ -52,8 +52,8 @@ android:layout_width="match_parent" android:layout_height="20dp" android:layout_marginBottom="20dp" - android:layout_marginLeft="5dp" - android:layout_marginRight="5dp" + android:layout_marginStart="5dp" + android:layout_marginEnd="5dp" android:layout_marginTop="20dp" android:maxHeight="5dp" android:minHeight="3dp" /> diff --git a/diaconn/src/main/res/layout/diaconn_g8_blescanner_activity.xml b/diaconn/src/main/res/layout/diaconn_g8_blescanner_activity.xml index 47de6d9e4e..753e5a1e7a 100644 --- a/diaconn/src/main/res/layout/diaconn_g8_blescanner_activity.xml +++ b/diaconn/src/main/res/layout/diaconn_g8_blescanner_activity.xml @@ -26,8 +26,8 @@ android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_gravity="center" - android:layout_marginLeft="10dp" - android:layout_marginRight="10dp" + android:layout_marginStart="10dp" + android:layout_marginEnd="10dp" android:text="@string/diaconn_pairing" android:textAlignment="center" android:textAppearance="?android:attr/textAppearanceLarge" /> diff --git a/diaconn/src/main/res/layout/diaconn_g8_blescanner_item.xml b/diaconn/src/main/res/layout/diaconn_g8_blescanner_item.xml index 9a39302163..26b2e0d94c 100644 --- a/diaconn/src/main/res/layout/diaconn_g8_blescanner_item.xml +++ b/diaconn/src/main/res/layout/diaconn_g8_blescanner_item.xml @@ -1,8 +1,8 @@ + android:layout_marginStart="15.67dp" + android:layout_marginEnd="15.67dp"> @@ -80,8 +80,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -137,8 +137,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -184,8 +184,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -230,8 +230,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -276,8 +276,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -322,8 +322,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -368,8 +368,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -414,8 +414,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -460,8 +460,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -506,8 +506,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -552,8 +552,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -598,8 +598,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -644,8 +644,8 @@ android:layout_width="fill_parent" android:layout_height="2dip" android:layout_marginBottom="5dp" - android:layout_marginLeft="20dp" - android:layout_marginRight="20dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -679,8 +679,8 @@ android:layout_height="match_parent" android:layout_weight="1" android:drawableTop="@drawable/ic_pump_history" - android:paddingLeft="0dp" - android:paddingRight="0dp" + android:paddingStart="0dp" + android:paddingEnd="0dp" android:text="@string/pumphistory" /> diff --git a/diaconn/src/main/res/layout/diaconn_g8_history_activity.xml b/diaconn/src/main/res/layout/diaconn_g8_history_activity.xml index f6af405c5b..548d868952 100644 --- a/diaconn/src/main/res/layout/diaconn_g8_history_activity.xml +++ b/diaconn/src/main/res/layout/diaconn_g8_history_activity.xml @@ -28,8 +28,8 @@ android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_gravity="center" - android:layout_marginLeft="10dp" - android:layout_marginRight="10dp" + android:layout_marginStart="10dp" + android:layout_marginEnd="10dp" android:text="@string/pumphistory" android:textAlignment="center" android:textAppearance="?android:attr/textAppearanceLarge" /> diff --git a/diaconn/src/main/res/layout/diaconn_g8_history_item.xml b/diaconn/src/main/res/layout/diaconn_g8_history_item.xml index 71eb680a6e..6ca31e4a7d 100644 --- a/diaconn/src/main/res/layout/diaconn_g8_history_item.xml +++ b/diaconn/src/main/res/layout/diaconn_g8_history_item.xml @@ -25,14 +25,14 @@ android:id="@+id/diaconn_g8_history_time" android:layout_width="120dp" android:layout_height="wrap_content" - android:paddingLeft="5dp" + android:paddingStart="5dp" android:text="27.06.2016 18:00" /> @@ -40,7 +40,7 @@ android:id="@+id/diaconn_g8_history_bolustype" android:layout_width="20dp" android:layout_height="wrap_content" - android:paddingLeft="5dp" + android:paddingStart="5dp" android:text="E" /> @@ -48,7 +48,7 @@ android:id="@+id/diaconn_g8_history_stringvalue" android:layout_width="150dp" android:layout_height="wrap_content" - android:paddingLeft="5dp" + android:paddingStart="5dp" android:text="XXXXXXX" /> @@ -56,7 +56,7 @@ android:id="@+id/diaconn_g8_history_duration" android:layout_width="30dp" android:layout_height="wrap_content" - android:paddingLeft="5dp" + android:paddingStart="5dp" android:text="30" android:gravity="right" /> @@ -64,21 +64,21 @@ android:id="@+id/diaconn_g8_history_dailybasal" android:layout_width="50dp" android:layout_height="wrap_content" - android:paddingLeft="5dp" + android:paddingStart="5dp" android:gravity="right" /> @@ -86,7 +86,7 @@ android:id="@+id/diaconn_g8_history_alarm" android:layout_width="100dp" android:layout_height="wrap_content" - android:paddingLeft="5dp" /> + android:paddingStart="5dp" /> diff --git a/diaconn/src/main/res/layout/diaconn_g8_user_options_activity.xml b/diaconn/src/main/res/layout/diaconn_g8_user_options_activity.xml index 502c2eb97c..61a43250a5 100644 --- a/diaconn/src/main/res/layout/diaconn_g8_user_options_activity.xml +++ b/diaconn/src/main/res/layout/diaconn_g8_user_options_activity.xml @@ -34,8 +34,8 @@ android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_gravity="center" - android:layout_marginLeft="10dp" - android:layout_marginRight="10dp" + android:layout_marginStart="10dp" + android:layout_marginEnd="10dp" android:text="@string/diaconng8_pump_settings" android:textAlignment="center" android:textAppearance="?android:attr/textAppearanceLarge" /> @@ -69,9 +69,9 @@ @@ -137,9 +137,9 @@ @@ -219,9 +219,9 @@ @@ -300,9 +300,9 @@ diff --git a/insight/src/main/res/layout/activity_insight_alert.xml b/insight/src/main/res/layout/activity_insight_alert.xml index aa7ef66665..fadc1cc503 100644 --- a/insight/src/main/res/layout/activity_insight_alert.xml +++ b/insight/src/main/res/layout/activity_insight_alert.xml @@ -7,8 +7,8 @@ android:animateLayoutChanges="true" android:orientation="vertical" android:paddingBottom="8dp" - android:paddingLeft="24dp" - android:paddingRight="24dp" + android:paddingStart="24dp" + android:paddingEnd="24dp" android:paddingTop="20dp"> \ No newline at end of file diff --git a/medtronic/src/main/res/layout/medtronic_fragment.xml b/medtronic/src/main/res/layout/medtronic_fragment.xml index 125ee1f63e..ea92f2a590 100644 --- a/medtronic/src/main/res/layout/medtronic_fragment.xml +++ b/medtronic/src/main/res/layout/medtronic_fragment.xml @@ -30,8 +30,8 @@ android:id="@+id/pump_status" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginLeft="5dp" - android:layout_marginRight="5dp" + android:layout_marginStart="5dp" + android:layout_marginEnd="5dp" android:background="?attr/pumpStatusBackground" android:gravity="center_vertical|center_horizontal" android:text="@string/initializing" @@ -42,9 +42,9 @@ @@ -94,9 +94,9 @@ android:id="@+id/rl_battery_view" android:layout_width="fill_parent" android:layout_height="2dip" - android:layout_marginLeft="20dp" + android:layout_marginStart="20dp" android:layout_marginTop="5dp" - android:layout_marginRight="20dp" + android:layout_marginEnd="20dp" android:layout_marginBottom="5dp" android:background="?android:attr/dividerHorizontal" /> @@ -148,9 +148,9 @@ @@ -206,9 +206,9 @@ @@ -255,9 +255,9 @@ @@ -303,9 +303,9 @@ @@ -352,9 +352,9 @@ @@ -400,9 +400,9 @@ @@ -448,9 +448,9 @@ @@ -498,9 +498,9 @@ @@ -546,9 +546,9 @@ @@ -577,8 +577,8 @@ android:layout_height="wrap_content" android:layout_weight="1" android:drawableTop="@drawable/ic_actions_refill" - android:paddingLeft="0dp" - android:paddingRight="0dp" + android:paddingStart="0dp" + android:paddingEnd="0dp" android:text="@string/refresh" /> @@ -589,8 +589,8 @@ android:layout_height="wrap_content" android:layout_weight="1" android:drawableTop="@drawable/ic_pump_history" - android:paddingLeft="0dp" - android:paddingRight="0dp" + android:paddingStart="0dp" + android:paddingEnd="0dp" android:text="@string/pumphistory" /> diff --git a/medtronic/src/main/res/layout/medtronic_history_activity.xml b/medtronic/src/main/res/layout/medtronic_history_activity.xml index 5c909f5937..b9e95908df 100644 --- a/medtronic/src/main/res/layout/medtronic_history_activity.xml +++ b/medtronic/src/main/res/layout/medtronic_history_activity.xml @@ -18,8 +18,8 @@ @@ -27,13 +27,13 @@ android:id="@+id/medtronic_historytype" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginRight="20dp" /> + android:layout_marginEnd="20dp" /> + android:paddingStart="20dp"> @@ -341,9 +341,9 @@ @@ -389,9 +389,9 @@ @@ -437,9 +437,9 @@ @@ -485,9 +485,9 @@ @@ -533,9 +533,9 @@ @@ -581,9 +581,9 @@ @@ -629,9 +629,9 @@ @@ -677,9 +677,9 @@ diff --git a/omnipod-dash/src/main/res/layout/omnipod_dash_overview.xml b/omnipod-dash/src/main/res/layout/omnipod_dash_overview.xml index 6ce53d47de..73a8c90402 100644 --- a/omnipod-dash/src/main/res/layout/omnipod_dash_overview.xml +++ b/omnipod-dash/src/main/res/layout/omnipod_dash_overview.xml @@ -18,9 +18,9 @@ diff --git a/omnipod-dash/src/main/res/layout/omnipod_dash_overview_bluetooth_status.xml b/omnipod-dash/src/main/res/layout/omnipod_dash_overview_bluetooth_status.xml index 18f5198cfb..42cf74988f 100644 --- a/omnipod-dash/src/main/res/layout/omnipod_dash_overview_bluetooth_status.xml +++ b/omnipod-dash/src/main/res/layout/omnipod_dash_overview_bluetooth_status.xml @@ -163,9 +163,9 @@ \ No newline at end of file diff --git a/omnipod-dash/src/main/res/layout/omnipod_dash_pod_management.xml b/omnipod-dash/src/main/res/layout/omnipod_dash_pod_management.xml index a3ee99cca0..7515079bcd 100644 --- a/omnipod-dash/src/main/res/layout/omnipod_dash_pod_management.xml +++ b/omnipod-dash/src/main/res/layout/omnipod_dash_pod_management.xml @@ -16,9 +16,9 @@ diff --git a/omnipod-eros/src/main/res/layout/omnipod_eros_overview_riley_link_status.xml b/omnipod-eros/src/main/res/layout/omnipod_eros_overview_riley_link_status.xml index 3b1413977b..1c1c752dae 100644 --- a/omnipod-eros/src/main/res/layout/omnipod_eros_overview_riley_link_status.xml +++ b/omnipod-eros/src/main/res/layout/omnipod_eros_overview_riley_link_status.xml @@ -45,9 +45,9 @@ \ No newline at end of file diff --git a/omnipod-eros/src/main/res/layout/omnipod_eros_pod_management.xml b/omnipod-eros/src/main/res/layout/omnipod_eros_pod_management.xml index e16a4eb8e5..09b7955ce9 100644 --- a/omnipod-eros/src/main/res/layout/omnipod_eros_pod_management.xml +++ b/omnipod-eros/src/main/res/layout/omnipod_eros_pod_management.xml @@ -16,9 +16,9 @@ + android:layout_marginEnd="25dp" /> + android:paddingStart="15dp"> @@ -40,7 +40,7 @@ @@ -49,7 +49,7 @@ android:id="@+id/rls_t1_configured_riley_link_address" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginLeft="10dp" + android:layout_marginStart="10dp" android:layout_weight="65" android:gravity="center_vertical" android:text=" " @@ -68,7 +68,7 @@ @@ -77,7 +77,7 @@ android:id="@+id/rls_t1_configured_riley_link_name" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginLeft="10dp" + android:layout_marginStart="10dp" android:layout_weight="65" android:gravity="center_vertical" android:text=" " @@ -98,7 +98,7 @@ @@ -107,7 +107,7 @@ android:id="@+id/rls_t1_battery_level" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginLeft="10dp" + android:layout_marginStart="10dp" android:layout_weight="65" android:gravity="center_vertical" android:text=" " @@ -127,7 +127,7 @@ @@ -136,7 +136,7 @@ android:id="@+id/rls_t1_connection_status" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginLeft="10dp" + android:layout_marginStart="10dp" android:layout_weight="65" android:gravity="center_vertical" android:text=" " @@ -155,7 +155,7 @@ @@ -164,7 +164,7 @@ android:id="@+id/rls_t1_connection_error" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginLeft="10dp" + android:layout_marginStart="10dp" android:layout_weight="65" android:gravity="center_vertical" android:text=" " @@ -183,7 +183,7 @@ @@ -192,7 +192,7 @@ android:id="@+id/rls_t1_firmware_version" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginLeft="10dp" + android:layout_marginStart="10dp" android:layout_weight="65" android:gravity="center_vertical" android:text=" " @@ -208,7 +208,7 @@ @@ -226,7 +226,7 @@ @@ -235,7 +235,7 @@ android:id="@+id/rls_t1_device_type" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginLeft="10dp" + android:layout_marginStart="10dp" android:layout_weight="65" android:gravity="center_vertical" android:text=" " @@ -261,7 +261,7 @@ @@ -270,7 +270,7 @@ android:id="@+id/rls_t1_configured_device_model" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginLeft="10dp" + android:layout_marginStart="10dp" android:layout_weight="65" android:gravity="center_vertical" android:text=" " @@ -289,7 +289,7 @@ @@ -298,7 +298,7 @@ android:id="@+id/rls_t1_connected_device_model" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginLeft="10dp" + android:layout_marginStart="10dp" android:layout_weight="65" android:gravity="center_vertical" android:text=" " @@ -319,7 +319,7 @@ @@ -328,7 +328,7 @@ android:id="@+id/rls_t1_serial_number" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginLeft="10dp" + android:layout_marginStart="10dp" android:layout_weight="65" android:gravity="center_vertical" android:text=" " @@ -348,7 +348,7 @@ @@ -357,7 +357,7 @@ android:id="@+id/rls_t1_pump_frequency" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginLeft="10dp" + android:layout_marginStart="10dp" android:layout_weight="65" android:gravity="center_vertical" android:text=" " @@ -376,7 +376,7 @@ @@ -385,7 +385,7 @@ android:id="@+id/rls_t1_last_used_frequency" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginLeft="10dp" + android:layout_marginStart="10dp" android:layout_weight="65" android:gravity="center_vertical" android:text=" " @@ -405,7 +405,7 @@ @@ -414,7 +414,7 @@ android:id="@+id/rls_t1_last_device_contact" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginLeft="10dp" + android:layout_marginStart="10dp" android:layout_weight="65" android:gravity="center_vertical" android:text=" " diff --git a/rileylink/src/main/res/layout/rileylink_status_history_item.xml b/rileylink/src/main/res/layout/rileylink_status_history_item.xml index f7d60830ef..1a9a7a61c2 100644 --- a/rileylink/src/main/res/layout/rileylink_status_history_item.xml +++ b/rileylink/src/main/res/layout/rileylink_status_history_item.xml @@ -3,7 +3,7 @@ android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="40dp" - android:paddingLeft="20dp"> + android:paddingStart="20dp"> + android:layout_marginEnd="5dp" /> + android:layout_marginStart="5dp" /> @@ -89,7 +89,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAlignment="center" - android:layout_marginRight="6dp" + android:layout_marginEnd="6dp" android:layout_gravity="center_horizontal" /> @@ -367,7 +367,7 @@ android:id="@+id/month" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginLeft="5dp" + android:layout_marginStart="5dp" android:fontFamily="@font/roboto_condensed_regular" android:text="MMM" android:textAllCaps="true" @@ -416,7 +416,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left" - android:layout_marginLeft="6sp" + android:layout_marginStart="6sp" android:layout_marginTop="-2sp" android:layout_marginBottom="-8sp" android:fontFamily="@font/roboto_condensed_bold" @@ -431,7 +431,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom" - android:layout_marginLeft="8sp" + android:layout_marginStart="8sp" android:layout_marginTop="-1.5sp" android:fontFamily="@font/roboto_condensed_bold" android:text="AM" @@ -446,8 +446,8 @@ + android:layout_marginEnd="5dp" /> diff --git a/wear/src/main/res/layout/rect_activity_home_2.xml b/wear/src/main/res/layout/rect_activity_home_2.xml index 180ff9efdb..3ebfbaac8e 100644 --- a/wear/src/main/res/layout/rect_activity_home_2.xml +++ b/wear/src/main/res/layout/rect_activity_home_2.xml @@ -45,9 +45,9 @@ android:layout_gravity="center_horizontal|bottom" android:layout_marginBottom="-2dp" android:gravity="bottom|right" - android:paddingLeft="5dp" + android:paddingStart="5dp" android:paddingTop="-2dp" - android:paddingRight="5dp" + android:paddingEnd="5dp" android:text="---" android:textColor="#FFFFFF" android:textSize="38sp" /> diff --git a/wear/src/main/res/layout/rect_activity_home_large.xml b/wear/src/main/res/layout/rect_activity_home_large.xml index a6da174128..cefee9116b 100644 --- a/wear/src/main/res/layout/rect_activity_home_large.xml +++ b/wear/src/main/res/layout/rect_activity_home_large.xml @@ -96,7 +96,7 @@ android:layout_width="wrap_content" android:textAlignment="center" android:textColor="#000000" - android:paddingLeft="10sp" + android:paddingStart="10sp" android:layout_height="wrap_content" /> diff --git a/wear/src/main/res/layout/rect_activity_nochart.xml b/wear/src/main/res/layout/rect_activity_nochart.xml index 47938873b2..179b05d021 100644 --- a/wear/src/main/res/layout/rect_activity_nochart.xml +++ b/wear/src/main/res/layout/rect_activity_nochart.xml @@ -31,7 +31,7 @@ android:textColor="#FFFFFF" android:layout_gravity="bottom" android:gravity="center_horizontal|bottom" - android:layout_marginRight="5dp" /> + android:layout_marginEnd="5dp" /> + android:layout_marginStart="5dp" /> @@ -89,7 +89,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAlignment="center" - android:layout_marginRight="6dp" + android:layout_marginEnd="6dp" android:layout_gravity="center_horizontal" /> + android:layout_marginEnd="5dp" /> + android:layout_marginStart="5dp" /> @@ -89,7 +89,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAlignment="center" - android:layout_marginRight="6dp" + android:layout_marginEnd="6dp" android:layout_gravity="center_horizontal" /> @@ -368,7 +368,7 @@ android:id="@+id/month" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginLeft="5dp" + android:layout_marginStart="5dp" android:fontFamily="@font/roboto_condensed_regular" android:text="MMM" android:textAllCaps="true" @@ -416,7 +416,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left" - android:layout_marginLeft="6sp" + android:layout_marginStart="6sp" android:layout_marginTop="-2sp" android:layout_marginBottom="-8sp" android:fontFamily="@font/roboto_condensed_bold" @@ -430,7 +430,7 @@ android:id="@+id/timePeriod" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginLeft="8sp" + android:layout_marginStart="8sp" android:layout_marginTop="-1.5sp" android:fontFamily="@font/roboto_condensed_bold" android:gravity="top" @@ -446,8 +446,8 @@ @@ -104,7 +104,7 @@ android:layout_width="wrap_content" android:textAlignment="center" android:textColor="#000000" - android:paddingLeft="10sp" + android:paddingStart="10sp" android:layout_height="wrap_content" /> diff --git a/wear/src/main/res/layout/round_activity_home_2.xml b/wear/src/main/res/layout/round_activity_home_2.xml index d1ef61abe5..622076add7 100644 --- a/wear/src/main/res/layout/round_activity_home_2.xml +++ b/wear/src/main/res/layout/round_activity_home_2.xml @@ -51,9 +51,9 @@ android:layout_gravity="center_horizontal|bottom" android:layout_marginBottom="-2dp" android:gravity="bottom|right" - android:paddingLeft="5dp" + android:paddingStart="5dp" android:paddingTop="-2dp" - android:paddingRight="5dp" + android:paddingEnd="5dp" android:text="---" android:textColor="#FFFFFF" android:textSize="38sp" /> diff --git a/wear/src/main/res/layout/round_activity_home_large.xml b/wear/src/main/res/layout/round_activity_home_large.xml index 9569d5d1ab..d222f785f6 100644 --- a/wear/src/main/res/layout/round_activity_home_large.xml +++ b/wear/src/main/res/layout/round_activity_home_large.xml @@ -96,7 +96,7 @@ android:layout_width="wrap_content" android:textAlignment="center" android:textColor="#000000" - android:paddingLeft="10sp" + android:paddingStart="10sp" android:layout_height="wrap_content" /> diff --git a/wear/src/main/res/layout/round_activity_nochart.xml b/wear/src/main/res/layout/round_activity_nochart.xml index 47938873b2..179b05d021 100644 --- a/wear/src/main/res/layout/round_activity_nochart.xml +++ b/wear/src/main/res/layout/round_activity_nochart.xml @@ -31,7 +31,7 @@ android:textColor="#FFFFFF" android:layout_gravity="bottom" android:gravity="center_horizontal|bottom" - android:layout_marginRight="5dp" /> + android:layout_marginEnd="5dp" /> + android:layout_marginStart="5dp" /> @@ -89,7 +89,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAlignment="center" - android:layout_marginRight="6dp" + android:layout_marginEnd="6dp" android:layout_gravity="center_horizontal" /> Date: Mon, 18 Apr 2022 18:24:57 +0200 Subject: [PATCH 16/27] convert SingleClickButton to Materialbutton --- app/src/main/res/layout/actions_fragment.xml | 32 +++++++++---------- .../res/layout/activity_profilehelper.xml | 4 +-- .../layout/activity_smscommunicator_otp.xml | 2 +- app/src/main/res/layout/dialog_loop.xml | 32 +++++++++---------- .../main/res/layout/dialog_profileswitch.xml | 2 +- app/src/main/res/layout/dialog_temptarget.xml | 8 ++--- app/src/main/res/layout/food_fragment.xml | 2 +- .../res/layout/overview_buttons_layout.xml | 16 +++++----- .../main/res/layout/combopump_fragment.xml | 2 +- .../androidaps/utils/ui/SingleClickButton.kt | 5 ++- core/src/main/res/values/colors.xml | 2 +- .../layout/omnipod_dash_pod_management.xml | 5 +++ .../layout/omnipod_eros_pod_management.xml | 8 +++++ 13 files changed, 66 insertions(+), 54 deletions(-) diff --git a/app/src/main/res/layout/actions_fragment.xml b/app/src/main/res/layout/actions_fragment.xml index e5b4cc4c5a..aff0d78e1b 100644 --- a/app/src/main/res/layout/actions_fragment.xml +++ b/app/src/main/res/layout/actions_fragment.xml @@ -43,7 +43,7 @@ @color/black_alpha_90 - #B2B2B2 + #BABABA #000000 @color/colorAccent #33969696 diff --git a/omnipod-dash/src/main/res/layout/omnipod_dash_pod_management.xml b/omnipod-dash/src/main/res/layout/omnipod_dash_pod_management.xml index 7515079bcd..111e14bd72 100644 --- a/omnipod-dash/src/main/res/layout/omnipod_dash_pod_management.xml +++ b/omnipod-dash/src/main/res/layout/omnipod_dash_pod_management.xml @@ -47,6 +47,7 @@ Date: Tue, 19 Apr 2022 10:36:10 +0200 Subject: [PATCH 17/27] chore: fix layout lint warning --- .../activities/QuickWizardListActivity.kt | 4 ++++ .../res/layout/activity_historybrowse.xml | 2 +- .../main/res/layout/activity_setupwizard.xml | 1 + .../layout/activity_smscommunicator_otp.xml | 2 ++ app/src/main/res/layout/bgsource_item.xml | 1 + .../layout/configbuilder_single_category.xml | 9 +++++--- .../layout/configbuilder_single_plugin.xml | 9 ++++++-- app/src/main/res/layout/dialog_carbs.xml | 5 ++++- app/src/main/res/layout/dialog_insulin.xml | 13 ++++++------ app/src/main/res/layout/dialog_loop.xml | 9 ++++---- .../main/res/layout/dialog_profileswitch.xml | 5 +++-- app/src/main/res/layout/dialog_tempbasal.xml | 3 ++- app/src/main/res/layout/dialog_wizard.xml | 12 ++++++----- .../res/layout/objectives_exam_fragment.xml | 16 +++++++------- app/src/main/res/layout/objectives_item.xml | 7 ++++--- .../overview_editquickwizard_dialog.xml | 21 ++++++++++--------- .../res/layout/overview_graphs_layout.xml | 1 - .../layout/overview_quickwizardlist_item.xml | 7 ++++--- .../layout/overview_statuslights_layout.xml | 11 +++++++--- app/src/main/res/values/strings.xml | 9 ++++++++ 20 files changed, 93 insertions(+), 54 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/activities/QuickWizardListActivity.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/activities/QuickWizardListActivity.kt index 128f6c6613..5c1ffc8c27 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/activities/QuickWizardListActivity.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/activities/QuickWizardListActivity.kt @@ -76,6 +76,10 @@ class QuickWizardListActivity : DaggerAppCompatActivityWithResult(), OnStartDrag else -> R.drawable.ic_smartphone } ) + holder.binding.device.contentDescription = when (quickWizard[position].device()) { + QuickWizardEntry.DEVICE_WATCH -> rh.gs(R.string.a11y_only_on_watch) + else -> rh.gs(R.string.a11y_only_on_phone) + } } holder.binding.root.setOnClickListener { if (actionHelper.isNoAction) { diff --git a/app/src/main/res/layout/activity_historybrowse.xml b/app/src/main/res/layout/activity_historybrowse.xml index f3792b7e91..2cbd13c683 100644 --- a/app/src/main/res/layout/activity_historybrowse.xml +++ b/app/src/main/res/layout/activity_historybrowse.xml @@ -59,7 +59,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" - android:text="24" /> + tools:text="24" /> diff --git a/app/src/main/res/layout/activity_setupwizard.xml b/app/src/main/res/layout/activity_setupwizard.xml index 24403b64a3..a60004b8f8 100644 --- a/app/src/main/res/layout/activity_setupwizard.xml +++ b/app/src/main/res/layout/activity_setupwizard.xml @@ -20,6 +20,7 @@ android:layout_marginTop="16dp" android:layout_weight="1" android:background="@android:color/transparent" + android:importantForAccessibility="no" android:onClick="exitPressed" app:srcCompat="@drawable/ic_exit_to_app" /> diff --git a/app/src/main/res/layout/activity_smscommunicator_otp.xml b/app/src/main/res/layout/activity_smscommunicator_otp.xml index 99d1e3b68f..3b3db7dce2 100644 --- a/app/src/main/res/layout/activity_smscommunicator_otp.xml +++ b/app/src/main/res/layout/activity_smscommunicator_otp.xml @@ -35,6 +35,7 @@ android:id="@+id/otp_provisioning" android:layout_width="fill_parent" android:layout_height="wrap_content" + android:contentDescription="@string/a11y_otp_qr_code" android:layout_marginTop="10dp" android:scaleType="center" /> @@ -72,6 +73,7 @@ android:layout_width="140sp" android:layout_height="wrap_content" android:hint="@string/smscommunicator_code_verify_hint" + android:importantForAutofill="no" android:inputType="number" android:maxLength="12" android:textAlignment="center" diff --git a/app/src/main/res/layout/bgsource_item.xml b/app/src/main/res/layout/bgsource_item.xml index 5d3e8595c6..261b3c0475 100644 --- a/app/src/main/res/layout/bgsource_item.xml +++ b/app/src/main/res/layout/bgsource_item.xml @@ -3,6 +3,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:card_view="http://schemas.android.com/tools" + xmlns:tools="http://schemas.android.com/tools" style="@style/Widget.MaterialComponents.CardView" android:id="@+id/bg_card" android:layout_width="match_parent" diff --git a/app/src/main/res/layout/configbuilder_single_category.xml b/app/src/main/res/layout/configbuilder_single_category.xml index 2f6177b593..8d653c61bc 100644 --- a/app/src/main/res/layout/configbuilder_single_category.xml +++ b/app/src/main/res/layout/configbuilder_single_category.xml @@ -36,8 +36,10 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:layout_margin="4dp" - app:tint="?android:attr/colorAccent" - app:srcCompat="@drawable/ic_visibility" /> + android:importantForAccessibility="no" + app:srcCompat="@drawable/ic_visibility" + app:tint="?android:attr/colorAccent" /> + - \ No newline at end of file + + diff --git a/app/src/main/res/layout/configbuilder_single_plugin.xml b/app/src/main/res/layout/configbuilder_single_plugin.xml index d48ef40a5f..397c755aba 100644 --- a/app/src/main/res/layout/configbuilder_single_plugin.xml +++ b/app/src/main/res/layout/configbuilder_single_plugin.xml @@ -38,7 +38,8 @@ android:layout_width="36dp" android:layout_height="36dp" android:layout_gravity="center_vertical" - android:layout_marginEnd="8dp" /> + android:layout_marginEnd="8dp" + android:importantForAccessibility="no" /> @@ -70,6 +72,7 @@ android:layout_height="wrap_content" android:textSize="12sp" tools:text="A super exquisite plugin description" /> + @@ -80,6 +83,7 @@ android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginEnd="16dp" + android:contentDescription="@string/a11y_open_settings" android:background="?attr/selectableItemBackgroundBorderless" app:srcCompat="@drawable/ic_settings" /> @@ -88,4 +92,5 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:saveEnabled="false" /> - \ No newline at end of file + + diff --git a/app/src/main/res/layout/dialog_carbs.xml b/app/src/main/res/layout/dialog_carbs.xml index e8b9e70bf6..71b771bb15 100644 --- a/app/src/main/res/layout/dialog_carbs.xml +++ b/app/src/main/res/layout/dialog_carbs.xml @@ -75,6 +75,7 @@ + + tools:text="+0.5" /> + tools:text="+1.0" /> + tools:text="+2.0" /> diff --git a/app/src/main/res/layout/dialog_loop.xml b/app/src/main/res/layout/dialog_loop.xml index e8024e8552..9884790f74 100644 --- a/app/src/main/res/layout/dialog_loop.xml +++ b/app/src/main/res/layout/dialog_loop.xml @@ -182,7 +182,7 @@ android:id="@+id/overview_resume" style="?android:attr/buttonStyle" android:layout_width="wrap_content" - android:layout_height="fill_parent" + android:layout_height="0dp" android:layout_gravity="center" android:layout_marginEnd="-4dp" android:layout_weight="0.5" @@ -291,7 +291,7 @@ android:id="@+id/overview_reconnect" style="?android:attr/buttonStyle" android:layout_width="wrap_content" - android:layout_height="wrap_content" + android:layout_height="0dp" android:layout_gravity="center" android:layout_marginEnd="-4dp" android:layout_weight="0.5" @@ -396,7 +396,7 @@ android:id="@+id/cancel" style="@style/OkCancelButton.Text" android:layout_width="fill_parent" - android:layout_height="wrap_content" + android:layout_height="0dp" android:layout_marginEnd="8dp" android:layout_weight="1" android:text="@string/cancel" @@ -404,4 +404,5 @@ android:textAlignment="textEnd" /> - \ No newline at end of file + + diff --git a/app/src/main/res/layout/dialog_profileswitch.xml b/app/src/main/res/layout/dialog_profileswitch.xml index e6985c6e85..95e2cf4f9c 100644 --- a/app/src/main/res/layout/dialog_profileswitch.xml +++ b/app/src/main/res/layout/dialog_profileswitch.xml @@ -151,7 +151,8 @@ android:paddingStart="5dp" android:paddingEnd="5dp" android:text="%" - android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" + tools:ignore="HardcodedText" /> @@ -210,7 +211,7 @@ + android:textAppearance="?android:attr/textAppearanceSmall" + tools:ignore="HardcodedText" /> diff --git a/app/src/main/res/layout/dialog_wizard.xml b/app/src/main/res/layout/dialog_wizard.xml index 7ce4846a4d..9064fe76d2 100644 --- a/app/src/main/res/layout/dialog_wizard.xml +++ b/app/src/main/res/layout/dialog_wizard.xml @@ -48,8 +48,8 @@ + android:paddingStart="0dp" + android:paddingEnd="5dp"> + android:textStyle="bold" + tools:ignore="HardcodedText" /> @@ -347,7 +348,7 @@ android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:checked="false" - android:contentDescription="set carb timer alarm" + android:contentDescription="@string/a11y_set_carb_timer" android:drawableEnd="@drawable/ic_access_alarm_24dp" android:layoutDirection="rtl" android:padding="2dp" /> @@ -384,7 +385,8 @@ android:layout_marginEnd="5dp" android:layout_weight="0.5" android:hint="@string/profile" - android:paddingStart="7dp"> + android:paddingStart="7dp" + android:paddingEnd="0dp"> @@ -76,10 +76,10 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="16dp" - android:text="Question" android:textAppearance="@style/TextAppearance.AppCompat.Medium" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/exam_name" /> + app:layout_constraintTop_toBottomOf="@id/exam_name" + tools:text="Question" /> + app:layout_constraintTop_toTopOf="parent" + tools:text="Name" /> + app:layout_constraintTop_toBottomOf="@+id/exam_hints" + tools:text="Disabled until:" /> diff --git a/app/src/main/res/layout/objectives_item.xml b/app/src/main/res/layout/objectives_item.xml index 07e05be638..9083300a3c 100644 --- a/app/src/main/res/layout/objectives_item.xml +++ b/app/src/main/res/layout/objectives_item.xml @@ -95,7 +95,7 @@ android:id="@+id/requestcode" android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="Request code: XXXXX" /> + tools:text="Request code: XXXXX" /> + android:inputType="text" + tools:hint="XXXXXXXXXX" + android:importantForAutofill="no" /> + android:textAppearance="@style/TextAppearance.AppCompat.Medium" + tools:text="08:20pm" /> + android:textAppearance="@style/TextAppearance.AppCompat.Medium" + tools:ignore="HardcodedText" /> + android:textAppearance="@style/TextAppearance.AppCompat.Medium" + tools:text="08:20pm" /> @@ -123,17 +124,17 @@ + android:text="@string/device_all" /> + android:text="@string/device_phone" /> + android:text="@string/device_watch" /> @@ -366,9 +367,9 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" + android:importantForAutofill="no" android:inputType="number" - android:maxLength="3" - android:paddingStart="10dp" /> + android:maxLength="3"/> diff --git a/app/src/main/res/layout/overview_quickwizardlist_item.xml b/app/src/main/res/layout/overview_quickwizardlist_item.xml index 56824188e9..594721d43e 100644 --- a/app/src/main/res/layout/overview_quickwizardlist_item.xml +++ b/app/src/main/res/layout/overview_quickwizardlist_item.xml @@ -2,7 +2,6 @@ @@ -81,14 +81,15 @@ android:adjustViewBounds="false" android:cropToPadding="false" android:scaleType="fitStart" - app:srcCompat="@drawable/ic_smartphone" - tools:ignore="RtlSymmetry" /> + android:contentDescription="@string/a11y_only_on_phone" + app:srcCompat="@drawable/ic_smartphone" /> diff --git a/app/src/main/res/layout/overview_statuslights_layout.xml b/app/src/main/res/layout/overview_statuslights_layout.xml index c49e01b0c7..546409aa7e 100644 --- a/app/src/main/res/layout/overview_statuslights_layout.xml +++ b/app/src/main/res/layout/overview_statuslights_layout.xml @@ -9,14 +9,16 @@ android:layout_marginBottom="3dp" android:orientation="horizontal" android:paddingTop="4dp" - android:paddingBottom="4dp"> + android:paddingBottom="4dp" + android:baselineAligned="false"> + android:gravity="center_horizontal" + tools:ignore="UseCompoundDrawables"> @@ -73,7 +76,8 @@ android:layout_height="fill_parent" android:layout_weight="1" android:focusable="true" - android:gravity="center_horizontal"> + android:gravity="center_horizontal" + tools:ignore="UseCompoundDrawables"> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a8f8bf0efd..12e9f6b607 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1212,4 +1212,13 @@ Hide loop records AndroidAPS widget Configure opacity + QR Code for setup one time password + open settings + set carb timer alarm + All + Phone + Watch + only on watch + only on phone + drag and drop handle From 7e15f045925afeac0fc9c07a923ba4d9dcea5a21 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Tue, 19 Apr 2022 12:20:31 +0200 Subject: [PATCH 18/27] remove delimiters from treatments tabs --- .../fragments/TreatmentsBolusCarbsFragment.kt | 2 - .../fragments/TreatmentsCareportalFragment.kt | 2 - .../TreatmentsExtendedBolusesFragment.kt | 2 - .../TreatmentsProfileSwitchFragment.kt | 2 - .../fragments/TreatmentsTempTargetFragment.kt | 2 - .../TreatmentsTemporaryBasalsFragment.kt | 2 - .../fragments/TreatmentsUserEntryFragment.kt | 2 - .../layout/treatments_bolus_carbs_item.xml | 11 +- .../res/layout/treatments_careportal_item.xml | 11 +- .../layout/treatments_extendedbolus_item.xml | 11 +- .../layout/treatments_profileswitch_item.xml | 11 +- .../res/layout/treatments_tempbasals_item.xml | 11 +- .../res/layout/treatments_temptarget_item.xml | 11 +- .../res/layout/treatments_user_entry_item.xml | 171 +++++++++--------- 14 files changed, 91 insertions(+), 160 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsBolusCarbsFragment.kt b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsBolusCarbsFragment.kt index e70e7a9cbe..a4fa56a699 100644 --- a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsBolusCarbsFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsBolusCarbsFragment.kt @@ -269,8 +269,6 @@ class TreatmentsBolusCarbsFragment : DaggerFragment() { } holder.binding.calculation.tag = ml - val nextTimestamp = if (mealLinks.size != position + 1) timestamp(mealLinks[position + 1]) else 0L - holder.binding.delimiter.visibility = dateUtil.isSameDayGroup(timestamp(ml), nextTimestamp).toVisibility() } override fun getItemCount() = mealLinks.size diff --git a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsCareportalFragment.kt b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsCareportalFragment.kt index 37713a7e30..820b5d3b93 100644 --- a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsCareportalFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsCareportalFragment.kt @@ -173,8 +173,6 @@ class TreatmentsCareportalFragment : DaggerFragment() { actionHelper.updateSelection(position, therapyEvent, holder.binding.cbRemove.isChecked) } holder.binding.cbRemove.isChecked = actionHelper.isSelected(position) - val nextTimestamp = if (therapyList.size != position + 1) therapyList[position + 1].timestamp else 0L - holder.binding.delimiter.visibility = dateUtil.isSameDayGroup(therapyEvent.timestamp, nextTimestamp).toVisibility() } override fun getItemCount() = therapyList.size diff --git a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsExtendedBolusesFragment.kt b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsExtendedBolusesFragment.kt index b7ffd407c8..e21bd897ae 100644 --- a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsExtendedBolusesFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsExtendedBolusesFragment.kt @@ -163,8 +163,6 @@ class TreatmentsExtendedBolusesFragment : DaggerFragment() { } holder.binding.cbRemove.isChecked = actionHelper.isSelected(position) } - val nextTimestamp = if (extendedBolusList.size != position + 1) extendedBolusList[position + 1].timestamp else 0L - holder.binding.delimiter.visibility = dateUtil.isSameDayGroup(extendedBolus.timestamp, nextTimestamp).toVisibility() } override fun getItemCount() = extendedBolusList.size diff --git a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsProfileSwitchFragment.kt b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsProfileSwitchFragment.kt index 92f9d5f38b..49e8c4ca52 100644 --- a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsProfileSwitchFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsProfileSwitchFragment.kt @@ -214,8 +214,6 @@ class TreatmentsProfileSwitchFragment : DaggerFragment() { } holder.binding.clone.visibility = (profileSwitch is ProfileSealed.PS).toVisibility() holder.binding.spacer.visibility = (profileSwitch is ProfileSealed.PS).toVisibility() - val nextTimestamp = if (profileSwitchList.size != position + 1) profileSwitchList[position + 1].timestamp else 0L - holder.binding.delimiter.visibility = dateUtil.isSameDayGroup(profileSwitch.timestamp, nextTimestamp).toVisibility() } override fun getItemCount() = profileSwitchList.size diff --git a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsTempTargetFragment.kt b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsTempTargetFragment.kt index 028ae4f99a..137d6cf94c 100644 --- a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsTempTargetFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsTempTargetFragment.kt @@ -192,8 +192,6 @@ class TreatmentsTempTargetFragment : DaggerFragment() { else -> holder.binding.reasonColon.currentTextColor } ) - val nextTimestamp = if (tempTargetList.size != position + 1) tempTargetList[position + 1].timestamp else 0L - holder.binding.delimiter.visibility = dateUtil.isSameDayGroup(tempTarget.timestamp, nextTimestamp).toVisibility() } override fun getItemCount() = tempTargetList.size diff --git a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsTemporaryBasalsFragment.kt b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsTemporaryBasalsFragment.kt index da76998092..1f585ecd0a 100644 --- a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsTemporaryBasalsFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsTemporaryBasalsFragment.kt @@ -204,8 +204,6 @@ class TreatmentsTemporaryBasalsFragment : DaggerFragment() { } holder.binding.cbRemove.isChecked = actionHelper.isSelected(position) } - val nextTimestamp = if (tempBasalList.size != position + 1) tempBasalList[position + 1].timestamp else 0L - holder.binding.delimiter.visibility = dateUtil.isSameDayGroup(tempBasal.timestamp, nextTimestamp).toVisibility() } override fun getItemCount() = tempBasalList.size diff --git a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsUserEntryFragment.kt b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsUserEntryFragment.kt index 0303f5bf7c..bd442ce723 100644 --- a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsUserEntryFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsUserEntryFragment.kt @@ -134,8 +134,6 @@ class TreatmentsUserEntryFragment : DaggerFragment() { holder.binding.iconSource.setImageResource(userEntryPresentationHelper.iconId(current.source)) holder.binding.values.text = userEntryPresentationHelper.listToPresentationString(current.values) holder.binding.values.visibility = (holder.binding.values.text != "").toVisibility() - val nextTimestamp = if (entries.size != position + 1) entries[position + 1].timestamp else 0L - holder.binding.delimiter.visibility = dateUtil.isSameDayGroup(current.timestamp, nextTimestamp).toVisibility() } inner class UserEntryViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { diff --git a/app/src/main/res/layout/treatments_bolus_carbs_item.xml b/app/src/main/res/layout/treatments_bolus_carbs_item.xml index fb64eaf786..d21c778f3e 100644 --- a/app/src/main/res/layout/treatments_bolus_carbs_item.xml +++ b/app/src/main/res/layout/treatments_bolus_carbs_item.xml @@ -8,6 +8,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="4dp" + android:layout_marginBottom="4dp" app:cardCornerRadius="4dp" app:contentPadding="2dp" android:layout_gravity="center"> @@ -266,16 +267,6 @@ - - diff --git a/app/src/main/res/layout/treatments_careportal_item.xml b/app/src/main/res/layout/treatments_careportal_item.xml index 3b7ca3b34e..6431d6eee5 100644 --- a/app/src/main/res/layout/treatments_careportal_item.xml +++ b/app/src/main/res/layout/treatments_careportal_item.xml @@ -8,6 +8,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="4dp" + android:layout_marginBottom="4dp" app:cardCornerRadius="4dp" app:contentPadding="2dp" android:layout_gravity="center"> @@ -124,16 +125,6 @@ - - diff --git a/app/src/main/res/layout/treatments_extendedbolus_item.xml b/app/src/main/res/layout/treatments_extendedbolus_item.xml index c96a01e99a..18621d3e9d 100644 --- a/app/src/main/res/layout/treatments_extendedbolus_item.xml +++ b/app/src/main/res/layout/treatments_extendedbolus_item.xml @@ -8,6 +8,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="4dp" + android:layout_marginBottom="4dp" app:cardCornerRadius="4dp" app:contentPadding="2dp" android:layout_gravity="center"> @@ -169,16 +170,6 @@ - - diff --git a/app/src/main/res/layout/treatments_profileswitch_item.xml b/app/src/main/res/layout/treatments_profileswitch_item.xml index 8229e389f6..407af40983 100644 --- a/app/src/main/res/layout/treatments_profileswitch_item.xml +++ b/app/src/main/res/layout/treatments_profileswitch_item.xml @@ -8,6 +8,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="4dp" + android:layout_marginBottom="4dp" app:cardCornerRadius="4dp" app:contentPadding="2dp" android:layout_gravity="center"> @@ -137,16 +138,6 @@ - - diff --git a/app/src/main/res/layout/treatments_tempbasals_item.xml b/app/src/main/res/layout/treatments_tempbasals_item.xml index 646dc3d2aa..6f20e98720 100644 --- a/app/src/main/res/layout/treatments_tempbasals_item.xml +++ b/app/src/main/res/layout/treatments_tempbasals_item.xml @@ -8,6 +8,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="4dp" + android:layout_marginBottom="4dp" app:cardCornerRadius="4dp" app:contentPadding="2dp" android:layout_gravity="center"> @@ -187,16 +188,6 @@ - - diff --git a/app/src/main/res/layout/treatments_temptarget_item.xml b/app/src/main/res/layout/treatments_temptarget_item.xml index dde9ad68b6..8124661300 100644 --- a/app/src/main/res/layout/treatments_temptarget_item.xml +++ b/app/src/main/res/layout/treatments_temptarget_item.xml @@ -8,6 +8,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="4dp" + android:layout_marginBottom="4dp" app:cardCornerRadius="4dp" app:contentPadding="2dp" android:layout_gravity="center"> @@ -159,16 +160,6 @@ - - diff --git a/app/src/main/res/layout/treatments_user_entry_item.xml b/app/src/main/res/layout/treatments_user_entry_item.xml index 985a8071e9..e2e2f6fe76 100644 --- a/app/src/main/res/layout/treatments_user_entry_item.xml +++ b/app/src/main/res/layout/treatments_user_entry_item.xml @@ -1,102 +1,101 @@ - + android:layout_gravity="center" + android:layout_marginStart="4dp" + android:layout_marginBottom="4dp" + app:cardCornerRadius="4dp" + app:contentPadding="2dp"> - + android:orientation="vertical"> - + - + - + - + - + - + - + + + + + + + + + + + From 6a0f6091f12a355a1cb053395b077bdcc14188bb Mon Sep 17 00:00:00 2001 From: Andries Smit Date: Tue, 19 Apr 2022 12:31:20 +0200 Subject: [PATCH 19/27] chore: fix lint warnings --- .../res/layout/activity_profilehelper.xml | 6 +-- .../res/layout/automation_action_item.xml | 7 ++- .../res/layout/automation_dialog_action.xml | 4 +- .../automation_dialog_choose_action.xml | 6 +-- .../automation_dialog_choose_trigger.xml | 4 +- .../res/layout/automation_dialog_event.xml | 13 +++-- core/src/main/res/layout/datetime.xml | 13 ++--- .../res/layout/dialog_alert_custom_title.xml | 3 +- .../layout/maintenance_import_list_item.xml | 18 +++---- core/src/main/res/layout/passwordprompt.xml | 5 +- core/src/main/res/layout/toast.xml | 7 +-- core/src/main/res/values/strings.xml | 2 + .../main/res/layout/danar_history_item.xml | 12 ++--- .../layout/danar_user_options_activity.xml | 23 ++++----- .../layout/danars_pairing_progress_dialog.xml | 2 +- .../res/layout/diaconn_g8_history_item.xml | 47 ++++++++++--------- .../diaconn_g8_user_options_activity.xml | 24 ++-------- .../src/main/res/layout/bluetooth_device.xml | 13 ++--- .../res/layout/local_insight_status_item.xml | 9 +++- .../main/res/layout/medtronic_fragment.xml | 16 +------ .../res/layout/medtronic_history_activity.xml | 8 ++-- .../res/layout/medtronic_history_item.xml | 18 +++---- medtronic/src/main/res/values/strings.xml | 2 + .../omnipod_dash_pod_history_activity.xml | 2 +- .../omnipod_eros_pod_history_activity.xml | 2 +- .../layout/riley_link_ble_config_activity.xml | 3 ++ .../riley_link_ble_config_scan_item.xml | 3 +- .../src/main/res/layout/rileylink_status.xml | 6 +-- .../res/layout/rileylink_status_device.xml | 5 +- .../layout/rileylink_status_device_item.xml | 18 +++---- .../res/layout/rileylink_status_history.xml | 8 ++-- .../layout/rileylink_status_history_item.xml | 21 +++++---- 32 files changed, 162 insertions(+), 168 deletions(-) diff --git a/app/src/main/res/layout/activity_profilehelper.xml b/app/src/main/res/layout/activity_profilehelper.xml index 615958b310..f1621b78df 100644 --- a/app/src/main/res/layout/activity_profilehelper.xml +++ b/app/src/main/res/layout/activity_profilehelper.xml @@ -27,8 +27,7 @@ android:gravity="center" android:paddingStart="5dp" android:paddingEnd="5dp" - android:text="1" - tools:ignore="HardcodedText" /> + android:text="Profile 1" /> + android:text="Profile 2" /> diff --git a/automation/src/main/res/layout/automation_action_item.xml b/automation/src/main/res/layout/automation_action_item.xml index 24697cee75..187abda4a9 100644 --- a/automation/src/main/res/layout/automation_action_item.xml +++ b/automation/src/main/res/layout/automation_action_item.xml @@ -2,6 +2,7 @@ + android:orientation="horizontal" + tools:ignore="UseCompoundDrawables"> - \ No newline at end of file + diff --git a/automation/src/main/res/layout/automation_dialog_action.xml b/automation/src/main/res/layout/automation_dialog_action.xml index 0ec8a68c46..ba6a516e70 100644 --- a/automation/src/main/res/layout/automation_dialog_action.xml +++ b/automation/src/main/res/layout/automation_dialog_action.xml @@ -6,7 +6,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:focusableInTouchMode="true" - tools:context=".plugins.general.automation.dialogs.EditActionDialog"> + tools:context="info.nightscout.androidaps.plugins.general.automation.dialogs.EditActionDialog"> - \ No newline at end of file + diff --git a/automation/src/main/res/layout/automation_dialog_choose_action.xml b/automation/src/main/res/layout/automation_dialog_choose_action.xml index f3aaebd19b..ac3997cf97 100644 --- a/automation/src/main/res/layout/automation_dialog_choose_action.xml +++ b/automation/src/main/res/layout/automation_dialog_choose_action.xml @@ -2,12 +2,10 @@ + tools:context="info.nightscout.androidaps.plugins.general.automation.dialogs.EditEventDialog"> - \ No newline at end of file + diff --git a/automation/src/main/res/layout/automation_dialog_choose_trigger.xml b/automation/src/main/res/layout/automation_dialog_choose_trigger.xml index f88d4a1078..c4c139c607 100644 --- a/automation/src/main/res/layout/automation_dialog_choose_trigger.xml +++ b/automation/src/main/res/layout/automation_dialog_choose_trigger.xml @@ -6,7 +6,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:focusableInTouchMode="true" - tools:context=".plugins.general.automation.dialogs.EditEventDialog"> + tools:context="info.nightscout.androidaps.plugins.general.automation.dialogs.EditEventDialog"> - \ No newline at end of file + diff --git a/automation/src/main/res/layout/automation_dialog_event.xml b/automation/src/main/res/layout/automation_dialog_event.xml index 9109c1a520..a94169dd49 100644 --- a/automation/src/main/res/layout/automation_dialog_event.xml +++ b/automation/src/main/res/layout/automation_dialog_event.xml @@ -26,7 +26,7 @@ app:srcCompat="@drawable/ic_action_orange_48dp" /> @@ -93,6 +94,7 @@ android:layout_width="24dp" android:layout_height="24dp" android:layout_centerVertical="true" + android:importantForAccessibility="no" app:srcCompat="@drawable/ic_trigger_green_48dp" /> + android:text="@string/edit_short" + tools:ignore="RelativeOverlap" /> @@ -156,6 +159,7 @@ android:layout_width="24dp" android:layout_height="24dp" android:layout_centerVertical="true" + android:importantForAccessibility="no" app:srcCompat="@drawable/ic_action_orange_48dp" /> + android:text="@string/add_short" + tools:ignore="RelativeOverlap" /> @@ -195,4 +200,4 @@ - \ No newline at end of file + diff --git a/core/src/main/res/layout/datetime.xml b/core/src/main/res/layout/datetime.xml index 07e7ba30fe..507595174d 100644 --- a/core/src/main/res/layout/datetime.xml +++ b/core/src/main/res/layout/datetime.xml @@ -1,9 +1,10 @@ + android:orientation="horizontal" + android:paddingTop="2dp"> + tools:text="2017/05/05" /> + tools:text="08:20pm" /> diff --git a/core/src/main/res/layout/dialog_alert_custom_title.xml b/core/src/main/res/layout/dialog_alert_custom_title.xml index 624b970c12..0c0641954d 100644 --- a/core/src/main/res/layout/dialog_alert_custom_title.xml +++ b/core/src/main/res/layout/dialog_alert_custom_title.xml @@ -18,6 +18,7 @@ android:id="@+id/alertdialog_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:importantForAccessibility="no" app:tint="?dialogTitleIconTint" /> - \ No newline at end of file + diff --git a/core/src/main/res/layout/maintenance_import_list_item.xml b/core/src/main/res/layout/maintenance_import_list_item.xml index 39d68cfa89..d7e8cd1f18 100644 --- a/core/src/main/res/layout/maintenance_import_list_item.xml +++ b/core/src/main/res/layout/maintenance_import_list_item.xml @@ -27,7 +27,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:baselineAligned="true" - android:orientation="horizontal"> + android:orientation="horizontal" + tools:ignore="UseCompoundDrawables"> @@ -46,6 +48,7 @@ android:layout_weight="1" android:ellipsize="none" android:maxLines="2" + android:paddingStart="0dp" android:paddingEnd="10dp" android:scrollHorizontally="false" android:text="File name here" @@ -53,7 +56,6 @@ android:textColor="?attr/importListFileNameColor" tools:ignore="HardcodedText" /> - - + android:orientation="horizontal" + tools:ignore="UseCompoundDrawables"> @@ -110,17 +112,14 @@ android:textColor="?attr/importListAdditionalInfoColor" tools:ignore="HardcodedText" /> - - - diff --git a/core/src/main/res/layout/passwordprompt.xml b/core/src/main/res/layout/passwordprompt.xml index ea4209edc3..05c300a702 100644 --- a/core/src/main/res/layout/passwordprompt.xml +++ b/core/src/main/res/layout/passwordprompt.xml @@ -21,9 +21,11 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/password_hint" + android:importantForAutofill="no" android:inputType="textPassword"> + - \ No newline at end of file + diff --git a/core/src/main/res/layout/toast.xml b/core/src/main/res/layout/toast.xml index 4572e3b408..8b79189760 100644 --- a/core/src/main/res/layout/toast.xml +++ b/core/src/main/res/layout/toast.xml @@ -26,8 +26,9 @@ android:layout_marginTop="4dp" android:layout_marginEnd="18dp" android:layout_marginBottom="4dp" - android:text="Toast goes here..." android:textColor="?attr/toastBaseTextColor" android:textSize="18sp" - tools:ignore="HardcodedText,RtlHardcoded" /> - \ No newline at end of file + tools:ignore="RtlHardcoded" + tools:text="Toast goes here..." /> + + diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 74e30a005c..39ff22b27b 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -561,6 +561,8 @@ Remove Items Sort Items Remove Selected Items + file + user %1$d day diff --git a/dana/src/main/res/layout/danar_history_item.xml b/dana/src/main/res/layout/danar_history_item.xml index 23b37e9e00..ddae424524 100644 --- a/dana/src/main/res/layout/danar_history_item.xml +++ b/dana/src/main/res/layout/danar_history_item.xml @@ -14,7 +14,6 @@ app:cardUseCompatPadding="true" android:layout_gravity="center"> - - @@ -64,7 +62,7 @@ android:id="@+id/duration" android:layout_width="30dp" android:layout_height="wrap_content" - android:gravity="right" + android:gravity="end" android:paddingStart="5dp" android:text="30" tools:ignore="HardcodedText,RtlHardcoded,RtlSymmetry" /> @@ -73,7 +71,7 @@ android:id="@+id/daily_basal" android:layout_width="50dp" android:layout_height="wrap_content" - android:gravity="right" + android:gravity="end" android:paddingStart="5dp" tools:ignore="RtlHardcoded,RtlSymmetry" /> @@ -81,7 +79,7 @@ android:id="@+id/daily_bolus" android:layout_width="50dp" android:layout_height="wrap_content" - android:gravity="right" + android:gravity="end" android:paddingStart="5dp" tools:ignore="RtlHardcoded,RtlSymmetry" /> @@ -89,7 +87,7 @@ android:id="@+id/daily_total" android:layout_width="56dp" android:layout_height="wrap_content" - android:gravity="right" + android:gravity="end" android:paddingStart="10dp" android:visibility="gone" tools:ignore="RtlHardcoded,RtlSymmetry" /> diff --git a/dana/src/main/res/layout/danar_user_options_activity.xml b/dana/src/main/res/layout/danar_user_options_activity.xml index ee76cba6bf..6e4f850ab1 100644 --- a/dana/src/main/res/layout/danar_user_options_activity.xml +++ b/dana/src/main/res/layout/danar_user_options_activity.xml @@ -8,7 +8,6 @@ android:focusableInTouchMode="true" tools:context="info.nightscout.androidaps.dana.activities.DanaUserOptionsActivity"> - - + android:textOn="@string/timeformat24h" + app:showText="true" /> - + android:textOn="@string/option_on" + app:showText="true" /> - + android:textOn="@string/option_on" + app:showText="true" /> - + android:textOn="@string/mmol" + app:showText="true" /> + tools:text="STATUS" /> - - + app:contentPadding="2dp"> - + android:paddingEnd="0dp" + tools:text="27.06.2016 18:00" /> + android:paddingEnd="0dp" + tools:text="0.25" /> + android:paddingEnd="0dp" + tools:text="E" /> + android:paddingEnd="0dp" + tools:text="XXXXXXX" /> + android:paddingEnd="0dp" + tools:text="30" /> + android:paddingEnd="0dp" /> + android:paddingEnd="0dp" /> + android:paddingEnd="0dp" + android:visibility="gone" /> + android:paddingStart="5dp" + android:paddingEnd="0dp" /> diff --git a/diaconn/src/main/res/layout/diaconn_g8_user_options_activity.xml b/diaconn/src/main/res/layout/diaconn_g8_user_options_activity.xml index 61a43250a5..85a4ba9aa8 100644 --- a/diaconn/src/main/res/layout/diaconn_g8_user_options_activity.xml +++ b/diaconn/src/main/res/layout/diaconn_g8_user_options_activity.xml @@ -8,7 +8,6 @@ android:focusableInTouchMode="true" tools:context="info.nightscout.androidaps.diaconn.activities.DiaconnG8UserOptionsActivity"> - - - @@ -191,17 +185,11 @@ - - - @@ -273,16 +261,11 @@ - - @@ -306,7 +289,6 @@ android:layout_marginBottom="5dp" android:background="?android:attr/dividerHorizontal" /> - \ No newline at end of file + android:gravity="center_vertical" + android:paddingStart="16dp" + android:paddingEnd="0dp" + android:textColor="#FFFFFF" + android:textSize="20sp" + tools:text="Test" /> diff --git a/insight/src/main/res/layout/local_insight_status_item.xml b/insight/src/main/res/layout/local_insight_status_item.xml index 38216e9b33..987d71b50e 100644 --- a/insight/src/main/res/layout/local_insight_status_item.xml +++ b/insight/src/main/res/layout/local_insight_status_item.xml @@ -1,5 +1,6 @@ @@ -10,6 +11,7 @@ android:layout_height="wrap_content" android:layout_weight="1" android:gravity="end" + android:paddingStart="0dp" android:paddingEnd="5dp" android:textSize="14sp" /> @@ -21,7 +23,8 @@ android:paddingStart="2dp" android:paddingEnd="2dp" android:text=":" - android:textSize="14sp" /> + android:textSize="14sp" + tools:ignore="HardcodedText" /> - \ No newline at end of file + + diff --git a/medtronic/src/main/res/layout/medtronic_fragment.xml b/medtronic/src/main/res/layout/medtronic_fragment.xml index ea92f2a590..db76e71150 100644 --- a/medtronic/src/main/res/layout/medtronic_fragment.xml +++ b/medtronic/src/main/res/layout/medtronic_fragment.xml @@ -4,14 +4,12 @@ android:layout_height="match_parent" tools:context="info.nightscout.androidaps.plugins.pump.medtronic.MedtronicFragment"> - - - - - - - - - - - - - - + android:text="@string/riley_statistics" /> diff --git a/medtronic/src/main/res/layout/medtronic_history_activity.xml b/medtronic/src/main/res/layout/medtronic_history_activity.xml index b9e95908df..91e8ddbc45 100644 --- a/medtronic/src/main/res/layout/medtronic_history_activity.xml +++ b/medtronic/src/main/res/layout/medtronic_history_activity.xml @@ -7,7 +7,6 @@ android:paddingTop="@dimen/activity_vertical_margin" tools:context="info.nightscout.androidaps.plugins.pump.medtronic.dialog.MedtronicHistoryActivity"> - - - + android:textSize="12sp" + tools:text="Date" /> + android:textSize="12sp" + tools:text="Source" /> + android:textSize="12sp" + tools:text="Description" /> - \ No newline at end of file + diff --git a/medtronic/src/main/res/values/strings.xml b/medtronic/src/main/res/values/strings.xml index 5ec63bcdfd..0e247f48b1 100644 --- a/medtronic/src/main/res/values/strings.xml +++ b/medtronic/src/main/res/values/strings.xml @@ -123,5 +123,7 @@ %1$.1f U/h (%2$d min remaining) ^\\d{6} Invalid pump history data detected. Open new issue and provide logs. + RL Stats + Type: \ No newline at end of file diff --git a/omnipod-dash/src/main/res/layout/omnipod_dash_pod_history_activity.xml b/omnipod-dash/src/main/res/layout/omnipod_dash_pod_history_activity.xml index be8a49d07a..fba452e2a2 100644 --- a/omnipod-dash/src/main/res/layout/omnipod_dash_pod_history_activity.xml +++ b/omnipod-dash/src/main/res/layout/omnipod_dash_pod_history_activity.xml @@ -29,7 +29,7 @@ + - \ No newline at end of file + diff --git a/rileylink/src/main/res/layout/rileylink_status.xml b/rileylink/src/main/res/layout/rileylink_status.xml index d73f137bcb..42882d46de 100644 --- a/rileylink/src/main/res/layout/rileylink_status.xml +++ b/rileylink/src/main/res/layout/rileylink_status.xml @@ -5,7 +5,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" - tools:context="info.nightscout.androidaps.plugins.pump.common.hw.rileylink.dialog.RileyLinkStatusActivity"> - + - - diff --git a/rileylink/src/main/res/layout/rileylink_status_device.xml b/rileylink/src/main/res/layout/rileylink_status_device.xml index f56c4b0d6d..e8d1a63552 100644 --- a/rileylink/src/main/res/layout/rileylink_status_device.xml +++ b/rileylink/src/main/res/layout/rileylink_status_device.xml @@ -2,7 +2,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".plugins.pump.medtronic.dialog.RileyLinkStatusDevice"> + tools:context="info.nightscout.androidaps.plugins.pump.common.hw.rileylink.dialog.RileyLinkStatusDevice"> + - \ No newline at end of file + diff --git a/rileylink/src/main/res/layout/rileylink_status_device_item.xml b/rileylink/src/main/res/layout/rileylink_status_device_item.xml index e8a81fbc6f..f37596f31f 100644 --- a/rileylink/src/main/res/layout/rileylink_status_device_item.xml +++ b/rileylink/src/main/res/layout/rileylink_status_device_item.xml @@ -1,25 +1,27 @@ + android:orientation="horizontal" + android:paddingStart="15dp" + android:paddingEnd="0dp"> + android:textSize="12sp" + tools:text="Command" /> + android:textSize="12sp" + tools:text="Description" /> - \ No newline at end of file + diff --git a/rileylink/src/main/res/layout/rileylink_status_history.xml b/rileylink/src/main/res/layout/rileylink_status_history.xml index 3a44c3a8e8..21a37379cb 100644 --- a/rileylink/src/main/res/layout/rileylink_status_history.xml +++ b/rileylink/src/main/res/layout/rileylink_status_history.xml @@ -12,17 +12,15 @@ + android:layout_height="fill_parent"/> - \ No newline at end of file + diff --git a/rileylink/src/main/res/layout/rileylink_status_history_item.xml b/rileylink/src/main/res/layout/rileylink_status_history_item.xml index 1a9a7a61c2..4e522c8899 100644 --- a/rileylink/src/main/res/layout/rileylink_status_history_item.xml +++ b/rileylink/src/main/res/layout/rileylink_status_history_item.xml @@ -1,33 +1,34 @@ - + android:orientation="horizontal" + android:paddingStart="20dp" + android:paddingEnd="0dp"> + android:textSize="12sp" + tools:text="Date" /> + android:textSize="12sp" + tools:text="Source" /> + android:textSize="12sp" + tools:text="Description" /> - \ No newline at end of file + From db33b76bb0795b90effb0cd4e13b5d569afb1a54 Mon Sep 17 00:00:00 2001 From: Andries Smit Date: Tue, 19 Apr 2022 13:23:35 +0200 Subject: [PATCH 20/27] chore: fix remove extra newlines --- app/src/main/res/layout/activity_historybrowse.xml | 1 - app/src/main/res/layout/activity_survey.xml | 1 - app/src/main/res/layout/careportal_stats_fragment.xml | 1 - app/src/main/res/layout/dialog_carbs.xml | 1 - app/src/main/res/layout/dialog_extendedbolus.xml | 3 +-- app/src/main/res/layout/dialog_loop.xml | 4 ---- app/src/main/res/layout/dialog_profileswitch.xml | 2 -- app/src/main/res/layout/dialog_wizard.xml | 1 - app/src/main/res/layout/food_fragment.xml | 1 - app/src/main/res/layout/food_item.xml | 1 - app/src/main/res/layout/localprofile_fragment.xml | 2 -- app/src/main/res/layout/logsettings_item.xml | 3 +-- app/src/main/res/layout/maintenance_fragment.xml | 1 - app/src/main/res/layout/overview_editquickwizard_dialog.xml | 1 - app/src/main/res/layout/overview_info_layout.xml | 3 +-- app/src/main/res/layout/overview_quickwizardlist_item.xml | 1 - app/src/main/res/values/dimens.xml | 1 - app/src/main/res/values/themes.xml | 4 +--- app/src/main/res/xml/pref_openapssmb.xml | 2 -- app/src/main/res/xml/pref_openapssmbdynamicisf.xml | 2 -- app/src/main/res/xml/pref_overview.xml | 6 +----- app/src/main/res/xml/pref_safety.xml | 3 +-- combo/src/main/res/layout/combopump_fragment.xml | 1 - core/src/main/res/layout/activity_tdd_stats.xml | 3 +-- core/src/main/res/values-night/colors.xml | 1 - core/src/main/res/values/colors.xml | 2 -- dana/src/main/res/layout/danar_fragment.xml | 4 ---- dana/src/main/res/layout/danar_history_activity.xml | 1 - danars/src/main/res/layout/danars_enter_pin_activity.xml | 3 +-- diaconn/src/main/res/layout/diaconn_g8_fragment.xml | 4 ---- diaconn/src/main/res/layout/diaconn_g8_history_activity.xml | 1 - diaconn/src/main/res/values/arrays.xml | 3 +-- diaconn/src/main/res/values/strings.xml | 3 +-- insight/src/main/res/layout/activity_insight_pairing.xml | 3 +-- medtronic/src/main/res/values/strings.xml | 3 +-- medtronic/src/main/res/xml/pref_medtronic.xml | 4 +--- .../res/layout/omnipod_dash_overview_bluetooth_status.xml | 5 +++-- pump-common/src/main/res/values/strings.xml | 3 +-- rileylink/src/main/res/layout/rileylink_status_general.xml | 6 +----- wear/src/main/res/drawable/settings_background.xml | 3 +-- wear/src/main/res/layout/action_editplusminus_item.xml | 5 +++-- .../res/layout/action_editplusminus_item_quicklefty.xml | 5 +++-- .../res/layout/action_editplusminus_item_quickrighty.xml | 6 ++++-- wear/src/main/res/layout/action_send_item.xml | 6 ++---- wear/src/main/res/layout/modern_layout.xml | 6 +++--- wear/src/main/res/layout/rect_activity_home.xml | 1 - wear/src/main/res/layout/rect_activity_home_2.xml | 1 - wear/src/main/res/layout/rect_activity_home_large.xml | 1 - wear/src/main/res/layout/rect_cockpit.xml | 3 +-- wear/src/main/res/layout/rect_steampunk.xml | 2 -- wear/src/main/res/layout/round_activity_home_2.xml | 1 - wear/src/main/res/layout/round_cockpit.xml | 1 - wear/src/main/res/layout/round_steampunk.xml | 2 -- wear/src/main/res/values/colors.xml | 5 ++--- wear/src/main/res/values/digitalstyle_arrays.xml | 5 +---- wear/src/main/res/xml/watch_face_configuration_bigchart.xml | 1 - .../main/res/xml/watch_face_configuration_digitalstyle.xml | 1 - wear/src/main/res/xml/watch_face_configuration_nochart.xml | 1 - 58 files changed, 38 insertions(+), 113 deletions(-) diff --git a/app/src/main/res/layout/activity_historybrowse.xml b/app/src/main/res/layout/activity_historybrowse.xml index 2cbd13c683..f904a06eb4 100644 --- a/app/src/main/res/layout/activity_historybrowse.xml +++ b/app/src/main/res/layout/activity_historybrowse.xml @@ -111,5 +111,4 @@ - diff --git a/app/src/main/res/layout/activity_survey.xml b/app/src/main/res/layout/activity_survey.xml index 835cf769af..ae711855bf 100644 --- a/app/src/main/res/layout/activity_survey.xml +++ b/app/src/main/res/layout/activity_survey.xml @@ -177,7 +177,6 @@ android:textAlignment="center" android:textAppearance="@style/TextAppearance.AppCompat.Medium" /> - diff --git a/app/src/main/res/layout/careportal_stats_fragment.xml b/app/src/main/res/layout/careportal_stats_fragment.xml index df85552e4f..cccb4541d7 100644 --- a/app/src/main/res/layout/careportal_stats_fragment.xml +++ b/app/src/main/res/layout/careportal_stats_fragment.xml @@ -112,7 +112,6 @@ android:paddingEnd="2dp" android:textSize="14sp" /> - - - - \ No newline at end of file + diff --git a/app/src/main/res/layout/dialog_loop.xml b/app/src/main/res/layout/dialog_loop.xml index f0289139d3..5f0cad9ba3 100644 --- a/app/src/main/res/layout/dialog_loop.xml +++ b/app/src/main/res/layout/dialog_loop.xml @@ -46,7 +46,6 @@ android:orientation="horizontal" android:padding="5dp" /> - - - - - - diff --git a/app/src/main/res/layout/dialog_wizard.xml b/app/src/main/res/layout/dialog_wizard.xml index 9064fe76d2..08fa04d594 100644 --- a/app/src/main/res/layout/dialog_wizard.xml +++ b/app/src/main/res/layout/dialog_wizard.xml @@ -476,7 +476,6 @@ android:checked="false" android:text="@string/bg_trend_label" /> - - - - - diff --git a/app/src/main/res/layout/logsettings_item.xml b/app/src/main/res/layout/logsettings_item.xml index 0c4634ac90..5a64ac9b08 100644 --- a/app/src/main/res/layout/logsettings_item.xml +++ b/app/src/main/res/layout/logsettings_item.xml @@ -13,11 +13,10 @@ android:textSize="12sp" tools:text="TYPE" /> - - \ No newline at end of file + diff --git a/app/src/main/res/layout/maintenance_fragment.xml b/app/src/main/res/layout/maintenance_fragment.xml index b715bf3133..e059bf928c 100644 --- a/app/src/main/res/layout/maintenance_fragment.xml +++ b/app/src/main/res/layout/maintenance_fragment.xml @@ -84,7 +84,6 @@ android:text="@string/nav_import" android:textColor="?attr/treatmentButton" /> - - - - \ No newline at end of file + diff --git a/app/src/main/res/layout/overview_quickwizardlist_item.xml b/app/src/main/res/layout/overview_quickwizardlist_item.xml index 594721d43e..25301a3bb6 100644 --- a/app/src/main/res/layout/overview_quickwizardlist_item.xml +++ b/app/src/main/res/layout/overview_quickwizardlist_item.xml @@ -147,7 +147,6 @@ - diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index c64cb175a7..b4c15f6ed8 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -1,6 +1,5 @@ - 16dp - - @color/colorInsulinButton @color/colorCarbsButton @color/white - \ No newline at end of file + diff --git a/app/src/main/res/xml/pref_openapssmb.xml b/app/src/main/res/xml/pref_openapssmb.xml index 945161d9af..ebe3e0ec92 100644 --- a/app/src/main/res/xml/pref_openapssmb.xml +++ b/app/src/main/res/xml/pref_openapssmb.xml @@ -113,14 +113,12 @@ validate:minNumber="15" validate:testType="numericRange" /> - - - - - - - - - \ No newline at end of file + diff --git a/app/src/main/res/xml/pref_safety.xml b/app/src/main/res/xml/pref_safety.xml index 6113be6c13..641ddf6aee 100644 --- a/app/src/main/res/xml/pref_safety.xml +++ b/app/src/main/res/xml/pref_safety.xml @@ -25,7 +25,6 @@ validate:floatminNumber="0.1" validate:testType="floatNumericRange" /> - - \ No newline at end of file + diff --git a/combo/src/main/res/layout/combopump_fragment.xml b/combo/src/main/res/layout/combopump_fragment.xml index 3236dbc7d7..3225c78e76 100644 --- a/combo/src/main/res/layout/combopump_fragment.xml +++ b/combo/src/main/res/layout/combopump_fragment.xml @@ -109,7 +109,6 @@ android:layout_marginTop="5dp" android:background="?android:attr/dividerHorizontal" /> - - - \ No newline at end of file + diff --git a/core/src/main/res/values-night/colors.xml b/core/src/main/res/values-night/colors.xml index ff02e8002f..68c425d34d 100644 --- a/core/src/main/res/values-night/colors.xml +++ b/core/src/main/res/values-night/colors.xml @@ -70,7 +70,6 @@ #505050 #00ffff - #939393 #00C03E diff --git a/core/src/main/res/values/colors.xml b/core/src/main/res/values/colors.xml index 400d3af6df..c0dd2233f5 100644 --- a/core/src/main/res/values/colors.xml +++ b/core/src/main/res/values/colors.xml @@ -45,7 +45,6 @@ #E93057 #67E86A - #CCCCCC @@ -71,7 +70,6 @@ #505050 #00ffff - #939393 #00C03E diff --git a/dana/src/main/res/layout/danar_fragment.xml b/dana/src/main/res/layout/danar_fragment.xml index 034d176906..e26919aebd 100644 --- a/dana/src/main/res/layout/danar_fragment.xml +++ b/dana/src/main/res/layout/danar_fragment.xml @@ -54,7 +54,6 @@ android:textSize="14sp" tools:ignore="RtlSymmetry" /> - - - - - - - \ No newline at end of file + diff --git a/diaconn/src/main/res/layout/diaconn_g8_fragment.xml b/diaconn/src/main/res/layout/diaconn_g8_fragment.xml index ea0bae3d66..b61e233549 100644 --- a/diaconn/src/main/res/layout/diaconn_g8_fragment.xml +++ b/diaconn/src/main/res/layout/diaconn_g8_fragment.xml @@ -5,7 +5,6 @@ android:paddingTop="5dp" tools:context="info.nightscout.androidaps.diaconn.DiaconnG8Fragment"> - - - - - 3 - - \ No newline at end of file + diff --git a/diaconn/src/main/res/values/strings.xml b/diaconn/src/main/res/values/strings.xml index 686e5ededc..ac1ad0868e 100644 --- a/diaconn/src/main/res/values/strings.xml +++ b/diaconn/src/main/res/values/strings.xml @@ -167,5 +167,4 @@ Tempbasal start is rejected when tempbasal is running Tempbasal stop is rejected when tempbasal is not running - - \ No newline at end of file + diff --git a/insight/src/main/res/layout/activity_insight_pairing.xml b/insight/src/main/res/layout/activity_insight_pairing.xml index 0f408a088e..514eae9252 100644 --- a/insight/src/main/res/layout/activity_insight_pairing.xml +++ b/insight/src/main/res/layout/activity_insight_pairing.xml @@ -104,5 +104,4 @@ android:text="@string/exit" /> - - \ No newline at end of file + diff --git a/medtronic/src/main/res/values/strings.xml b/medtronic/src/main/res/values/strings.xml index 0e247f48b1..eaa378f712 100644 --- a/medtronic/src/main/res/values/strings.xml +++ b/medtronic/src/main/res/values/strings.xml @@ -79,7 +79,6 @@ Medtronic Pump History - You cancelled Bolus, after it was already set on Pump. Since Medtronic Pump doesn\'t support cancel, you will need to manually cancel it. Put the Pump into Suspend mode and then do Resume (if you still want to cancel). Application will pick up changes, on next update (in less than 5 minutes). Could not read current TBR. @@ -126,4 +125,4 @@ RL Stats Type: - \ No newline at end of file + diff --git a/medtronic/src/main/res/xml/pref_medtronic.xml b/medtronic/src/main/res/xml/pref_medtronic.xml index 40a70aa22b..77300cc8df 100644 --- a/medtronic/src/main/res/xml/pref_medtronic.xml +++ b/medtronic/src/main/res/xml/pref_medtronic.xml @@ -18,7 +18,6 @@ validate:testErrorString="@string/error_mustbe6digitnumber" validate:testType="regexp" /> - - - \ No newline at end of file + diff --git a/omnipod-dash/src/main/res/layout/omnipod_dash_overview_bluetooth_status.xml b/omnipod-dash/src/main/res/layout/omnipod_dash_overview_bluetooth_status.xml index 42cf74988f..bfab0bee96 100644 --- a/omnipod-dash/src/main/res/layout/omnipod_dash_overview_bluetooth_status.xml +++ b/omnipod-dash/src/main/res/layout/omnipod_dash_overview_bluetooth_status.xml @@ -28,7 +28,6 @@ android:textSize="14sp" tools:ignore="HardcodedText" /> - + - \ No newline at end of file + + diff --git a/pump-common/src/main/res/values/strings.xml b/pump-common/src/main/res/values/strings.xml index cdbe2ba8bf..cfd76262bc 100644 --- a/pump-common/src/main/res/values/strings.xml +++ b/pump-common/src/main/res/values/strings.xml @@ -28,5 +28,4 @@ Alarms Glucose - - \ No newline at end of file + diff --git a/rileylink/src/main/res/layout/rileylink_status_general.xml b/rileylink/src/main/res/layout/rileylink_status_general.xml index ed1f4e8159..dd3293ba48 100644 --- a/rileylink/src/main/res/layout/rileylink_status_general.xml +++ b/rileylink/src/main/res/layout/rileylink_status_general.xml @@ -114,7 +114,6 @@ android:textAlignment="center" /> - - - - - \ No newline at end of file + diff --git a/wear/src/main/res/drawable/settings_background.xml b/wear/src/main/res/drawable/settings_background.xml index 97632802ac..ae00ffc64b 100644 --- a/wear/src/main/res/drawable/settings_background.xml +++ b/wear/src/main/res/drawable/settings_background.xml @@ -8,5 +8,4 @@ - - \ No newline at end of file + diff --git a/wear/src/main/res/layout/action_editplusminus_item.xml b/wear/src/main/res/layout/action_editplusminus_item.xml index 8ea1826e77..be5b622dbe 100644 --- a/wear/src/main/res/layout/action_editplusminus_item.xml +++ b/wear/src/main/res/layout/action_editplusminus_item.xml @@ -3,7 +3,6 @@ android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> - - + + + diff --git a/wear/src/main/res/layout/action_editplusminus_item_quicklefty.xml b/wear/src/main/res/layout/action_editplusminus_item_quicklefty.xml index defa4d274d..980677522c 100644 --- a/wear/src/main/res/layout/action_editplusminus_item_quicklefty.xml +++ b/wear/src/main/res/layout/action_editplusminus_item_quicklefty.xml @@ -3,7 +3,6 @@ android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> - - + + + diff --git a/wear/src/main/res/layout/action_editplusminus_item_quickrighty.xml b/wear/src/main/res/layout/action_editplusminus_item_quickrighty.xml index 31c6251f4b..a1b2107768 100644 --- a/wear/src/main/res/layout/action_editplusminus_item_quickrighty.xml +++ b/wear/src/main/res/layout/action_editplusminus_item_quickrighty.xml @@ -3,7 +3,6 @@ android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> - + - + + + diff --git a/wear/src/main/res/layout/action_send_item.xml b/wear/src/main/res/layout/action_send_item.xml index 9a31d53271..fd0d4c89b9 100644 --- a/wear/src/main/res/layout/action_send_item.xml +++ b/wear/src/main/res/layout/action_send_item.xml @@ -3,13 +3,13 @@ android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> - + - - - + diff --git a/wear/src/main/res/layout/modern_layout.xml b/wear/src/main/res/layout/modern_layout.xml index c1d429b229..9837a8a2aa 100644 --- a/wear/src/main/res/layout/modern_layout.xml +++ b/wear/src/main/res/layout/modern_layout.xml @@ -9,7 +9,6 @@ android:layout_alignParentTop="true" android:layout_alignParentStart="true"> - - - \ No newline at end of file + + + diff --git a/wear/src/main/res/layout/rect_activity_home.xml b/wear/src/main/res/layout/rect_activity_home.xml index a9dfa846bd..c619efbb37 100644 --- a/wear/src/main/res/layout/rect_activity_home.xml +++ b/wear/src/main/res/layout/rect_activity_home.xml @@ -73,7 +73,6 @@ android:gravity="center_horizontal|bottom" android:textStyle="bold" /> - diff --git a/wear/src/main/res/layout/rect_activity_home_2.xml b/wear/src/main/res/layout/rect_activity_home_2.xml index 3ebfbaac8e..6f8e811f22 100644 --- a/wear/src/main/res/layout/rect_activity_home_2.xml +++ b/wear/src/main/res/layout/rect_activity_home_2.xml @@ -324,7 +324,6 @@ android:orientation="vertical" android:textAlignment="center"> - - diff --git a/wear/src/main/res/layout/rect_cockpit.xml b/wear/src/main/res/layout/rect_cockpit.xml index a1b65652e8..ca09d8be69 100644 --- a/wear/src/main/res/layout/rect_cockpit.xml +++ b/wear/src/main/res/layout/rect_cockpit.xml @@ -5,7 +5,6 @@ android:id="@+id/main_layout" android:background="@drawable/airplane_cockpit_outside_clouds"> - - \ No newline at end of file + diff --git a/wear/src/main/res/layout/rect_steampunk.xml b/wear/src/main/res/layout/rect_steampunk.xml index e88ab41c5c..771a03b619 100644 --- a/wear/src/main/res/layout/rect_steampunk.xml +++ b/wear/src/main/res/layout/rect_steampunk.xml @@ -89,7 +89,6 @@ android:layout_weight="0.16" android:orientation="horizontal"> - - - - - - #779ECB #D9000000 - @color/black @color/black @@ -46,7 +45,6 @@ #CF8BFE #FBC02D - #00FF00 #67DFE8 #FFFB8C00 @@ -186,4 +184,5 @@ #000000 #FFFFFF - \ No newline at end of file + + diff --git a/wear/src/main/res/values/digitalstyle_arrays.xml b/wear/src/main/res/values/digitalstyle_arrays.xml index 25f16564fe..a0d852fd83 100644 --- a/wear/src/main/res/values/digitalstyle_arrays.xml +++ b/wear/src/main/res/values/digitalstyle_arrays.xml @@ -60,7 +60,6 @@ multicolor - 100 500 @@ -68,7 +67,6 @@ 900 - 10% 20% @@ -94,5 +92,4 @@ 1 - - \ No newline at end of file + diff --git a/wear/src/main/res/xml/watch_face_configuration_bigchart.xml b/wear/src/main/res/xml/watch_face_configuration_bigchart.xml index a5f5010bdc..93fca4db9e 100644 --- a/wear/src/main/res/xml/watch_face_configuration_bigchart.xml +++ b/wear/src/main/res/xml/watch_face_configuration_bigchart.xml @@ -2,7 +2,6 @@ - - - Date: Tue, 19 Apr 2022 13:32:22 +0200 Subject: [PATCH 21/27] chore: remove triple new lines --- .../activities/HistoryBrowseActivity.kt | 1 - .../ProfileFunctionImplementation.kt | 3 +-- .../versionChecker/VersionCheckerPlugin.kt | 1 - .../plugins/general/overview/OverviewFragment.kt | 1 - .../overview/graphExtensions/BolusDataPoint.kt | 3 +-- .../plugins/general/tidepool/comm/Session.kt | 3 +-- .../general/tidepool/elements/ProfileElement.kt | 2 -- .../tidepool/messages/DatasetReplyMessage.kt | 1 - .../androidaps/receivers/DataReceiver.kt | 3 +-- .../queue/CommandQueueImplementationTest.kt | 3 +-- .../automation/actions/ActionCarePortalEvent.kt | 3 +-- .../plugins/general/automation/TestBase.kt | 3 +-- .../activities/NoSplashAppCompatActivity.kt | 1 - .../info/nightscout/androidaps/data/IobTotal.kt | 3 +-- .../androidaps/extensions/Concurrency.kt | 1 - .../extensions/EffectiveProfileSwitchExtension.kt | 3 +-- .../androidaps/extensions/JSONObjectExt.kt | 2 -- .../extensions/OfflineEventExtension.kt | 3 --- .../extensions/ProfileSwitchExtension.kt | 3 --- .../extensions/TherapyEventExtension.kt | 2 -- .../nightscout/androidaps/utils/WarnColors.kt | 3 +-- .../androidaps/danaRv2/comm/MsgCheckValue_v2.kt | 3 +-- .../danar/comm/MsgSettingUserOptions.kt | 3 +-- .../androidaps/diaconn/DiaconnG8Plugin.kt | 2 -- .../androidaps/diaconn/DiaconnG8Pump.kt | 15 +-------------- .../diaconn/di/DiaconnG8PacketModule.kt | 3 +-- .../packet/AppCancelSettingResponsePacket.kt | 3 +-- .../diaconn/packet/BigLogInquireResponsePacket.kt | 5 +---- .../packet/DiaconnG8ResponseMessageHashTable.kt | 1 - .../packet/DisplayTimeInquireResponsePacket.kt | 3 +-- .../packet/LanguageInquireResponsePacket.kt | 3 +-- .../packet/SneckLimitInquireResponsePacket.kt | 3 +-- .../diaconn/packet/SoundInquireResponsePacket.kt | 3 +-- .../diaconn/service/BLECommonService.kt | 1 - .../comm/MedtronicCommunicationManager.kt | 3 +-- .../pump/medtronic/data/MedtronicHistoryData.kt | 4 +--- .../pump/medtronic/data/dto/BasalProfileEntry.kt | 3 +-- .../pump/medtronic/data/dto/BatteryStatusDTO.kt | 4 +--- .../pump/medtronic/data/dto/BolusWizardDTO.kt | 3 +-- .../pump/MedtronicPumpHistoryDecoderUTest.kt | 7 +------ .../medtronic/data/MedtronicHistoryDataUTest.kt | 8 +------- .../omnipod/common/dagger/OmnipodWizardModule.kt | 2 -- .../plugins/pump/common/sync/PumpDbEntry.kt | 4 +--- .../common/dialog/RileyLinkBLEConfigActivity.kt | 4 ++-- 44 files changed, 30 insertions(+), 108 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/activities/HistoryBrowseActivity.kt b/app/src/main/java/info/nightscout/androidaps/activities/HistoryBrowseActivity.kt index 8abf3ff860..6da631ce46 100644 --- a/app/src/main/java/info/nightscout/androidaps/activities/HistoryBrowseActivity.kt +++ b/app/src/main/java/info/nightscout/androidaps/activities/HistoryBrowseActivity.kt @@ -169,7 +169,6 @@ class HistoryBrowseActivity : NoSplashAppCompatActivity() { else windowManager.defaultDisplay.getMetrics(dm) - axisWidth = if (dm.densityDpi <= 120) 3 else if (dm.densityDpi <= 160) 10 else if (dm.densityDpi <= 320) 35 else if (dm.densityDpi <= 420) 50 else if (dm.densityDpi <= 560) 70 else 80 binding.bgGraph.gridLabelRenderer?.gridColor = rh.gac(this, R.attr.graphgrid) binding.bgGraph.gridLabelRenderer?.reloadStyles() diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ProfileFunctionImplementation.kt b/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ProfileFunctionImplementation.kt index 63e03478dc..89b1da7047 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ProfileFunctionImplementation.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ProfileFunctionImplementation.kt @@ -130,7 +130,6 @@ class ProfileFunctionImplementation @Inject constructor( } } - return null } @@ -205,4 +204,4 @@ class ProfileFunctionImplementation @Inject constructor( } else returnValue = false return returnValue } -} \ No newline at end of file +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/versionChecker/VersionCheckerPlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/versionChecker/VersionCheckerPlugin.kt index a45ae8dd50..8347a45715 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/versionChecker/VersionCheckerPlugin.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/versionChecker/VersionCheckerPlugin.kt @@ -80,7 +80,6 @@ class VersionCheckerPlugin @Inject constructor( return } - if (isOldVersion(gracePeriod.warning.daysToMillis()) && shouldWarnAgain()) { // store last notification time sp.putLong(R.string.key_last_versionchecker_plugin_warning, now) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt index 7244b943f5..f7a13dca04 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt @@ -179,7 +179,6 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList carbAnimation?.setEnterFadeDuration(1200) carbAnimation?.setExitFadeDuration(1200) - binding.graphsLayout.bgGraph.setOnLongClickListener { overviewData.rangeToDisplay += 6 overviewData.rangeToDisplay = if (overviewData.rangeToDisplay > 24) 6 else overviewData.rangeToDisplay diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/graphExtensions/BolusDataPoint.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/graphExtensions/BolusDataPoint.kt index b9bbb79809..c354ad9fbb 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/graphExtensions/BolusDataPoint.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/graphExtensions/BolusDataPoint.kt @@ -34,8 +34,7 @@ class BolusDataPoint @Inject constructor( else if (data.isValid) rh.gac(context, R.attr.bolusDataPointColor) else rh.gac(context, R.attr.alarmColor) - override fun setY(y: Double) { yValue = y } -} \ No newline at end of file +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/comm/Session.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/comm/Session.kt index 7067ddd073..5fb6b34605 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/comm/Session.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/comm/Session.kt @@ -16,7 +16,6 @@ class Session(val authHeader: String?, @Volatile internal var iterations: Int = 0 - fun populateHeaders(headers: Headers) { if (this.token == null) { this.token = headers.get(sessionTokenHeader) @@ -39,4 +38,4 @@ class Session(val authHeader: String?, datasetReply = obj } } -} \ No newline at end of file +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/elements/ProfileElement.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/elements/ProfileElement.kt index c4f47e5aa3..12c7b55fd7 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/elements/ProfileElement.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/elements/ProfileElement.kt @@ -95,5 +95,3 @@ class ProfileElement(ps: EffectiveProfileSwitch, serialNumber: String, dateUtil: internal var amount: Double ) } - - diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/messages/DatasetReplyMessage.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/messages/DatasetReplyMessage.kt index f19070624b..9db4595c16 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/messages/DatasetReplyMessage.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/messages/DatasetReplyMessage.kt @@ -1,6 +1,5 @@ package info.nightscout.androidaps.plugins.general.tidepool.messages - class DatasetReplyMessage { internal var data: Data? = null diff --git a/app/src/main/java/info/nightscout/androidaps/receivers/DataReceiver.kt b/app/src/main/java/info/nightscout/androidaps/receivers/DataReceiver.kt index 6be6a5ad2e..1326ec68c7 100644 --- a/app/src/main/java/info/nightscout/androidaps/receivers/DataReceiver.kt +++ b/app/src/main/java/info/nightscout/androidaps/receivers/DataReceiver.kt @@ -28,7 +28,6 @@ open class DataReceiver : DaggerBroadcastReceiver() { val bundle = intent.extras ?: return aapsLogger.debug(LTag.DATABASE, "onReceive ${intent.action} ${BundleLogger.log(bundle)}") - when (intent.action) { Intents.ACTION_NEW_BG_ESTIMATE -> OneTimeWorkRequest.Builder(XdripPlugin.XdripWorker::class.java) @@ -71,4 +70,4 @@ open class DataReceiver : DaggerBroadcastReceiver() { }?.let { request -> dataWorker.enqueue(request) } } -} \ No newline at end of file +} diff --git a/app/src/test/java/info/nightscout/androidaps/queue/CommandQueueImplementationTest.kt b/app/src/test/java/info/nightscout/androidaps/queue/CommandQueueImplementationTest.kt index 1f49ca02a5..88b8075457 100644 --- a/app/src/test/java/info/nightscout/androidaps/queue/CommandQueueImplementationTest.kt +++ b/app/src/test/java/info/nightscout/androidaps/queue/CommandQueueImplementationTest.kt @@ -299,7 +299,6 @@ class CommandQueueImplementationTest : TestBaseWithProfile() { Assert.assertFalse(commandQueue.isCustomCommandRunning(CustomCommand2::class.java)) Assert.assertFalse(commandQueue.isCustomCommandRunning(CustomCommand3::class.java)) - Assert.assertEquals(1, commandQueue.size()) } @@ -504,4 +503,4 @@ class CommandQueueImplementationTest : TestBaseWithProfile() { override val statusDescription: String get() = "CUSTOM COMMAND 3" } -} \ No newline at end of file +} diff --git a/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionCarePortalEvent.kt b/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionCarePortalEvent.kt index ba7385cc9b..d5f9e18caa 100644 --- a/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionCarePortalEvent.kt +++ b/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionCarePortalEvent.kt @@ -38,7 +38,6 @@ class ActionCarePortalEvent(injector: HasAndroidInjector) : Action(injector) { @Inject lateinit var glucoseStatusProvider: GlucoseStatusProvider @Inject lateinit var uel: UserEntryLogger - private val disposable = CompositeDisposable() var note = InputString() @@ -118,4 +117,4 @@ class ActionCarePortalEvent(injector: HasAndroidInjector) : Action(injector) { } override fun isValid(): Boolean = true -} \ No newline at end of file +} diff --git a/automation/src/test/java/info/nightscout/androidaps/plugins/general/automation/TestBase.kt b/automation/src/test/java/info/nightscout/androidaps/plugins/general/automation/TestBase.kt index b65690a315..5e27ece0c8 100644 --- a/automation/src/test/java/info/nightscout/androidaps/plugins/general/automation/TestBase.kt +++ b/automation/src/test/java/info/nightscout/androidaps/plugins/general/automation/TestBase.kt @@ -41,7 +41,6 @@ open class TestBase { return uninitialized() } - fun eqObject(expected: T): T { Mockito.eq(expected) return uninitialized() @@ -49,4 +48,4 @@ open class TestBase { @Suppress("Unchecked_Cast") fun uninitialized(): T = null as T -} \ No newline at end of file +} diff --git a/core/src/main/java/info/nightscout/androidaps/activities/NoSplashAppCompatActivity.kt b/core/src/main/java/info/nightscout/androidaps/activities/NoSplashAppCompatActivity.kt index 430c562448..eb93cbbc3c 100644 --- a/core/src/main/java/info/nightscout/androidaps/activities/NoSplashAppCompatActivity.kt +++ b/core/src/main/java/info/nightscout/androidaps/activities/NoSplashAppCompatActivity.kt @@ -8,7 +8,6 @@ import info.nightscout.androidaps.utils.locale.LocaleHelper import io.reactivex.rxjava3.disposables.CompositeDisposable import javax.inject.Inject - open class NoSplashAppCompatActivity : DaggerAppCompatActivityWithResult() { @Inject lateinit var rxBus: RxBus diff --git a/core/src/main/java/info/nightscout/androidaps/data/IobTotal.kt b/core/src/main/java/info/nightscout/androidaps/data/IobTotal.kt index 629eabe3b8..74bd1713b3 100644 --- a/core/src/main/java/info/nightscout/androidaps/data/IobTotal.kt +++ b/core/src/main/java/info/nightscout/androidaps/data/IobTotal.kt @@ -118,7 +118,6 @@ class IobTotal(val time: Long) : DataPointWithLabelInterface { return color } - fun setColor(color: Int): IobTotal { this.color = color return this @@ -141,4 +140,4 @@ class IobTotal(val time: Long) : DataPointWithLabelInterface { return result } } -} \ No newline at end of file +} diff --git a/core/src/main/java/info/nightscout/androidaps/extensions/Concurrency.kt b/core/src/main/java/info/nightscout/androidaps/extensions/Concurrency.kt index e0ecdf7f37..e1da1919a5 100644 --- a/core/src/main/java/info/nightscout/androidaps/extensions/Concurrency.kt +++ b/core/src/main/java/info/nightscout/androidaps/extensions/Concurrency.kt @@ -1,6 +1,5 @@ package info.nightscout.androidaps.extensions - @Suppress("PLATFORM_CLASS_MAPPED_TO_KOTLIN", "NOTHING_TO_INLINE") inline fun Any.wait() = (this as Object).wait() diff --git a/core/src/main/java/info/nightscout/androidaps/extensions/EffectiveProfileSwitchExtension.kt b/core/src/main/java/info/nightscout/androidaps/extensions/EffectiveProfileSwitchExtension.kt index 009f143aca..1384908c4d 100644 --- a/core/src/main/java/info/nightscout/androidaps/extensions/EffectiveProfileSwitchExtension.kt +++ b/core/src/main/java/info/nightscout/androidaps/extensions/EffectiveProfileSwitchExtension.kt @@ -49,7 +49,6 @@ fun effectiveProfileSwitchFromJson(jsonObject: JSONObject, dateUtil: DateUtil): val pureProfile = pureProfileFromJson(JSONObject(profileJson), dateUtil) ?: return null val profileSealed = ProfileSealed.Pure(pureProfile) - return EffectiveProfileSwitch( timestamp = timestamp, basalBlocks = profileSealed.basalBlocks, @@ -77,4 +76,4 @@ fun EffectiveProfileSwitch.GlucoseUnit.Companion.fromConstant(units: GlucoseUnit if (units == GlucoseUnit.MGDL) EffectiveProfileSwitch.GlucoseUnit.MGDL else EffectiveProfileSwitch.GlucoseUnit.MMOL -fun JSONObject.isEffectiveProfileSwitch() = has("originalProfileName") \ No newline at end of file +fun JSONObject.isEffectiveProfileSwitch() = has("originalProfileName") diff --git a/core/src/main/java/info/nightscout/androidaps/extensions/JSONObjectExt.kt b/core/src/main/java/info/nightscout/androidaps/extensions/JSONObjectExt.kt index 31ad6b567c..f4c9d40271 100644 --- a/core/src/main/java/info/nightscout/androidaps/extensions/JSONObjectExt.kt +++ b/core/src/main/java/info/nightscout/androidaps/extensions/JSONObjectExt.kt @@ -44,5 +44,3 @@ fun JSONObject.storeBoolean(@StringRes key: Int, sp: SP, rh: ResourceHelper): JS if (has(rh.gs(key))) sp.putString(key, getBoolean(rh.gs(key)).toString()) return this } - - diff --git a/core/src/main/java/info/nightscout/androidaps/extensions/OfflineEventExtension.kt b/core/src/main/java/info/nightscout/androidaps/extensions/OfflineEventExtension.kt index 152a3fcb1d..f55acc3675 100644 --- a/core/src/main/java/info/nightscout/androidaps/extensions/OfflineEventExtension.kt +++ b/core/src/main/java/info/nightscout/androidaps/extensions/OfflineEventExtension.kt @@ -49,7 +49,6 @@ fun offlineEventFromJson(jsonObject: JSONObject): OfflineEvent? { val reason = OfflineEvent.Reason.fromString(JsonHelper.safeGetString(jsonObject, "reason", OfflineEvent.Reason.OTHER.name)) - return OfflineEvent( timestamp = timestamp, duration = durationInMilliseconds ?: T.mins(duration).msecs(), @@ -62,5 +61,3 @@ fun offlineEventFromJson(jsonObject: JSONObject): OfflineEvent? { it.interfaceIDs.pumpSerial = pumpSerial } } - - diff --git a/core/src/main/java/info/nightscout/androidaps/extensions/ProfileSwitchExtension.kt b/core/src/main/java/info/nightscout/androidaps/extensions/ProfileSwitchExtension.kt index c612748869..c620493c58 100644 --- a/core/src/main/java/info/nightscout/androidaps/extensions/ProfileSwitchExtension.kt +++ b/core/src/main/java/info/nightscout/androidaps/extensions/ProfileSwitchExtension.kt @@ -84,7 +84,6 @@ fun profileSwitchFromJson(jsonObject: JSONObject, dateUtil: DateUtil, activePlug } else pureProfileFromJson(JSONObject(profileJson), dateUtil) ?: return null val profileSealed = ProfileSealed.Pure(pureProfile) - return ProfileSwitch( timestamp = timestamp, basalBlocks = profileSealed.basalBlocks, @@ -155,5 +154,3 @@ fun ProfileSwitch.getCustomizedName(): String { fun ProfileSwitch.GlucoseUnit.Companion.fromConstant(units: GlucoseUnit): ProfileSwitch.GlucoseUnit = if (units == GlucoseUnit.MGDL) ProfileSwitch.GlucoseUnit.MGDL else ProfileSwitch.GlucoseUnit.MMOL - - diff --git a/core/src/main/java/info/nightscout/androidaps/extensions/TherapyEventExtension.kt b/core/src/main/java/info/nightscout/androidaps/extensions/TherapyEventExtension.kt index c18ef9a31f..15cc907285 100644 --- a/core/src/main/java/info/nightscout/androidaps/extensions/TherapyEventExtension.kt +++ b/core/src/main/java/info/nightscout/androidaps/extensions/TherapyEventExtension.kt @@ -123,5 +123,3 @@ fun List.isTherapyEventEvent5minBack(time: Long): Boolean { } return false } - - diff --git a/core/src/main/java/info/nightscout/androidaps/utils/WarnColors.kt b/core/src/main/java/info/nightscout/androidaps/utils/WarnColors.kt index 477b092343..bde450ec77 100644 --- a/core/src/main/java/info/nightscout/androidaps/utils/WarnColors.kt +++ b/core/src/main/java/info/nightscout/androidaps/utils/WarnColors.kt @@ -11,7 +11,6 @@ import javax.inject.Singleton @Singleton class WarnColors @Inject constructor(val rh: ResourceHelper) { - fun setColor(view: TextView?, value: Double, warnLevel: Double, urgentLevel: Double) = view?.setTextColor( rh.gac( view.context ,when { value >= urgentLevel -> R.attr.urgentColor @@ -32,4 +31,4 @@ class WarnColors @Inject constructor(val rh: ResourceHelper) { therapyEvent.isOlderThan(warnThreshold) -> R.attr.highColor else -> R.attr.defaultTextColor })) -} \ No newline at end of file +} diff --git a/danar/src/main/java/info/nightscout/androidaps/danaRv2/comm/MsgCheckValue_v2.kt b/danar/src/main/java/info/nightscout/androidaps/danaRv2/comm/MsgCheckValue_v2.kt index 2fc6a4dcfc..4a04364a2c 100644 --- a/danar/src/main/java/info/nightscout/androidaps/danaRv2/comm/MsgCheckValue_v2.kt +++ b/danar/src/main/java/info/nightscout/androidaps/danaRv2/comm/MsgCheckValue_v2.kt @@ -14,7 +14,6 @@ class MsgCheckValue_v2( injector: HasAndroidInjector ) : MessageBase(injector) { - init { setCommand(0xF0F1) aapsLogger.debug(LTag.PUMPCOMM, "New message") @@ -64,4 +63,4 @@ class MsgCheckValue_v2( aapsLogger.debug(LTag.PUMPCOMM, "Protocol: " + String.format("%02X ", danaPump.protocol)) aapsLogger.debug(LTag.PUMPCOMM, "Product Code: " + String.format("%02X ", danaPump.productCode)) } -} \ No newline at end of file +} diff --git a/danar/src/main/java/info/nightscout/androidaps/danar/comm/MsgSettingUserOptions.kt b/danar/src/main/java/info/nightscout/androidaps/danar/comm/MsgSettingUserOptions.kt index c9fb98a7db..e8e602a338 100644 --- a/danar/src/main/java/info/nightscout/androidaps/danar/comm/MsgSettingUserOptions.kt +++ b/danar/src/main/java/info/nightscout/androidaps/danar/comm/MsgSettingUserOptions.kt @@ -7,7 +7,6 @@ class MsgSettingUserOptions( injector: HasAndroidInjector ) : MessageBase(injector) { - init { setCommand(0x320B) aapsLogger.debug(LTag.PUMPCOMM, "New message") @@ -50,4 +49,4 @@ class MsgSettingUserOptions( System.arraycopy(bytes, 6, ret, 0, len) return ret } -} \ No newline at end of file +} diff --git a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/DiaconnG8Plugin.kt b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/DiaconnG8Plugin.kt index 713495bf47..518d31b723 100644 --- a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/DiaconnG8Plugin.kt +++ b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/DiaconnG8Plugin.kt @@ -139,7 +139,6 @@ class DiaconnG8Plugin @Inject constructor( override fun isConnecting(): Boolean = diaconnG8Service?.isConnecting ?: false override fun isHandshakeInProgress(): Boolean = false - override fun disconnect(reason: String) { aapsLogger.debug(LTag.PUMP, "Diaconn G8 disconnect from: $reason") diaconnG8Service?.disconnect(reason) @@ -248,7 +247,6 @@ class DiaconnG8Plugin @Inject constructor( override val batteryLevel: Int get() = diaconnG8Pump.systemRemainBattery - @Synchronized override fun deliverTreatment(detailedBolusInfo: DetailedBolusInfo): PumpEnactResult { detailedBolusInfo.insulin = constraintChecker.applyBolusConstraints(Constraint(detailedBolusInfo.insulin)).value() diff --git a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/DiaconnG8Pump.kt b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/DiaconnG8Pump.kt index b20a9555ed..61d15fc0a6 100644 --- a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/DiaconnG8Pump.kt +++ b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/DiaconnG8Pump.kt @@ -1,6 +1,5 @@ package info.nightscout.androidaps.diaconn - import info.nightscout.androidaps.interfaces.Profile import info.nightscout.androidaps.interfaces.PumpSync import info.nightscout.shared.logging.AAPSLogger @@ -54,12 +53,10 @@ class DiaconnG8Pump @Inject constructor( var basalStep = 0.01 var iob = 0.0 - var bolusBlocked = false var lastBolusTime: Long = 0 var lastBolusAmount = 0.0 - /* * TEMP BASALS */ @@ -233,7 +230,6 @@ class DiaconnG8Pump @Inject constructor( var minute = 0 // 분 (0~59) var second = 0 // 초 (0~59) - // 4. pump system info var country = 0 // 생산국(K, C), ASCII var productType = 0 // 제품종류(A ~ Z), ASCII @@ -269,7 +265,6 @@ class DiaconnG8Pump @Inject constructor( var baseAmount = 0.0 // 주입설정량(량*100, 23.25->2325, 15.2->1520) var baseInjAmount = 0.0 // 현재주입량(량*100, 23.25->2325, 15.2->1520) - // 9. meal bolus status var mealKind = 0 // 주입종류(1=아침,2=점심,3=저녁) var mealStartTime = 0 // 식사주입 시작시간(time_t) @@ -278,14 +273,12 @@ class DiaconnG8Pump @Inject constructor( var mealInjAmount = 0.0 // 현재주입량(량*100, 23.25->2325, 15.2->1520) var mealSpeed = 0 // 주입속도(1~8) - // 10. snack bolus status var snackStatus = 0 // 주입상태(1=주입중,2=주입상태아님) var snackAmount = 0.0 // 주입설정량(량*100, 23.25->2325, 15.2->1520) var snackInjAmount = 0.0 // 현재주입량(량*100, 23.25->2325, 15.2->1520) var snackSpeed = 0 // 주입속도(1~8) - // 11. square(extended) bolus status var squareStatus = 0 // 주입상태 var squareTime = 0 // 설정 주입시간(10~300분) @@ -293,7 +286,6 @@ class DiaconnG8Pump @Inject constructor( var squareAmount = 0.0 // 주입 설정량 var squareInjAmount = 0.0 // 현재 주입량 - // 12. daul bolus status var dualStatus = 0 // 주입상태 var dualAmount = 0.0 // 일반주입 설정량 @@ -303,7 +295,6 @@ class DiaconnG8Pump @Inject constructor( var dualSquareAmount = 0.0 // 스퀘어주입 설정량 var dualInjSquareAmount = 0.0 // 스퀘어주입량 - // 13. last injection status var recentKind1 = 0 // 최근-1 주입 종류(1=식사, 2=일반간식, 3=스퀘어회식, 4=더블회식) var recentTime1 = 0 // 최근-1 주입 시간 @@ -312,13 +303,11 @@ class DiaconnG8Pump @Inject constructor( var recentTime2 = 0 // 최근-2 주입 시간 var recentAmount2 = 0.0 // 최근-2 주입량 - // 14. daily injection status var todayBaseAmount = 0.0 // 기저주입 총량 var todayMealAmount = 0.0 // 식사주입 총량 var todaySnackAmount = 0.0 // 회식주입 총량 - // 15. meat setting status var morningHour = 0 // 아침 개시 시간(0~23) var morningAmount = 0.0 // 아침 식전량 @@ -327,14 +316,12 @@ class DiaconnG8Pump @Inject constructor( var dinnerHour = 0 // 저녁 개시 시간(0~23) var dinnerAmount = 0.0 // 저녁 식전량 - // 16. basal injection status at this hour var currentBasePattern = 0 // 패턴 종류 (1=기본, 2=생활1, 3=생활2, 4=생활3, 5=닥터1, 6=닥터2) var currentBaseHour = 0 // 현재주입시간(0~23) var currentBaseTbBeforeAmount = 0.0 // 해당시간의 임시기저 계산 전 기저주입량: 기저주입막힘 발생 시 기저주입 막힘량 제외, 기저정지로 인해 주입되지 않은 량 제외, 리셋으로 인해 주입되지 않은 량 제외(47.5=4750) var currentBaseTbAfterAmount = 0.0 // 해당시간의 임시기저 계산 후 기저주입량: 기저주입막힘 발생 시 기저주입 막힘량 제외, 기저정지로 인해 주입되지 않은 량 제외, 리셋으로 인해 주입되지 않은 량 제외(47.5=4750) - // 17. saved basal pattern status var baseAmount1 = 0.00// 주입량 1(량*100, 23.25->2325, 15.2->1520) var baseAmount2 = 0.0// 주입량 2(량*100, 23.25->2325, 15.2->1520) @@ -371,4 +358,4 @@ class DiaconnG8Pump @Inject constructor( const val BOLUS_SPEED = 3 } -} \ No newline at end of file +} diff --git a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/di/DiaconnG8PacketModule.kt b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/di/DiaconnG8PacketModule.kt index 8a661ed7a7..86a27374ce 100644 --- a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/di/DiaconnG8PacketModule.kt +++ b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/di/DiaconnG8PacketModule.kt @@ -79,5 +79,4 @@ abstract class DiaconnG8PacketModule { @ContributesAndroidInjector abstract fun contributesBigAPSMainInfoInquireResponsePacket(): BigAPSMainInfoInquireResponsePacket - -} \ No newline at end of file +} diff --git a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/AppCancelSettingResponsePacket.kt b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/AppCancelSettingResponsePacket.kt index eaceadc8ee..70ae0f6688 100644 --- a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/AppCancelSettingResponsePacket.kt +++ b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/AppCancelSettingResponsePacket.kt @@ -37,8 +37,7 @@ class AppCancelSettingResponsePacket( aapsLogger.debug(LTag.PUMPCOMM, "Result --> ${result}") } - override fun getFriendlyName(): String { return "PUMP_APP_CANCEL_SETTING_RESPONSE" } -} \ No newline at end of file +} diff --git a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/BigLogInquireResponsePacket.kt b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/BigLogInquireResponsePacket.kt index 8e8a7d40c0..5ca09ea8e7 100644 --- a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/BigLogInquireResponsePacket.kt +++ b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/BigLogInquireResponsePacket.kt @@ -449,7 +449,6 @@ class BigLogInquireResponsePacket( aapsLogger.debug(LTag.PUMPCOMM, (if (newRecord) "**NEW** " else "") + "EVENT TUBECHANGE(" + pumplogKind + ") " + dateUtil.dateAndTimeString(logDateTime) + " (" + logDateTime + ")" + " Amount: " + logItem.primeAmount / 100.0 + "U") } - diaconnG8HistoryRecord.code = RecordTypes.RECORD_TYPE_REFILL diaconnG8HistoryRecord.timestamp = logDateTime diaconnG8HistoryRecord.value = logItem.remainAmount / 100.0 @@ -549,7 +548,6 @@ class BigLogInquireResponsePacket( // diaconnG8Pump.serialNo.toString() // ) - status = "DAILYBASAL " + dateUtil.timeString(logDateTime) } @@ -635,7 +633,6 @@ class BigLogInquireResponsePacket( pumpSerial = diaconnG8Pump.serialNo.toString()) aapsLogger.debug(LTag.PUMPCOMM, (if (newRecord) "**NEW** " else "") + "EVENT TEMPSTOP (" + pumplogKind + ") " + dateUtil.dateAndTimeString(logDateTime) + " (" + logDateTime + ")") - diaconnG8HistoryRecord.code = RecordTypes.RECORD_TYPE_TB diaconnG8HistoryRecord.timestamp = logDateTime diaconnG8HistoryRecord.value = absoluteRate @@ -784,4 +781,4 @@ class BigLogInquireResponsePacket( } } -} \ No newline at end of file +} diff --git a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/DiaconnG8ResponseMessageHashTable.kt b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/DiaconnG8ResponseMessageHashTable.kt index 5c6c984e14..7248d73530 100644 --- a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/DiaconnG8ResponseMessageHashTable.kt +++ b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/DiaconnG8ResponseMessageHashTable.kt @@ -35,7 +35,6 @@ class DiaconnG8ResponseMessageHashTable @Inject constructor(val injector: HasAnd put(DisplayTimeInquireResponsePacket(injector)) put(LanguageInquireResponsePacket(injector)) - // Report Packet put(BasalPauseReportPacket(injector)) put(BasalSettingReportPacket(injector)) diff --git a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/DisplayTimeInquireResponsePacket.kt b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/DisplayTimeInquireResponsePacket.kt index 85e12cdb89..6e318e3421 100644 --- a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/DisplayTimeInquireResponsePacket.kt +++ b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/DisplayTimeInquireResponsePacket.kt @@ -34,7 +34,6 @@ class DisplayTimeInquireResponsePacket(injector: HasAndroidInjector) : DiaconnG8 diaconnG8Pump.lcdOnTimeSec = getByteToInt(bufferData) - aapsLogger.debug(LTag.PUMPCOMM, "Result --> ${diaconnG8Pump.result}") aapsLogger.debug(LTag.PUMPCOMM, "lcdOnTimeSec --> ${diaconnG8Pump.lcdOnTimeSec}") } @@ -42,4 +41,4 @@ class DisplayTimeInquireResponsePacket(injector: HasAndroidInjector) : DiaconnG8 override fun getFriendlyName(): String { return "PUMP_DISPLAY_TIME_INQUIRE_RESPONSE" } -} \ No newline at end of file +} diff --git a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/LanguageInquireResponsePacket.kt b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/LanguageInquireResponsePacket.kt index 405aa8092a..48f631b608 100644 --- a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/LanguageInquireResponsePacket.kt +++ b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/LanguageInquireResponsePacket.kt @@ -33,7 +33,6 @@ class LanguageInquireResponsePacket(injector: HasAndroidInjector) : DiaconnG8Pac } diaconnG8Pump.selectedLanguage = getByteToInt(bufferData) - aapsLogger.debug(LTag.PUMPCOMM, "Result --> ${diaconnG8Pump.result}") aapsLogger.debug(LTag.PUMPCOMM, "selectedLanguage --> ${diaconnG8Pump.selectedLanguage}") } @@ -41,4 +40,4 @@ class LanguageInquireResponsePacket(injector: HasAndroidInjector) : DiaconnG8Pac override fun getFriendlyName(): String { return "PUMP_LANGUAGE_INQUIRE_RESPONSE" } -} \ No newline at end of file +} diff --git a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/SneckLimitInquireResponsePacket.kt b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/SneckLimitInquireResponsePacket.kt index 7386bcb47f..4bead0560c 100644 --- a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/SneckLimitInquireResponsePacket.kt +++ b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/SneckLimitInquireResponsePacket.kt @@ -35,7 +35,6 @@ class SneckLimitInquireResponsePacket(injector: HasAndroidInjector) : DiaconnG8P diaconnG8Pump.maxBolus = getShortToInt(bufferData).toDouble() / 100 diaconnG8Pump.maxBolusePerDay = getShortToInt(bufferData).toDouble() / 100 - aapsLogger.debug(LTag.PUMPCOMM, "Result --> ${diaconnG8Pump.result}") aapsLogger.debug(LTag.PUMPCOMM, "maxBolusePerDay --> ${diaconnG8Pump.maxBolusePerDay}") aapsLogger.debug(LTag.PUMPCOMM, "maxBolus --> ${diaconnG8Pump.maxBolus}") @@ -44,4 +43,4 @@ class SneckLimitInquireResponsePacket(injector: HasAndroidInjector) : DiaconnG8P override fun getFriendlyName(): String { return "PUMP_SNACK_LIMIT_INQUIRE_RESPONSE" } -} \ No newline at end of file +} diff --git a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/SoundInquireResponsePacket.kt b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/SoundInquireResponsePacket.kt index 278d20bef6..f5a9992ba8 100644 --- a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/SoundInquireResponsePacket.kt +++ b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/SoundInquireResponsePacket.kt @@ -35,7 +35,6 @@ class SoundInquireResponsePacket(injector: HasAndroidInjector) : DiaconnG8Packet diaconnG8Pump.beepAndAlarm = getByteToInt(bufferData) -1 diaconnG8Pump.alarmIntesity = getByteToInt(bufferData) -1 - aapsLogger.debug(LTag.PUMPCOMM, "Result --> ${diaconnG8Pump.result}") aapsLogger.debug(LTag.PUMPCOMM, "beepAndAlarm --> ${diaconnG8Pump.beepAndAlarm}") aapsLogger.debug(LTag.PUMPCOMM, "alarmIntesity --> ${diaconnG8Pump.alarmIntesity}") @@ -44,4 +43,4 @@ class SoundInquireResponsePacket(injector: HasAndroidInjector) : DiaconnG8Packet override fun getFriendlyName(): String { return "PUMP_SOUND_INQUIRE_RESPONSE" } -} \ No newline at end of file +} diff --git a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/service/BLECommonService.kt b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/service/BLECommonService.kt index 9e059045ea..4cff23153c 100644 --- a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/service/BLECommonService.kt +++ b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/service/BLECommonService.kt @@ -48,7 +48,6 @@ class BLECommonService @Inject internal constructor( private var connectDeviceName: String? = null private var bluetoothGatt: BluetoothGatt? = null - var isConnected = false var isConnecting = false private var uartIndicate: BluetoothGattCharacteristic? = null diff --git a/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/comm/MedtronicCommunicationManager.kt b/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/comm/MedtronicCommunicationManager.kt index df7b35a979..391a0771ca 100644 --- a/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/comm/MedtronicCommunicationManager.kt +++ b/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/comm/MedtronicCommunicationManager.kt @@ -534,7 +534,6 @@ class MedtronicCommunicationManager // This empty constructor must be kept, oth errorResponse = check } - aapsLogger.debug(LTag.PUMPCOMM, "End Response: {}", ByteUtil.getHex(data)) val basalProfile: BasalProfile? = medtronicConverter.decodeBasalProfile(medtronicPumpPlugin.pumpDescription.pumpType, data) @@ -692,4 +691,4 @@ class MedtronicCommunicationManager // This empty constructor must be kept, oth } return false } -} \ No newline at end of file +} diff --git a/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/data/MedtronicHistoryData.kt b/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/data/MedtronicHistoryData.kt index b8a2d50dee..cfc7b95da6 100644 --- a/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/data/MedtronicHistoryData.kt +++ b/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/data/MedtronicHistoryData.kt @@ -641,7 +641,6 @@ class MedtronicHistoryData @Inject constructor( "pumpId=${tempBasalProcessDTO.pumpId}, pumpType=${medtronicPumpStatus.pumpType}, " + "pumpSerial=${medtronicPumpStatus.serialNumber}]") - if (tempBasalProcessDTO.durationAsSeconds <= 0) { rxBus.send(EventNewNotification(Notification(Notification.MDT_INVALID_HISTORY_DATA, rh.gs(R.string.invalid_history_data), Notification.URGENT))) aapsLogger.debug(LTag.PUMP, "syncTemporaryBasalWithPumpId - Skipped") @@ -799,7 +798,6 @@ class MedtronicHistoryData @Inject constructor( return processList } - fun isTBRActive(dbEntry: PumpDbEntryTBR): Boolean { return isTBRActive( startTimestamp = dbEntry.date, @@ -1225,4 +1223,4 @@ class MedtronicHistoryData @Inject constructor( const val doubleBolusDebug = false } -} \ No newline at end of file +} diff --git a/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/data/dto/BasalProfileEntry.kt b/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/data/dto/BasalProfileEntry.kt index 03c270246e..b1f642162a 100644 --- a/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/data/dto/BasalProfileEntry.kt +++ b/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/data/dto/BasalProfileEntry.kt @@ -64,5 +64,4 @@ class BasalProfileEntry { startTime = LocalTime(startTimeByte / 2, startTimeByte % 2 * 30) } - -} \ No newline at end of file +} diff --git a/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/data/dto/BatteryStatusDTO.kt b/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/data/dto/BatteryStatusDTO.kt index 60128d51a5..88afa87106 100644 --- a/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/data/dto/BatteryStatusDTO.kt +++ b/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/data/dto/BatteryStatusDTO.kt @@ -16,7 +16,6 @@ class BatteryStatusDTO { var extendedDataReceived = false - fun getCalculatedPercent(batteryType: BatteryType): Int { if (voltage == null || batteryType === BatteryType.None) { return if (batteryStatusType == BatteryStatusType.Low || batteryStatusType == BatteryStatusType.Unknown) 18 else 70 @@ -28,7 +27,6 @@ class BatteryStatusDTO { return percentInt } - override fun toString(): String { return String.format(Locale.ENGLISH, "BatteryStatusDTO [voltage=%.2f, alkaline=%d, lithium=%d, niZn=%d, nimh=%d]", if (voltage == null) 0.0f else voltage, @@ -43,4 +41,4 @@ class BatteryStatusDTO { Low, Unknown } -} \ No newline at end of file +} diff --git a/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/data/dto/BolusWizardDTO.kt b/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/data/dto/BolusWizardDTO.kt index cf73a0506d..43cdee1c0f 100644 --- a/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/data/dto/BolusWizardDTO.kt +++ b/medtronic/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/data/dto/BolusWizardDTO.kt @@ -21,7 +21,6 @@ class BolusWizardDTO : PumpTimeStampedRecord() { var foodEstimate = 0.0f var unabsorbedInsulin = 0.0f// - val value: String get() = String.format(Locale.ENGLISH, "BG=%d;CH=%d;CH_UNIT=%s;CH_INS_RATIO=%5.3f;BG_INS_RATIO=%5.3f;" + "BG_TARGET_LOW=%d;BG_TARGET_HIGH=%d;BOLUS_TOTAL=%5.3f;" @@ -41,4 +40,4 @@ class BolusWizardDTO : PumpTimeStampedRecord() { override fun toString(): String { return "BolusWizardDTO [dateTime=" + DateTimeUtil.toString(atechDateTime) + ", " + value + "]" } -} \ No newline at end of file +} diff --git a/medtronic/src/test/java/info/nightscout/androidaps/plugins/pump/medtronic/comm/history/pump/MedtronicPumpHistoryDecoderUTest.kt b/medtronic/src/test/java/info/nightscout/androidaps/plugins/pump/medtronic/comm/history/pump/MedtronicPumpHistoryDecoderUTest.kt index 9820362dc7..89130376b9 100644 --- a/medtronic/src/test/java/info/nightscout/androidaps/plugins/pump/medtronic/comm/history/pump/MedtronicPumpHistoryDecoderUTest.kt +++ b/medtronic/src/test/java/info/nightscout/androidaps/plugins/pump/medtronic/comm/history/pump/MedtronicPumpHistoryDecoderUTest.kt @@ -62,7 +62,6 @@ class MedtronicPumpHistoryDecoderUTest : TestBase() { } - // @Test public void decodeLowAmount() { byte[] data = new byte[] { 52, -12, 22, -81, 46, 3, 19 }; @@ -81,7 +80,6 @@ class MedtronicPumpHistoryDecoderUTest : TestBase() { } - // @Test public void decodeDailyTotals522() { // PumpHistoryRecord [type=DailyTotals522 [109, 0x6D], DT: 01.11.2018 00:00:00, length=1,2,41(44), data={Raw @@ -105,7 +103,6 @@ class MedtronicPumpHistoryDecoderUTest : TestBase() { } - // @Test public void decodeDailyTotals515() { @@ -126,7 +123,6 @@ class MedtronicPumpHistoryDecoderUTest : TestBase() { } - // @Test public void decodeDailyTotals523() { @@ -149,7 +145,6 @@ class MedtronicPumpHistoryDecoderUTest : TestBase() { } - private void testRecord(byte[] data) { // byte[] data = new byte[] { 0x07, 0x00, 0x00, 0x05, (byte)0xFA, (byte)0xBF, 0x12 }; @@ -214,4 +209,4 @@ class MedtronicPumpHistoryDecoderUTest : TestBase() { aapsLogger.debug(pumpHistoryEntry.toString()) } } -} \ No newline at end of file +} diff --git a/medtronic/src/test/java/info/nightscout/androidaps/plugins/pump/medtronic/data/MedtronicHistoryDataUTest.kt b/medtronic/src/test/java/info/nightscout/androidaps/plugins/pump/medtronic/data/MedtronicHistoryDataUTest.kt index e90d6aa675..7b093e3a5b 100644 --- a/medtronic/src/test/java/info/nightscout/androidaps/plugins/pump/medtronic/data/MedtronicHistoryDataUTest.kt +++ b/medtronic/src/test/java/info/nightscout/androidaps/plugins/pump/medtronic/data/MedtronicHistoryDataUTest.kt @@ -34,7 +34,6 @@ class MedtronicHistoryDataUTest : TestBase() { @Mock lateinit var rh: ResourceHelper @Mock lateinit var rxBus: RxBus - private val packetInjector = HasAndroidInjector { AndroidInjector { @@ -42,7 +41,6 @@ class MedtronicHistoryDataUTest : TestBase() { } - @Test fun createTBRProcessList() { @@ -52,7 +50,6 @@ class MedtronicHistoryDataUTest : TestBase() { pumpSync, pumpSyncStorage) - val gson = Gson() val fileText = ClassLoader.getSystemResource("tbr_data.json").readText() @@ -85,7 +82,6 @@ class MedtronicHistoryDataUTest : TestBase() { } - @Test fun createTBRProcessList_SpecialCase() { @@ -95,7 +91,6 @@ class MedtronicHistoryDataUTest : TestBase() { pumpSync, pumpSyncStorage) - val gson = Gson() val fileText = ClassLoader.getSystemResource("tbr_data_special.json").readText() @@ -128,5 +123,4 @@ class MedtronicHistoryDataUTest : TestBase() { } - -} \ No newline at end of file +} diff --git a/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/dagger/OmnipodWizardModule.kt b/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/dagger/OmnipodWizardModule.kt index 889ac70ea5..4c4d1e3643 100644 --- a/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/dagger/OmnipodWizardModule.kt +++ b/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/dagger/OmnipodWizardModule.kt @@ -74,5 +74,3 @@ abstract class OmnipodWizardModule { internal abstract fun contributesPodDiscardedFragment(): PodDiscardedFragment } - - diff --git a/pump-common/src/main/java/info/nightscout/androidaps/plugins/pump/common/sync/PumpDbEntry.kt b/pump-common/src/main/java/info/nightscout/androidaps/plugins/pump/common/sync/PumpDbEntry.kt index 019b217aea..e208a22d6e 100644 --- a/pump-common/src/main/java/info/nightscout/androidaps/plugins/pump/common/sync/PumpDbEntry.kt +++ b/pump-common/src/main/java/info/nightscout/androidaps/plugins/pump/common/sync/PumpDbEntry.kt @@ -40,7 +40,6 @@ import info.nightscout.androidaps.plugins.pump.common.defs.PumpType // // } - interface PumpDbEntry { var temporaryId: Long var date: Long @@ -50,7 +49,6 @@ interface PumpDbEntry { } - data class PumpDbEntryBolus(override var temporaryId: Long, override var date: Long, override var pumpType: PumpType, @@ -109,4 +107,4 @@ data class PumpDbEntryTBR(override var temporaryId: Long, ) : this(temporaryId, date, pumpType, serialNumber, pumpId, entry.rate, entry.isAbsolute, entry.durationInSeconds, entry.tbrType) -} \ No newline at end of file +} diff --git a/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/dialog/RileyLinkBLEConfigActivity.kt b/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/dialog/RileyLinkBLEConfigActivity.kt index ba7a5c4344..a07bae6138 100644 --- a/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/dialog/RileyLinkBLEConfigActivity.kt +++ b/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/dialog/RileyLinkBLEConfigActivity.kt @@ -144,7 +144,6 @@ class RileyLinkBLEConfigActivity : DaggerAppCompatActivity() { } } - override fun onOptionsItemSelected(item: MenuItem): Boolean = when (item.itemId) { android.R.id.home -> { @@ -304,4 +303,5 @@ class RileyLinkBLEConfigActivity : DaggerAppCompatActivity() { private const val SCAN_PERIOD_MILLIS: Long = 15000 } -} \ No newline at end of file + +} From 9856583c44771983bbcb420d6d282ff66e7b011b Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Tue, 19 Apr 2022 13:36:53 +0200 Subject: [PATCH 22/27] remove deprecations and unused code --- .../common/hw/rileylink/RileyLinkUtil.java | 5 +- .../data/encoding/Encoding4b6bAbstract.java | 10 +- .../ble/data/encoding/Encoding4b6bGeoff.java | 11 +- .../ble/data/encoding/Encoding4b6bGo.java | 163 ------------- .../ble/data/encoding/Encoding4b6bLoop.java | 135 ----------- .../ble/RFToolsParametrizedUTest.java | 227 +----------------- 6 files changed, 21 insertions(+), 530 deletions(-) delete mode 100644 rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/data/encoding/Encoding4b6bGo.java delete mode 100644 rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/data/encoding/Encoding4b6bLoop.java diff --git a/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/RileyLinkUtil.java b/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/RileyLinkUtil.java index 01bc5c4271..7d80b7d907 100644 --- a/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/RileyLinkUtil.java +++ b/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/RileyLinkUtil.java @@ -23,6 +23,7 @@ import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.data.RLHistor import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.service.data.ServiceResult; import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.service.data.ServiceTransport; import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.service.tasks.ServiceTask; +import info.nightscout.shared.logging.AAPSLogger; /** * Created by andy on 17/05/2018. @@ -37,6 +38,8 @@ public class RileyLinkUtil { private RileyLinkEncodingType encoding; private Encoding4b6b encoding4b6b; + @Inject AAPSLogger aapsLogger; + @Inject public RileyLinkUtil() { } @@ -50,7 +53,7 @@ public class RileyLinkUtil { this.encoding = encoding; if (encoding == RileyLinkEncodingType.FourByteSixByteLocal) { - this.encoding4b6b = new Encoding4b6bGeoff(); + this.encoding4b6b = new Encoding4b6bGeoff(aapsLogger); } } diff --git a/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/data/encoding/Encoding4b6bAbstract.java b/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/data/encoding/Encoding4b6bAbstract.java index 36a4b4cd71..d45e9c456c 100644 --- a/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/data/encoding/Encoding4b6bAbstract.java +++ b/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/data/encoding/Encoding4b6bAbstract.java @@ -1,9 +1,8 @@ package info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.data.encoding; -import org.slf4j.Logger; - import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.RileyLinkCommunicationException; import info.nightscout.androidaps.plugins.pump.common.utils.ByteUtil; +import info.nightscout.shared.logging.AAPSLogger; /** @@ -51,9 +50,10 @@ public abstract class Encoding4b6bAbstract implements Encoding4b6b { } - public void writeError(Logger LOG, byte[] raw, String errorData) { + public void writeError(AAPSLogger aapsLogger, byte[] raw, String errorData) { - LOG.error(String.format("\n=============================================================================\n" + // + aapsLogger.error(String.format("\n" + + "=============================================================================\n" + // " Decoded payload length is zero.\n" + " encodedPayload: %s\n" + " errors: %s\n" + @@ -62,8 +62,6 @@ public abstract class Encoding4b6bAbstract implements Encoding4b6b { //FabricUtil.createEvent("MedtronicDecode4b6bError", null); - return; - } } diff --git a/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/data/encoding/Encoding4b6bGeoff.java b/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/data/encoding/Encoding4b6bGeoff.java index 930e98de85..3c4dffe31c 100644 --- a/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/data/encoding/Encoding4b6bGeoff.java +++ b/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/data/encoding/Encoding4b6bGeoff.java @@ -1,15 +1,13 @@ package info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.data.encoding; -import org.slf4j.Logger; - import java.util.ArrayList; import java.util.List; import java.util.Locale; -import info.nightscout.shared.logging.StacktraceLoggerWrapper; import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.RileyLinkCommunicationException; import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.defs.RileyLinkBLEError; import info.nightscout.androidaps.plugins.pump.common.utils.ByteUtil; +import info.nightscout.shared.logging.AAPSLogger; /** * Created by andy on 11/24/18. @@ -17,8 +15,11 @@ import info.nightscout.androidaps.plugins.pump.common.utils.ByteUtil; public class Encoding4b6bGeoff extends Encoding4b6bAbstract { - public static final Logger LOG = StacktraceLoggerWrapper.getLogger(Encoding4b6bGeoff.class); + private final AAPSLogger aapsLogger; + public Encoding4b6bGeoff(AAPSLogger aapsLogger) { + this.aapsLogger = aapsLogger; + } @Override public byte[] encode4b6b(byte[] data) { // if ((data.length % 2) != 0) { @@ -150,7 +151,7 @@ public class Encoding4b6bGeoff extends Encoding4b6bAbstract { if (codingErrors > 0) { // LOG.error("decode4b6b: " + codingErrors + " coding errors encountered."); errorMessageBuilder.append("decode4b6b: " + codingErrors + " coding errors encountered."); - writeError(LOG, raw, errorMessageBuilder.toString()); + writeError(aapsLogger, raw, errorMessageBuilder.toString()); throw new RileyLinkCommunicationException(RileyLinkBLEError.CodingErrors, errorMessageBuilder.toString()); } return rval; diff --git a/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/data/encoding/Encoding4b6bGo.java b/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/data/encoding/Encoding4b6bGo.java deleted file mode 100644 index a81959b180..0000000000 --- a/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/data/encoding/Encoding4b6bGo.java +++ /dev/null @@ -1,163 +0,0 @@ -package info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.data.encoding; - -import org.slf4j.Logger; - -import java.util.HashMap; -import java.util.Map; - -import info.nightscout.shared.logging.StacktraceLoggerWrapper; -import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.RileyLinkCommunicationException; -import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.defs.RileyLinkBLEError; -import info.nightscout.androidaps.plugins.pump.common.utils.ByteUtil; - -/** - * Created by andy on 11/24/18. - */ - -public class Encoding4b6bGo extends Encoding4b6bAbstract { - - public static final Logger LOG = StacktraceLoggerWrapper.getLogger(Encoding4b6bGo.class); - private static Map decodeGoMap; - - - @Override public byte[] encode4b6b(byte[] src) { - // 2 input bytes produce 3 output bytes. - // Odd final input byte, if any, produces 2 output bytes. - int n = src.length; - byte[] dst = new byte[3 * (n / 2) + 2 * (n % 2)]; - int j = 0; - - for (int i = 0; i < n; i += 2, j = j + 3) { - short x = convertUnsigned(src[i]); - short a = encode4b6bList[hi(4, x)]; - short b = encode4b6bList[lo(4, x)]; - dst[j] = (byte)(a << 2 | hi(4, b)); - if (i + 1 < n) { - short y = convertUnsigned(src[i + 1]); - short c = encode4b6bList[hi(4, y)]; - short d = encode4b6bList[lo(4, y)]; - dst[j + 1] = (byte)(lo(4, b) << 4 | hi(6, c)); - dst[j + 2] = (byte)(lo(2, c) << 6 | d); - } else { - // Fill final nibble with 5 to match pump behavior. - dst[j + 1] = (byte)(lo(4, b) << 4 | 0x5); - } - - } - return dst; - } - - - /** - * Decode from Go code by ecc1. NOT WORKING - * - * @param src - * @return - */ - @Override public byte[] decode4b6b(byte[] src) throws RileyLinkCommunicationException { - int n = src.length; - - if (decodeGoMap == null) - initDecodeGo(); - - StringBuilder errorMessageBuilder = new StringBuilder(); - - errorMessageBuilder.append("Input data: " + ByteUtil.getHex(src) + "\n"); - int codingErrors = 0; - - // Check for valid packet length. - if (n % 3 == 1) { - errorMessageBuilder.append("Invalid package length " + n); - codingErrors++; - // return nil, ErrDecoding - } - // 3 input bytes produce 2 output bytes. - // Final 2 input bytes, if any, produce 1 output byte. - byte[] dst = new byte[2 * (n / 3) + (n % 3) / 2]; - - int j = 0; - for (int i = 0; i < n; i = i + 3, j = j + 2) { - if (i + 1 >= n) { - errorMessageBuilder.append("Overflow in i (" + i + ")"); - } - short x = convertUnsigned(src[i]); - short y = convertUnsigned(src[i + 1]); - short a = decode6b_goMap(hi(6, x)); - short b = decode6b_goMap(lo(2, x) << 4 | hi(4, y)); - if (a == 0xFF || b == 0xFF) { - errorMessageBuilder.append("Error decoding "); - codingErrors++; - } - dst[j] = (byte)(a << 4 | b); - if (i + 2 < n) { - short z = convertUnsigned(src[i + 2]); - short c = decode6b_goMap(lo(4, y) << 2 | hi(2, z)); - short d = decode6b_goMap(lo(6, z)); - if (c == 0xFF || d == 0xFF) { - errorMessageBuilder.append("Error decoding "); - codingErrors++; - } - dst[j + 1] = (byte)(c << 4 | d); - } - } - - if (codingErrors > 0) { - errorMessageBuilder.append("decode4b6b: " + codingErrors + " coding errors encountered."); - writeError(LOG, dst, errorMessageBuilder.toString()); - throw new RileyLinkCommunicationException(RileyLinkBLEError.CodingErrors, errorMessageBuilder.toString()); - } - - return dst; - } - - - static short hi(int n, short x) { - // x = convertUnsigned(x); - return (short)(x >> (8 - n)); - } - - - static short lo(int n, short x) { - // byte b = (byte)x; - return (short)(x & ((1 << n) - 1)); - } - - - public static void initDecodeGo() { - - decodeGoMap = new HashMap<>(); - - putToMap(0x0B, 0x0B); - putToMap(0x0D, 0x0D); - putToMap(0x0E, 0x0E); - putToMap(0x15, 0x00); - putToMap(0x16, 0x07); - putToMap(0x19, 0x09); - putToMap(0x1A, 0x08); - putToMap(0x1C, 0x0F); - putToMap(0x23, 0x03); - putToMap(0x25, 0x05); - putToMap(0x26, 0x06); - putToMap(0x2A, 0x0A); - putToMap(0x2C, 0x0C); - putToMap(0x31, 0x01); - putToMap(0x32, 0x02); - putToMap(0x34, 0x04); - - } - - - private static short decode6b_goMap(int value) { - short val = (short)value; - if (decodeGoMap.containsKey(val)) - return decodeGoMap.get(val); - else - return (short)0xff; - } - - - private static void putToMap(int val1, int val2) { - decodeGoMap.put((short)val1, (short)val2); - } - -} diff --git a/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/data/encoding/Encoding4b6bLoop.java b/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/data/encoding/Encoding4b6bLoop.java deleted file mode 100644 index 8d065a3d58..0000000000 --- a/rileylink/src/main/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/data/encoding/Encoding4b6bLoop.java +++ /dev/null @@ -1,135 +0,0 @@ -package info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.data.encoding; - -import org.slf4j.Logger; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import info.nightscout.shared.logging.StacktraceLoggerWrapper; -import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.RileyLinkCommunicationException; -import info.nightscout.androidaps.plugins.pump.common.utils.ByteUtil; - -/** - * Created by andy on 11/24/18. - */ - -public class Encoding4b6bLoop extends Encoding4b6bAbstract { - private static final Logger log = StacktraceLoggerWrapper.getLogger(Encoding4b6bLoop.class); - - public Map codesRev = null; - - - public Encoding4b6bLoop() { - createCodeRev(); - } - - - /** - * This method is almost 1:1 with same method from Loop, only change is unsigning of element and |05 added for - * last byte. It should work better than original one, which is really different than this one. - * - * @param data - * @return - */ - @Override public byte[] encode4b6b(byte[] data) { - - List buffer = new ArrayList(); - int bitAccumulator = 0x0; - int bitcount = 0; - - for (byte element : data) { - - short element2 = element; - - if (element2 < 0) { - element2 += 256; - } - - bitAccumulator <<= 6; - bitAccumulator |= encode4b6bList[element2 >> 4]; - bitcount += 6; - - bitAccumulator <<= 6; - bitAccumulator |= encode4b6bList[element2 & 0x0f]; - bitcount += 6; - - while (bitcount >= 8) { - buffer.add((byte)((bitAccumulator >> (bitcount - 8)) & 0xff)); - bitcount -= 8; - bitAccumulator &= (0xffff >> (16 - bitcount)); - } - } - - if (bitcount > 0) { - bitAccumulator <<= (8 - bitcount); - buffer.add((byte)((bitAccumulator | 0x5) & 0xff)); - } - - return ByteUtil.getByteArrayFromList(buffer); - } - - - /** - * DOESN'T WORK YET - * - * @param data - * @return - * @throws RileyLinkCommunicationException - */ - @Override public byte[] decode4b6b(byte[] data) throws RileyLinkCommunicationException { - List buffer = new ArrayList(); - int availBits = 0; - int bitAccumulator = 0; - - for (byte element2 : data) { - - short element = convertUnsigned(element2); - - // if (element < 0) { - // element += 255; - // } - - if (element == 0) { - break; - } - - bitAccumulator = (bitAccumulator << 8) + element; - availBits += 8; - - if (availBits >= 12) { - - int hiNibble; - int loNibble; - - try { - int index = (bitAccumulator >> (availBits - 6)); - int index2 = ((bitAccumulator >> (availBits - 12)) & 0b111111); - hiNibble = codesRev.get((bitAccumulator >> (availBits - 6))); - loNibble = codesRev.get(((bitAccumulator >> (availBits - 12)) & 0b111111)); - } catch (Exception e) { - log.error("Unhandled exception", e); - return null; - } - - int decoded = ((hiNibble << 4) + loNibble); - buffer.add((byte)decoded); - availBits -= 12; - bitAccumulator = bitAccumulator & (0xffff >> (16 - availBits)); - } - } - - return ByteUtil.getByteArrayFromList(buffer); - } - - - private void createCodeRev() { - codesRev = new HashMap<>(); - - for (int i = 0; i < encode4b6bList.length; i++) { - codesRev.put(i, encode4b6bList[i]); - } - } - -} diff --git a/rileylink/src/test/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/RFToolsParametrizedUTest.java b/rileylink/src/test/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/RFToolsParametrizedUTest.java index 2e5b6b1cb3..42ed577d43 100644 --- a/rileylink/src/test/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/RFToolsParametrizedUTest.java +++ b/rileylink/src/test/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/RFToolsParametrizedUTest.java @@ -1,18 +1,16 @@ package info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble; -import java.util.Arrays; -import java.util.Collection; +import android.util.Log; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; -import android.util.Log; +import java.util.Arrays; +import java.util.Collection; import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.data.encoding.Encoding4b6bGeoff; -import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.data.encoding.Encoding4b6bGo; -import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.data.encoding.Encoding4b6bLoop; import info.nightscout.androidaps.plugins.pump.common.utils.ByteUtil; /** @@ -66,7 +64,7 @@ public class RFToolsParametrizedUTest { // @Test public void testEncodeGeoff() { - Encoding4b6bGeoff decoder = new Encoding4b6bGeoff(); + Encoding4b6bGeoff decoder = new Encoding4b6bGeoff(null); /* * {0xa7} -> {0xa9, 0x60} @@ -121,156 +119,11 @@ public class RFToolsParametrizedUTest { } - // @Test - public void testEncodeGo() { - - Encoding4b6bGo decoder = new Encoding4b6bGo(); - - /* - * {0xa7} -> {0xa9, 0x60} - * {0xa7, 0x12} -> {0xa9, 0x6c, 0x72} - * {0xa7, 0x12, 0xa7} -> {0xa9, 0x6c, 0x72, 0xa9, 0x60} - */ - /* test compare */ - // byte[] s1 = { 0, 1, 2 }; - // byte[] s2 = { 2, 1, 0, 3 }; - // byte[] s3 = { 0, 1, 2, 3 }; - // if (ByteUtil.compare(s1, s1) != 0) { - // LOG.error("test: compare failed."); - // } - // if (ByteUtil.compare(s1, s2) >= 0) { - // LOG.error("test: compare failed."); - // } - // if (ByteUtil.compare(s2, s1) <= 0) { - // LOG.error("test: compare failed."); - // } - // if (ByteUtil.compare(s1, s3) >= 0) { - // LOG.error("test: compare failed."); - // } - // testCompose(new byte[] {(byte)0xa7, (byte)0xa7}); - byte[] bs = decoder.encode4b6b(new byte[] { (byte)0xa7 }); - byte[] out = new byte[] { (byte)(0xa9), 0x65 }; - - System.out.println("EncodeGo: " + ByteUtil.getHex(bs)); - - if (ByteUtil.compare(bs, out) != 0) { - Log.e( - TAG, - "encode Data failed: expected " + ByteUtil.shortHexString(out) + " but got " - + ByteUtil.shortHexString(bs)); - Assert.fail(); - } - - bs = decoder.encode4b6b(new byte[] { (byte)0xa7, 0x12 }); - out = new byte[] { (byte)(0xa9), 0x6c, 0x72 }; - if (ByteUtil.compare(bs, out) != 0) { - Log.e( - TAG, - "encode Data failed: expected " + ByteUtil.shortHexString(out) + " but got " - + ByteUtil.shortHexString(bs)); - Assert.fail(); - } - - bs = decoder.encode4b6b(new byte[] { (byte)0xa7, 0x12, (byte)0xa7 }); - out = new byte[] { (byte)(0xa9), 0x6c, 0x72, (byte)0xa9, 0x65 }; - if (ByteUtil.compare(bs, out) != 0) { - Log.e( - TAG, - "encode Data failed: expected " + ByteUtil.shortHexString(out) + " but got " - + ByteUtil.shortHexString(bs)); - Assert.fail(); - } - - } - - - // @Test - public void testDecodeGo() throws Exception { - - Encoding4b6bGo decoder = new Encoding4b6bGo(); - - // testCompose(new byte[] {(byte)0xa7, (byte)0xa7}); - byte[] bs = decoder.encode4b6b(new byte[] { (byte)0xa7 }); - byte[] out = new byte[] { (byte)(0xa9), 0x65 }; - if (ByteUtil.compare(bs, out) != 0) { - Log.e( - TAG, - "encode Data failed: expected " + ByteUtil.shortHexString(out) + " but got " - + ByteUtil.shortHexString(bs)); - } - - byte[] back = decoder.decode4b6b(out); - - if (ByteUtil.compare(back, bs) != 0) { - Log.e( - TAG, - "decode Data failed: expected " + ByteUtil.shortHexString(out) + " but got " - + ByteUtil.shortHexString(bs)); - Assert.fail(); - } - - bs = decoder.encode4b6b(new byte[] { (byte)0xa7, 0x12 }); - out = new byte[] { (byte)(0xa9), 0x6c, 0x72 }; - if (ByteUtil.compare(bs, out) != 0) { - Log.e( - TAG, - "encode Data failed: expected " + ByteUtil.shortHexString(out) + " but got " - + ByteUtil.shortHexString(bs)); - } - - back = decoder.decode4b6b(out); - - if (ByteUtil.compare(back, bs) != 0) { - Log.e( - TAG, - "decode Data failed: expected " + ByteUtil.shortHexString(out) + " but got " - + ByteUtil.shortHexString(bs)); - Assert.fail(); - } - - bs = decoder.encode4b6b(new byte[] { (byte)0xa7, 0x12, (byte)0xa7 }); - out = new byte[] { (byte)(0xa9), 0x6c, 0x72, (byte)0xa9, 0x65 }; - if (ByteUtil.compare(bs, out) != 0) { - Log.e( - TAG, - "encode Data failed: expected " + ByteUtil.shortHexString(out) + " but got " - + ByteUtil.shortHexString(bs)); - } - - back = decoder.decode4b6b(out); - - if (ByteUtil.compare(back, bs) != 0) { - Log.e( - TAG, - "decode Data failed: expected " + ByteUtil.shortHexString(out) + " but got " - + ByteUtil.shortHexString(bs)); - Assert.fail(); - } - - return; - } - - - // @Test - // public void ttt_decodeGo() { - // - // RFTools.DecodeResponseDto decodeResponseDto = RFTools.decode6b4b_go(new byte[] { - // (byte)0xF9, (byte)0xE9, 0x63, (byte)0x9E, 0x7F, (byte)0xE6, 0x79, 0x5F, -1, (byte)0xCF, (byte)0xF0 }); - // - // if (decodeResponseDto.errorData != null) { - // Log.e(TAG, decodeResponseDto.errorData); - // Assert.assertTrue(false); - // } else { - // Assert.assertTrue(true); - // System.out.println("Response: " + ByteUtil.getHex(decodeResponseDto.data)); - // } - // - // } // @Test public void testParametrizedGeoffEncode() { - Encoding4b6bGeoff decoder = new Encoding4b6bGeoff(); + Encoding4b6bGeoff decoder = new Encoding4b6bGeoff(null); byte[] encodedX = decoder.encode4b6b(this.decoded); @@ -284,7 +137,7 @@ public class RFToolsParametrizedUTest { @Test public void geoffDecode() throws Exception { - Encoding4b6bGeoff decoder = new Encoding4b6bGeoff(); + Encoding4b6bGeoff decoder = new Encoding4b6bGeoff(null); byte[] decodedX = decoder.decode4b6b(this.encoded); @@ -292,38 +145,10 @@ public class RFToolsParametrizedUTest { } - @Test - public void goDecode() { - // Encoding4b6bGo decoder = new Encoding4b6bGo(); - // - // DecodeResponseDto decodeResponseDto = decoder.decode4b6b(this.encoded); - // - // Assert.assertNull(decodeResponseDto.errorData); - // System.out.println("Result: " + ByteUtil.getHex(decodeResponseDto.data)); - // System.out.println("Expected: " + ByteUtil.getHex(decoded)); - // Assert.assertArrayEquals(decoded, decodeResponseDto.data); - } - - - // @Test - public void loopDecode() { - // Encoding4b6bLoop decoder = new Encoding4b6bLoop(); - // - // byte[] data = decoder.decode4b6b(this.encoded); - // - // // RFTools.DecodeResponseDto decodeResponseDto - // - // // Assert.assertNull(decodeResponseDto.errorData); - // System.out.println("Result: " + ByteUtil.getHex(data)); - // System.out.println("Expected: " + ByteUtil.getHex(decoded)); - // Assert.assertArrayEquals(decoded, data); - } - - @Test public void geoffEncode() { - Encoding4b6bGeoff decoder = new Encoding4b6bGeoff(); + Encoding4b6bGeoff decoder = new Encoding4b6bGeoff(null); byte[] encodedX = decoder.encode4b6b(this.decoded); @@ -331,42 +156,4 @@ public class RFToolsParametrizedUTest { } - @Test - public void goEncode() { - Encoding4b6bGo decoder = new Encoding4b6bGo(); - - byte[] encodedX = decoder.encode4b6b(this.decoded); - System.out.println("Result: " + ByteUtil.getHex(encodedX)); - System.out.println("Expected: " + ByteUtil.getHex(encoded)); - Assert.assertArrayEquals(encoded, encodedX); - } - - - @Test - public void loopEncode() { - Encoding4b6bLoop decoder = new Encoding4b6bLoop(); - - byte[] encodedX = decoder.encode4b6b(this.decoded); - System.out.println("Result: " + ByteUtil.getHex(encodedX)); - System.out.println("Expected: " + ByteUtil.getHex(encoded)); - Assert.assertArrayEquals(encoded, encodedX); - } - - - private short[] createShortArray(byte[] data) { - - short[] outData = new short[data.length]; - - for (int i = 0; i < data.length; i++) { - short d = data[i]; - - if (d < 0) { - d += 256; - } - - outData[i] = d; - } - - return outData; - } } From 67e75c9a7862c6325fdf2643e9b28b064fe15969 Mon Sep 17 00:00:00 2001 From: Andries Smit Date: Tue, 19 Apr 2022 15:08:47 +0200 Subject: [PATCH 23/27] style: remove redundant style tabs --- core/src/main/res/values-night/styles.xml | 3 --- core/src/main/res/values/attrs.xml | 3 --- core/src/main/res/values/styles.xml | 3 --- rileylink/src/main/res/layout/rileylink_status.xml | 2 -- 4 files changed, 11 deletions(-) diff --git a/core/src/main/res/values-night/styles.xml b/core/src/main/res/values-night/styles.xml index 153b751a42..8e8d89f020 100644 --- a/core/src/main/res/values-night/styles.xml +++ b/core/src/main/res/values-night/styles.xml @@ -91,9 +91,6 @@ @color/ribbonCritical @color/ribbonTextDefault @color/ribbonTextWarning - - @color/tabSelectedText - @color/tabText @color/defaultbackground diff --git a/core/src/main/res/values/attrs.xml b/core/src/main/res/values/attrs.xml index a772a00101..fd367137b9 100644 --- a/core/src/main/res/values/attrs.xml +++ b/core/src/main/res/values/attrs.xml @@ -61,9 +61,6 @@ - - - diff --git a/core/src/main/res/values/styles.xml b/core/src/main/res/values/styles.xml index b0d4533c8b..5b11aacee7 100644 --- a/core/src/main/res/values/styles.xml +++ b/core/src/main/res/values/styles.xml @@ -96,9 +96,6 @@ @color/ribbonCritical @color/ribbonTextDefault @color/ribbonTextWarning - - @color/tabSelectedText - @color/tabText @color/white diff --git a/rileylink/src/main/res/layout/rileylink_status.xml b/rileylink/src/main/res/layout/rileylink_status.xml index 42882d46de..efa0be2f6f 100644 --- a/rileylink/src/main/res/layout/rileylink_status.xml +++ b/rileylink/src/main/res/layout/rileylink_status.xml @@ -14,9 +14,7 @@ From 1a38d1b6fbcff8b59368dbcb9f56a5e3c918e11e Mon Sep 17 00:00:00 2001 From: Andries Smit Date: Tue, 19 Apr 2022 15:11:43 +0200 Subject: [PATCH 24/27] chore: remove unused style attribute --- core/src/main/res/values-night/styles.xml | 2 -- core/src/main/res/values/attrs.xml | 2 -- core/src/main/res/values/styles.xml | 2 -- 3 files changed, 6 deletions(-) diff --git a/core/src/main/res/values-night/styles.xml b/core/src/main/res/values-night/styles.xml index 8e8d89f020..e4a56035d6 100644 --- a/core/src/main/res/values-night/styles.xml +++ b/core/src/main/res/values-night/styles.xml @@ -95,8 +95,6 @@ @color/defaultbackground @color/toastBase - - @color/white_alpha_20 @style/DialogTheme @style/DialogTheme diff --git a/core/src/main/res/values/attrs.xml b/core/src/main/res/values/attrs.xml index fd367137b9..9b9cf2fd89 100644 --- a/core/src/main/res/values/attrs.xml +++ b/core/src/main/res/values/attrs.xml @@ -65,8 +65,6 @@ - - diff --git a/core/src/main/res/values/styles.xml b/core/src/main/res/values/styles.xml index 5b11aacee7..9170c40da9 100644 --- a/core/src/main/res/values/styles.xml +++ b/core/src/main/res/values/styles.xml @@ -100,8 +100,6 @@ @color/white @color/toastBase - - @color/white @style/DialogTheme @style/DialogTheme From 2c7bc771569de712a0faa92e3dd8572f7752bf37 Mon Sep 17 00:00:00 2001 From: Andries Smit Date: Tue, 19 Apr 2022 15:25:32 +0200 Subject: [PATCH 25/27] chore: remove style comments --- core/src/main/res/values-night/styles.xml | 2 -- core/src/main/res/values/styles.xml | 2 -- 2 files changed, 4 deletions(-) diff --git a/core/src/main/res/values-night/styles.xml b/core/src/main/res/values-night/styles.xml index e4a56035d6..272546513a 100644 --- a/core/src/main/res/values-night/styles.xml +++ b/core/src/main/res/values-night/styles.xml @@ -366,8 +366,6 @@ diff --git a/core/src/main/res/values/attrs.xml b/core/src/main/res/values/attrs.xml index a772a00101..0f5f4d2b5d 100644 --- a/core/src/main/res/values/attrs.xml +++ b/core/src/main/res/values/attrs.xml @@ -17,7 +17,7 @@ - + @@ -65,7 +65,7 @@ - + @@ -83,13 +83,13 @@ - - - + + + - - + + @@ -163,12 +163,12 @@ - + - + @@ -193,30 +193,29 @@ - - - - - - - - + + + + + + + - + - + - + \ No newline at end of file diff --git a/core/src/main/res/values/colors.xml b/core/src/main/res/values/colors.xml index 400d3af6df..288d8aa292 100644 --- a/core/src/main/res/values/colors.xml +++ b/core/src/main/res/values/colors.xml @@ -23,8 +23,8 @@ #1c171c #FFFFFF - #FFFFFF - #000000 + #FFFFFF + #000000 #262626 @@ -61,7 +61,7 @@ #FF000000 #C803A9F4 #FFFF5555 - #BBBBBB + #BBBBBB @color/white @@ -80,7 +80,7 @@ #FF1313 - #00FF00 + #00FF00 #FF0000 #FFFB8C00 #1e88e5 @@ -166,14 +166,14 @@ #000000 #d3f166 #00EEEE - #FFFFFF00 - #FFFF00FF + #FFFFFF00 + #FFFF00FF #F6CE22 #FF0000 #7484E2 - #2800FF00 - #C83F51B5 - #757575 + #2800FF00 + #C83F51B5 + #757575 #ff1a1a #77dd77 #66FC0000 @@ -206,16 +206,16 @@ #de7550 #25912e - #c8666666 - #7200FF00 - #72FF0000 - #72000000 + #c8666666 + #7200FF00 + #72FF0000 + #72000000 #FFFFFF #FEAF05 #CF8BFE - #42A5F5 + #42A5F5 #42A5F5 #66BB6A #FEAF05 @@ -226,22 +226,22 @@ #FEAF05 - #323232 - #424242 + #323232 + #424242 #8C8C8C #666666 - #777777 + #777777 #8c8c8c #72000000 #c8666666 - #B2B2B2 + #B2B2B2 #D6D7D7 - #4dB1B1B1 + #4dB1B1B1 #33969696 #EBEBEA - #000000 - #B3FFFFFF + #000000 + #B3FFFFFF #FFFF00 diff --git a/core/src/main/res/values/styles.xml b/core/src/main/res/values/styles.xml index b0d4533c8b..0d8a1f1796 100644 --- a/core/src/main/res/values/styles.xml +++ b/core/src/main/res/values/styles.xml @@ -100,7 +100,7 @@ @color/tabSelectedText @color/tabText - @color/white + @color/white @color/toastBase @@ -109,15 +109,15 @@ @style/DialogTheme @style/DialogTheme @style/DialogTheme - + 12dp - - @color/graphgrid - @color/transparent + + @color/graphGrid + @color/transparent @color/tempTargetBackground - @color/byodagray - @color/colorCalibrationButton + @color/byodaGray + @color/colorCalibrationButton @color/low @color/high @@ -142,7 +142,7 @@ @color/omni_yellow @color/omni_cyan @color/omni_green - @color/midgray + @color/midGray @color/omnipod_wizard_finish_button @color/high @@ -175,7 +175,7 @@ @color/carbs @color/tempTargetConfirmation - @color/tempTargetConfirmation + @color/tempTargetConfirmation @color/loopSuspended @@ -192,12 +192,12 @@ @color/extendedBolus @color/extBolusStop - @color/actionBasal + @color/actionBasal @color/actionBasal @color/actionBasal @color/actionBasal @color/actionBasal - @color/pumpCanula + @color/pumpCannula @color/cgmInsert @color/pumpBattery @color/note @@ -220,31 +220,31 @@ @color/mdtp_line_dark @color/mdtp_line_dark - @color/inrangebackground - @color/devslopepos - @color/devslopeneg - @color/deviationgrey - @color/deviationblack - @color/deviationgreen - @color/deviationred + @color/inRangeBackground + @color/devSlopePos + @color/devSlopeNeg + @color/deviationGrey + @color/deviationBlack + @color/deviationGreen + @color/deviationRed @color/prediction @color/iobPredAS @color/bgi @color/ratio @color/activity - @color/basebasal + @color/baseBasal @color/black @color/black @color/white @color/plastic_grey - @color/textAppearancemediumLight + @color/textAppearanceMediumLight @style/Aaps_ActionBarStyle @color/isAccomplished - @color/sphere_plastic_grey + @color/sphere_plastic_grey @color/isCompleted @color/isNotCompleted From db1cd08d366c3b73114153c5cd904eeea34106b7 Mon Sep 17 00:00:00 2001 From: osodebailar Date: Tue, 19 Apr 2022 19:50:34 +0200 Subject: [PATCH 27/27] cardview for statistics --- app/src/main/res/layout/activity_stats.xml | 130 ++++++++++++++------- 1 file changed, 87 insertions(+), 43 deletions(-) diff --git a/app/src/main/res/layout/activity_stats.xml b/app/src/main/res/layout/activity_stats.xml index a989177404..e34d749e7b 100644 --- a/app/src/main/res/layout/activity_stats.xml +++ b/app/src/main/res/layout/activity_stats.xml @@ -47,56 +47,100 @@ android:orientation="horizontal" android:padding="5dp" /> - + android:layout_gravity="center" + android:layout_marginStart="4dp" + android:layout_marginEnd="4dp" + app:cardCornerRadius="4dp" + app:cardElevation="4dp" + app:cardUseCompatPadding="false" + app:contentPadding="2dp"> - - - - - - - + android:layout_marginStart="10dp" + android:orientation="vertical" /> - + + + + + android:layout_marginStart="10dp" + android:orientation="vertical" /> - + + + + + + + + + + + + + + +