From d7b793ce4c635f4968dfa29ace46da48b91fa8ba Mon Sep 17 00:00:00 2001 From: clauz9 Date: Sat, 2 Apr 2022 00:36:02 +0300 Subject: [PATCH] Fade out fab buttons and megaphone when entering action mode or search. Closes #12112 --- .../securesms/components/SearchToolbar.java | 4 ++- .../ConversationListFragment.java | 30 +++++++++++++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/SearchToolbar.java b/app/src/main/java/org/thoughtcrime/securesms/components/SearchToolbar.java index f5103268ae..94470c7f7d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/SearchToolbar.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/SearchToolbar.java @@ -66,7 +66,9 @@ public class SearchToolbar extends LinearLayout { searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { - if (listener != null) listener.onSearchTextChange(query); + if (listener != null) { + listener.onSearchTextChange(query); + } return true; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java index 1b080d5ef8..104f244903 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java @@ -433,8 +433,12 @@ public class ConversationListFragment extends MainFragment implements ActionMode return false; } + private boolean isSearchOpen() { + return (requireCallback().getSearchToolbar().resolved() && requireCallback().getSearchToolbar().get().isVisible()) || activeAdapter == searchAdapter; + } + private boolean closeSearchIfOpen() { - if ((requireCallback().getSearchToolbar().resolved() && requireCallback().getSearchToolbar().get().isVisible()) || activeAdapter == searchAdapter) { + if (isSearchOpen()) { list.removeItemDecoration(searchAdapterDecoration); setAdapter(defaultAdapter); requireCallback().getSearchToolbar().get().collapse(); @@ -559,6 +563,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode private void initializeSearchListener() { requireCallback().getSearchAction().setOnClickListener(v -> { + fadeOutButtonsAndMegaphone(250); requireCallback().onSearchOpened(); requireCallback().getSearchToolbar().get().display(requireCallback().getSearchAction().getX() + (requireCallback().getSearchAction().getWidth() / 2.0f), requireCallback().getSearchAction().getY() + (requireCallback().getSearchAction().getHeight() / 2.0f)); @@ -589,6 +594,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode list.removeItemDecoration(searchAdapterDecoration); setAdapter(defaultAdapter); requireCallback().onSearchClosed(); + fadeInButtonsAndMegaphone(250); } }); }); @@ -767,7 +773,11 @@ public class ConversationListFragment extends MainFragment implements ActionMode if (view != null) { megaphoneContainer.get().addView(view); - megaphoneContainer.get().setVisibility(View.VISIBLE); + if (isSearchOpen() || actionMode != null) { + megaphoneContainer.get().setVisibility(View.GONE); + } else { + megaphoneContainer.get().setVisibility(View.VISIBLE); + } } else { megaphoneContainer.get().setVisibility(View.GONE); @@ -1035,6 +1045,22 @@ public class ConversationListFragment extends MainFragment implements ActionMode }); } + private void fadeOutButtonsAndMegaphone(int fadeDuration) { + ViewUtil.fadeOut(fab, fadeDuration); + ViewUtil.fadeOut(cameraFab, fadeDuration); + if (megaphoneContainer.resolved()) { + ViewUtil.fadeOut(megaphoneContainer.get(), fadeDuration); + } + } + + private void fadeInButtonsAndMegaphone(int fadeDuration) { + ViewUtil.fadeIn(fab, fadeDuration); + ViewUtil.fadeIn(cameraFab, fadeDuration); + if (megaphoneContainer.resolved()) { + ViewUtil.fadeIn(megaphoneContainer.get(), fadeDuration); + } + } + private void startActionMode() { actionMode = ((AppCompatActivity) getActivity()).startSupportActionMode(ConversationListFragment.this); ViewUtil.animateIn(bottomActionBar, bottomActionBar.getEnterAnimation());