Fix bug #13813608 Launcher back button does not take you to previous...
... settings after orientation change
- gasp, there were some issues in the way we were tracking if
a search result fragment was opened. Simplified that code.
Change-Id: I7f8efb3a5aab1a275193f7de15ac50ca33bdad16
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 8daa272..83ac173 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -306,7 +306,6 @@
private SearchView mSearchView;
private MenuItem mSearchMenuItem;
private boolean mSearchMenuItemExpanded = false;
- private boolean mIsShowingSearchResults = false;
private SearchResultsSummary mSearchResultsFragment;
private String mSearchQuery;
@@ -1257,9 +1256,7 @@
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
if (item.getItemId() == mSearchMenuItem.getItemId()) {
- if (mSearchResultsFragment == null) {
- switchToSearchResultsFragmentIfNeeded();
- }
+ switchToSearchResultsFragmentIfNeeded();
}
return true;
}
@@ -1267,7 +1264,7 @@
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
if (item.getItemId() == mSearchMenuItem.getItemId()) {
- if (mIsShowingSearchResults) {
+ if (mSearchMenuItemExpanded) {
revertToInitialFragment();
}
}
@@ -1275,17 +1272,18 @@
}
private void switchToSearchResultsFragmentIfNeeded() {
- if (!mIsShowingSearchResults) {
- Fragment current = getFragmentManager().findFragmentById(R.id.prefs);
- if (current != null && current instanceof SearchResultsSummary) {
- mSearchResultsFragment = (SearchResultsSummary) current;
- } else {
- String title = getString(R.string.search_results_title);
- mSearchResultsFragment = (SearchResultsSummary) switchToFragment(
- SearchResultsSummary.class.getName(), null, false, true, title, true);
- }
- mIsShowingSearchResults = true;
+ if (mSearchResultsFragment != null) {
+ return;
}
+ Fragment current = getFragmentManager().findFragmentById(R.id.prefs);
+ if (current != null && current instanceof SearchResultsSummary) {
+ mSearchResultsFragment = (SearchResultsSummary) current;
+ } else {
+ String title = getString(R.string.search_results_title);
+ mSearchResultsFragment = (SearchResultsSummary) switchToFragment(
+ SearchResultsSummary.class.getName(), null, false, true, title, true);
+ }
+ mSearchMenuItemExpanded = true;
}
public void needToRevertToInitialFragment() {
@@ -1294,10 +1292,10 @@
private void revertToInitialFragment() {
mNeedToRevertToInitialFragment = false;
- getFragmentManager().popBackStack(SettingsActivity.BACK_STACK_PREFS,
- FragmentManager.POP_BACK_STACK_INCLUSIVE);
mSearchResultsFragment = null;
- mIsShowingSearchResults = false;
+ mSearchMenuItemExpanded = false;
+ getFragmentManager().popBackStackImmediate(SettingsActivity.BACK_STACK_PREFS,
+ FragmentManager.POP_BACK_STACK_INCLUSIVE);
mSearchMenuItem.collapseActionView();
}
}