Dismiss forecasts that are more than 7 days in the future

This commit is contained in:
MM20
2025-10-12 18:13:20 +02:00
parent 423caa8879
commit 19a5acdf43
3 changed files with 11 additions and 3 deletions

View File

@@ -244,8 +244,9 @@ class WeatherUpdateWorker(
Result.retry()
} else {
Log.i("WeatherUpdateWorker", "Weather update succeeded")
val in7Days = System.currentTimeMillis() + Duration.ofDays(7).toMillis()
appDatabase.weatherDao()
.replaceAll(weatherData.map { it.toDatabaseEntity() })
.replaceAll(weatherData.takeWhile { it.timestamp < in7Days }.map { it.toDatabaseEntity() })
settings.setLastUpdate(System.currentTimeMillis())
Result.success()
}

View File

@@ -12,6 +12,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject
import java.time.Duration
import kotlin.time.Duration.Companion.days
class BreezyWeatherProvider(
@@ -112,8 +113,9 @@ class BreezyWeatherProvider(
}
withContext(Dispatchers.IO) {
val in7Days = System.currentTimeMillis() + Duration.ofDays(7).toMillis()
database.weatherDao()
.replaceAll(result.map { it.toDatabaseEntity() })
.replaceAll(result.takeWhile { it.timestamp < in7Days }.map { it.toDatabaseEntity() })
}
}