From 87ce6b8bb16742516b34a465279b69f868a69dfb 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 300803ecd..9a4684b6d 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java @@ -527,6 +527,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){ @@ -536,6 +538,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); @@ -581,10 +591,7 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr editable.removeSpan(span); } } - } - @Override - public void afterTextChanged(Editable s){ updateCharCounter(); } });