diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiFilter.java b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiFilter.java index 2b32d5e4d9..32333b484f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiFilter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiFilter.java @@ -19,7 +19,7 @@ public class EmojiFilter implements InputFilter { char[] v = new char[end - start]; TextUtils.getChars(source, start, end, v, 0); - Spannable emojified = EmojiProvider.getInstance(view.getContext()).emojify(new String(v), view); + Spannable emojified = EmojiProvider.emojify(new String(v), view); if (source instanceof Spanned && emojified != null) { TextUtils.copySpansFrom((Spanned) source, start, end, null, emojified, 0); diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiImageView.java b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiImageView.java index c953b3d737..a96ad3556c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiImageView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiImageView.java @@ -5,6 +5,8 @@ import android.util.AttributeSet; import androidx.appcompat.widget.AppCompatImageView; +import org.thoughtcrime.securesms.R; + public class EmojiImageView extends AppCompatImageView { public EmojiImageView(Context context) { super(context); @@ -15,6 +17,10 @@ public class EmojiImageView extends AppCompatImageView { } public void setImageEmoji(CharSequence emoji) { - setImageDrawable(EmojiProvider.getInstance(getContext()).getEmojiDrawable(emoji)); + if (isInEditMode()) { + setImageResource(R.drawable.ic_emoji); + } else { + setImageDrawable(EmojiProvider.getEmojiDrawable(getContext(), emoji)); + } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiPageView.java b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiPageView.java index be4bb181ae..5fe7ba6d73 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiPageView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiPageView.java @@ -40,8 +40,7 @@ public class EmojiPageView extends FrameLayout implements VariationSelectorListe layoutManager = new GridLayoutManager(context, 8); scrollDisabler = new ScrollDisabler(); popup = new EmojiVariationSelectorPopup(context, emojiSelectionListener); - adapter = new EmojiPageViewGridAdapter(EmojiProvider.getInstance(context), - popup, + adapter = new EmojiPageViewGridAdapter(popup, emojiSelectionListener, this, allowVariations); diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiPageViewGridAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiPageViewGridAdapter.java index d8475cb757..69d79361fb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiPageViewGridAdapter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiPageViewGridAdapter.java @@ -19,20 +19,17 @@ import java.util.List; public class EmojiPageViewGridAdapter extends RecyclerView.Adapter implements PopupWindow.OnDismissListener { private final List emojiList; - private final EmojiProvider emojiProvider; private final EmojiVariationSelectorPopup popup; private final VariationSelectorListener variationSelectorListener; private final EmojiEventListener emojiEventListener; private final boolean allowVariations; - public EmojiPageViewGridAdapter(@NonNull EmojiProvider emojiProvider, - @NonNull EmojiVariationSelectorPopup popup, + public EmojiPageViewGridAdapter(@NonNull EmojiVariationSelectorPopup popup, @NonNull EmojiEventListener emojiEventListener, @NonNull VariationSelectorListener variationSelectorListener, boolean allowVariations) { this.emojiList = new ArrayList<>(); - this.emojiProvider = emojiProvider; this.popup = popup; this.emojiEventListener = emojiEventListener; this.variationSelectorListener = variationSelectorListener; @@ -51,7 +48,7 @@ public class EmojiPageViewGridAdapter extends RecyclerView.Adapter 0) || EMOJI_PATTERN.matcher(text).matches(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiVariationSelectorPopup.java b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiVariationSelectorPopup.java index 6dee282452..56e4befe4c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiVariationSelectorPopup.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiVariationSelectorPopup.java @@ -42,7 +42,7 @@ public class EmojiVariationSelectorPopup extends PopupWindow { for (String variation : variations) { ImageView imageView = (ImageView) LayoutInflater.from(context).inflate(R.layout.emoji_variation_selector_item, list, false); - imageView.setImageDrawable(EmojiProvider.getInstance(context).getEmojiDrawable(variation)); + imageView.setImageDrawable(EmojiProvider.getEmojiDrawable(context, variation)); imageView.setOnClickListener(v -> { listener.onEmojiSelected(variation); dismiss(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.java index 5f511fa641..482897b01a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.java @@ -106,7 +106,6 @@ import org.thoughtcrime.securesms.util.GroupUtil; import org.thoughtcrime.securesms.util.Hex; import org.thoughtcrime.securesms.util.IdentityUtil; import org.thoughtcrime.securesms.util.MediaUtil; -import org.thoughtcrime.securesms.util.MessageRecordUtil; import org.thoughtcrime.securesms.util.RemoteDeleteUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; @@ -154,7 +153,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Locale; import java.util.Map; -import java.util.Objects; import java.util.UUID; /** @@ -719,7 +717,7 @@ public final class MessageContentProcessor { private void handleReaction(@NonNull SignalServiceContent content, @NonNull SignalServiceDataMessage message) { SignalServiceDataMessage.Reaction reaction = message.getReaction().get(); - if (!EmojiUtil.isEmoji(context, reaction.getEmoji())) { + if (!EmojiUtil.isEmoji(reaction.getEmoji())) { Log.w(TAG, "Reaction text is not a valid emoji! Ignoring the message."); return; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/EditAboutFragment.java b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/EditAboutFragment.java index 6ed6f1d1be..e74d7f13a2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/EditAboutFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/EditAboutFragment.java @@ -241,7 +241,7 @@ public class EditAboutFragment extends Fragment implements ManageProfileActivity } public void bind(@NonNull AboutPreset preset) { - this.emoji.setImageDrawable(EmojiUtil.convertToDrawable(itemView.getContext(), preset.getEmoji())); + this.emoji.setImageDrawable(EmojiUtil.convertToDrawable(requireContext(), preset.getEmoji())); this.body.setText(preset.getBodyRes()); } } diff --git a/app/src/test/java/org/thoughtcrime/securesms/components/emoji/EmojiUtilTest_isEmoji.java b/app/src/test/java/org/thoughtcrime/securesms/components/emoji/EmojiUtilTest_isEmoji.java index 586ed8e891..16da2b8392 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/components/emoji/EmojiUtilTest_isEmoji.java +++ b/app/src/test/java/org/thoughtcrime/securesms/components/emoji/EmojiUtilTest_isEmoji.java @@ -71,10 +71,10 @@ public class EmojiUtilTest_isEmoji { @Test public void isEmoji() throws Exception { - Context context = ApplicationProvider.getApplicationContext(); + Application application = ApplicationProvider.getApplicationContext(); PowerMockito.mockStatic(ApplicationDependencies.class); - PowerMockito.when(ApplicationDependencies.getApplication()).thenReturn((Application) context); + PowerMockito.when(ApplicationDependencies.getApplication()).thenReturn(application); PowerMockito.mockStatic(AttachmentSecretProvider.class); PowerMockito.when(AttachmentSecretProvider.getInstance(any())).thenThrow(IOException.class); PowerMockito.whenNew(SignalStore.class).withAnyArguments().thenReturn(null); @@ -82,6 +82,6 @@ public class EmojiUtilTest_isEmoji { PowerMockito.when(SignalStore.internalValues()).thenReturn(PowerMockito.mock(InternalValues.class)); EmojiSource.refresh(); - assertEquals(output, EmojiUtil.isEmoji(context, input)); + assertEquals(output, EmojiUtil.isEmoji(input)); } }