@Test public void testGetFilters_doesNotAddSecondInstance() { final InputFilter existingFilter = mock(InputFilter.class); final InputFilter[] filters = new InputFilter[]{existingFilter}; InputFilter[] newFilters = mTextViewHelper.getFilters(filters); EmojiInputFilter emojiInputFilter = findEmojiInputFilter(newFilters); assertNotNull(emojiInputFilter); newFilters = mTextViewHelper.getFilters(newFilters); assertEquals(2, newFilters.length); assertThat(Arrays.asList(newFilters), hasItem(existingFilter)); assertThat(Arrays.asList(newFilters), hasItem(emojiInputFilter)); }
@NonNull public InputFilter[] getFilters(@NonNull final InputFilter[] filters) { return mHelper.getFilters(filters); }
EmojiTextViewHelper { @NonNull public InputFilter[] getFilters(@NonNull final InputFilter[] filters) { return mHelper.getFilters(filters); } }
EmojiTextViewHelper { @NonNull public InputFilter[] getFilters(@NonNull final InputFilter[] filters) { return mHelper.getFilters(filters); } EmojiTextViewHelper(@NonNull TextView textView); }
EmojiTextViewHelper { @NonNull public InputFilter[] getFilters(@NonNull final InputFilter[] filters) { return mHelper.getFilters(filters); } EmojiTextViewHelper(@NonNull TextView textView); void updateTransformationMethod(); @NonNull InputFilter[] getFilters(@NonNull final InputFilter[] filters); @Nullable TransformationMethod wrapTransformationMethod(
            @Nullable TransformationMethod transformationMethod); void setAllCaps(boolean allCaps); }
EmojiTextViewHelper { @NonNull public InputFilter[] getFilters(@NonNull final InputFilter[] filters) { return mHelper.getFilters(filters); } EmojiTextViewHelper(@NonNull TextView textView); void updateTransformationMethod(); @NonNull InputFilter[] getFilters(@NonNull final InputFilter[] filters); @Nullable TransformationMethod wrapTransformationMethod(
            @Nullable TransformationMethod transformationMethod); void setAllCaps(boolean allCaps);  }