diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/http/WebRequestBuilder.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/http/WebRequestBuilder.kt index 7088a91ac155aed07d229ac9296189331941057d..68167454aaf53ae488865e5a01af6afb894f7d27 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/http/WebRequestBuilder.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/http/WebRequestBuilder.kt @@ -192,7 +192,7 @@ object WebRequestBuilder { ) = suspendCoroutine<String> { cont -> val requestID = UUID.randomUUID() - val getTestResultRequest = + val getTANRequest = TanRequest( url, requestID, @@ -209,7 +209,7 @@ object WebRequestBuilder { }, RequestErrorListener(requestID, cont) ) - RequestQueueHolder.addToRequestQueue(getTestResultRequest) + RequestQueueHolder.addToRequestQueue(getTANRequest) Log.d(TAG, "$requestID: Added $url to queue.") } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/service/submission/SubmissionService.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/service/submission/SubmissionService.kt index b6751d06c724478e4fe715909b3cfff332a1727d..77f4d57c139bd54349221890e6e41a87f50f045a 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/service/submission/SubmissionService.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/service/submission/SubmissionService.kt @@ -22,6 +22,7 @@ object SubmissionService { testTAN != null -> asyncRegisterDeviceViaTAN(testTAN) else -> throw NoGUIDOrTANSetException() } + LocalData.devicePairingSuccessfulTimestamp(System.currentTimeMillis()) } private suspend fun asyncRegisterDeviceViaGUID(guid: String) { @@ -73,6 +74,7 @@ object SubmissionService { fun deleteRegistrationToken() { LocalData.registrationToken(null) + LocalData.devicePairingSuccessfulTimestamp(0L) } private fun deleteAuthCode() { 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 a469d22a34525e210c25ce4af9aee1396ef555ea..7725698b6db5cbfd31fcb576e1ca0dd55ec010c3 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 @@ -386,6 +386,24 @@ object LocalData { return timestamp } + fun devicePairingSuccessfulTimestamp(value: Long) = + with(getSharedPreferenceInstance().edit()) { + putLong( + CoronaWarnApplication.getAppContext() + .getString(R.string.preference_device_pairing_successful_time), + value + ) + commit() + } + + fun devicePairingSuccessfulTimestamp(): Long? { + return getSharedPreferenceInstance().getLong( + CoronaWarnApplication.getAppContext() + .getString(R.string.preference_device_pairing_successful_time), + 0L + ) + } + fun numberOfSuccessfulSubmissions(value: Int) = getSharedPreferenceInstance().edit(true) { putInt( diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/SubmissionRepository.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/SubmissionRepository.kt index 839ab07154fd8e9af0843b08226b5891f7228423..5d3546d60344dadc673df5f389c561195ce40388 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/SubmissionRepository.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/SubmissionRepository.kt @@ -19,12 +19,14 @@ object SubmissionRepository { val testResultValue = WebRequestBuilder.asyncGetTestResult(TEST_RESULT_URL, registrationToken) testResult.value = TestResult.fromInt(testResultValue) - + if (testResult == TestResult.POSITIVE) { + LocalData.isAllowedToSubmitDiagnosisKeys(true) + } val initialTestResultReceivedTimestamp = LocalData.inititalTestResultReceivedTimestamp() if (initialTestResultReceivedTimestamp == null) { val currentTime = System.currentTimeMillis() - LocalData.initialTracingActivationTimestamp(currentTime) + LocalData.inititalTestResultReceivedTimestamp(currentTime) testResultReceivedDate.value = Date(currentTime) } else { testResultReceivedDate.value = Date(initialTestResultReceivedTimestamp) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/viewmodel/SubmissionViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/viewmodel/SubmissionViewModel.kt index 1fec0e4e1226d05b91e02297eed8aa3c73900a81..e1fda8bb4e794f61c1bc300aa34974c0871168e4 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/viewmodel/SubmissionViewModel.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/viewmodel/SubmissionViewModel.kt @@ -60,6 +60,8 @@ class SubmissionViewModel : ViewModel() { fun deregisterTestFromDevice() { deleteTestGUID() SubmissionService.deleteRegistrationToken() + LocalData.isAllowedToSubmitDiagnosisKeys(false) + LocalData.inititalTestResultReceivedTimestamp(0L) } private fun executeRequestWithState(apiRequest: suspend () -> Unit, state: MutableLiveData<ApiRequestState>) { diff --git a/Corona-Warn-App/src/main/res/values/strings.xml b/Corona-Warn-App/src/main/res/values/strings.xml index 9075db9a4438a24f14d71acc9beafe0c31ba7cdf..2839a6bc0dfaf575c21b9ef4eb52e60c00595113 100644 --- a/Corona-Warn-App/src/main/res/values/strings.xml +++ b/Corona-Warn-App/src/main/res/values/strings.xml @@ -47,6 +47,9 @@ <string name="preference_m_registration_token"> <xliff:g id="preference">preference_m_registration_token</xliff:g> </string> + <string name="preference_device_pairing_successful_time"> + <xliff:g id="preference">preference_device_pairing_successful_time</xliff:g> + </string> <string name="preference_initial_tracing_activation_time"> <xliff:g id="preference">preference_initial_tracing_activation_time</xliff:g> </string>