From 37dfd16c155d3688e13635fad139d4c3bd582bbf Mon Sep 17 00:00:00 2001 From: razeeman Date: Sat, 15 Jul 2023 08:11:29 +0300 Subject: [PATCH] fix notification text and last auto backup time not translating when language is changed --- .../core/mapper/TimeMapper.kt | 42 +++++++++---------- .../NotificationTypeInteractorImpl.kt | 1 + .../manager/NotificationTypeManager.kt | 1 + .../manager/NotificationTypeParams.kt | 1 + .../res/layout/notification_record_layout.xml | 4 +- 5 files changed, 26 insertions(+), 23 deletions(-) diff --git a/core/src/main/java/com/example/util/simpletimetracker/core/mapper/TimeMapper.kt b/core/src/main/java/com/example/util/simpletimetracker/core/mapper/TimeMapper.kt index b6289d90..dc628a5d 100644 --- a/core/src/main/java/com/example/util/simpletimetracker/core/mapper/TimeMapper.kt +++ b/core/src/main/java/com/example/util/simpletimetracker/core/mapper/TimeMapper.kt @@ -16,36 +16,36 @@ import java.util.concurrent.TimeUnit import javax.inject.Inject class TimeMapper @Inject constructor( + localeProvider: LocaleProvider, private val resourceRepo: ResourceRepo, - private val localeProvider: LocaleProvider, private val currentTimestampProvider: CurrentTimestampProvider, ) { - private val locale: Locale get() = localeProvider.get() + private val locale: Locale by lazy { localeProvider.get() } - private val timeFormat = SimpleDateFormat("h:mm a", locale) - private val timeFormatWithSeconds = SimpleDateFormat("h:mm:ss a", locale) - private val timeFormatMilitary = SimpleDateFormat("HH:mm", locale) - private val timeFormatMilitaryWithSeconds = SimpleDateFormat("HH:mm:ss", locale) + private val timeFormat by lazy { SimpleDateFormat("h:mm a", locale) } + private val timeFormatWithSeconds by lazy { SimpleDateFormat("h:mm:ss a", locale) } + private val timeFormatMilitary by lazy { SimpleDateFormat("HH:mm", locale) } + private val timeFormatMilitaryWithSeconds by lazy { SimpleDateFormat("HH:mm:ss", locale) } - private val dateTimeFormat = SimpleDateFormat("MMM d h:mm a", locale) - private val dateTimeFormatWithSeconds = SimpleDateFormat("MMM d h:mm:ss a", locale) - private val dateTimeFormatMilitary = SimpleDateFormat("MMM d HH:mm", locale) - private val dateTimeFormatMilitaryWithSeconds = SimpleDateFormat("MMM d HH:mm:ss", locale) + private val dateTimeFormat by lazy { SimpleDateFormat("MMM d h:mm a", locale) } + private val dateTimeFormatWithSeconds by lazy { SimpleDateFormat("MMM d h:mm:ss a", locale) } + private val dateTimeFormatMilitary by lazy { SimpleDateFormat("MMM d HH:mm", locale) } + private val dateTimeFormatMilitaryWithSeconds by lazy { SimpleDateFormat("MMM d HH:mm:ss", locale) } - private val dateTimeYearFormat = SimpleDateFormat("MMM d yyyy h:mm a", locale) - private val dateTimeYearFormatMilitary = SimpleDateFormat("MMM d yyyy HH:mm", locale) + private val dateTimeYearFormat by lazy { SimpleDateFormat("MMM d yyyy h:mm a", locale) } + private val dateTimeYearFormatMilitary by lazy { SimpleDateFormat("MMM d yyyy HH:mm", locale) } - private val dayDateYearFormat = SimpleDateFormat("E, MMM d yyyy", locale) - private val dateYearFormat = SimpleDateFormat("MMM d yyyy", locale) - private val shortDayFormat = SimpleDateFormat("dd.MM", locale) - private val shortMonthFormat = SimpleDateFormat("MMM", locale) - private val shortYearFormat = SimpleDateFormat("yy", locale) + private val dayDateYearFormat by lazy { SimpleDateFormat("E, MMM d yyyy", locale) } + private val dateYearFormat by lazy { SimpleDateFormat("MMM d yyyy", locale) } + private val shortDayFormat by lazy { SimpleDateFormat("dd.MM", locale) } + private val shortMonthFormat by lazy { SimpleDateFormat("MMM", locale) } + private val shortYearFormat by lazy { SimpleDateFormat("yy", locale) } - private val dayTitleFormat = SimpleDateFormat("E, MMM d", locale) - private val weekTitleFormat = SimpleDateFormat("MMM d", locale) - private val monthTitleFormat = SimpleDateFormat("MMMM", locale) - private val yearTitleFormat = SimpleDateFormat("yyyy", locale) + private val dayTitleFormat by lazy { SimpleDateFormat("E, MMM d", locale) } + private val weekTitleFormat by lazy { SimpleDateFormat("MMM d", locale) } + private val monthTitleFormat by lazy { SimpleDateFormat("MMMM", locale) } + private val yearTitleFormat by lazy { SimpleDateFormat("yyyy", locale) } private val lock = Any() diff --git a/features/feature_notification/src/main/java/com/example/util/simpletimetracker/feature_notification/recordType/interactor/NotificationTypeInteractorImpl.kt b/features/feature_notification/src/main/java/com/example/util/simpletimetracker/feature_notification/recordType/interactor/NotificationTypeInteractorImpl.kt index 84acb6e6..7957083c 100644 --- a/features/feature_notification/src/main/java/com/example/util/simpletimetracker/feature_notification/recordType/interactor/NotificationTypeInteractorImpl.kt +++ b/features/feature_notification/src/main/java/com/example/util/simpletimetracker/feature_notification/recordType/interactor/NotificationTypeInteractorImpl.kt @@ -166,6 +166,7 @@ class NotificationTypeInteractorImpl @Inject constructor( .orEmpty(), stopButton = resourceRepo.getString(R.string.notification_record_type_stop), controls = controls, + controlsHint = resourceRepo.getString(R.string.running_records_empty) ).let(notificationTypeManager::show) } diff --git a/features/feature_notification/src/main/java/com/example/util/simpletimetracker/feature_notification/recordType/manager/NotificationTypeManager.kt b/features/feature_notification/src/main/java/com/example/util/simpletimetracker/feature_notification/recordType/manager/NotificationTypeManager.kt index d75457e3..c2683ac6 100644 --- a/features/feature_notification/src/main/java/com/example/util/simpletimetracker/feature_notification/recordType/manager/NotificationTypeManager.kt +++ b/features/feature_notification/src/main/java/com/example/util/simpletimetracker/feature_notification/recordType/manager/NotificationTypeManager.kt @@ -115,6 +115,7 @@ class NotificationTypeManager @Inject constructor( val typesControlsVisibility = if (typesControlsVisible) View.VISIBLE else View.GONE setViewVisibility(R.id.containerNotificationTypes, typesControlsVisibility) setViewVisibility(R.id.tvNotificationControlsHint, typesControlsVisibility) + setTextViewText(R.id.tvNotificationControlsHint, params.controlsHint) setViewVisibility(R.id.containerNotificationTypesPrev, typesControlsVisibility) setViewVisibility(R.id.containerNotificationTypesNext, typesControlsVisibility) diff --git a/features/feature_notification/src/main/java/com/example/util/simpletimetracker/feature_notification/recordType/manager/NotificationTypeParams.kt b/features/feature_notification/src/main/java/com/example/util/simpletimetracker/feature_notification/recordType/manager/NotificationTypeParams.kt index dca2dc3b..6311a1c6 100644 --- a/features/feature_notification/src/main/java/com/example/util/simpletimetracker/feature_notification/recordType/manager/NotificationTypeParams.kt +++ b/features/feature_notification/src/main/java/com/example/util/simpletimetracker/feature_notification/recordType/manager/NotificationTypeParams.kt @@ -13,6 +13,7 @@ data class NotificationTypeParams( val goalTime: String, val stopButton: String, val controls: Controls, + val controlsHint: String, ) { data class Type( diff --git a/features/feature_notification/src/main/res/layout/notification_record_layout.xml b/features/feature_notification/src/main/res/layout/notification_record_layout.xml index 4517ff0f..100af2f4 100644 --- a/features/feature_notification/src/main/res/layout/notification_record_layout.xml +++ b/features/feature_notification/src/main/res/layout/notification_record_layout.xml @@ -97,8 +97,8 @@ android:layout_below="@id/containerNotificationMainContent" android:layout_marginTop="8dp" android:gravity="center" - android:text="@string/running_records_empty" - android:textSize="11sp" /> + android:textSize="11sp" + tools:text="@string/running_records_empty" />