diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5c9f7666..66c7905a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -194,6 +194,7 @@ dependencies { implementation(libs.google.firebase.messaging) implementation(libs.appauth) implementation(libs.jwtdecode) + implementation(libs.material3.html.text) implementation(libs.dagger.hilt.android) implementation(libs.dagger.hilt.fragment) diff --git a/app/src/main/kotlin/nl/eduid/screens/scan/RegistrationExplanation.kt b/app/src/main/kotlin/nl/eduid/screens/scan/RegistrationExplanation.kt index 462f842d..d4dd629b 100644 --- a/app/src/main/kotlin/nl/eduid/screens/scan/RegistrationExplanation.kt +++ b/app/src/main/kotlin/nl/eduid/screens/scan/RegistrationExplanation.kt @@ -4,19 +4,16 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.tooling.preview.Preview +import de.charlex.compose.material3.HtmlText import nl.eduid.R -import nl.eduid.ui.annotatedStringWithBoldParts import nl.eduid.ui.theme.EduidAppAndroidTheme @Composable @@ -25,14 +22,10 @@ fun RegistrationExplanation(modifier: Modifier = Modifier) = Column( verticalArrangement = Arrangement.Bottom, modifier = modifier ) { - Text( - text = annotatedStringWithBoldParts( - stringResource(R.string.ScanView_MainText_COPY), - stringResource(R.string.ScanView_MainTextBoldPart_COPY), - boldWeight = FontWeight.Bold - ), + HtmlText( + text = stringResource(R.string.ScanView_MainText_COPY), style = MaterialTheme.typography.titleLarge.copy( - textAlign = TextAlign.Center, color = Color.White, fontWeight = FontWeight.SemiBold + textAlign = TextAlign.Center, color = Color.White, fontWeight = FontWeight.Normal ), modifier = Modifier.fillMaxWidth() ) diff --git a/app/src/main/kotlin/nl/eduid/ui/HtmlText.kt b/app/src/main/kotlin/nl/eduid/ui/HtmlText.kt deleted file mode 100644 index 37b942c8..00000000 --- a/app/src/main/kotlin/nl/eduid/ui/HtmlText.kt +++ /dev/null @@ -1,30 +0,0 @@ -package nl.eduid.ui - -import android.text.method.LinkMovementMethod -import android.widget.TextView -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.viewinterop.AndroidView -import androidx.core.text.HtmlCompat -import nl.eduid.ui.theme.EduidAppAndroidTheme - -@Composable -fun HtmlText(html: String, modifier: Modifier = Modifier) { - AndroidView( - modifier = modifier, - factory = { context -> TextView(context).apply { - movementMethod = LinkMovementMethod.getInstance() - } }, - update = { it.text = HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_COMPACT) } - ) -} - - -@Preview -@Composable -private fun HtmlText_Preview() { - EduidAppAndroidTheme { - HtmlText(html = "HTML

description") - } -} diff --git a/app/src/main/kotlin/nl/eduid/ui/TermsAndConditions.kt b/app/src/main/kotlin/nl/eduid/ui/TermsAndConditions.kt index 2353a1b2..580a5343 100644 --- a/app/src/main/kotlin/nl/eduid/ui/TermsAndConditions.kt +++ b/app/src/main/kotlin/nl/eduid/ui/TermsAndConditions.kt @@ -1,20 +1,14 @@ package nl.eduid.ui -import android.text.Html import androidx.compose.foundation.layout.* -import androidx.compose.foundation.text.ClickableText import androidx.compose.material3.* import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.AnnotatedString -import androidx.compose.ui.text.SpanStyle -import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import de.charlex.compose.material3.HtmlText import nl.eduid.R import nl.eduid.ui.theme.EduidAppAndroidTheme @@ -37,7 +31,7 @@ fun CheckToSAndPrivacyPolicy( .width(16.dp) ) HtmlText( - html = stringResource(id = R.string.LinkFromInstitution_AgreeWithTerms_COPY), + text = stringResource(id = R.string.LinkFromInstitution_AgreeWithTerms_COPY), modifier = Modifier .wrapContentWidth() .padding(start = 12.dp) diff --git a/app/src/main/kotlin/nl/eduid/ui/theme/Color.kt b/app/src/main/kotlin/nl/eduid/ui/theme/Color.kt index d8b71d9e..10578a1d 100644 --- a/app/src/main/kotlin/nl/eduid/ui/theme/Color.kt +++ b/app/src/main/kotlin/nl/eduid/ui/theme/Color.kt @@ -10,7 +10,7 @@ val md_theme_light_secondary = Color(0xFF0060AC) val md_theme_light_onSecondary = Color(0xFFFFFFFF) val md_theme_light_secondaryContainer = Color(0xFFD4E3FF) val md_theme_light_onSecondaryContainer = Color(0xFF001C39) -val md_theme_light_tertiary = Color(0xFF006874) +val md_theme_light_tertiary = Color(0xFF0060AC) val md_theme_light_onTertiary = Color(0xFFFFFFFF) val md_theme_light_tertiaryContainer = Color(0xFF97F0FF) val md_theme_light_onTertiaryContainer = Color(0xFF001F24) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 12d0e351..95144332 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -20,7 +20,7 @@ "Activiteit" "Scan QR" "Scan de QR-code" - "Zie je geen QR-code?\nGa naar eduid.nl/security\nMaak je persoonlijke QR-code aan\nScan het hier\n" + "<b>Zie je geen QR-code?</b><br/>\nGa naar <a href="https://eduid.nl/security" target="_blank">eduid.nl/security</a><br/>\nMaak je persoonlijke QR-code aan<br/>\nScan het hier\n" "Zie je geen QR-code?" "Zaklamp is niet beschikbaar" "Zet zaklamp aan" @@ -456,7 +456,7 @@ "We raden je aan om je persoonlijke e-mailadres te gebruiken voor eduID." "Domeinnaam %1$s niet toegestaan." "eduID is beperkt om alleen te worden gebruikt door toegestane domeinen." - "<span>Ik ga akkoord met <a tabindex='-1' href='https://eduid.nl/gebruiksvoorwaarden/' target='_blank'>de voorwaarden.</a> En ik begrijp <a tabindex='-1' href='https://eduid.nl/privacyverklaring/' target='_blank'>de privacyverklaring</a>.</span>" + "<span>Ik ga akkoord met <a tabindex='-1' href='https://eduid.nl/gebruiksvoorwaarden/' target='_blank'>de voorwaarden.</a> En ik begrijp <a tabindex='-1' href='https://eduid.nl/privacy/' target='_blank'>de privacyverklaring</a>.</span>" "Vraag je eduID aan" "Open je mailbox!" "Wachten tot je op de link klikt..." diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 34266cad..0a38432c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -20,7 +20,7 @@ "Activity" "Scan QR" "Scan the QR-code" - "Don't see a QR code?\nGo to eduid.nl/security\nCreate your personal QR code\nScan it here\n" + "<b>Don't see a QR code?</b><br/>\nGo to <a href="https://eduid.nl/security" target="_blank">eduid.nl/security</a><br/>\nCreate your personal QR code<br/>\nScan it here\n" "Don't see a QR code?" "Torch isn't available" "Turn on flashlight" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1e4530c6..f4561c2e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -android-sdk-compile = "33" +android-sdk-compile = "34" android-sdk-target = "33" android-sdk-min = "24" android-buildTools = "33.0.0" @@ -88,6 +88,7 @@ jwtdecode = "com.auth0.android:jwtdecode:2.0.2" google-android-material = "com.google.android.material:material:1.9.0" google-mlkit-barcode = "com.google.mlkit:barcode-scanning:17.1.0" google-firebase-messaging = "com.google.firebase:firebase-messaging-ktx:23.1.0" +material3-html-text = "de.charlex.compose.material3:material3-html-text:2.0.0-beta01" okhttp-okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" } okhttp-logging = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttp" } diff --git a/localizations.yaml b/localizations.yaml index 54e48a3b..b6bce450 100644 --- a/localizations.yaml +++ b/localizations.yaml @@ -133,14 +133,14 @@ SHARED: MainText: COPY: en: | - Don't see a QR code? - Go to eduid.nl/security - Create your personal QR code + Don't see a QR code?
+ Go to eduid.nl/security
+ Create your personal QR code
Scan it here nl: | - Zie je geen QR-code? - Ga naar eduid.nl/security - Maak je persoonlijke QR-code aan + Zie je geen QR-code?
+ Ga naar eduid.nl/security
+ Maak je persoonlijke QR-code aan
Scan het hier MainTextBoldPart: COPY: @@ -2279,7 +2279,7 @@ SHARED: Ik ga akkoord met de voorwaarden. En ik begrijp de + href='https://eduid.nl/privacy/' target='_blank'>de privacyverklaring. RequestEduIdButton: COPY: