From 0314db0b58c0e6c214a0a7179e6d819c75ca6a4e Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Thu, 27 May 2021 20:07:14 -0400 Subject: [PATCH] Small UI tweaks for edit reactions. --- ...WithAnyEmojiBottomSheetDialogFragment.java | 25 +++--- .../any/ReactWithAnyEmojiRepository.java | 3 +- .../reactions/edit/EditReactionsFragment.kt | 2 +- app/src/main/res/color/icon_tab_selector.xml | 5 ++ .../res/drawable-night/ic_settings_24.xml | 9 +++ ...ings_outline_24.xml => ic_settings_24.xml} | 0 .../keyboard_pager_fragment_selected.xml | 9 +++ .../customizable_single_select_item.xml | 2 +- .../res/layout/edit_reactions_fragment.xml | 2 +- ...any_emoji_bottom_sheet_dialog_fragment.xml | 29 ++++--- .../res/layout/react_with_any_emoji_tab.xml | 8 +- .../res/layout/react_with_any_emoji_tabs.xml | 76 ++++++++++++++++--- app/src/main/res/values-night/dark_colors.xml | 5 ++ app/src/main/res/values/light_colors.xml | 5 ++ app/src/main/res/values/signal_styles.xml | 2 + app/src/main/res/values/strings.xml | 4 +- 16 files changed, 137 insertions(+), 49 deletions(-) create mode 100644 app/src/main/res/color/icon_tab_selector.xml create mode 100644 app/src/main/res/drawable-night/ic_settings_24.xml rename app/src/main/res/drawable/{ic_settings_outline_24.xml => ic_settings_24.xml} (100%) create mode 100644 app/src/main/res/drawable/keyboard_pager_fragment_selected.xml diff --git a/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiBottomSheetDialogFragment.java b/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiBottomSheetDialogFragment.java index c2e200b99a..0056226426 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiBottomSheetDialogFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiBottomSheetDialogFragment.java @@ -40,8 +40,6 @@ import org.thoughtcrime.securesms.reactions.edit.EditReactionsActivity; import org.thoughtcrime.securesms.util.ThemeUtil; import org.thoughtcrime.securesms.util.ViewUtil; -import static org.thoughtcrime.securesms.R.layout.react_with_any_emoji_tab; - public final class ReactWithAnyEmojiBottomSheetDialogFragment extends BottomSheetDialogFragment implements EmojiKeyboardProvider.EmojiEventListener, EmojiPageViewGridAdapter.VariationSelectorListener @@ -65,7 +63,7 @@ public final class ReactWithAnyEmojiBottomSheetDialogFragment extends BottomShee private SparseArray pageArray = new SparseArray<>(); private Callback callback; private ReactionsLoader reactionsLoader; - private View editReactions; + private View customizeReactions; private boolean showEditReactions; public static DialogFragment createForMessageRecord(@NonNull MessageRecord messageRecord, int startingPage) { @@ -183,12 +181,8 @@ public final class ReactWithAnyEmojiBottomSheetDialogFragment extends BottomShee categoryLabel = view.findViewById(R.id.category_label); categoryPager = view.findViewById(R.id.category_pager); - editReactions = view.findViewById(R.id.edit_reactions); showEditReactions = requireArguments().getBoolean(ARG_EDIT, false); - if (showEditReactions) { - editReactions.setOnClickListener(v -> startActivity(new Intent(requireContext(), EditReactionsActivity.class))); - } adapter = new ReactWithAnyEmojiAdapter(this, this, (position, pageView) -> { pageArray.put(position, pageView); @@ -220,10 +214,16 @@ public final class ReactWithAnyEmojiBottomSheetDialogFragment extends BottomShee super.onActivityCreated(savedInstanceState); if (savedInstanceState == null) { - FrameLayout container = requireDialog().findViewById(R.id.container); - LayoutInflater layoutInflater = LayoutInflater.from(requireContext()); - TabLayout categoryTabs = (TabLayout) layoutInflater.inflate(R.layout.react_with_any_emoji_tabs, container, false); + FrameLayout container = requireDialog().findViewById(R.id.container); + LayoutInflater layoutInflater = LayoutInflater.from(requireContext()); + View tabBar = layoutInflater.inflate(R.layout.react_with_any_emoji_tabs, container, false); + TabLayout categoryTabs = tabBar.findViewById(R.id.category_tabs); + customizeReactions = tabBar.findViewById(R.id.customize_reactions_frame); + if (showEditReactions) { + customizeReactions.setVisibility(View.VISIBLE); + tabBar.findViewById(R.id.customize_reactions).setOnClickListener(v -> startActivity(new Intent(requireContext(), EditReactionsActivity.class))); + } if (!requireArguments().getBoolean(ARG_SHADOWS)) { View statusBarShader = layoutInflater.inflate(R.layout.react_with_any_emoji_status_fade, container, false); @@ -233,11 +233,11 @@ public final class ReactWithAnyEmojiBottomSheetDialogFragment extends BottomShee container.addView(statusBarShader, 0); } - container.addView(categoryTabs); + container.addView(tabBar); ViewCompat.setOnApplyWindowInsetsListener(container, (v, insets) -> insets.consumeSystemWindowInsets()); new TabLayoutMediator(categoryTabs, categoryPager, (tab, position) -> { - tab.setCustomView(react_with_any_emoji_tab) + tab.setCustomView(R.layout.react_with_any_emoji_tab) .setIcon(ThemeUtil.getThemedDrawable(requireContext(), adapter.getItem(position).getIconAttr())); }).attach(); } @@ -294,7 +294,6 @@ public final class ReactWithAnyEmojiBottomSheetDialogFragment extends BottomShee } categoryLabel.setText(getString(adapter.getItem(position).getLabel())); - editReactions.setVisibility(showEditReactions && position == 0 ? View.VISIBLE : View.GONE); } private int getStartingPage(boolean firstPageHasContent) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiRepository.java b/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiRepository.java index a6d703b546..ec42f88b22 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiRepository.java @@ -19,6 +19,7 @@ import org.thoughtcrime.securesms.database.MessageDatabase; import org.thoughtcrime.securesms.database.NoSuchMessageException; import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.database.model.ReactionRecord; +import org.thoughtcrime.securesms.emoji.EmojiCategory; import org.thoughtcrime.securesms.emoji.EmojiSource; import org.thoughtcrime.securesms.reactions.ReactionDetails; import org.thoughtcrime.securesms.recipients.Recipient; @@ -43,9 +44,9 @@ final class ReactWithAnyEmojiRepository { this.emojiPages = new LinkedList<>(); emojiPages.addAll(Stream.of(EmojiSource.getLatest().getDisplayPages()) + .filterNot(p -> p.getIconAttr() == EmojiCategory.EMOTICONS.getIcon()) .map(page -> new ReactWithAnyEmojiPage(Collections.singletonList(new ReactWithAnyEmojiPageBlock(getCategoryLabel(page.getIconAttr()), page)))) .toList()); - emojiPages.remove(emojiPages.size() - 1); } List getEmojiPageModels(@NonNull List thisMessagesReactions) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/reactions/edit/EditReactionsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/reactions/edit/EditReactionsFragment.kt index 70bea45987..df7a2d34fd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/reactions/edit/EditReactionsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/reactions/edit/EditReactionsFragment.kt @@ -40,7 +40,7 @@ class EditReactionsFragment : LoggingFragment(R.layout.edit_reactions_fragment), override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) toolbar = view.findViewById(R.id.toolbar) - toolbar.setTitle(R.string.EditReactionsFragment__edit_reactions) + toolbar.setTitle(R.string.EditReactionsFragment__customize_reactions) toolbar.setNavigationOnClickListener { requireActivity().onBackPressed() } diff --git a/app/src/main/res/color/icon_tab_selector.xml b/app/src/main/res/color/icon_tab_selector.xml new file mode 100644 index 0000000000..30cd1bdc27 --- /dev/null +++ b/app/src/main/res/color/icon_tab_selector.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-night/ic_settings_24.xml b/app/src/main/res/drawable-night/ic_settings_24.xml new file mode 100644 index 0000000000..f0ddb0ecc1 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_settings_24.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_settings_outline_24.xml b/app/src/main/res/drawable/ic_settings_24.xml similarity index 100% rename from app/src/main/res/drawable/ic_settings_outline_24.xml rename to app/src/main/res/drawable/ic_settings_24.xml diff --git a/app/src/main/res/drawable/keyboard_pager_fragment_selected.xml b/app/src/main/res/drawable/keyboard_pager_fragment_selected.xml new file mode 100644 index 0000000000..5eed798f16 --- /dev/null +++ b/app/src/main/res/drawable/keyboard_pager_fragment_selected.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/customizable_single_select_item.xml b/app/src/main/res/layout/customizable_single_select_item.xml index a19f561a8a..039b309be8 100644 --- a/app/src/main/res/layout/customizable_single_select_item.xml +++ b/app/src/main/res/layout/customizable_single_select_item.xml @@ -56,7 +56,7 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" - app:srcCompat="@drawable/ic_settings_outline_24" + app:srcCompat="@drawable/ic_settings_24" app:tint="@color/signal_icon_tint_primary" /> diff --git a/app/src/main/res/layout/react_with_any_emoji_bottom_sheet_dialog_fragment.xml b/app/src/main/res/layout/react_with_any_emoji_bottom_sheet_dialog_fragment.xml index 4b7e2c295f..c329c46b75 100644 --- a/app/src/main/res/layout/react_with_any_emoji_bottom_sheet_dialog_fragment.xml +++ b/app/src/main/res/layout/react_with_any_emoji_bottom_sheet_dialog_fragment.xml @@ -6,18 +6,28 @@ android:layout_height="match_parent" android:minHeight="@dimen/react_with_any_emoji_bottom_sheet_dialog_fragment_min_height"> + + + app:layout_constraintTop_toBottomOf="@+id/react_with_any_emoji_pull_bar"> - - \ No newline at end of file + android:tint="@color/icon_tab_selector" + tools:src="@drawable/ic_recent_20" /> diff --git a/app/src/main/res/layout/react_with_any_emoji_tabs.xml b/app/src/main/res/layout/react_with_any_emoji_tabs.xml index ae8580e117..1bd5496592 100644 --- a/app/src/main/res/layout/react_with_any_emoji_tabs.xml +++ b/app/src/main/res/layout/react_with_any_emoji_tabs.xml @@ -1,15 +1,69 @@ - \ No newline at end of file + android:background="@color/signal_background_dialog"> + + + + + + + + + + + + diff --git a/app/src/main/res/values-night/dark_colors.xml b/app/src/main/res/values-night/dark_colors.xml index e38409ced7..3a93f917a5 100644 --- a/app/src/main/res/values-night/dark_colors.xml +++ b/app/src/main/res/values-night/dark_colors.xml @@ -26,6 +26,9 @@ @color/core_grey_15 @color/core_grey_25 + @color/core_grey_10 + @color/core_grey_45 + @color/core_ultramarine_light @color/transparent_black_15 @color/core_white @@ -136,4 +139,6 @@ @color/transparent_black_40 @color/transparent_white_60 @color/core_grey_80 + + @color/core_grey_80 diff --git a/app/src/main/res/values/light_colors.xml b/app/src/main/res/values/light_colors.xml index 8b79138a58..29623c64ba 100644 --- a/app/src/main/res/values/light_colors.xml +++ b/app/src/main/res/values/light_colors.xml @@ -26,6 +26,9 @@ @color/core_grey_75 @color/core_grey_60 + @color/core_grey_80 + @color/core_grey_45 + @color/core_ultramarine @color/transparent_black_15 @color/core_white @@ -136,4 +139,6 @@ @color/transparent_white_60 @color/transparent_white_80 @color/core_grey_15 + + @color/core_grey_10 diff --git a/app/src/main/res/values/signal_styles.xml b/app/src/main/res/values/signal_styles.xml index 6b14ea7dab..2694510da6 100644 --- a/app/src/main/res/values/signal_styles.xml +++ b/app/src/main/res/values/signal_styles.xml @@ -7,6 +7,7 @@ false @color/signal_button_primary_text_selector sans-serif-medium + 0.035 textEnd @color/signal_button_primary @color/signal_button_primary_text_selector @@ -66,6 +67,7 @@ 0dp false @color/signal_button_secondary_text_selector + 0.035 textEnd @color/signal_button_secondary_text_selector @color/signal_button_secondary_stroke diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index bf9d50c64d..dbeab16a0e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -3503,9 +3503,9 @@ Bottom edge selector - Edit Reactions + Customize reactions Tap to replace an emoji - Reset emoji + Reset Save