From 3c487112f8a91dcbe5140277cda89724d1908146 Mon Sep 17 00:00:00 2001 From: Matthias Urhahn <matthias.urhahn@sap.com> Date: Wed, 16 Jun 2021 10:45:30 +0200 Subject: [PATCH] Fix clicked corona-test links, with DCC support, not navigating to DCC consent screen, so it behaves the same as it when it is scanned via camera. (#3457) Co-authored-by: Mohamed Metwalli <mohamed.metwalli@sap.com> --- .../consent/SubmissionConsentFragment.kt | 19 +++++++----- .../consent/SubmissionConsentViewModel.kt | 31 ++++++++++++------- 2 files changed, 31 insertions(+), 19 deletions(-) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/qrcode/consent/SubmissionConsentFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/qrcode/consent/SubmissionConsentFragment.kt index 3423316e4..6c5384b49 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/qrcode/consent/SubmissionConsentFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/qrcode/consent/SubmissionConsentFragment.kt @@ -55,15 +55,18 @@ class SubmissionConsentFragment : Fragment(R.layout.fragment_submission_consent) requireActivity(), REQUEST_USER_RESOLUTION ) - is SubmissionNavigationEvents.NavigateToDeletionWarningFragmentFromQrCode -> { - doNavigate( - NavGraphDirections - .actionToSubmissionDeletionWarningFragment( - testRegistrationRequest = it.coronaTestQRCode, - isConsentGiven = it.consentGiven, - ) + is SubmissionNavigationEvents.NavigateToDeletionWarningFragmentFromQrCode -> doNavigate( + NavGraphDirections.actionToSubmissionDeletionWarningFragment( + testRegistrationRequest = it.coronaTestQRCode, + isConsentGiven = it.consentGiven, ) - } + ) + is SubmissionNavigationEvents.NavigateToRequestDccFragment -> doNavigate( + NavGraphDirections.actionRequestCovidCertificateFragment( + testRegistrationRequest = it.coronaTestQRCode, + coronaTestConsent = it.consentGiven + ) + ) } } viewModel.countries.observe2(this) { diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/qrcode/consent/SubmissionConsentViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/qrcode/consent/SubmissionConsentViewModel.kt index 4bd68d504..643028c08 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/qrcode/consent/SubmissionConsentViewModel.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/qrcode/consent/SubmissionConsentViewModel.kt @@ -83,17 +83,26 @@ class SubmissionConsentViewModel @AssistedInject constructor( val coronaTest = submissionRepository.testForType(coronaTestQRCode.type).first() - if (coronaTest != null) { - SubmissionNavigationEvents.NavigateToDeletionWarningFragmentFromQrCode( - coronaTestQRCode, - consentGiven = true - ).run { routeToScreen.postValue(this) } - } else { - registrationStateProcessor.startRegistration( - request = coronaTestQRCode, - isSubmissionConsentGiven = true, - allowReplacement = false - ) + when { + coronaTest != null -> { + SubmissionNavigationEvents.NavigateToDeletionWarningFragmentFromQrCode( + coronaTestQRCode, + consentGiven = true + ).run { routeToScreen.postValue(this) } + } + coronaTestQRCode.isDccSupportedByPoc && !coronaTestQRCode.isDccConsentGiven -> { + SubmissionNavigationEvents.NavigateToRequestDccFragment( + coronaTestQRCode = coronaTestQRCode, + consentGiven = true, + ).run { routeToScreen.postValue(this) } + } + else -> { + registrationStateProcessor.startRegistration( + request = coronaTestQRCode, + isSubmissionConsentGiven = true, + allowReplacement = false + ) + } } } -- GitLab