mirror of
https://github.com/nextcloud/android.git
synced 2024-11-23 13:45:35 +03:00
Fixed recovery of position list when browsing up after two rotations
This commit is contained in:
parent
2cfed6eaa7
commit
fc435f64f0
2 changed files with 13 additions and 3 deletions
|
@ -23,6 +23,8 @@ import android.graphics.Canvas;
|
|||
import android.util.AttributeSet;
|
||||
import android.widget.ListView;
|
||||
|
||||
import com.owncloud.android.lib.common.utils.Log_OC;
|
||||
|
||||
/**
|
||||
* ListView allowing to specify the position of an item that should be centered in the visible area, if possible.
|
||||
*
|
||||
|
@ -32,6 +34,8 @@ import android.widget.ListView;
|
|||
*/
|
||||
public class ExtendedListView extends ListView {
|
||||
|
||||
private static final String TAG = ExtendedListView.class.getSimpleName();
|
||||
|
||||
private int mPositionToSetAndCenter = 0;
|
||||
|
||||
public ExtendedListView(Context context) {
|
||||
|
@ -55,6 +59,7 @@ public class ExtendedListView extends ListView {
|
|||
protected void onDraw (Canvas canvas) {
|
||||
super.onDraw(canvas);
|
||||
if (mPositionToSetAndCenter > 0) {
|
||||
Log_OC.v(TAG, "Centering around position " + mPositionToSetAndCenter);
|
||||
this.setSelectionFromTop(mPositionToSetAndCenter, getHeight() / 2);
|
||||
mPositionToSetAndCenter = 0;
|
||||
}
|
||||
|
|
|
@ -139,8 +139,13 @@ implements OnItemClickListener, OnEnforceableRefreshListener {
|
|||
|
||||
if (savedInstanceState != null) {
|
||||
int referencePosition = savedInstanceState.getInt(KEY_SAVED_LIST_POSITION);
|
||||
mListView.setAndCenterSelection(referencePosition);
|
||||
mGridView.setSelection(referencePosition);
|
||||
if (mCurrentListView == mListView) {
|
||||
Log_OC.v(TAG, "Setting and centering around list position " + referencePosition);
|
||||
mListView.setAndCenterSelection(referencePosition);
|
||||
} else {
|
||||
Log_OC.v(TAG, "Setting grid position " + referencePosition);
|
||||
mGridView.setSelection(referencePosition);
|
||||
}
|
||||
}
|
||||
|
||||
// Pull-down to refresh layout
|
||||
|
@ -227,7 +232,7 @@ implements OnItemClickListener, OnEnforceableRefreshListener {
|
|||
final int firstPosition = mFirstPositions.remove(mFirstPositions.size() -1);
|
||||
int top = mTops.remove(mTops.size() - 1);
|
||||
|
||||
Log_OC.d(TAG, "Setting selection to position: " + firstPosition + "; top: " + top + "; index: " + index);
|
||||
Log_OC.v(TAG, "Setting selection to position: " + firstPosition + "; top: " + top + "; index: " + index);
|
||||
|
||||
if (mCurrentListView == mListView) {
|
||||
if (mHeightCell*index <= mListView.getHeight()) {
|
||||
|
|
Loading…
Reference in a new issue