diff --git a/app/src/main/java/androidx/appcompat/widget/PersistentSearchView.java b/app/src/main/java/androidx/appcompat/widget/PersistentSearchView.java
new file mode 100644
index 0000000000..a8f95f0b61
--- /dev/null
+++ b/app/src/main/java/androidx/appcompat/widget/PersistentSearchView.java
@@ -0,0 +1,33 @@
+package androidx.appcompat.widget;
+
+import android.content.Context;
+import android.util.AttributeSet;
+
+public class PersistentSearchView extends SearchView {
+
+ public CharSequence lastQuery;
+
+ public PersistentSearchView(Context context) {
+ super(context);
+ }
+
+ public PersistentSearchView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public PersistentSearchView(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+
+ @Override
+ public void onActionViewCollapsed() {
+ lastQuery = getQuery();
+ super.onActionViewCollapsed();
+ }
+
+ @Override
+ public void onActionViewExpanded() {
+ super.onActionViewExpanded();
+ setQuery(lastQuery, false);
+ }
+}
diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java
index d7c2953768..9a9fc72a1f 100644
--- a/app/src/main/java/eu/faircode/email/FragmentMessages.java
+++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java
@@ -80,6 +80,7 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.widget.PersistentSearchView;
import androidx.appcompat.widget.PopupMenu;
import androidx.appcompat.widget.SearchView;
import androidx.constraintlayout.widget.ConstraintLayout;
@@ -2327,12 +2328,14 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
inflater.inflate(R.menu.menu_messages, menu);
final MenuItem menuSearch = menu.findItem(R.id.menu_search);
- final SearchView searchView = (SearchView) menuSearch.getActionView();
+ final PersistentSearchView searchView = (PersistentSearchView) menuSearch.getActionView();
searchView.setQueryHint(getString(R.string.title_search));
if (!TextUtils.isEmpty(searching)) {
menuSearch.expandActionView();
searchView.setQuery(searching, false);
+ } else {
+ searchView.lastQuery = query;
}
AutoCompleteTextView autoCompleteTextView = searchView.findViewById(androidx.appcompat.R.id.search_src_text);
diff --git a/app/src/main/res/menu/menu_accounts.xml b/app/src/main/res/menu/menu_accounts.xml
index 38f71a0ad1..58c552203f 100644
--- a/app/src/main/res/menu/menu_accounts.xml
+++ b/app/src/main/res/menu/menu_accounts.xml
@@ -6,6 +6,6 @@
android:id="@+id/menu_search"
android:icon="@drawable/baseline_search_24"
android:title="@string/title_search"
- app:actionViewClass="androidx.appcompat.widget.SearchView"
+ app:actionViewClass="androidx.appcompat.widget.PersistentSearchView"
app:showAsAction="collapseActionView|always" />
diff --git a/app/src/main/res/menu/menu_contacts.xml b/app/src/main/res/menu/menu_contacts.xml
index d8c19cb8e6..0661966d29 100644
--- a/app/src/main/res/menu/menu_contacts.xml
+++ b/app/src/main/res/menu/menu_contacts.xml
@@ -6,7 +6,7 @@
android:id="@+id/menu_search"
android:icon="@drawable/baseline_search_24"
android:title="@string/title_search"
- app:actionViewClass="androidx.appcompat.widget.SearchView"
+ app:actionViewClass="androidx.appcompat.widget.PersistentSearchView"
app:showAsAction="collapseActionView|always" />