From d57832b0d418a2b435f951d260105d3f3687ec9f Mon Sep 17 00:00:00 2001 From: atsunatsu Date: Sun, 2 Aug 2026 19:30:42 +0800 Subject: [PATCH] fix(i18n): use system locale for date formatting instead of English PassesViewModel and PassesScreen used Locale.ENGLISH for SimpleDateFormat, causing day-of-week names like 'Sun' to always show in English. Changed to Locale.getDefault() so the device's language setting is respected. Affects: 'EEE, dd MMM yyyy' date labels in the pass list (group headers and sun times), and 'HH:mm:ss' time format. --- .../com/rtbishop/look4sat/feature/passes/PassesScreen.kt | 2 +- .../com/rtbishop/look4sat/feature/passes/PassesViewModel.kt | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/feature/passes/src/main/java/com/rtbishop/look4sat/feature/passes/PassesScreen.kt b/feature/passes/src/main/java/com/rtbishop/look4sat/feature/passes/PassesScreen.kt index 6b9752e2..d06bf9ba 100644 --- a/feature/passes/src/main/java/com/rtbishop/look4sat/feature/passes/PassesScreen.kt +++ b/feature/passes/src/main/java/com/rtbishop/look4sat/feature/passes/PassesScreen.kt @@ -322,7 +322,7 @@ private fun PassItem( if (isUtc) TimeZone.getTimeZone("UTC") else TimeZone.getDefault() } val sdfTime = remember(isUtc) { - SimpleDateFormat("HH:mm:ss", Locale.ENGLISH).also { it.timeZone = timeZone } + SimpleDateFormat("HH:mm:ss", Locale.getDefault()).also { it.timeZone = timeZone } } val aosTimeStr = remember(pass.aosTime, isUtc) { sdfTime.format(Date(pass.aosTime)) } val losTimeStr = remember(pass.losTime, isUtc) { sdfTime.format(Date(pass.losTime)) } diff --git a/feature/passes/src/main/java/com/rtbishop/look4sat/feature/passes/PassesViewModel.kt b/feature/passes/src/main/java/com/rtbishop/look4sat/feature/passes/PassesViewModel.kt index aaeda056..9227ef04 100644 --- a/feature/passes/src/main/java/com/rtbishop/look4sat/feature/passes/PassesViewModel.kt +++ b/feature/passes/src/main/java/com/rtbishop/look4sat/feature/passes/PassesViewModel.kt @@ -156,8 +156,8 @@ class PassesViewModel( private fun computeSunTimes(passes: List, isUtc: Boolean): Map> { val stationPos = settingsRepo.stationPosition.value val tz = if (isUtc) TimeZone.getTimeZone("UTC") else TimeZone.getDefault() - val sdfDate = SimpleDateFormat("EEE, dd MMM yyyy", Locale.ENGLISH).also { it.timeZone = tz } - val sdfTime = SimpleDateFormat("HH:mm", Locale.ENGLISH).also { it.timeZone = tz } + val sdfDate = SimpleDateFormat("EEE, dd MMM yyyy", Locale.getDefault()).also { it.timeZone = tz } + val sdfTime = SimpleDateFormat("HH:mm", Locale.getDefault()).also { it.timeZone = tz } val result = LinkedHashMap>() // DeepSpace group always shows today's sun times if (passes.any { it.isDeepSpace }) { @@ -180,7 +180,7 @@ class PassesViewModel( private fun groupPasses(passes: List, isUtc: Boolean): Map> { val tz = if (isUtc) TimeZone.getTimeZone("UTC") else TimeZone.getDefault() - val sdfDate = SimpleDateFormat("EEE, dd MMM yyyy", Locale.ENGLISH).also { it.timeZone = tz } + val sdfDate = SimpleDateFormat("EEE, dd MMM yyyy", Locale.getDefault()).also { it.timeZone = tz } val ordered = LinkedHashMap>() val deepSpace = passes.filter { it.isDeepSpace } if (deepSpace.isNotEmpty()) ordered["DeepSpace (period >225min)"] = deepSpace