From d667b8fa984fa8783cbd4f6fe87ee142d344d76e Mon Sep 17 00:00:00 2001 From: Grishka Date: Wed, 11 Jan 2023 13:06:40 +0300 Subject: [PATCH] Fix #498 --- .../android/fragments/ComposeFragment.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java index c13bf37ec..1efee3a37 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java @@ -413,6 +413,8 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr mainEditText.setSelectionListener(this); mainEditText.addTextChangedListener(new TextWatcher(){ + private int lastChangeStart, lastChangeCount; + @Override public void beforeTextChanged(CharSequence s, int start, int count, int after){ @@ -422,6 +424,14 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr public void onTextChanged(CharSequence s, int start, int before, int count){ if(s.length()==0) return; + lastChangeStart=start; + lastChangeCount=count; + } + + @Override + public void afterTextChanged(Editable s){ + int start=lastChangeStart; + int count=lastChangeCount; // offset one char back to catch an already typed '@' or '#' or ':' int realStart=start; start=Math.max(0, start-1); @@ -467,10 +477,7 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr editable.removeSpan(span); } } - } - @Override - public void afterTextChanged(Editable s){ updateCharCounter(); } });