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 fd760089702671bfd59f35b157c5154cafd644f0..641bb7e9b50b2767db4138ffbdba2bd6867d6566 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 f2626db9e64574d747132a14072fcb801c0a21a9..cd6d271a419e29d7b111ae9c5f57334977cbbaba 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 b0c10d74196c6db39915226362463661ca5978ad..4827eec3dbb550b592c024142822c6d80de124fc 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()