From 7261c98d6022d3e381a41a3fcd4855844e64bea7 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 29 Oct 2020 21:17:14 +0100 Subject: [PATCH] Show filter icon in action bar when filtering --- .../java/eu/faircode/email/FragmentMessages.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 8665704bab..7eceb83e62 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -99,6 +99,7 @@ import androidx.appcompat.widget.PopupMenu; import androidx.constraintlayout.widget.Group; import androidx.core.content.ContextCompat; import androidx.core.graphics.ColorUtils; +import androidx.core.view.MenuItemCompat; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentResultListener; @@ -3893,6 +3894,17 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. (viewType == AdapterMessage.ViewType.UNIFIED || (viewType == AdapterMessage.ViewType.FOLDER && !outbox)); + String filter_language = prefs.getString("filter_language", null); + boolean filter_active = (filter_seen || filter_unflagged || filter_unknown || !TextUtils.isEmpty(filter_language)); + MenuItem menuFilter = menu.findItem(R.id.menu_filter); + menuFilter.setShowAsAction(folder && filter_active + ? MenuItem.SHOW_AS_ACTION_ALWAYS + : MenuItem.SHOW_AS_ACTION_NEVER); + MenuItemCompat.setIconTintList(menuFilter, + folder && filter_active ? + ColorStateList.valueOf(Helper.resolveColor(getContext(), R.attr.colorAccent)) : null); + menuFilter.setIcon(folder && filter_active ? R.drawable.twotone_filter_alt_24 : R.drawable.twotone_filter_list_24); + MenuItem menuSearch = menu.findItem(R.id.menu_search); menuSearch.setVisible(folder); @@ -4252,6 +4264,10 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. prefs.edit().putString("filter_language", locale.getLanguage()).apply(); } + FragmentActivity activity = getActivity(); + if (activity != null) + activity.invalidateOptionsMenu(); + loadMessages(true); return true;