Skip to content
Snippets Groups Projects
Unverified Commit c7d4f075 authored by Oliver Zimmerman's avatar Oliver Zimmerman Committed by GitHub
Browse files

Fix for error dialog described in EXPOSUREAPP-1293 (#356)


* Update InternalExposureNotificationPermissionHelper.kt

* Update InternalExposureNotificationPermissionHelper.kt

formatting

* Non-crude fix for pop-up issue.

* pipeline fixes

* Update SubmitDiagnosisKeysTransactionTest.kt

temporarily changed test

* Update SubmitDiagnosisKeysTransactionTest.kt

* Update SubmitDiagnosisKeysTransactionTest.kt

Co-authored-by: default avatarJakob Möller <jakob.moeller@sap.com>
parent 4e89fccc
No related branches found
No related tags found
No related merge requests found
......@@ -47,7 +47,6 @@ import de.rki.coronawarnapp.storage.ExposureSummaryRepository
import de.rki.coronawarnapp.storage.LocalData
import de.rki.coronawarnapp.storage.tracing.TracingIntervalRepository
import de.rki.coronawarnapp.transaction.RiskLevelTransaction
import de.rki.coronawarnapp.transaction.SubmitDiagnosisKeysTransaction
import de.rki.coronawarnapp.ui.viewmodel.TracingViewModel
import de.rki.coronawarnapp.util.KeyFileHelper
import kotlinx.android.synthetic.main.fragment_test_for_a_p_i.button_api_enter_other_keys
......@@ -201,7 +200,7 @@ class TestForAPIFragment : Fragment(), InternalExposureNotificationPermissionHel
try {
internalExposureNotificationPermissionHelper.requestPermissionToShareKeys()
SubmitDiagnosisKeysTransaction.start("123")
// SubmitDiagnosisKeysTransaction.start("123")
withContext(Dispatchers.Main) {
showToast("Key submission successful")
}
......
......@@ -136,11 +136,11 @@ class InternalExposureNotificationPermissionHelper(
* @param exception
*/
private fun returnError(exception: Exception) {
exception.report(
ExceptionCategory.EXPOSURENOTIFICATION,
TAG,
null
)
exception.report(
ExceptionCategory.EXPOSURENOTIFICATION,
TAG,
null
)
permissionResolutionInProgress = false
callback.onFailure(exception)
}
......
package de.rki.coronawarnapp.service.submission
import com.google.android.gms.nearby.exposurenotification.TemporaryExposureKey
import de.rki.coronawarnapp.exception.NoGUIDOrTANSetException
import de.rki.coronawarnapp.exception.NoRegistrationTokenSetException
import de.rki.coronawarnapp.http.WebRequestBuilder
......@@ -48,10 +49,10 @@ object SubmissionService {
return WebRequestBuilder.getInstance().asyncGetTan(registrationToken)
}
suspend fun asyncSubmitExposureKeys() {
suspend fun asyncSubmitExposureKeys(keys: List<TemporaryExposureKey>) {
val registrationToken =
LocalData.registrationToken() ?: throw NoRegistrationTokenSetException()
SubmitDiagnosisKeysTransaction.start(registrationToken)
SubmitDiagnosisKeysTransaction.start(registrationToken, keys)
}
suspend fun asyncRequestTestResult(): TestResult {
......
package de.rki.coronawarnapp.transaction
import de.rki.coronawarnapp.nearby.InternalExposureNotificationClient
import com.google.android.gms.nearby.exposurenotification.TemporaryExposureKey
import de.rki.coronawarnapp.service.diagnosiskey.DiagnosisKeyService
import de.rki.coronawarnapp.service.submission.SubmissionService
import de.rki.coronawarnapp.transaction.SubmitDiagnosisKeysTransaction.SubmitDiagnosisKeysTransactionState.CLOSE
......@@ -49,7 +49,7 @@ object SubmitDiagnosisKeysTransaction : Transaction() {
}
/** initiates the transaction. This suspend function guarantees a successful transaction once completed. */
suspend fun start(registrationToken: String) = lockAndExecuteUnique {
suspend fun start(registrationToken: String, keys: List<TemporaryExposureKey>) = lockAndExecuteUnique {
/****************************************************
* RETRIEVE TAN
****************************************************/
......@@ -61,8 +61,7 @@ object SubmitDiagnosisKeysTransaction : Transaction() {
* RETRIEVE TEMPORARY EXPOSURE KEY HISTORY
****************************************************/
val temporaryExposureKeyList = executeState(RETRIEVE_TEMPORARY_EXPOSURE_KEY_HISTORY) {
InternalExposureNotificationClient.asyncGetTemporaryExposureKeyHistory()
.limitKeyCount()
keys.limitKeyCount()
.transformKeyHistoryToExternalFormat()
}
/****************************************************
......
package de.rki.coronawarnapp.ui.submission
import android.content.Intent
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
......@@ -48,7 +49,7 @@ class SubmissionResultPositiveOtherWarningFragment : Fragment(),
override fun onKeySharePermissionGranted(keys: List<TemporaryExposureKey>) {
super.onKeySharePermissionGranted(keys)
submissionViewModel.submitDiagnosisKeys()
submissionViewModel.submitDiagnosisKeys(keys)
}
override fun onFailure(exception: Exception?) {
......@@ -190,4 +191,11 @@ class SubmissionResultPositiveOtherWarningFragment : Fragment(),
submissionRequested = true
internalExposureNotificationPermissionHelper.requestPermissionToShareKeys()
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
this.internalExposureNotificationPermissionHelper.onResolutionComplete(
requestCode,
resultCode
)
}
}
......@@ -4,6 +4,7 @@ import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.google.android.gms.nearby.exposurenotification.TemporaryExposureKey
import de.rki.coronawarnapp.exception.ExceptionCategory
import de.rki.coronawarnapp.exception.TransactionException
import de.rki.coronawarnapp.exception.http.CwaWebException
......@@ -48,9 +49,9 @@ class SubmissionViewModel : ViewModel() {
val deviceUiState: LiveData<DeviceUIState> =
SubmissionRepository.deviceUIState
fun submitDiagnosisKeys() =
fun submitDiagnosisKeys(keys: List<TemporaryExposureKey>) =
executeRequestWithStateForEvent(
SubmissionService::asyncSubmitExposureKeys,
{ SubmissionService.asyncSubmitExposureKeys(keys) },
_submissionState,
_submissionError
)
......
......@@ -40,7 +40,7 @@ class SubmitDiagnosisKeysTransactionTest {
coEvery { DiagnosisKeyService.asyncSubmitKeys(authString, listOf()) } just Runs
runBlocking {
SubmitDiagnosisKeysTransaction.start("123")
SubmitDiagnosisKeysTransaction.start("123", listOf())
coVerifyOrder {
DiagnosisKeyService.asyncSubmitKeys(authString, listOf())
......@@ -64,7 +64,7 @@ class SubmitDiagnosisKeysTransactionTest {
coEvery { DiagnosisKeyService.asyncSubmitKeys(authString, capture(testList)) } just Runs
runBlocking {
SubmitDiagnosisKeysTransaction.start("123")
SubmitDiagnosisKeysTransaction.start("123", listOf(key))
coVerifyOrder {
DiagnosisKeyService.asyncSubmitKeys(authString, any())
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment