Skip to content

Commit c1b7b7c

Browse files
committed
Fix styling lost in draft state bug.
1 parent b0688ee commit c1b7b7c

3 files changed

Lines changed: 26 additions & 2 deletions

File tree

app/src/main/java/org/thoughtcrime/securesms/components/ComposeText.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ public class ComposeText extends EmojiEditText {
7373
@Nullable private InputPanel.MediaListener mediaListener;
7474
@Nullable private CursorPositionChangedListener cursorPositionChangedListener;
7575
@Nullable private InlineQueryChangedListener inlineQueryChangedListener;
76+
@Nullable private StylingChangedListener stylingChangedListener;
7677

7778
public ComposeText(Context context) {
7879
super(context);
@@ -223,6 +224,10 @@ public void setMentionValidator(@Nullable MentionValidatorWatcher.MentionValidat
223224
mentionValidatorWatcher.setMentionValidator(mentionValidator);
224225
}
225226

227+
public void setStylingChangedListener(@Nullable StylingChangedListener listener) {
228+
stylingChangedListener = listener;
229+
}
230+
226231
private boolean isLandscape() {
227232
return getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE;
228233
}
@@ -579,6 +584,10 @@ public boolean handleFormatText(@IdRes int id) {
579584

580585
Selection.setSelection(getText(), end);
581586

587+
if (stylingChangedListener != null) {
588+
stylingChangedListener.onStylingChanged();
589+
}
590+
582591
return true;
583592
}
584593

@@ -628,4 +637,7 @@ public interface CursorPositionChangedListener {
628637
void onCursorPositionChanged(int start, int end);
629638
}
630639

640+
public interface StylingChangedListener {
641+
void onStylingChanged();
642+
}
631643
}

app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -862,6 +862,7 @@ public void onSuccess(Boolean loadedDraft) {
862862
}
863863

864864
composeText.addTextChangedListener(typingTextWatcher);
865+
composeText.setStylingChangedListener(typingTextWatcher);
865866
composeText.setSelection(composeText.length(), composeText.length());
866867
}
867868
});
@@ -3865,7 +3866,7 @@ public void onFocusChange(View v, boolean hasFocus) {
38653866
}
38663867
}
38673868

3868-
private class ComposeTextWatcher extends SimpleTextWatcher {
3869+
private class ComposeTextWatcher extends SimpleTextWatcher implements ComposeText.StylingChangedListener {
38693870

38703871
private boolean typingStatusEnabled = true;
38713872

@@ -3906,6 +3907,11 @@ private void handleTypingIndicatorOnTextChange(@NonNull String text) {
39063907
public void setTypingStatusEnabled(boolean enabled) {
39073908
this.typingStatusEnabled = enabled;
39083909
}
3910+
3911+
@Override
3912+
public void onStylingChanged() {
3913+
handleSaveDraftOnTextChange(composeText.getTextTrimmed());
3914+
}
39093915
}
39103916

39113917
@Override

app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -563,6 +563,7 @@ class ConversationFragment :
563563
setCursorPositionChangedListener(composeTextEventsListener)
564564
setOnKeyListener(composeTextEventsListener)
565565
addTextChangedListener(composeTextEventsListener)
566+
setStylingChangedListener(composeTextEventsListener)
566567
setOnClickListener(composeTextEventsListener)
567568
onFocusChangeListener = composeTextEventsListener
568569
}
@@ -2667,7 +2668,8 @@ class ConversationFragment :
26672668
View.OnClickListener,
26682669
TextWatcher,
26692670
OnFocusChangeListener,
2670-
ComposeText.CursorPositionChangedListener {
2671+
ComposeText.CursorPositionChangedListener,
2672+
ComposeText.StylingChangedListener {
26712673

26722674
private var beforeLength = 0
26732675
private var previousText = ""
@@ -2746,6 +2748,10 @@ class ConversationFragment :
27462748

27472749
previousText = text
27482750
}
2751+
2752+
override fun onStylingChanged() {
2753+
handleSaveDraftOnTextChange(composeText.textTrimmed)
2754+
}
27492755
}
27502756

27512757
//endregion Compose + Send Callbacks

0 commit comments

Comments
 (0)