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: