Fix styling lost in draft state bug.

This commit is contained in:
Cody Henthorne
2023-06-22 11:16:27 -04:00
parent b0688eed5c
commit c1b7b7c95e
3 changed files with 26 additions and 2 deletions

View File

@@ -73,6 +73,7 @@ public class ComposeText extends EmojiEditText {
@Nullable private InputPanel.MediaListener mediaListener;
@Nullable private CursorPositionChangedListener cursorPositionChangedListener;
@Nullable private InlineQueryChangedListener inlineQueryChangedListener;
@Nullable private StylingChangedListener stylingChangedListener;
public ComposeText(Context context) {
super(context);
@@ -223,6 +224,10 @@ public class ComposeText extends EmojiEditText {
mentionValidatorWatcher.setMentionValidator(mentionValidator);
}
public void setStylingChangedListener(@Nullable StylingChangedListener listener) {
stylingChangedListener = listener;
}
private boolean isLandscape() {
return getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE;
}
@@ -579,6 +584,10 @@ public class ComposeText extends EmojiEditText {
Selection.setSelection(getText(), end);
if (stylingChangedListener != null) {
stylingChangedListener.onStylingChanged();
}
return true;
}
@@ -628,4 +637,7 @@ public class ComposeText extends EmojiEditText {
void onCursorPositionChanged(int start, int end);
}
public interface StylingChangedListener {
void onStylingChanged();
}
}

View File

@@ -862,6 +862,7 @@ public class ConversationParentFragment extends Fragment
}
composeText.addTextChangedListener(typingTextWatcher);
composeText.setStylingChangedListener(typingTextWatcher);
composeText.setSelection(composeText.length(), composeText.length());
}
});
@@ -3865,7 +3866,7 @@ public class ConversationParentFragment extends Fragment
}
}
private class ComposeTextWatcher extends SimpleTextWatcher {
private class ComposeTextWatcher extends SimpleTextWatcher implements ComposeText.StylingChangedListener {
private boolean typingStatusEnabled = true;
@@ -3906,6 +3907,11 @@ public class ConversationParentFragment extends Fragment
public void setTypingStatusEnabled(boolean enabled) {
this.typingStatusEnabled = enabled;
}
@Override
public void onStylingChanged() {
handleSaveDraftOnTextChange(composeText.getTextTrimmed());
}
}
@Override

View File

@@ -563,6 +563,7 @@ class ConversationFragment :
setCursorPositionChangedListener(composeTextEventsListener)
setOnKeyListener(composeTextEventsListener)
addTextChangedListener(composeTextEventsListener)
setStylingChangedListener(composeTextEventsListener)
setOnClickListener(composeTextEventsListener)
onFocusChangeListener = composeTextEventsListener
}
@@ -2667,7 +2668,8 @@ class ConversationFragment :
View.OnClickListener,
TextWatcher,
OnFocusChangeListener,
ComposeText.CursorPositionChangedListener {
ComposeText.CursorPositionChangedListener,
ComposeText.StylingChangedListener {
private var beforeLength = 0
private var previousText = ""
@@ -2746,6 +2748,10 @@ class ConversationFragment :
previousText = text
}
override fun onStylingChanged() {
handleSaveDraftOnTextChange(composeText.textTrimmed)
}
}
//endregion Compose + Send Callbacks