multiplatform: fix handling HTML in some places (#2963)
This commit is contained in:
parent
538cdd16de
commit
788ee15942
@ -24,6 +24,7 @@ import androidx.compose.ui.text.*
|
|||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.text.input.*
|
import androidx.compose.ui.text.input.*
|
||||||
import androidx.compose.desktop.ui.tooling.preview.Preview
|
import androidx.compose.desktop.ui.tooling.preview.Preview
|
||||||
|
import androidx.compose.ui.platform.LocalDensity
|
||||||
import androidx.compose.ui.unit.*
|
import androidx.compose.ui.unit.*
|
||||||
import chat.simplex.common.model.*
|
import chat.simplex.common.model.*
|
||||||
import chat.simplex.common.ui.theme.*
|
import chat.simplex.common.ui.theme.*
|
||||||
@ -224,14 +225,14 @@ fun DatabaseEncryptionLayout(
|
|||||||
if (initialRandomDBPassphrase.value) {
|
if (initialRandomDBPassphrase.value) {
|
||||||
SectionTextFooter(generalGetString(MR.strings.encrypted_with_random_passphrase))
|
SectionTextFooter(generalGetString(MR.strings.encrypted_with_random_passphrase))
|
||||||
} else {
|
} else {
|
||||||
SectionTextFooter(generalGetString(MR.strings.impossible_to_recover_passphrase))
|
SectionTextFooter(annotatedStringResource(MR.strings.impossible_to_recover_passphrase))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
SectionTextFooter(generalGetString(MR.strings.keychain_allows_to_receive_ntfs))
|
SectionTextFooter(generalGetString(MR.strings.keychain_allows_to_receive_ntfs))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
SectionTextFooter(generalGetString(MR.strings.you_have_to_enter_passphrase_every_time))
|
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()
|
SectionBottomSpacer()
|
||||||
|
@ -10,6 +10,7 @@ import androidx.compose.ui.Alignment
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.focus.*
|
import androidx.compose.ui.focus.*
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
|
import androidx.compose.ui.platform.LocalDensity
|
||||||
import androidx.compose.ui.text.AnnotatedString
|
import androidx.compose.ui.text.AnnotatedString
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.unit.*
|
import androidx.compose.ui.unit.*
|
||||||
@ -215,7 +216,7 @@ private fun alertText(text: String?): (@Composable () -> Unit)? {
|
|||||||
} else {
|
} else {
|
||||||
({
|
({
|
||||||
Text(
|
Text(
|
||||||
text,
|
escapedHtmlToAnnotatedString(text, LocalDensity.current),
|
||||||
Modifier.fillMaxWidth(),
|
Modifier.fillMaxWidth(),
|
||||||
textAlign = TextAlign.Center,
|
textAlign = TextAlign.Center,
|
||||||
fontSize = 16.sp,
|
fontSize = 16.sp,
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package chat.simplex.common.views.helpers
|
package chat.simplex.common.views.helpers
|
||||||
|
|
||||||
|
import androidx.compose.ui.text.AnnotatedString
|
||||||
|
|
||||||
interface ValueTitle <T> {
|
interface ValueTitle <T> {
|
||||||
val value: T
|
val value: T
|
||||||
val title: String
|
val title: String
|
||||||
@ -8,5 +10,5 @@ interface ValueTitle <T> {
|
|||||||
data class ValueTitleDesc <T> (
|
data class ValueTitleDesc <T> (
|
||||||
override val value: T,
|
override val value: T,
|
||||||
override val title: String,
|
override val title: String,
|
||||||
val description: String
|
val description: AnnotatedString
|
||||||
): ValueTitle<T>
|
): ValueTitle<T>
|
||||||
|
@ -21,6 +21,7 @@ import androidx.compose.ui.text.*
|
|||||||
import androidx.compose.ui.text.font.*
|
import androidx.compose.ui.text.font.*
|
||||||
import androidx.compose.ui.text.input.*
|
import androidx.compose.ui.text.input.*
|
||||||
import androidx.compose.desktop.ui.tooling.preview.Preview
|
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.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
import chat.simplex.common.model.*
|
import chat.simplex.common.model.*
|
||||||
@ -337,9 +338,9 @@ private fun UseOnionHosts(
|
|||||||
val values = remember {
|
val values = remember {
|
||||||
OnionHosts.values().map {
|
OnionHosts.values().map {
|
||||||
when (it) {
|
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.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), generalGetString(MR.strings.network_use_onion_hosts_prefer_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), generalGetString(MR.strings.network_use_onion_hosts_required_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),
|
showModal: (@Composable (ChatModel) -> Unit) -> (() -> Unit),
|
||||||
updateSessionMode: (TransportSessionMode) -> Unit,
|
updateSessionMode: (TransportSessionMode) -> Unit,
|
||||||
) {
|
) {
|
||||||
|
val density = LocalDensity.current
|
||||||
val values = remember {
|
val values = remember {
|
||||||
TransportSessionMode.values().map {
|
TransportSessionMode.values().map {
|
||||||
when (it) {
|
when (it) {
|
||||||
TransportSessionMode.User -> ValueTitleDesc(TransportSessionMode.User, generalGetString(MR.strings.network_session_mode_user), generalGetString(MR.strings.network_session_mode_user_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), generalGetString(MR.strings.network_session_mode_entity_description))
|
TransportSessionMode.Entity -> ValueTitleDesc(TransportSessionMode.Entity, generalGetString(MR.strings.network_session_mode_entity), escapedHtmlToAnnotatedString(generalGetString(MR.strings.network_session_mode_entity_description), density))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@ import androidx.compose.foundation.verticalScroll
|
|||||||
import androidx.compose.material.*
|
import androidx.compose.material.*
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.text.AnnotatedString
|
||||||
import dev.icerock.moko.resources.compose.stringResource
|
import dev.icerock.moko.resources.compose.stringResource
|
||||||
import androidx.compose.ui.text.capitalize
|
import androidx.compose.ui.text.capitalize
|
||||||
import androidx.compose.ui.text.intl.Locale
|
import androidx.compose.ui.text.intl.Locale
|
||||||
@ -118,21 +119,21 @@ private fun notificationModes(): List<ValueTitleDesc<NotificationsMode>> {
|
|||||||
ValueTitleDesc(
|
ValueTitleDesc(
|
||||||
NotificationsMode.OFF,
|
NotificationsMode.OFF,
|
||||||
generalGetString(MR.strings.notifications_mode_off),
|
generalGetString(MR.strings.notifications_mode_off),
|
||||||
generalGetString(MR.strings.notifications_mode_off_desc),
|
AnnotatedString(generalGetString(MR.strings.notifications_mode_off_desc)),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
res.add(
|
res.add(
|
||||||
ValueTitleDesc(
|
ValueTitleDesc(
|
||||||
NotificationsMode.PERIODIC,
|
NotificationsMode.PERIODIC,
|
||||||
generalGetString(MR.strings.notifications_mode_periodic),
|
generalGetString(MR.strings.notifications_mode_periodic),
|
||||||
generalGetString(MR.strings.notifications_mode_periodic_desc),
|
AnnotatedString(generalGetString(MR.strings.notifications_mode_periodic_desc)),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
res.add(
|
res.add(
|
||||||
ValueTitleDesc(
|
ValueTitleDesc(
|
||||||
NotificationsMode.SERVICE,
|
NotificationsMode.SERVICE,
|
||||||
generalGetString(MR.strings.notifications_mode_service),
|
generalGetString(MR.strings.notifications_mode_service),
|
||||||
generalGetString(MR.strings.notifications_mode_service_desc),
|
AnnotatedString(generalGetString(MR.strings.notifications_mode_service_desc)),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
return res
|
return res
|
||||||
@ -145,21 +146,21 @@ fun notificationPreviewModes(): List<ValueTitleDesc<NotificationPreviewMode>> {
|
|||||||
ValueTitleDesc(
|
ValueTitleDesc(
|
||||||
NotificationPreviewMode.MESSAGE,
|
NotificationPreviewMode.MESSAGE,
|
||||||
generalGetString(MR.strings.notification_preview_mode_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(
|
res.add(
|
||||||
ValueTitleDesc(
|
ValueTitleDesc(
|
||||||
NotificationPreviewMode.CONTACT,
|
NotificationPreviewMode.CONTACT,
|
||||||
generalGetString(MR.strings.notification_preview_mode_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(
|
res.add(
|
||||||
ValueTitleDesc(
|
ValueTitleDesc(
|
||||||
NotificationPreviewMode.HIDDEN,
|
NotificationPreviewMode.HIDDEN,
|
||||||
generalGetString(MR.strings.notification_preview_mode_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
|
return res
|
||||||
|
Loading…
Reference in New Issue
Block a user