From 388bda791d2496d19fb219924da5ee43c13c189f Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 22 Jun 2020 08:19:40 +0200 Subject: [PATCH] Cache search tab page titles --- .../java/eu/faircode/email/FragmentOptions.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentOptions.java b/app/src/main/java/eu/faircode/email/FragmentOptions.java index d0bbf5525c..9a53ee8530 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptions.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptions.java @@ -215,6 +215,7 @@ public class FragmentOptions extends FragmentBase { searchView.setOnSuggestionListener(onSuggestionListener); searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { + private String[] titles = null; private View[] views = null; @Override @@ -239,18 +240,19 @@ public class FragmentOptions extends FragmentBase { MatrixCursor cursor = new MatrixCursor(new String[]{"_id", "tab", "resid", "title"}); if (query != null && query.length() > 1) { - if (views == null) { + if (titles == null || views == null) { + titles = new String[TAB_PAGES.length]; views = new View[TAB_PAGES.length]; LayoutInflater inflater = LayoutInflater.from(searchView.getContext()); - for (int tab = 0; tab < TAB_PAGES.length; tab++) + for (int tab = 0; tab < TAB_PAGES.length; tab++) { + titles[tab] = (String) adapter.getPageTitle(tab); views[tab] = inflater.inflate(TAB_PAGES[tab], null); + } } int id = 0; - for (int tab = 0; tab < TAB_PAGES.length; tab++) { - String title = (String) adapter.getPageTitle(tab); - id = getSuggestions(query.toLowerCase(), id, tab, title, views[tab], cursor); - } + for (int tab = 0; tab < TAB_PAGES.length; tab++) + id = getSuggestions(query.toLowerCase(), id, tab, titles[tab], views[tab], cursor); } searchView.setSuggestionsAdapter(new SimpleCursorAdapter(