Fix group list scroll position resetting issue

- Clear mSelectionToScreenRequested once requestSelectionToScreen() is called.
- Do requestSelectionToScreen() only when selection is visible (i.e. on tablet)
- Also removed unnecessary ListView.save/restoreState.  There was no code between
  these.

Bug 5221320

Change-Id: Ie3dd466b4f3f84562ffec4c72a8026f5833a0b5d
diff --git a/src/com/android/contacts/group/GroupBrowseListFragment.java b/src/com/android/contacts/group/GroupBrowseListFragment.java
index 2b9c594..82539e8 100644
--- a/src/com/android/contacts/group/GroupBrowseListFragment.java
+++ b/src/com/android/contacts/group/GroupBrowseListFragment.java
@@ -220,12 +220,9 @@
         }
         mAdapter.setCursor(mGroupListCursor);
 
-        Parcelable listState = mListView.onSaveInstanceState();
         if (mSelectionToScreenRequested) {
+            mSelectionToScreenRequested = false;
             requestSelectionToScreen();
-        } else {
-            // Restore the scroll position.
-            mListView.onRestoreInstanceState(listState);
         }
 
         mSelectedGroupUri = mAdapter.getSelectedGroup();
@@ -262,6 +259,9 @@
     }
 
     protected void requestSelectionToScreen() {
+        if (!mSelectionVisible) {
+            return; // If selection isn't visible we don't care.
+        }
         int selectedPosition = mAdapter.getSelectedGroupPosition();
         if (selectedPosition != -1) {
             mListView.requestPositionToScreen(selectedPosition,