From 3baa2b39779a2c2a605ef9486e8b649cbb66d0b6 Mon Sep 17 00:00:00 2001 From: Ralf Gehrer <ralfgehrer@users.noreply.github.com> Date: Wed, 18 Nov 2020 14:52:47 +0100 Subject: [PATCH] Remove manual refresh of last fetched timestamp (EXPOSUREAPP-3843) #1648 --- .../de/rki/coronawarnapp/storage/LocalData.kt | 8 ++++++++ .../coronawarnapp/storage/TracingRepository.kt | 15 +-------------- .../ui/main/home/HomeFragmentViewModel.kt | 1 - .../details/RiskDetailsFragmentViewModel.kt | 1 - 4 files changed, 9 insertions(+), 16 deletions(-) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/LocalData.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/LocalData.kt index 04b08cdd1..279d405c9 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/LocalData.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/LocalData.kt @@ -5,9 +5,11 @@ import androidx.core.content.edit import de.rki.coronawarnapp.CoronaWarnApplication import de.rki.coronawarnapp.R import de.rki.coronawarnapp.risk.RiskLevel +import de.rki.coronawarnapp.util.preferences.createFlowPreference import de.rki.coronawarnapp.util.security.SecurityHelper.globalEncryptedSharedPreferencesInstance import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.map import java.util.Date /** @@ -399,6 +401,12 @@ object LocalData { return Date(time) } + fun lastTimeDiagnosisKeysFromServerFetchFlow() = + getSharedPreferenceInstance() + .createFlowPreference<Long?>(CoronaWarnApplication.getAppContext() + .getString(R.string.preference_timestamp_diagnosis_keys_fetch), 0L).flow + .map { if (it != null && it != 0L) Date(it) else null } + /** * Sets the last time the server fetched the diagnosis keys from the server as Date object * from the EncryptedSharedPrefs diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/TracingRepository.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/TracingRepository.kt index e45cbc98f..64f63583a 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/TracingRepository.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/TracingRepository.kt @@ -49,22 +49,11 @@ class TracingRepository @Inject constructor( private val timeStamper: TimeStamper ) { - private val internalLastTimeDiagnosisKeysFetched = MutableStateFlow<Date?>(null) - val lastTimeDiagnosisKeysFetched: Flow<Date?> = internalLastTimeDiagnosisKeysFetched + val lastTimeDiagnosisKeysFetched: Flow<Date?> = LocalData.lastTimeDiagnosisKeysFromServerFetchFlow() private val internalActiveTracingDaysInRetentionPeriod = MutableStateFlow(0L) val activeTracingDaysInRetentionPeriod: Flow<Long> = internalActiveTracingDaysInRetentionPeriod - /** - * Refresh the last time diagnosis keys fetched date with the current shared preferences state. - * - * @see LocalData - */ - fun refreshLastTimeDiagnosisKeysFetchedDate() { - internalLastTimeDiagnosisKeysFetched.value = - LocalData.lastTimeDiagnosisKeysFromServerFetch() - } - private val internalIsRefreshing = taskController.tasks.map { it.isDownloadDiagnosisKeysTaskRunning() || it.isRiskLevelTaskRunning() } @@ -104,7 +93,6 @@ class TracingRepository @Inject constructor( ) ) taskController.submit(DefaultTaskRequest(RiskLevelTask::class)) - refreshLastTimeDiagnosisKeysFetchedDate() TimerHelper.startManualKeyRetrievalTimer() } } @@ -152,7 +140,6 @@ class TracingRepository @Inject constructor( DownloadDiagnosisKeysTask.Arguments() ) ) - refreshLastTimeDiagnosisKeysFetchedDate() TimerHelper.checkManualKeyRetrievalTimer() taskController.submit(DefaultTaskRequest(RiskLevelTask::class)) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt index ea111127b..0141c47ef 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt @@ -104,7 +104,6 @@ class HomeFragmentViewModel @AssistedInject constructor( // TODO the ordering here is weird, do we expect these to run in sequence? tracingRepository.refreshRiskLevel() tracingRepository.refreshExposureSummary() - tracingRepository.refreshLastTimeDiagnosisKeysFetchedDate() tracingRepository.refreshActiveTracingDaysInRetentionPeriod() TimerHelper.checkManualKeyRetrievalTimer() tracingRepository.refreshLastSuccessfullyCalculatedScore() diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/tracing/details/RiskDetailsFragmentViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/tracing/details/RiskDetailsFragmentViewModel.kt index 2075f82ed..0c7d1c019 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/tracing/details/RiskDetailsFragmentViewModel.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/tracing/details/RiskDetailsFragmentViewModel.kt @@ -37,7 +37,6 @@ class RiskDetailsFragmentViewModel @AssistedInject constructor( fun refreshData() { tracingRepository.refreshRiskLevel() tracingRepository.refreshExposureSummary() - tracingRepository.refreshLastTimeDiagnosisKeysFetchedDate() TimerHelper.checkManualKeyRetrievalTimer() tracingRepository.refreshActiveTracingDaysInRetentionPeriod() } -- GitLab