From 935a6fa300433a22b5d4ab8bf6f763809851f065 Mon Sep 17 00:00:00 2001 From: Saeed Mozaffari Date: Mon, 23 Jul 2018 11:08:28 +0430 Subject: [PATCH] Customize Emoji Icon Tabbars & Divider Color --- .../java/com/vanniktech/emoji/EmojiPopup.java | 34 ++++++++++++++----- .../java/com/vanniktech/emoji/EmojiView.java | 9 +++-- emoji/src/main/res/layout/emoji_view.xml | 1 + 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/emoji/src/main/java/com/vanniktech/emoji/EmojiPopup.java b/emoji/src/main/java/com/vanniktech/emoji/EmojiPopup.java index ac81f6f538..8906a000f9 100644 --- a/emoji/src/main/java/com/vanniktech/emoji/EmojiPopup.java +++ b/emoji/src/main/java/com/vanniktech/emoji/EmojiPopup.java @@ -30,7 +30,7 @@ public final class EmojiPopup { final View rootView; final Activity context; - private int color; + private int backgroundColor,iconColor,dividerColor; @NonNull final RecentEmoji recentEmoji; @NonNull final VariantEmoji variantEmoji; @@ -85,13 +85,15 @@ public final class EmojiPopup { }; public EmojiPopup(@NonNull final View rootView, @NonNull final EmojiEditText emojiEditText, - @Nullable final RecentEmoji recent, @Nullable final VariantEmoji variant, int color) { + @Nullable final RecentEmoji recent, @Nullable final VariantEmoji variant, int backgroundColor, int iconColor,int dividerColor) { this.context = Utils.asActivity(rootView.getContext()); this.rootView = rootView.getRootView(); this.emojiEditText = emojiEditText; this.recentEmoji = recent != null ? recent : new RecentEmojiManager(context); this.variantEmoji = variant != null ? variant : new VariantEmojiManager(context); - this.color = color; + this.backgroundColor=backgroundColor; + this.iconColor=iconColor; + this.dividerColor=dividerColor; popupWindow = new PopupWindow(context); @@ -119,7 +121,7 @@ public EmojiPopup(@NonNull final View rootView, @NonNull final EmojiEditText emo variantPopup = new EmojiVariantPopup(this.rootView, clickListener); - final EmojiView emojiView = new EmojiView(context, clickListener, longClickListener, recentEmoji, variantEmoji, color); + final EmojiView emojiView = new EmojiView(context, clickListener, longClickListener, recentEmoji, variantEmoji,backgroundColor,iconColor,dividerColor); emojiView.setOnEmojiBackspaceClickListener(new OnEmojiBackspaceClickListener() { @Override public void onEmojiBackspaceClick(final View v) { emojiEditText.backspace(); @@ -201,7 +203,9 @@ private void showAtBottomPending() { public static final class Builder { @NonNull private final View rootView; - @NonNull private int color; + @Nullable private int backgroundColor; + @Nullable private int iconColor; + @Nullable private int dividerColor; @Nullable private OnEmojiPopupShownListener onEmojiPopupShownListener; @Nullable private OnSoftKeyboardCloseListener onSoftKeyboardCloseListener; @Nullable private OnSoftKeyboardOpenListener onSoftKeyboardOpenListener; @@ -276,8 +280,18 @@ private Builder(final View rootView) { return this; } - @CheckResult public Builder setColor(final int color) { - this.color = color; + @CheckResult public Builder setBackgroundColor(final int backgroundColor) { + this.backgroundColor = backgroundColor; + return this; + } + + @CheckResult public Builder setIconColor(final int iconColor) { + this.iconColor = iconColor; + return this; + } + + @CheckResult public Builder setDividerColor(final int dividerColor) { + this.dividerColor = dividerColor; return this; } @@ -285,14 +299,16 @@ private Builder(final View rootView) { EmojiManager.getInstance().verifyInstalled(); checkNotNull(emojiEditText, "EmojiEditText can't be null"); - final EmojiPopup emojiPopup = new EmojiPopup(rootView, emojiEditText, recentEmoji, variantEmoji, color); + final EmojiPopup emojiPopup = new EmojiPopup(rootView, emojiEditText, recentEmoji, variantEmoji, backgroundColor,iconColor,dividerColor); emojiPopup.onSoftKeyboardCloseListener = onSoftKeyboardCloseListener; emojiPopup.onEmojiClickListener = onEmojiClickListener; emojiPopup.onSoftKeyboardOpenListener = onSoftKeyboardOpenListener; emojiPopup.onEmojiPopupShownListener = onEmojiPopupShownListener; emojiPopup.onEmojiPopupDismissListener = onEmojiPopupDismissListener; emojiPopup.onEmojiBackspaceClickListener = onEmojiBackspaceClickListener; - emojiPopup.color = color; + emojiPopup.backgroundColor = backgroundColor; + emojiPopup.iconColor=iconColor; + emojiPopup.dividerColor=dividerColor; return emojiPopup; } } diff --git a/emoji/src/main/java/com/vanniktech/emoji/EmojiView.java b/emoji/src/main/java/com/vanniktech/emoji/EmojiView.java index 3ca108397a..32c02cbf6b 100644 --- a/emoji/src/main/java/com/vanniktech/emoji/EmojiView.java +++ b/emoji/src/main/java/com/vanniktech/emoji/EmojiView.java @@ -39,20 +39,23 @@ EmojiView(final Context context, final OnEmojiClickListener onEmojiClickListener, final OnEmojiLongClickListener onEmojiLongClickListener, @NonNull final RecentEmoji recentEmoji, - @NonNull final VariantEmoji variantManager, int color) { + @NonNull final VariantEmoji variantManager, int backgroundColor, int iconColor, int dividerColor) { super(context); View.inflate(context, R.layout.emoji_view, this); setOrientation(VERTICAL); - setBackgroundColor(color); + setBackgroundColor(backgroundColor); - themeIconColor = ContextCompat.getColor(context, R.color.emoji_icons); + themeIconColor = iconColor; final TypedValue value = new TypedValue(); context.getTheme().resolveAttribute(R.attr.colorAccent, value, true); themeAccentColor = value.data; final ViewPager emojisPager = findViewById(R.id.emojis_pager); + final View emojiDivider = findViewById(R.id.emoji_divider); + emojiDivider.setBackgroundColor(dividerColor); + final LinearLayout emojisTab = findViewById(R.id.emojis_tab); emojisPager.addOnPageChangeListener(this); diff --git a/emoji/src/main/res/layout/emoji_view.xml b/emoji/src/main/res/layout/emoji_view.xml index b46711166b..e82958e4ef 100644 --- a/emoji/src/main/res/layout/emoji_view.xml +++ b/emoji/src/main/res/layout/emoji_view.xml @@ -9,6 +9,7 @@ />