Fixed recovery of position list when browsing up after two rotations oc-android-1.7.0 oc-android-1.7.0_signed
authorDavid A. Velasco <dvelasco@solidgear.es>
Wed, 18 Feb 2015 10:29:31 +0000 (11:29 +0100)
committerDavid A. Velasco <dvelasco@solidgear.es>
Wed, 18 Feb 2015 10:29:31 +0000 (11:29 +0100)
src/com/owncloud/android/ui/ExtendedListView.java
src/com/owncloud/android/ui/fragment/ExtendedListFragment.java

index 33affb6..20bf66f 100644 (file)
@@ -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;
         }
index 0fd12c6..8b014af 100644 (file)
@@ -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()) {