From 1a7c4a2869539aba04cbd0d6bb009fad48158561 Mon Sep 17 00:00:00 2001 From: Jake McGinty Date: Tue, 26 May 2015 15:10:45 -0700 Subject: [PATCH] prevent early callback death android is so dumb. Fixes #3255 Closes #3260 // FREEBIE --- .../securesms/components/emoji/EmojiEditText.java | 5 ++++- .../securesms/components/emoji/EmojiTextView.java | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/org/thoughtcrime/securesms/components/emoji/EmojiEditText.java b/src/org/thoughtcrime/securesms/components/emoji/EmojiEditText.java index 1407782e7c..43e3cfaeb3 100644 --- a/src/org/thoughtcrime/securesms/components/emoji/EmojiEditText.java +++ b/src/org/thoughtcrime/securesms/components/emoji/EmojiEditText.java @@ -1,11 +1,14 @@ package org.thoughtcrime.securesms.components.emoji; import android.content.Context; +import android.graphics.drawable.Drawable.Callback; import android.support.v7.widget.AppCompatEditText; import android.util.AttributeSet; public class EmojiEditText extends AppCompatEditText { + private final Callback callback = new PostInvalidateCallback(this); + public EmojiEditText(Context context) { super(context); } @@ -31,7 +34,7 @@ public class EmojiEditText extends AppCompatEditText { final char[] chars = Character.toChars(codePoint); final CharSequence text = EmojiProvider.getInstance(getContext()).emojify(new String(chars), EmojiProvider.EMOJI_SMALL, - new PostInvalidateCallback(this)); + callback); getText().replace(Math.min(start, end), Math.max(start, end), text); setSelection(end + chars.length); diff --git a/src/org/thoughtcrime/securesms/components/emoji/EmojiTextView.java b/src/org/thoughtcrime/securesms/components/emoji/EmojiTextView.java index 4fc5c40ac9..39633fdb2b 100644 --- a/src/org/thoughtcrime/securesms/components/emoji/EmojiTextView.java +++ b/src/org/thoughtcrime/securesms/components/emoji/EmojiTextView.java @@ -1,10 +1,13 @@ package org.thoughtcrime.securesms.components.emoji; import android.content.Context; +import android.graphics.drawable.Drawable.Callback; import android.support.v7.widget.AppCompatTextView; import android.util.AttributeSet; public class EmojiTextView extends AppCompatTextView { + private final Callback callback = new PostInvalidateCallback(this); + public EmojiTextView(Context context) { super(context); } @@ -20,7 +23,7 @@ public class EmojiTextView extends AppCompatTextView { @Override public void setText(CharSequence text, BufferType type) { super.setText(EmojiProvider.getInstance(getContext()).emojify(text, EmojiProvider.EMOJI_SMALL, - new PostInvalidateCallback(this)), + callback), BufferType.SPANNABLE); } }