mobile: show markdown in quotes and context items; ios: fix markdown help (#649)

This commit is contained in:
JRoberts
2022-05-13 12:57:30 +04:00
committed by GitHub
parent c1eed47463
commit 9f5ea49676
7 changed files with 33 additions and 36 deletions
@@ -11,8 +11,6 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.withStyle
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import chat.simplex.app.R
@@ -52,7 +50,10 @@ fun ContextItemView(
contentDescription = stringResource(R.string.icon_descr_context),
tint = HighOrLowlight,
)
ContextItemText(contextItem)
MarkdownText(
contextItem.text, contextItem.formattedText,
sender = contextItem.memberDisplayName, senderBold = true, maxLines = 3
)
}
IconButton(onClick = cancelContextItem) {
Icon(
@@ -65,20 +66,6 @@ fun ContextItemView(
}
}
@Composable
private fun ContextItemText(cxtItem: ChatItem) {
val member = cxtItem.memberDisplayName
if (member == null) {
Text(cxtItem.text, maxLines = 3)
} else {
val annotatedText = buildAnnotatedString {
withStyle(boldFont) { append(member) }
append(": ${cxtItem.text}")
}
Text(annotatedText, maxLines = 3)
}
}
@Preview
@Composable
fun PreviewContextItemView() {
@@ -50,7 +50,7 @@ fun FramedItemView(
contentAlignment = Alignment.TopStart
) {
MarkdownText(
qi.text, sender = qi.sender(user), senderBold = true, maxLines = 3,
qi.text, qi.formattedText, sender = qi.sender(user), senderBold = true, maxLines = 3,
style = TextStyle(fontSize = 15.sp, color = MaterialTheme.colors.onSurface)
)
}
@@ -139,7 +139,7 @@ struct FramedItemView: View {
@ViewBuilder private func ciMsgContentView(_ ci: ChatItem, _ showMember: Bool = false) -> some View {
let v = MsgContentView(
content: ci.content,
text: ci.text,
formattedText: ci.formattedText,
sender: showMember ? ci.memberDisplayName : nil,
metaText: ci.timestampText,
@@ -168,7 +168,8 @@ private struct MetaColorPreferenceKey: PreferenceKey {
private func ciQuotedMsgView(_ qi: CIQuote) -> some View {
MsgContentView(
content: qi,
text: qi.text,
formattedText: qi.formattedText,
sender: qi.getSender(ChatModel.shared.currentUser)
)
.lineLimit(3)
@@ -12,14 +12,14 @@ private let uiLinkColor = UIColor(red: 0, green: 0.533, blue: 1, alpha: 1)
private let linkColor = Color(uiColor: uiLinkColor)
struct MsgContentView: View {
var content: ItemContent
var text: String
var formattedText: [FormattedText]? = nil
var sender: String? = nil
var metaText: Text? = nil
var edited = false
var body: some View {
let v = messageText(content.text, formattedText, sender)
let v = messageText(text, formattedText, sender)
if let mt = metaText {
return v + reserveSpaceForMeta(mt, edited)
} else {
@@ -90,7 +90,7 @@ struct MsgContentView_Previews: PreviewProvider {
static var previews: some View {
let chatItem = ChatItem.getSample(1, .directSnd, .now, "hello")
return MsgContentView(
content: chatItem.content,
text: chatItem.text,
formattedText: chatItem.formattedText,
sender: chatItem.memberDisplayName,
metaText: chatItem.timestampText
@@ -21,7 +21,12 @@ struct ContextItemView: View {
.aspectRatio(contentMode: .fit)
.frame(width: 16, height: 16)
.foregroundColor(.secondary)
contextText(contextItem).lineLimit(3)
MsgContentView(
text: contextItem.text,
formattedText: contextItem.formattedText,
sender: contextItem.memberDisplayName
)
.lineLimit(3)
Spacer()
Button {
withAnimation {
@@ -37,14 +42,6 @@ struct ContextItemView: View {
.background(chatItemFrameColor(contextItem, colorScheme))
.padding(.top, 8)
}
func contextText(_ cxtItem: ChatItem) -> some View {
if let s = cxtItem.memberDisplayName {
return (Text(s).fontWeight(.medium) + Text(": \(cxtItem.text)"))
} else {
return Text(cxtItem.text)
}
}
}
struct ContextItemView_Previews: PreviewProvider {
@@ -77,7 +77,7 @@
</trans-unit>
<trans-unit id="*bold*" xml:space="preserve">
<source>*bold*</source>
<target>*bold*</target>
<target>\*bold*</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id=", " xml:space="preserve">
@@ -1030,12 +1030,12 @@ SimpleX servers cannot see your profile.</target>
</trans-unit>
<trans-unit id="_italic_" xml:space="preserve">
<source>_italic_</source>
<target>_italic_</target>
<target>\_italic_</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="`a + b`" xml:space="preserve">
<source>`a + b`</source>
<target>`a + b`</target>
<target>\`a + b`</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="above, then choose:" xml:space="preserve">
@@ -1201,7 +1201,7 @@ SimpleX servers cannot see your profile.</target>
</trans-unit>
<trans-unit id="~strike~" xml:space="preserve">
<source>~strike~</source>
<target>~strike~</target>
<target>\~strike~</target>
<note>No comment provided by engineer.</note>
</trans-unit>
</body>
+12
View File
@@ -9,3 +9,15 @@
/* No comment provided by engineer. */
"**Add new contact**: to create your one-time QR Code for your contact." = "**Add new contact**: to create your one-time QR Code or link for your contact.";
/* No comment provided by engineer. */
"*bold*" = "\\*bold*";
/* No comment provided by engineer. */
"_italic_" = "\\_italic_";
/* No comment provided by engineer. */
"~strike~" = "\\~strike~";
/* No comment provided by engineer. */
"`a + b`" = "\\`a + b`";