Fixed bug: show the selected image in the gallery, instead of always the first in...
authorDavid A. Velasco <dvelasco@solidgear.es>
Tue, 26 Feb 2013 11:49:15 +0000 (12:49 +0100)
committerDavid A. Velasco <dvelasco@solidgear.es>
Tue, 26 Feb 2013 11:49:15 +0000 (12:49 +0100)
src/com/owncloud/android/ui/preview/PreviewImageActivity.java
src/com/owncloud/android/ui/preview/PreviewImagePagerAdapter.java

index 1e9d108..6741e33 100644 (file)
@@ -102,14 +102,13 @@ public class PreviewImageActivity extends SherlockFragmentActivity implements Fi
             mParentFolder = mStorageManager.getFileByPath(OCFile.PATH_SEPARATOR);
         }
 
-        createViewPager();
-
-        if (savedInstanceState == null) {
-            mWaitingToPreview = (mFile.isDown())?null:mFile;
-        } else {
+        mWaitingToPreview = null;
+        if (savedInstanceState != null) {
             mWaitingToPreview = (OCFile) savedInstanceState.getParcelable(KEY_WAITING_TO_PREVIEW);
         }
         
+        createViewPager();
+
         mDownloadConnection = new PreviewImageServiceConnection();
         bindService(new Intent(this, FileDownloader.class), mDownloadConnection, Context.BIND_AUTO_CREATE);
         mUploadConnection = new PreviewImageServiceConnection();
@@ -120,8 +119,11 @@ public class PreviewImageActivity extends SherlockFragmentActivity implements Fi
     private void createViewPager() {
         mPreviewImagePagerAdapter = new PreviewImagePagerAdapter(getSupportFragmentManager(), mParentFolder, mAccount, mStorageManager);
         mViewPager = (ViewPager) findViewById(R.id.fragmentPager);
+        int position = mPreviewImagePagerAdapter.getFilePosition(mFile);
+        Log.e(TAG, "Setting initial position " + position);
         mViewPager.setAdapter(mPreviewImagePagerAdapter);        
         mViewPager.setOnPageChangeListener(this);
+        mViewPager.setCurrentItem((position >= 0) ? position : 0);
     }
     
 
@@ -302,6 +304,7 @@ public class PreviewImageActivity extends SherlockFragmentActivity implements Fi
      */
     @Override
     public void onPageSelected(int position) {
+        Log.e(TAG, "onPageSelected " + position);
         OCFile currentFile = mPreviewImagePagerAdapter.getFileAt(position); 
         getSupportActionBar().setTitle(currentFile.getFileName());
         if (currentFile.isDown()) {
index 22aa495..c6fd7ca 100644 (file)
@@ -110,6 +110,10 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter {
         return fragment;
     }
 
+    public int getFilePosition(OCFile file) {
+        return mImageFiles.indexOf(file);
+    }
+    
     @Override
     public int getCount() {
         return mImageFiles.size();
@@ -129,11 +133,13 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter {
     public int getItemPosition(Object object) {
         Log.e(TAG, "getItemPosition ");
         if (mObsoleteFragments.contains(object)) {
+            mObsoleteFragments.remove(object);
             return POSITION_NONE;
         }
         return super.getItemPosition(object);
     }
-    
+
+
     /* *
      * Called when a change in the shown pages is going to start being made.
      *