Restore Focus after rotation if we are searching
Bug:6027055
Change-Id: I3b9e23ab115c303ac2a68d8ddba55a35e2c4ed01
diff --git a/src/com/android/contacts/activities/ActionBarAdapter.java b/src/com/android/contacts/activities/ActionBarAdapter.java
index 3024418..8bd9bf9 100644
--- a/src/com/android/contacts/activities/ActionBarAdapter.java
+++ b/src/com/android/contacts/activities/ActionBarAdapter.java
@@ -383,7 +383,7 @@
}
}
- private void setFocusOnSearchView() {
+ public void setFocusOnSearchView() {
mSearchView.requestFocus();
mSearchView.setIconified(false); // Workaround for the "IME not popping up" issue.
}
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 04daa9a..5915a7a 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -1689,6 +1689,17 @@
}
@Override
+ protected void onRestoreInstanceState(Bundle savedInstanceState) {
+ super.onRestoreInstanceState(savedInstanceState);
+ // In our own lifecycle, the focus is saved and restore but later taken away by the
+ // ViewPager. As a hack, we force focus on the SearchView if we know that we are searching.
+ // This fixes the keyboard going away on screen rotation
+ if (mActionBarAdapter.isSearchMode()) {
+ mActionBarAdapter.setFocusOnSearchView();
+ }
+ }
+
+ @Override
public DialogManager getDialogManager() {
return mDialogManager;
}