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;
     }