Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b55619e3 authored by Guillaume Jacquart's avatar Guillaume Jacquart
Browse files

Merge branch '8972-fix_weeklyreport_on_winter_time_day' into 'main'

fix:8972: set weekly report at 11 on winter time switch day, fix loop.

See merge request !217
parents eea31289 635d3080
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@ class WeeklyReportLocalRepository(
            val reports = preferences.get(weeklyReportsKey)?.let {
                runCatching { json.decodeFromString<List<WeeklyReport>>(it) }.getOrNull()
            } ?: emptyList()
            val updatedReport: List<WeeklyReport> = reports + report
            val updatedReport: List<WeeklyReport> = reports.takeLast(98) + report
            preferences.set(weeklyReportsKey, json.encodeToString(updatedReport))
            preferences
        }
+1 −1
Original line number Diff line number Diff line
@@ -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<DisplayableReport?>(null)
    val currentReport: StateFlow<DisplayableReport?> = _currentReport
+6 −1
Original line number Diff line number Diff line
@@ -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<WeeklyReportWorker>()