From 2cdc4c45ea4bc9603988c8726db27b5b31b4d6fe Mon Sep 17 00:00:00 2001 From: Carlos Rafael Giani Date: Wed, 8 Mar 2023 20:46:46 +0100 Subject: [PATCH] comboctl-parser: Add Lithuanian support Signed-off-by: Carlos Rafael Giani --- .../nightscout/comboctl/parser/Pattern.kt | 9 + .../comboctl/parser/TitleStrings.kt | 16 + .../nightscout/comboctl/parser/ParserTest.kt | 49 +- .../comboctl/parser/TestDisplayFrames.kt | 455 ++++++++++++++++++ 4 files changed, 528 insertions(+), 1 deletion(-) diff --git a/pump/combov2/comboctl/src/commonMain/kotlin/info/nightscout/comboctl/parser/Pattern.kt b/pump/combov2/comboctl/src/commonMain/kotlin/info/nightscout/comboctl/parser/Pattern.kt index dba6ec1f14..c84103c3c9 100644 --- a/pump/combov2/comboctl/src/commonMain/kotlin/info/nightscout/comboctl/parser/Pattern.kt +++ b/pump/combov2/comboctl/src/commonMain/kotlin/info/nightscout/comboctl/parser/Pattern.kt @@ -1414,6 +1414,15 @@ val glyphPatterns = mapOf( "█ ", "█████" )), + Glyph.SmallCharacter('Ė') to Pattern(arrayOf( + " █ ", + " ", + "█████", + "█ ", + "████ ", + "█ ", + "█████" + )), Glyph.SmallCharacter('ę') to Pattern(arrayOf( "█████", "█ ", diff --git a/pump/combov2/comboctl/src/commonMain/kotlin/info/nightscout/comboctl/parser/TitleStrings.kt b/pump/combov2/comboctl/src/commonMain/kotlin/info/nightscout/comboctl/parser/TitleStrings.kt index 6b8944b5e3..fcd06ffe94 100644 --- a/pump/combov2/comboctl/src/commonMain/kotlin/info/nightscout/comboctl/parser/TitleStrings.kt +++ b/pump/combov2/comboctl/src/commonMain/kotlin/info/nightscout/comboctl/parser/TitleStrings.kt @@ -372,6 +372,22 @@ val knownScreenTitles = mapOf( "UTIŠANJE" to TitleID.ALERT_TO_SNOOZE, "POTRDITEV" to TitleID.ALERT_TO_CONFIRM, + // Lithuanian + "QUICK INFO" to TitleID.QUICK_INFO, + "TBR REIKŠMĖS" to TitleID.TBR_PERCENTAGE, + "TBR TRUKMĖ" to TitleID.TBR_DURATION, + "VALANDA" to TitleID.HOUR, + "MINUTĖ" to TitleID.MINUTE, + "METAI" to TitleID.YEAR, + "MĖNUO" to TitleID.MONTH, + "DIENA" to TitleID.DAY, + "BOLIUSO DUOMENYS" to TitleID.BOLUS_DATA, + "KLAIDOS DUOMENYS" to TitleID.ERROR_DATA, + "BENDR. DIENOS K." to TitleID.DAILY_TOTALS, + "TBR DUOMENYS" to TitleID.TBR_DATA, + "NUTILDYTI" to TitleID.ALERT_TO_SNOOZE, + "PATVIRTINTI" to TitleID.ALERT_TO_CONFIRM, + // Some pumps came preconfigured with a different quick info name "ACCU CHECK SPIRIT" to TitleID.QUICK_INFO ) diff --git a/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/parser/ParserTest.kt b/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/parser/ParserTest.kt index e31f78cdf8..03421aec21 100644 --- a/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/parser/ParserTest.kt +++ b/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/parser/ParserTest.kt @@ -743,6 +743,7 @@ class ParserTest { Pair(TbrPercentageAndDurationScreens.testFrameTbrPercentageDanishScreen, 110), Pair(TbrPercentageAndDurationScreens.testFrameTbrPercentageGermanScreen, 110), Pair(TbrPercentageAndDurationScreens.testFrameTbrPercentageSlovenianScreen, 110), + Pair(TbrPercentageAndDurationScreens.testFrameTbrPercentageLithuanianScreen, 110), ) for (testScreen in testScreens) { @@ -790,7 +791,8 @@ class ParserTest { Pair(TbrPercentageAndDurationScreens.testFrameTbrDurationSwedishScreen, 30), Pair(TbrPercentageAndDurationScreens.testFrameTbrDurationDanishScreen, 30), Pair(TbrPercentageAndDurationScreens.testFrameTbrDurationGermanScreen, 30), - Pair(TbrPercentageAndDurationScreens.testFrameTbrDurationSlovenianScreen, 15) + Pair(TbrPercentageAndDurationScreens.testFrameTbrDurationSlovenianScreen, 15), + Pair(TbrPercentageAndDurationScreens.testFrameTbrDurationLithuanianScreen, 15), ) for (testScreen in testScreens) { @@ -935,6 +937,12 @@ class ParserTest { Pair(testTimeAndDateSettingsMonthSlovenianScreen, ParsedScreen.TimeAndDateSettingsMonthScreen(3)), Pair(testTimeAndDateSettingsDaySlovenianScreen, ParsedScreen.TimeAndDateSettingsDayScreen(8)), + Pair(testTimeAndDateSettingsHourLithuanianScreen, ParsedScreen.TimeAndDateSettingsHourScreen(20)), + Pair(testTimeAndDateSettingsMinuteLithuanianScreen, ParsedScreen.TimeAndDateSettingsMinuteScreen(16)), + Pair(testTimeAndDateSettingsYearLithuanianScreen, ParsedScreen.TimeAndDateSettingsYearScreen(2023)), + Pair(testTimeAndDateSettingsMonthLithuanianScreen, ParsedScreen.TimeAndDateSettingsMonthScreen(3)), + Pair(testTimeAndDateSettingsDayLithuanianScreen, ParsedScreen.TimeAndDateSettingsDayScreen(8)), + // Extra test to verify that a *minute* 24 is not incorrectly interpreted // as an *hour* 24 and thus translated to 0 (this is done because the Combo // may show midnight as both hour 0 and hour 24). @@ -1609,6 +1617,37 @@ class ParserTest { percentage = 110, durationInMinutes = 1 ) ), + Pair( + testMyDataBolusDataLithuanianScreen, + ParsedScreen.MyDataBolusDataScreen( + index = 1, totalNumEntries = 30, + timestamp = LocalDateTime(year = 0, monthNumber = 1, dayOfMonth = 1, hour = 23, minute = 21, second = 0), + bolusAmount = 3200, bolusType = MyDataBolusType.MULTI_WAVE, durationInMinutes = 43 + ) + ), + Pair( + testMyDataErrorDataLithuanianScreen, + ParsedScreen.MyDataErrorDataScreen( + index = 1, totalNumEntries = 30, + timestamp = LocalDateTime(year = 0, monthNumber = 3, dayOfMonth = 8, hour = 20, minute = 6, second = 0), + alert = AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) + ) + ), + Pair( + testMyDataDailyTotalsLithuanianScreen, + ParsedScreen.MyDataDailyTotalsScreen( + index = 1, totalNumEntries = 30, date = LocalDate(year = 0, dayOfMonth = 8, monthNumber = 3), + totalDailyAmount = 33600 + ) + ), + Pair( + testMyDataTbrDataLithuanianScreen, + ParsedScreen.MyDataTbrDataScreen( + index = 1, totalNumEntries = 30, + timestamp = LocalDateTime(year = 0, monthNumber = 3, dayOfMonth = 8, hour = 20, minute = 6, second = 0), + percentage = 110, durationInMinutes = 1 + ) + ), ) for (testScreen in testScreens) { @@ -1805,6 +1844,14 @@ class ParserTest { AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextSlovenianScreen, AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextLithuanianScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextLithuanianScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), ) for (testScreen in testScreens) { diff --git a/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/parser/TestDisplayFrames.kt b/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/parser/TestDisplayFrames.kt index 3787c25fd0..0830f7b08b 100644 --- a/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/parser/TestDisplayFrames.kt +++ b/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/parser/TestDisplayFrames.kt @@ -3392,6 +3392,77 @@ object TbrPercentageAndDurationScreens { " " ) ) + + val testFrameTbrPercentageLithuanianScreen = makeDisplayFrame(arrayOf( + "█████ ████ ████ ████ █████ ███ █ █ █ █ █ █ █ ████ ██ ", + " █ █ █ █ █ █ █ █ █ █ █ █ ██ ██ █ ██ █ ", + " █ █ █ █ █ █ █ █ █ █ █ ████ █ █ █ █████ █ █ ", + " █ ████ ████ ████ ████ █ ██ █ █ █ █ █ ███ █ ", + " █ █ █ █ █ █ █ █ █ █ █ ███ █ █ ████ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ", + " █ ████ █ █ █ █ █████ ███ █ █ ████ █ █ █████ ████ ██ ", + " ", + " ██ ██ ████ ██ ██ ", + " ███████ ███ ███ ██ ██ ████ ██ ", + " ███████ ████ ████ ██ ██ ████ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " ██ ███████ ██ ██ ██ ██ ██ ", + " ██ ███████ ██ ██ ██ ██ ██ ", + "███████ ██ ██ ██ ██ ██ ██ ██ ", + "███████ ██ ██ ██ ██ ██ ██ ██ ", + "██ ██ ██ ██ ██ ██ ██ ██ ██ ", + "██ ██ ██ ██ ██ ██ ██ ██ ██ ", + "██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ", + "██ ██ ██ ██ ██ ██ ██ ██ ██ ████ ", + "██ ██ ██ ██ ██ ██ ██ ██ ██ ████ ", + "██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ", + "██ ██ ██ ██ ██ ██ ████ ", + " ", + " █ ███ ███ █ █████ ", + " ██ █ █ █ █ ██ ██ █ ", + "███████ █ ██ █ ██ ██ █ ████ ", + "████████ █ █ █ █ █ █ █ █ ", + "███████ ██ █ ██ █ ██ █ █ ", + " ██ █ █ █ █ ██ █ █ █ ", + " █ ███ ███ ███ ███ ", + " " + )) + + val testFrameTbrDurationLithuanianScreen = makeDisplayFrame(arrayOf( + "█████ ████ ████ █████ ████ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ ██ ██ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █████ ", + " █ ████ ████ █ ████ █ █ ██ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ ████ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ █ █ █ █ █ ███ █ █ █ █ █████ ", + " ", + " ████ ████ ██ ███████ ", + " ██ ██ ██ ██ ██ ███ ██ ", + " ███ ██ ██ ██ ██ ████ ██ ", + " ████ ██ ██ ██ ██ ██ ██ ", + " █████ ██ ██ ██ ██ ██ ██ ", + " ██████ ██ ██ ██ ██ ███ ██ ██████ ", + "███████████████ ██ ██ ██ ██ ███ ██ ██ ", + "████████████████ ██ ██ ██ ██ ███ ██ ██ ", + "████████████████ ██ ██ ██ ██ ██ ██ ", + "███████████████ ██ ██ ██ ██ ██ ██ ", + " ██████ ██ ██ ██ ██ ███ ██ ██ ", + " █████ ██ ██ ██ ██ ███ ██ ██ ", + " ████ ██ ██ ██ ██ ███ ██ ██ ", + " ███ ██ ██ ██ ██ ██ ██ ██ ", + " ██ ████ ████ ██ █████ ", + " ", + " ████ █ █ ███ ██ ", + " █ ███ ██ ██ █ █ ██ █ ", + "███ █ █ █ █ █ ██ █ ", + "█ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ ██ █ █ ", + "█ █ █ █ █ █ █ █ █ ██ ", + "█ █ █ █ ███ ███ ███ ██ ", + " " + )) + } val testTimeAndDateSettingsHour12hFormatScreen = makeDisplayFrame(arrayOf( @@ -7139,6 +7210,181 @@ val testTimeAndDateSettingsDaySlovenianScreen = makeDisplayFrame(arrayOf( " " )) +val testTimeAndDateSettingsHourLithuanianScreen = makeDisplayFrame(arrayOf( + "█ █ █ █ █ █ █ ███ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ ██ █ █ █ █ █ ", + "█ █ █████ █ █████ █ █ █ █ █ █████ ", + "█ █ █ █ █ █ █ █ ██ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █████ █ █ █ █ ███ █ █ ", + " ", + " ████ ████ ", + " █████ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ", + " █ █ █ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + "█ █ █ ██ ██ ██ ", + "█ █ ██ ██ ██ ██ ", + "█ ████ ██ ██ ██ ██ ", + "█ ██ ██ ██ ██ ", + "█ ██ ██ ██ ██ ", + " █ ███ ██ ██ ██ ", + " █ ██ ██ ██ ██ ", + " ██ ████ ██ ██ ██ ", + " █████████ ██ ██ ██ ", + " █████ ████████ ████ ", + " ", + " ███ ███ █ ██ ███ ███ ███ █████ ███ █████", + "█ █ █ █ ██ ██ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ ██ ██ █ █ █ ██ █ █ █ ██ █ █ █ ", + " █ █ █ █ █ ████ █ █ █ ███ █ █ █ █ █ █ ", + " █ ██ █ ██ █ █ █ ██ █ █ █ ██ █ █ █ █", + " █ █ █ ██ █ █ █ █ █ █ █ ██ █ █ █ █ ██ █ █ █", + "█████ ███ ███ ███ ███ ███ ██ ███ ███ ██ █████ ███ ", + " " +)) + +val testTimeAndDateSettingsMinuteLithuanianScreen = makeDisplayFrame(arrayOf( + "█ █ ███ █ █ █ █ █████ █ ", + "██ ██ █ █ █ █ █ █ ", + "█ █ █ █ ██ █ █ █ █ █████ ", + "█ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ ██ █ █ █ ████ ", + "█ █ █ █ █ █ █ █ █ ", + "█ █ ███ █ █ ███ █ █████ ", + " ", + " ██ ███ ", + " █████ ███ ██ ", + " ██ ██ ████ ██ ", + " █ █ █ ██ ██ ", + " █ █ ██ ██ ██ ", + "█ █ █ ██ ██ ", + "█ █ ██ ██ ██████ ", + "█ ████ ██ ██ ███ ██ ", + "█ ██ ██ ██ ██ ", + "█ ██ ██ ██ ██ ", + " █ ███ ██ ██ ██ ", + " █ ██ ██ ██ ██ ", + " ██ ████ ██ ██ ██ ", + " █████████ ██ ██ ██ ", + " █████ ██ ████ ", + " ", + " ███ ███ █ ██ ███ ███ ███ █████ ███ █████", + "█ █ █ █ ██ ██ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ ██ ██ █ █ █ ██ █ █ █ ██ █ █ █ ", + " █ █ █ █ █ ████ █ █ █ ███ █ █ █ █ █ █ ", + " █ ██ █ ██ █ █ █ ██ █ █ █ ██ █ █ █ █", + " █ █ █ ██ █ █ █ █ █ █ █ ██ █ █ █ █ ██ █ █ █", + "█████ ███ ███ ███ ███ ███ ██ ███ ███ ██ █████ ███ ", + " " +)) + +val testTimeAndDateSettingsYearLithuanianScreen = makeDisplayFrame(arrayOf( + "█ █ █████ █████ █ ███ ", + "██ ██ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ ", + "█ █ █ ████ █ █████ █ ", + "█ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ ", + "█ █ █████ █ █ █ ███ ", + " ", + " ████ ████ ████ █████ ", + "█████████████ ██ ██ ██ ██ ██ ██ ██ ██ ", + "█ ██ ██ ██ ██ ██ ██ ██ ██ ", + "██████████████ ██ ██ ██ ██ ██ ██ ██ ", + "█ █ █ █ █ █ ██ ██ ██ ██ ██ ██ ", + "██████████████ ██ ██ ██ ██ ██ ", + "█ █ █ █ █ █ ██ ██ ██ ██ ██ ███ ", + "██████████████ ██ ██ ██ ██ ██ ", + "█ █ █ █ █ █ ██ ██ ██ ██ ██ ██ ", + "██████████████ ██ ██ ██ ██ ██ ", + "█ █ █ █ ██████ ██ ██ ██ ██ ██ ", + "██████████████ ██ ██ ██ ██ ██ ", + " █████████████ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ", + " ████████ ████ ████████ █████ ", + " ", + " ███ ███ █ ██ ███ ███ ███ █████ ███ █████", + "█ █ █ █ ██ ██ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ ██ ██ █ █ █ ██ █ █ █ ██ █ █ █ ", + " █ █ █ █ █ ████ █ █ █ ███ █ █ █ █ █ █ ", + " █ ██ █ ██ █ █ █ ██ █ █ █ ██ █ █ █ █", + " █ █ █ ██ █ █ █ █ █ █ █ ██ █ █ █ █ ██ █ █ █", + "█████ ███ ███ ███ ███ ███ ██ ███ ███ ██ █████ ███ ", + " " +)) + +val testTimeAndDateSettingsMonthLithuanianScreen = makeDisplayFrame(arrayOf( + "█ █ █ █ █ █ █ ███ ", + "██ ██ █ █ █ █ █ █ ", + "█ █ █ █████ ██ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ ", + "█ █ ████ █ ██ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ ", + "█ █ █████ █ █ ███ ███ ", + " ", + " █████ ", + "█████████████ ██ ██ ", + "█ ██ ██ ", + "██████████████ ██ ", + "█ █ █ █ █ █ ██ ██ ", + "██████████████ ██ ", + "█ █ █ █ █ █ ██ ███ ", + "██████████████ ██ ", + "█ █ █ █ █ █ ██ ██ ", + "██████████████ ██ ", + "█ █ █ █ ██████ ██ ", + "██████████████ ██ ", + " █████████████ ██ ", + " ██ ██ ", + " █████ ", + " ", + " ███ ███ █ ██ ███ ███ ███ █████ ███ █████", + "█ █ █ █ ██ ██ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ ██ ██ █ █ █ ██ █ █ █ ██ █ █ █ ", + " █ █ █ █ █ ████ █ █ █ ███ █ █ █ █ █ █ ", + " █ ██ █ ██ █ █ █ ██ █ █ █ ██ █ █ █ █", + " █ █ █ ██ █ █ █ █ █ █ █ ██ █ █ █ █ ██ █ █ █", + "█████ ███ ███ ███ ███ ███ ██ ███ ███ ██ █████ ███ ", + " " +)) + +val testTimeAndDateSettingsDayLithuanianScreen = makeDisplayFrame(arrayOf( + "███ ███ █████ █ █ █ ", + "█ █ █ █ █ █ █ █ ", + "█ █ █ █ ██ █ █ █ ", + "█ █ █ ████ █ █ █ █████ ", + "█ █ █ █ █ ██ █ █ ", + "█ █ █ █ █ █ █ █ ", + "███ ███ █████ █ █ █ █ ", + " ", + " ████ ", + "█████████████ ██ ██ ", + "█ ██ ██ ██ ", + "██████████████ ██ ██ ", + "█ █ █ █ █ █ ██ ██ ██ ", + "██████████████ ██ ██ ", + "█ █ █ █ █ █ ██ ████ ", + "██████████████ ██ ██ ", + "█ █ █ █ █ █ ██ ██ ██ ", + "██████████████ ██ ██ ", + "█ █ █ █ ██████ ██ ██ ", + "██████████████ ██ ██ ", + " █████████████ ██ ██ ", + " ██ ██ ", + " ████ ", + " ", + " ███ ███ █ ██ ███ ███ ███ █████ ███ █████", + "█ █ █ █ ██ ██ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ ██ ██ █ █ █ ██ █ █ █ ██ █ █ █ ", + " █ █ █ █ █ ████ █ █ █ ███ █ █ █ █ █ █ ", + " █ ██ █ ██ █ █ █ ██ █ █ █ ██ █ █ █ █", + " █ █ █ ██ █ █ █ █ █ █ █ ██ █ █ █ █ ██ █ █ █", + "█████ ███ ███ ███ ███ ███ ██ ███ ███ ██ █████ ███ ", + " " +)) + val testUSDateFormatScreen = makeDisplayFrame(arrayOf( "███ █ █████ █ █ █ █ ████ █████ ███ ████ █ █ █ █████ ", "█ █ █ █ █ █ █ ██ ██ █ █ █ █ █ █ ██ ██ █ █ █ ", @@ -10184,6 +10430,146 @@ val testMyDataBolusDataSlovenianScreen = makeDisplayFrame(arrayOf( " " )) +val testMyDataTbrDataLithuanianScreen = makeDisplayFrame(arrayOf( + "█████ ████ ████ ███ █ █ ███ █ █ █████ █ █ █ █ ████ ", + " █ █ █ █ █ █ █ █ █ █ █ ██ ██ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ █ ", + " █ ████ ████ █ █ █ █ █ █ █ █ █ ████ █ █ █ █ █ ███ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ █ █ ███ ███ ███ █ █ █████ █ █ █ ████ ", + " ", + " █ █ █ ███ ██ ███ █ █████ ███ ", + " ███ ██ ██ █ █ ██ █ █ █ ██ █ █ █ █ ", + " █████ █ █ █ ██ █ █ ██ █ █ █ █ ██ ", + "███████ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " ███ █ █ ██ █ █ ██ █ █ █ █ ██ █ ", + " ███ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ ", + " ███ ███ ███ ███ ██ ███ ███ ███ ███ ", + " ", + " █ ███ ███ ███ █ ", + " ██ █ █ █ █ ██ █ █ ██ ", + "███████ █ ██ █ ██ ██ █ ██ █ ", + "████████ █ █ █ █ █ █ █ █ █ █ ", + "███████ ██ █ ██ █ ██ ██ █ █ ", + " ██ █ █ █ █ ██ █ █ █ ", + " █ ███ ███ ███ ███ ", + " ", + " ███ ███ ███ ███ ██ ███████ ███ ███ ███ █████ ", + " █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ ██ ██ █ ██ █ ███████ █ ██ █ █ █ ██ █ ", + "█ ██ █ █ █ █ █ █ █ █ ████ █ █ █ █ █ █ █ ███ █ █ █ █ ", + "█ █ █ ██ █ ██ ██ █ █ █ ███████ ██ █ █ █ ██ █ █ ", + " █ █ █ █ █ ██ █ █ █ █ █ █ ███ █ █ █ █ ██ █ █ █ █ ", + " ███ █████ ███ ███ ███ ███████ ███ ███ ██ ███ ███ ", + " " +)) + +val testMyDataErrorDataLithuanianScreen = makeDisplayFrame(arrayOf( + "█ █ █ █ ███ ███ ███ ████ ███ █ █ ███ █ █ █████ █ █ █ █ ████ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ██ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ █ ", + "██ █ █████ █ █ █ █ █ ███ █ █ █ █ █ █ █ █ █ ████ █ █ █ █ █ ███ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █████ █ █ ███ ███ ███ ████ ███ ███ ███ █ █ █████ █ █ █ ████ ", + " ", + " █ █ █ ██ ███ █ █████ ███ ", + " ███ █ █ █ █ █ ██ █ █ █ █ ", + " █ █ █ █ █ █ ██ █ █ █ █ ██ ", + " █ █ █ █ █ █ ████ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ ██ █ █ █ █ ██ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███████ █ █ ███ ███ ███ ███ ███ ", + " ", + "█████ ████ ████ █ █████ █ █ █ █ █ █ █ █████ █ ████ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ ████ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ ████ █████ █ █ █████ █ █ ██ █ █████ ███ ", + " █ █ █ █ █ █ █ █ ███ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ █ █ █ █ █ ████ █ █ ███ █ █ █ █ █ ████ ", + " ", + " ███ ███ ███ ███ ██ ███████ ███ ███ ███ █████ ", + " █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ ██ ██ █ ██ █ ███████ █ ██ █ █ █ ██ █ ", + "█ ██ █ █ █ █ █ █ █ █ ████ █ █ █ █ █ █ █ ███ █ █ █ █ ", + "█ █ █ ██ █ ██ ██ █ █ █ ███████ ██ █ █ █ ██ █ █ ", + " █ █ █ █ █ ██ █ █ █ █ █ █ ███ █ █ █ █ ██ █ █ █ █ ", + " ███ █████ ███ ███ ███ ███████ ███ ███ ██ ███ ███ ", + " " +)) + +val testMyDataDailyTotalsLithuanianScreen = makeDisplayFrame(arrayOf( + "████ █████ █ █ ███ ████ ███ ███ █████ █ █ ███ ████ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ ██ █ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ ", + "████ ████ █ █ █ █ █ ████ █ █ █ ████ █ █ █ █ █ ███ ██ ", + "█ █ █ █ ██ █ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ █ ██ ", + "████ █████ █ █ ███ █ █ ██ ███ ███ █████ █ █ ███ ████ █ █ ██ ", + " ", + " ███ █ █████ ███ ", + " █ █ ██ █ █ █ █ ", + " █ ██ █ █ █ █ ██ ", + " █ █ █ █ █ █ █ █ █ ", + " ██ █ █ █ █ ██ █ ", + " █ █ █ █ █ █ █ █ ", + " ███ ███ ███ ███ ", + " ", + "██████ █████ █████ ██ █ █ ", + "█ █ █ █ █ █ █ ", + " █ █ █ █ █ █ ", + " █ █ █ ████ █ █ ", + " █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ ██ █ █ █ █ ", + "██████ ███ ███ ██ ███ ███ ", + " ", + " ███████ ███ ███ ███ █████ ", + " █ █ █ █ █ █ █ █ █ ", + " ███████ █ ██ █ █ █ ██ █ ", + " █ █ █ █ █ █ █ ███ █ █ █ █ ", + " ███████ ██ █ █ █ ██ █ █ ", + " █ █ ███ █ █ █ █ ██ █ █ █ █ ", + " ███████ ███ ███ ██ ███ ███ ", + " " +)) + +val testMyDataBolusDataLithuanianScreen = makeDisplayFrame(arrayOf( + "████ ███ █ ███ █ █ ████ ███ ███ █ █ ███ █ █ █████ █ █ █ █ ████ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ██ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ █ ", + "████ █ █ █ █ █ █ ███ █ █ █ █ █ █ █ █ █ █ █ ████ █ █ █ █ █ ███ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "████ ███ █████ ███ ███ ████ ███ ███ ███ ███ █ █ █████ █ █ █ ████ ", + " ", + "███ █████ ███ █ █ ███ █ █████ ███ ", + "█ █ █ █ █ █ █ █ █ ██ █ █ █ █ ", + "█ █ █ █ █ █ █ ██ █ █ █ █ ██ ", + "█ ██████ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ ██ █ █ █ █ ██ █ ", + "█ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ ███ ██ █████ ███ ███ ███ ███ ███ ", + " ", + " █ ███ ███ █ █████ ", + " ██ █ █ █ █ ██ ██ █ ", + "███████ █ ██ █ ██ ██ █ █ █ ", + "████████ █ █ █ █ █ █ █ █ █ ", + "███████ ██ █ ██ █ ██ █████ █ ", + " ██ █ █ █ █ ██ █ █ █ ", + " █ ███ ███ █ ███ ", + " ", + " ███ ███ █████ ███ █ ███████ ███ █ ███ █ ", + " █ █ █ █ █ █ ██ █ █ ██ █ █ █ █ ██ █ █ ██ ", + "█ █ █ █ █ ██ █ █ ███████ █ ██ █ █ ██ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ ██ █ █ ███████ ██ █ █ ██ █ █ ", + " █ █ █ █ █ ██ █ █ █ █ ███ █ █ █ ██ █ █ █ ", + " ███ █████ ███ █████ ███ ███████ ███ ███ ██ ███ ███ ", + " " +)) + object AlertSnoozeAndConfirmScreens { val testAlertScreenSnoozeTextEnglishScreen = makeDisplayFrame( @@ -11736,4 +12122,73 @@ object AlertSnoozeAndConfirmScreens { " █ ███ █ █ █ ███ ███ █ █████ █ " )) + val testAlertScreenSnoozeTextLithuanianScreen = makeDisplayFrame(arrayOf( + "█████ ████ ████ █ █████ █ █ █ █ █ █ █ █████ █ ████ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ ████ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ ████ █████ █ █ █████ █ █ ██ █ █████ ███ ", + " █ █ █ █ █ █ █ █ ███ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ █ █ █ █ █ ████ █ █ ███ █ █ █ █ █ ████ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ █ █ █ █ █████ ███ █ ███ █ █ █████ ███ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ ██ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ ██ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ ███ █ ███ █████ ███ █ █ ███ " + )) + + val testAlertScreenConfirmTextLithuanianScreen = makeDisplayFrame(arrayOf( + "█████ ████ ████ █ █████ █ █ █ █ █ █ █ █████ █ ████ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ ████ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ ████ █████ █ █ █████ █ █ ██ █ █████ ███ ", + " █ █ █ █ █ █ █ █ ███ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ █ █ █ █ █ ████ █ █ ███ █ █ █ █ █ ████ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ ████ █ █████ █ █ ███ ████ █████ ███ █ █ █████ ███ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ ", + "███ ████ █████ █ █ █ █ ████ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ ███ █ █ █ ███ █ █ █ ███ " + )) } \ No newline at end of file