multiplatform: fix handling HTML in some places (#2963)

This commit is contained in:
Stanislav Dmitrenko 2023-08-21 22:14:23 +03:00 committed by GitHub
parent 538cdd16de
commit 788ee15942
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 22 additions and 15 deletions

View File

@ -24,6 +24,7 @@ import androidx.compose.ui.text.*
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.input.*
import androidx.compose.desktop.ui.tooling.preview.Preview
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.*
import chat.simplex.common.model.*
import chat.simplex.common.ui.theme.*
@ -224,14 +225,14 @@ fun DatabaseEncryptionLayout(
if (initialRandomDBPassphrase.value) {
SectionTextFooter(generalGetString(MR.strings.encrypted_with_random_passphrase))
} else {
SectionTextFooter(generalGetString(MR.strings.impossible_to_recover_passphrase))
SectionTextFooter(annotatedStringResource(MR.strings.impossible_to_recover_passphrase))
}
} else {
SectionTextFooter(generalGetString(MR.strings.keychain_allows_to_receive_ntfs))
}
} else {
SectionTextFooter(generalGetString(MR.strings.you_have_to_enter_passphrase_every_time))
SectionTextFooter(generalGetString(MR.strings.impossible_to_recover_passphrase))
SectionTextFooter(annotatedStringResource(MR.strings.impossible_to_recover_passphrase))
}
}
SectionBottomSpacer()

View File

@ -10,6 +10,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.*
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.*
@ -215,7 +216,7 @@ private fun alertText(text: String?): (@Composable () -> Unit)? {
} else {
({
Text(
text,
escapedHtmlToAnnotatedString(text, LocalDensity.current),
Modifier.fillMaxWidth(),
textAlign = TextAlign.Center,
fontSize = 16.sp,

View File

@ -1,5 +1,7 @@
package chat.simplex.common.views.helpers
import androidx.compose.ui.text.AnnotatedString
interface ValueTitle <T> {
val value: T
val title: String
@ -8,5 +10,5 @@ interface ValueTitle <T> {
data class ValueTitleDesc <T> (
override val value: T,
override val title: String,
val description: String
val description: AnnotatedString
): ValueTitle<T>

View File

@ -21,6 +21,7 @@ import androidx.compose.ui.text.*
import androidx.compose.ui.text.font.*
import androidx.compose.ui.text.input.*
import androidx.compose.desktop.ui.tooling.preview.Preview
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import chat.simplex.common.model.*
@ -337,9 +338,9 @@ private fun UseOnionHosts(
val values = remember {
OnionHosts.values().map {
when (it) {
OnionHosts.NEVER -> ValueTitleDesc(OnionHosts.NEVER, generalGetString(MR.strings.network_use_onion_hosts_no), generalGetString(MR.strings.network_use_onion_hosts_no_desc))
OnionHosts.PREFER -> ValueTitleDesc(OnionHosts.PREFER, generalGetString(MR.strings.network_use_onion_hosts_prefer), generalGetString(MR.strings.network_use_onion_hosts_prefer_desc))
OnionHosts.REQUIRED -> ValueTitleDesc(OnionHosts.REQUIRED, generalGetString(MR.strings.network_use_onion_hosts_required), generalGetString(MR.strings.network_use_onion_hosts_required_desc))
OnionHosts.NEVER -> ValueTitleDesc(OnionHosts.NEVER, generalGetString(MR.strings.network_use_onion_hosts_no), AnnotatedString(generalGetString(MR.strings.network_use_onion_hosts_no_desc)))
OnionHosts.PREFER -> ValueTitleDesc(OnionHosts.PREFER, generalGetString(MR.strings.network_use_onion_hosts_prefer), AnnotatedString(generalGetString(MR.strings.network_use_onion_hosts_prefer_desc)))
OnionHosts.REQUIRED -> ValueTitleDesc(OnionHosts.REQUIRED, generalGetString(MR.strings.network_use_onion_hosts_required), AnnotatedString(generalGetString(MR.strings.network_use_onion_hosts_required_desc)))
}
}
}
@ -368,11 +369,12 @@ private fun SessionModePicker(
showModal: (@Composable (ChatModel) -> Unit) -> (() -> Unit),
updateSessionMode: (TransportSessionMode) -> Unit,
) {
val density = LocalDensity.current
val values = remember {
TransportSessionMode.values().map {
when (it) {
TransportSessionMode.User -> ValueTitleDesc(TransportSessionMode.User, generalGetString(MR.strings.network_session_mode_user), generalGetString(MR.strings.network_session_mode_user_description))
TransportSessionMode.Entity -> ValueTitleDesc(TransportSessionMode.Entity, generalGetString(MR.strings.network_session_mode_entity), generalGetString(MR.strings.network_session_mode_entity_description))
TransportSessionMode.User -> ValueTitleDesc(TransportSessionMode.User, generalGetString(MR.strings.network_session_mode_user), escapedHtmlToAnnotatedString(generalGetString(MR.strings.network_session_mode_user_description), density))
TransportSessionMode.Entity -> ValueTitleDesc(TransportSessionMode.Entity, generalGetString(MR.strings.network_session_mode_entity), escapedHtmlToAnnotatedString(generalGetString(MR.strings.network_session_mode_entity_description), density))
}
}
}

View File

@ -9,6 +9,7 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.material.*
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.AnnotatedString
import dev.icerock.moko.resources.compose.stringResource
import androidx.compose.ui.text.capitalize
import androidx.compose.ui.text.intl.Locale
@ -118,21 +119,21 @@ private fun notificationModes(): List<ValueTitleDesc<NotificationsMode>> {
ValueTitleDesc(
NotificationsMode.OFF,
generalGetString(MR.strings.notifications_mode_off),
generalGetString(MR.strings.notifications_mode_off_desc),
AnnotatedString(generalGetString(MR.strings.notifications_mode_off_desc)),
)
)
res.add(
ValueTitleDesc(
NotificationsMode.PERIODIC,
generalGetString(MR.strings.notifications_mode_periodic),
generalGetString(MR.strings.notifications_mode_periodic_desc),
AnnotatedString(generalGetString(MR.strings.notifications_mode_periodic_desc)),
)
)
res.add(
ValueTitleDesc(
NotificationsMode.SERVICE,
generalGetString(MR.strings.notifications_mode_service),
generalGetString(MR.strings.notifications_mode_service_desc),
AnnotatedString(generalGetString(MR.strings.notifications_mode_service_desc)),
)
)
return res
@ -145,21 +146,21 @@ fun notificationPreviewModes(): List<ValueTitleDesc<NotificationPreviewMode>> {
ValueTitleDesc(
NotificationPreviewMode.MESSAGE,
generalGetString(MR.strings.notification_preview_mode_message),
generalGetString(MR.strings.notification_preview_mode_message_desc),
AnnotatedString(generalGetString(MR.strings.notification_preview_mode_message_desc)),
)
)
res.add(
ValueTitleDesc(
NotificationPreviewMode.CONTACT,
generalGetString(MR.strings.notification_preview_mode_contact),
generalGetString(MR.strings.notification_preview_mode_contact_desc),
AnnotatedString(generalGetString(MR.strings.notification_preview_mode_contact_desc)),
)
)
res.add(
ValueTitleDesc(
NotificationPreviewMode.HIDDEN,
generalGetString(MR.strings.notification_preview_mode_hidden),
generalGetString(MR.strings.notification_display_mode_hidden_desc),
AnnotatedString(generalGetString(MR.strings.notification_display_mode_hidden_desc)),
)
)
return res