From 86e5c52d6486f89b00892137c7c841e2d7df3c6a Mon Sep 17 00:00:00 2001 From: Giorgos Papadopoulos Date: Wed, 5 Apr 2023 11:09:03 +0200 Subject: [PATCH 1/6] point html links to same website environment as the app --- .../ctr/design/widgets/HtmlTextViewWidget.kt | 20 +++++++++++++++---- .../utils/WebsiteEnvironmentUtilImplTest.kt | 8 ++++++++ 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/design/src/main/java/nl/rijksoverheid/ctr/design/widgets/HtmlTextViewWidget.kt b/design/src/main/java/nl/rijksoverheid/ctr/design/widgets/HtmlTextViewWidget.kt index d4c909f1e..38100d194 100644 --- a/design/src/main/java/nl/rijksoverheid/ctr/design/widgets/HtmlTextViewWidget.kt +++ b/design/src/main/java/nl/rijksoverheid/ctr/design/widgets/HtmlTextViewWidget.kt @@ -23,6 +23,9 @@ import nl.rijksoverheid.ctr.design.ext.getAttrColor import nl.rijksoverheid.ctr.design.ext.isHeading import nl.rijksoverheid.ctr.design.ext.separated import nl.rijksoverheid.ctr.design.spans.BulletPointSpan +import nl.rijksoverheid.ctr.shared.utils.WebsiteEnvironmentUtil +import org.koin.core.component.KoinComponent +import org.koin.core.component.inject private const val HTML_LINKS_ENABLED = false private const val PARAGRAPH_MARGIN_MULTIPLIER = 1.0f @@ -45,7 +48,9 @@ class HtmlTextViewWidget @JvmOverloads constructor( attrs: AttributeSet? = null, defStyle: Int = 0, defStyleRes: Int = 0 -) : LinearLayout(context, attrs, defStyle, defStyleRes) { +) : LinearLayout(context, attrs, defStyle, defStyleRes), KoinComponent { + + private val websiteEnvironmentUtil: WebsiteEnvironmentUtil by inject() private val textColor by lazy { context.getColor(R.color.primary_text) @@ -131,7 +136,12 @@ class HtmlTextViewWidget @JvmOverloads constructor( splitHtmlText: Boolean = false ) { val text = context.getString(htmlText) - setHtmlText(text, htmlLinksEnabled = htmlLinksEnabled, splitHtmlText = splitHtmlText, textIsSelectable = textIsSelectable) + setHtmlText( + text, + htmlLinksEnabled = htmlLinksEnabled, + splitHtmlText = splitHtmlText, + textIsSelectable = textIsSelectable + ) } /** @@ -157,10 +167,12 @@ class HtmlTextViewWidget @JvmOverloads constructor( if (htmlText.isEmpty()) { return } - this.text = htmlText + + val adjustedHtmlText = websiteEnvironmentUtil.adjust(htmlText) + this.text = websiteEnvironmentUtil.adjust(adjustedHtmlText) // Step 1: Parse the given String into a Spannable - val spannable = getSpannableFromHtml(htmlText) + val spannable = getSpannableFromHtml(adjustedHtmlText) this.spannable = spannable // Step 2: Separate the Spannable on each paragraph if diff --git a/shared/src/test/java/nl/rijksoverheid/ctr/shared/utils/WebsiteEnvironmentUtilImplTest.kt b/shared/src/test/java/nl/rijksoverheid/ctr/shared/utils/WebsiteEnvironmentUtilImplTest.kt index 6233c0d91..79977f2df 100644 --- a/shared/src/test/java/nl/rijksoverheid/ctr/shared/utils/WebsiteEnvironmentUtilImplTest.kt +++ b/shared/src/test/java/nl/rijksoverheid/ctr/shared/utils/WebsiteEnvironmentUtilImplTest.kt @@ -38,4 +38,12 @@ class WebsiteEnvironmentUtilImplTest { assert(websiteEnvironmentUtil.adjust(url) == "https://www.coronacheck.nl/en/faq-in-app.html") } + + @Test + fun `given a link in html text, when acc, then return acc web link`() { + every { context.packageName } returns "nl.rijksoverheid.ctr.holder.acc" + + val adjustedUrlText = websiteEnvironmentUtil.adjust("In de privacyverklaring staat hoe de app omgaat met jouw gegevens. Dit zijn de belangrijkste punten:") + assert(adjustedUrlText.contains("acc")) + } } From 25b3c9a7e846327a7f8e5ddf2da628f50726877d Mon Sep 17 00:00:00 2001 From: Giorgos Papadopoulos Date: Wed, 5 Apr 2023 13:46:12 +0200 Subject: [PATCH 2/6] fix button --- .../ctr/appconfig/AppLockedFragment.kt | 29 ++++++++++--------- .../main/res/layout/fragment_app_locked.xml | 2 +- design/src/main/res/values-night/styles.xml | 1 - 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/appconfig/src/main/java/nl/rijksoverheid/ctr/appconfig/AppLockedFragment.kt b/appconfig/src/main/java/nl/rijksoverheid/ctr/appconfig/AppLockedFragment.kt index d4f94dc9b..5787242d6 100644 --- a/appconfig/src/main/java/nl/rijksoverheid/ctr/appconfig/AppLockedFragment.kt +++ b/appconfig/src/main/java/nl/rijksoverheid/ctr/appconfig/AppLockedFragment.kt @@ -10,7 +10,6 @@ package nl.rijksoverheid.ctr.appconfig import android.annotation.SuppressLint import android.content.Intent -import android.net.Uri import android.os.Bundle import android.view.View import androidx.annotation.DrawableRes @@ -52,17 +51,13 @@ class AppLockedFragment : Fragment(R.layout.fragment_app_locked) { R.string.app_status_deactivated_action, R.drawable.illustration_app_status_deactivated ) { - startActivity( - Intent( - Intent.ACTION_VIEW, Uri.parse( - getString( - if (isVerifierApp(requireContext())) { - R.string.verifier_deactivation_url - } else { - R.string.holder_deactivation_url - } - ) - ) + intentUtil.openUrl( + requireContext(), getString( + if (isVerifierApp(requireContext())) { + R.string.verifier_deactivation_url + } else { + R.string.holder_deactivation_url + } ) ) } @@ -78,10 +73,16 @@ class AppLockedFragment : Fragment(R.layout.fragment_app_locked) { } } is AppStatus.LaunchError -> { - val helpdeskPhoneNumber = cachedAppConfigUseCase.getCachedAppConfig().contactInfo.phoneNumber + val helpdeskPhoneNumber = + cachedAppConfigUseCase.getCachedAppConfig().contactInfo.phoneNumber binding.bind( R.string.appstatus_launchError_title, - getString(R.string.appstatus_launchError_body, helpdeskPhoneNumber, helpdeskPhoneNumber, appStatus.errorMessage), + getString( + R.string.appstatus_launchError_body, + helpdeskPhoneNumber, + helpdeskPhoneNumber, + appStatus.errorMessage + ), R.string.appstatus_launchError_button, R.drawable.illustration_app_status_launch_error ) { diff --git a/appconfig/src/main/res/layout/fragment_app_locked.xml b/appconfig/src/main/res/layout/fragment_app_locked.xml index f16e22210..8e8baef49 100644 --- a/appconfig/src/main/res/layout/fragment_app_locked.xml +++ b/appconfig/src/main/res/layout/fragment_app_locked.xml @@ -71,7 +71,7 @@