summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/dashboard
diff options
context:
space:
mode:
authorFabrice Di Meglio <fdimeglio@google.com>2014-05-12 18:54:32 -0700
committerFabrice Di Meglio <fdimeglio@google.com>2014-05-12 19:35:38 -0700
commit8c3b0ce7120da882082eed533462090c4feadff8 (patch)
tree04bc0d64c807e8fb3e3544e682390b37e8f5980a /src/com/android/settings/dashboard
parentdfeb64df7d08ff3b56555751356dc32321904bcd (diff)
downloadpackages_apps_Settings-8c3b0ce7120da882082eed533462090c4feadff8.zip
packages_apps_Settings-8c3b0ce7120da882082eed533462090c4feadff8.tar.gz
packages_apps_Settings-8c3b0ce7120da882082eed533462090c4feadff8.tar.bz2
Fix bug #14323469 Settings crash on selecting keyword from recent searches
... after changing orientation - set the SearchView for the SearchResultsFragment when the SearchView is instantiated in the onCreateOptionsMenu(Menu) - take care of the correct showing of the Recent Searched (suggestions) Change-Id: Idfa17436d4a2436e0947ce1e1692355def3821a3
Diffstat (limited to 'src/com/android/settings/dashboard')
-rw-r--r--src/com/android/settings/dashboard/SearchResultsSummary.java41
1 files changed, 38 insertions, 3 deletions
diff --git a/src/com/android/settings/dashboard/SearchResultsSummary.java b/src/com/android/settings/dashboard/SearchResultsSummary.java
index e8544ae..6a6431d 100644
--- a/src/com/android/settings/dashboard/SearchResultsSummary.java
+++ b/src/com/android/settings/dashboard/SearchResultsSummary.java
@@ -51,6 +51,8 @@ public class SearchResultsSummary extends Fragment {
private static final String EMPTY_QUERY = "";
private static char ELLIPSIS = '\u2026';
+ private static final String SAVE_KEY_SHOW_ONLY_RESULTS = ":settings:show_only_results";
+
private SearchView mSearchView;
private ListView mResultsListView;
@@ -66,6 +68,8 @@ public class SearchResultsSummary extends Fragment {
private String mQuery;
+ private boolean mShowOnlyResults;
+
/**
* A basic AsyncTask for updating the query results cursor
*/
@@ -110,6 +114,17 @@ public class SearchResultsSummary extends Fragment {
mResultsAdapter = new SearchResultsAdapter(getActivity());
mSuggestionsAdapter = new SuggestionsAdapter(getActivity());
+
+ if (savedInstanceState != null) {
+ mShowOnlyResults = savedInstanceState.getBoolean(SAVE_KEY_SHOW_ONLY_RESULTS);
+ }
+ }
+
+ @Override
+ public void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+
+ outState.putBoolean(SAVE_KEY_SHOW_ONLY_RESULTS, mShowOnlyResults);
}
@Override
@@ -197,6 +212,7 @@ public class SearchResultsSummary extends Fragment {
mQuery = cursor.getString(0);
mSearchView.setQuery(mQuery, false);
setSuggestionsVisibility(false);
+ mShowOnlyResults = true;
}
});
@@ -207,7 +223,9 @@ public class SearchResultsSummary extends Fragment {
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
- showSomeSuggestions();
+ if (!mShowOnlyResults) {
+ showSomeSuggestions();
+ }
}
public void setSearchView(SearchView searchView) {
@@ -232,13 +250,30 @@ public class SearchResultsSummary extends Fragment {
public boolean onQueryTextSubmit(String query) {
mQuery = getFilteredQueryString(query);
+ setSuggestionsVisibility(!mShowOnlyResults);
updateSearchResults();
return true;
}
public boolean onQueryTextChange(String query) {
- mQuery = getFilteredQueryString(query);
- updateSuggestions();
+ final String newQuery = getFilteredQueryString(query);
+
+ boolean isNewQuery;
+ if (!TextUtils.isEmpty(mQuery)) {
+ isNewQuery = !mQuery.equals(query);
+ } else {
+ isNewQuery = !TextUtils.isEmpty(query);
+ }
+
+ mQuery = newQuery;
+
+ if (isNewQuery) {
+ mShowOnlyResults = false;
+ }
+ if (!mShowOnlyResults) {
+ updateSuggestions();
+ }
+
updateSearchResults();
return true;
}