Skip to content

Commit 977268b

Browse files
authored
Fix bullet points not having leading margin on timeline items (#4536)
* Fix bullet points not having leading margin on timeline items * Remove other usages of `SpannableString` constructor, use either `valueOf` to reuse the existing value or `SpannedString` instead if the spans don't have to change
1 parent b1dd555 commit 977268b

File tree

5 files changed

+8
-10
lines changed

5 files changed

+8
-10
lines changed

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemTextView.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
package io.element.android.features.messages.impl.timeline.components.event
99

10-
import android.text.SpannableString
10+
import android.text.SpannedString
1111
import androidx.annotation.VisibleForTesting
1212
import androidx.compose.foundation.layout.Box
1313
import androidx.compose.material3.LocalContentColor
@@ -71,7 +71,7 @@ fun TimelineItemTextView(
7171
internal fun getTextWithResolvedMentions(content: TimelineItemTextBasedContent): CharSequence {
7272
val mentionSpanUpdater = LocalMentionSpanUpdater.current
7373
val bodyWithResolvedMentions = mentionSpanUpdater.rememberMentionSpans(content.formattedBody)
74-
return SpannableString(bodyWithResolvedMentions)
74+
return SpannedString.valueOf(bodyWithResolvedMentions)
7575
}
7676

7777
@PreviewsDayNight

libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ fun ClickableLinkText(
135135

136136
fun AnnotatedString.linkify(linkStyle: SpanStyle): AnnotatedString {
137137
val original = this
138-
val spannable = SpannableString(this.text)
138+
val spannable = SpannableString.valueOf(this.text)
139139
LinkifyCompat.addLinks(spannable, Linkify.WEB_URLS or Linkify.PHONE_NUMBERS or Linkify.EMAIL_ADDRESSES)
140140

141141
val spans = spannable.getSpans(0, spannable.length, URLSpan::class.java)

libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/text/AnnotatedStrings.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
package io.element.android.libraries.designsystem.text
99

1010
import android.graphics.Typeface
11-
import android.text.SpannableString
11+
import android.text.SpannedString
1212
import android.text.style.ForegroundColorSpan
1313
import android.text.style.StyleSpan
1414
import android.text.style.UnderlineSpan
@@ -26,7 +26,7 @@ import io.element.android.compound.theme.LinkColor
2626

2727
fun String.toAnnotatedString(): AnnotatedString = buildAnnotatedString {
2828
append(this@toAnnotatedString)
29-
val spannable = SpannableString(this@toAnnotatedString)
29+
val spannable = SpannedString.valueOf(this@toAnnotatedString)
3030
spannable.getSpans(0, spannable.length, Any::class.java).forEach { span ->
3131
val start = spannable.getSpanStart(span)
3232
val end = spannable.getSpanEnd(span)

libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/components/markdown/StableCharSequence.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ import io.element.android.libraries.core.extensions.orEmpty
1616

1717
@Stable
1818
class StableCharSequence(initialText: CharSequence = "") {
19-
private var value by mutableStateOf<SpannableString>(SpannableString(initialText))
19+
private var value by mutableStateOf<SpannableString>(SpannableString.valueOf(initialText))
2020
private var needsDisplaying by mutableStateOf(false)
2121

2222
fun update(newText: CharSequence?, needsDisplaying: Boolean) {
23-
value = SpannableString(newText.orEmpty())
23+
value = SpannableString.valueOf(newText.orEmpty())
2424
this.needsDisplaying = needsDisplaying
2525
}
2626

libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/model/MarkdownTextEditorState.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ package io.element.android.libraries.textcomposer.model
99

1010
import android.os.Parcelable
1111
import android.text.Spannable
12-
import android.text.SpannableString
1312
import android.text.SpannableStringBuilder
1413
import android.text.Spanned
1514
import androidx.compose.runtime.Composable
@@ -118,8 +117,7 @@ class MarkdownTextEditorState(
118117
}
119118

120119
fun getMentions(): List<IntentionalMention> {
121-
val text = SpannableString(text.value())
122-
val mentionSpans = text.getMentionSpans()
120+
val mentionSpans = text.value().getMentionSpans()
123121
return mentionSpans.mapNotNull { mentionSpan ->
124122
when (mentionSpan.type) {
125123
is MentionType.User -> IntentionalMention.User(mentionSpan.type.userId)

0 commit comments

Comments
 (0)