From 635d308081955fd428de9be68bbe256b2bda89aa Mon Sep 17 00:00:00 2001 From: jacquarg Date: Fri, 24 Oct 2025 09:42:25 +0200 Subject: [PATCH] fix:8972: set weekly report at 11 on winter time switch day, fix loop. --- .../data/repositories/WeeklyReportLocalRepository.kt | 2 +- .../advancedprivacy/domain/usecases/WeeklyReportUseCase.kt | 2 +- .../externalinterfaces/workers/WeeklyReportWorker.kt | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/foundation/e/advancedprivacy/data/repositories/WeeklyReportLocalRepository.kt b/app/src/main/java/foundation/e/advancedprivacy/data/repositories/WeeklyReportLocalRepository.kt index fd760089..641bb7e9 100644 --- a/app/src/main/java/foundation/e/advancedprivacy/data/repositories/WeeklyReportLocalRepository.kt +++ b/app/src/main/java/foundation/e/advancedprivacy/data/repositories/WeeklyReportLocalRepository.kt @@ -44,7 +44,7 @@ class WeeklyReportLocalRepository( val reports = preferences.get(weeklyReportsKey)?.let { runCatching { json.decodeFromString>(it) }.getOrNull() } ?: emptyList() - val updatedReport: List = reports + report + val updatedReport: List = reports.takeLast(98) + report preferences.set(weeklyReportsKey, json.encodeToString(updatedReport)) preferences } diff --git a/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/WeeklyReportUseCase.kt b/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/WeeklyReportUseCase.kt index f2626db9..cd6d271a 100644 --- a/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/WeeklyReportUseCase.kt +++ b/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/WeeklyReportUseCase.kt @@ -50,7 +50,7 @@ class WeeklyReportUseCase( ) { companion object { val REPORT_DAY_OF_WEEK: DayOfWeek = SUNDAY - const val REPORT_HOUR: Long = 11L + const val REPORT_HOUR: Int = 11 } private val _currentReport = MutableStateFlow(null) val currentReport: StateFlow = _currentReport diff --git a/app/src/main/java/foundation/e/advancedprivacy/externalinterfaces/workers/WeeklyReportWorker.kt b/app/src/main/java/foundation/e/advancedprivacy/externalinterfaces/workers/WeeklyReportWorker.kt index b0c10d74..4827eec3 100644 --- a/app/src/main/java/foundation/e/advancedprivacy/externalinterfaces/workers/WeeklyReportWorker.kt +++ b/app/src/main/java/foundation/e/advancedprivacy/externalinterfaces/workers/WeeklyReportWorker.kt @@ -69,9 +69,14 @@ class WeeklyReportWorkerScheduler(private val appContext: Context) { } var next = nextDate.atStartOfDay(ZoneId.systemDefault()) - next = next.plus(WeeklyReportUseCase.REPORT_HOUR, ChronoUnit.HOURS) + next = next.withHour(WeeklyReportUseCase.REPORT_HOUR) val delay = next.toEpochSecond() - now.toEpochSecond() + if (delay <= 0) { + Timber.e("Unexpected delay for next Weekly report, skip scheduling. Delay: $delay seconds") + return + } + Timber.d("Schedule Weeklyreport for $next, in $delay seconds") val request = OneTimeWorkRequestBuilder() -- GitLab