From c75cafd5f594ac9b37a70627a583c622f16ef12a Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Thu, 26 Jun 2025 14:14:28 -0300 Subject: [PATCH] Add click handling to choose backup type learn more. --- .../MessageBackupsFlowFragment.kt | 7 +++++- .../MessageBackupsTypeSelectionScreen.kt | 22 +++++++++---------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsFlowFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsFlowFragment.kt index 0791c7ba00..c7c9d0234a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsFlowFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsFlowFragment.kt @@ -171,7 +171,12 @@ class MessageBackupsFlowFragment : ComposeFragment(), InAppPaymentCheckoutDelega isNextEnabled = state.isCheckoutButtonEnabled(), onMessageBackupsTierSelected = viewModel::onMessageBackupTierUpdated, onNavigationClick = viewModel::goToPreviousStage, - onReadMoreClicked = {}, + onReadMoreClicked = { + CommunicationActions.openBrowserLink( + requireContext(), + getString(R.string.backup_support_url) + ) + }, onNextClicked = viewModel::goToNextStage ) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsTypeSelectionScreen.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsTypeSelectionScreen.kt index cd50661f01..f00ee4f96f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsTypeSelectionScreen.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsTypeSelectionScreen.kt @@ -17,7 +17,6 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.foundation.text.ClickableText import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -39,10 +38,11 @@ import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.ExperimentalTextApi +import androidx.compose.ui.text.LinkAnnotation import androidx.compose.ui.text.SpanStyle import androidx.compose.ui.text.buildAnnotatedString import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.text.withAnnotation +import androidx.compose.ui.text.withLink import androidx.compose.ui.text.withStyle import androidx.compose.ui.unit.dp import kotlinx.collections.immutable.persistentListOf @@ -119,28 +119,26 @@ fun MessageBackupsTypeSelectionScreen( val primaryColor = MaterialTheme.colorScheme.primary val readMoreString = buildAnnotatedString { append(stringResource(id = R.string.MessageBackupsTypeSelectionScreen__all_backups_are_end_to_end_encrypted)) - - val readMore = stringResource(id = R.string.MessageBackupsTypeSelectionScreen__learn_more) append(" ") - withAnnotation(tag = "URL", annotation = "learn-more") { + + withLink( + LinkAnnotation.Clickable(tag = "learn-more") { + onReadMoreClicked() + } + ) { withStyle( style = SpanStyle( color = primaryColor ) ) { - append(readMore) + append(stringResource(id = R.string.MessageBackupsTypeSelectionScreen__learn_more)) } } } - ClickableText( + Text( text = readMoreString, style = MaterialTheme.typography.bodyLarge.copy(textAlign = TextAlign.Center, color = MaterialTheme.colorScheme.onSurfaceVariant), - onClick = { offset -> - readMoreString - .getStringAnnotations(tag = "URL", start = offset, end = offset) - .firstOrNull()?.let { onReadMoreClicked() } - }, modifier = Modifier.padding(top = 8.dp) ) }