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,