Skip to content
Snippets Groups Projects
Unverified Commit d1cfb526 authored by Chilja Gossow's avatar Chilja Gossow Committed by GitHub
Browse files

Hot fix faq invalid vc (EXPOSUREAPP-7709) (#3400)


* add special dialog with link to faq

* move logic

Co-authored-by: default avatarMatthias Urhahn <matthias.urhahn@sap.com>
parent fe084d7d
No related branches found
Tags v2.3.3-RC0
No related merge requests found
......@@ -48,20 +48,26 @@ class InvalidHealthCertificateException(
VC_HC_CWT_NO_ISS("Issuer missing."),
}
val showFaqButton: Boolean
get() = errorCode in codesVcInvalid
private val codesVcInvalid = listOf(
HC_BASE45_DECODING_FAILED,
HC_CBOR_DECODING_FAILED,
HC_COSE_MESSAGE_INVALID,
HC_ZLIB_DECOMPRESSION_FAILED,
HC_COSE_TAG_INVALID,
VC_PREFIX_INVALID,
VC_HC_CWT_NO_DGC,
VC_HC_CWT_NO_EXP,
VC_HC_CWT_NO_HCERT,
VC_HC_CWT_NO_ISS,
VC_JSON_SCHEMA_INVALID
)
val errorMessage: LazyString
get() = when (errorCode) {
HC_BASE45_DECODING_FAILED,
HC_CBOR_DECODING_FAILED,
HC_COSE_MESSAGE_INVALID,
HC_ZLIB_DECOMPRESSION_FAILED,
HC_COSE_TAG_INVALID,
VC_PREFIX_INVALID,
VC_HC_CWT_NO_DGC,
VC_HC_CWT_NO_EXP,
VC_HC_CWT_NO_HCERT,
VC_HC_CWT_NO_ISS,
VC_JSON_SCHEMA_INVALID,
-> CachedString { context ->
in codesVcInvalid -> CachedString { context ->
context.getString(ERROR_MESSAGE_VC_INVALID)
}
VC_NO_VACCINATION_ENTRY -> CachedString { context ->
......@@ -76,6 +82,10 @@ class InvalidHealthCertificateException(
VC_ALREADY_REGISTERED -> CachedString { context ->
context.getString(ERROR_MESSAGE_ALREADY_REGISTERED)
}
// should never get here
else -> CachedString { context ->
context.getString(ERROR_MESSAGE_VC_INVALID)
}
}
override fun toHumanReadableError(context: Context): HumanReadableError {
......
......@@ -12,6 +12,7 @@ import de.rki.coronawarnapp.R
import de.rki.coronawarnapp.bugreporting.ui.toErrorDialogBuilder
import de.rki.coronawarnapp.databinding.FragmentScanQrCodeBinding
import de.rki.coronawarnapp.util.DialogHelper
import de.rki.coronawarnapp.util.ExternalActionHelper.openUrl
import de.rki.coronawarnapp.util.di.AutoInject
import de.rki.coronawarnapp.util.permission.CameraPermissionHelper
import de.rki.coronawarnapp.util.ui.doNavigate
......@@ -19,6 +20,7 @@ import de.rki.coronawarnapp.util.ui.popBackStack
import de.rki.coronawarnapp.util.ui.viewBinding
import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactoryProvider
import de.rki.coronawarnapp.util.viewmodel.cwaViewModels
import de.rki.coronawarnapp.vaccination.core.certificate.InvalidHealthCertificateException
import javax.inject.Inject
class VaccinationQrCodeScanFragment :
......@@ -67,6 +69,11 @@ class VaccinationQrCodeScanFragment :
binding.qrCodeScanSpinner.hide()
it.toErrorDialogBuilder(requireContext()).apply {
setOnDismissListener { popBackStack() }
if (it is InvalidHealthCertificateException && it.showFaqButton) {
setNeutralButton(R.string.error_button_vc_faq) { _, _ ->
openUrl(getString(R.string.error_button_vc_faq_link))
}
}
}.show()
}
}
......
......@@ -85,7 +85,7 @@
</plurals>
<!-- XTXT: Vaccination QR code scan error message-->
<string name="error_vc_invalid">Dieser QR-Code ist kein gültiges Impfzertifikat.</string>
<string name="error_vc_invalid">Dieser QR-Code ist kein gültiges Impfzertifikat.\n\nWeitere Informationen zum Erhalt Ihres Impfzertifikats finden Sie in den FAQ.</string>
<!-- XTXT: Vaccination QR code scan error message-->
<string name="error_vc_not_yet_supported">Dieses Impfzertifikat wird in Ihrer App-Version noch nicht unterstützt. Bitte aktualisieren Sie Ihre App oder wenden Sie sich an die technische Hotline unter „App-Informationen“.</string>
<!-- XTXT: Vaccination QR code scan error message-->
......@@ -111,5 +111,9 @@
<string name="vaccination_consent_onboarding_legal_information">"Weitere Hinweise finden Sie in der Datenschutzerklärung."</string>
<!-- XBUT: Text for vaccination consent accept button -->
<string name="vaccination_consent_accept_button">"Weiter"</string>
<!-- XBUT: Text for invalid vaccination certificate error button, linking to FAQ-->
<string name="error_button_vc_faq">FAQ zu Impfzertifikaten</string>
<!-- XTXT: Explains user about vaccination certificate: URL, has to be "translated" into english (relevant for all languages except german) - https://www.coronawarn.app/en/faq/#vac_cert_invalid -->
<string name="error_button_vc_faq_link">https://www.coronawarn.app/de/faq/#vac_cert_invalid</string>
</resources>
\ No newline at end of file
</resources>
......@@ -111,5 +111,9 @@
<string name="vaccination_consent_onboarding_legal_information">"For more information, please refer to the privacy notice."</string>
<!-- XBUT: Text for vaccination consent accept button -->
<string name="vaccination_consent_accept_button">"Continue"</string>
<!-- XBUT: Text for invalid vaccination certificate error button, linking to FAQ-->
<string name="error_button_vc_faq">FAQ zu Impfzertifikaten</string>
<!-- XTXT: Explains user about vaccination certificate: URL, has to be "translated" into english (relevant for all languages except german) - https://www.coronawarn.app/en/faq/#vac_cert_invalid -->
<string name="error_button_vc_faq_link">https://www.coronawarn.app/en/faq/#vac_cert_invalid</string>
</resources>
\ No newline at end of file
</resources>
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