mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-18 15:56:24 +01:00
Fix rendering when editing a message with spoilers.
This commit is contained in:
@@ -45,6 +45,7 @@ import org.thoughtcrime.securesms.components.emoji.MediaKeyboard;
|
||||
import org.thoughtcrime.securesms.components.voice.VoiceNotePlaybackState;
|
||||
import org.thoughtcrime.securesms.conversation.ConversationMessage;
|
||||
import org.thoughtcrime.securesms.conversation.ConversationStickerSuggestionAdapter;
|
||||
import org.thoughtcrime.securesms.conversation.MessageStyler;
|
||||
import org.thoughtcrime.securesms.conversation.VoiceNoteDraftView;
|
||||
import org.thoughtcrime.securesms.database.DraftTable;
|
||||
import org.thoughtcrime.securesms.database.model.MediaMmsMessageRecord;
|
||||
@@ -396,6 +397,7 @@ public class InputPanel extends LinearLayout
|
||||
public void enterEditMessageMode(@NonNull GlideRequests glideRequests, @NonNull ConversationMessage conversationMessageToEdit, boolean fromDraft) {
|
||||
SpannableString textToEdit = conversationMessageToEdit.getDisplayBody(getContext());
|
||||
if (!fromDraft) {
|
||||
MessageStyler.convertSpoilersToComposeMode(textToEdit);
|
||||
composeText.setText(textToEdit);
|
||||
composeText.setSelection(textToEdit.length());
|
||||
}
|
||||
|
||||
@@ -261,6 +261,22 @@ object MessageStyler {
|
||||
}
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun convertSpoilersToComposeMode(text: Spannable) {
|
||||
SpoilerAnnotation.getSpoilerAndClickAnnotations(text)
|
||||
.forEach { (spoiler, clickSpan) ->
|
||||
val start = text.getSpanStart(spoiler)
|
||||
val end = text.getSpanEnd(spoiler)
|
||||
val convertedSpoiler = copyStyleSpan(spoiler, start, end - start)
|
||||
text.removeSpan(spoiler)
|
||||
text.setSpan(convertedSpoiler, start, end, SPAN_FLAGS)
|
||||
|
||||
if (clickSpan != null) {
|
||||
text.removeSpan(clickSpan)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun Any.isSupportedStyle(): Boolean {
|
||||
return when (this) {
|
||||
is CharacterStyle -> isSupportedCharacterStyle()
|
||||
|
||||
Reference in New Issue
Block a user