Fixed crash when browsing app from instantUploads folder after entering into the...
authorDavid A. Velasco <dvelasco@solidgear.es>
Mon, 21 Apr 2014 12:27:06 +0000 (14:27 +0200)
committerDavid A. Velasco <dvelasco@solidgear.es>
Mon, 21 Apr 2014 12:27:06 +0000 (14:27 +0200)
src/com/owncloud/android/ui/fragment/OCFileListFragment.java

index fb0e4fa..95847ba 100644 (file)
@@ -196,31 +196,32 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName
      * Restore index and position
      */
     private void restoreIndexAndTopPosition() {
-        int index = mIndexes.get(mIndexes.size() - 1);
-        mIndexes.remove(mIndexes.size() - 1);
-        
-        int firstPosition = mFirstPositions.get(mFirstPositions.size() - 1);
-        mFirstPositions.remove(mFirstPositions.size() -1);
-        
-        int top = mTops.get(mTops.size() - 1);
-        mTops.remove(mTops.size() - 1);
-        
-        mList.setSelectionFromTop(firstPosition, top);
-        
-        // Move the scroll if the selection is not visible
-        int indexPosition = mHeightCell*index;
-        int height = mList.getHeight();
-        
-        if (indexPosition > height) {
-            if (android.os.Build.VERSION.SDK_INT >= 11)
-            {
-                mList.smoothScrollToPosition(index); 
-            }
-            else if (android.os.Build.VERSION.SDK_INT >= 8)
-            {
-                mList.setSelectionFromTop(index, 0);
-            }
+        if (mIndexes.size() > 0) {  
+            // needs to be checked; not every browse-up had a browse-down before 
+            
+            int index = mIndexes.remove(mIndexes.size() - 1);
             
+            int firstPosition = mFirstPositions.remove(mFirstPositions.size() -1);
+            
+            int top = mTops.remove(mTops.size() - 1);
+            
+            mList.setSelectionFromTop(firstPosition, top);
+            
+            // Move the scroll if the selection is not visible
+            int indexPosition = mHeightCell*index;
+            int height = mList.getHeight();
+            
+            if (indexPosition > height) {
+                if (android.os.Build.VERSION.SDK_INT >= 11)
+                {
+                    mList.smoothScrollToPosition(index); 
+                }
+                else if (android.os.Build.VERSION.SDK_INT >= 8)
+                {
+                    mList.setSelectionFromTop(index, 0);
+                }
+                
+            }
         }
     }