X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/4ba98835dfa26fd6d0fff0e24e8747054b8bdb0e..86cec34b2534b770d9e07700c6b64ebea1c1296f:/src/com/owncloud/android/ui/preview/PreviewImagePagerAdapter.java diff --git a/src/com/owncloud/android/ui/preview/PreviewImagePagerAdapter.java b/src/com/owncloud/android/ui/preview/PreviewImagePagerAdapter.java index 16d880f3..9c56263b 100644 --- a/src/com/owncloud/android/ui/preview/PreviewImagePagerAdapter.java +++ b/src/com/owncloud/android/ui/preview/PreviewImagePagerAdapter.java @@ -36,29 +36,29 @@ import android.view.ViewGroup; import com.owncloud.android.datamodel.DataStorageManager; import com.owncloud.android.datamodel.OCFile; +import com.owncloud.android.ui.fragment.FileFragment; /** * Adapter class that provides Fragment instances * * @author David A. Velasco */ -//public class PreviewImagePagerAdapter extends PagerAdapter { -public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { +public class PreviewImagePagerAdapter extends PagerAdapter { +//public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { private static final String TAG = PreviewImagePagerAdapter.class.getSimpleName(); private Vector mImageFiles; private Account mAccount; private Set mObsoleteFragments; + private Set mObsoletePositions; private DataStorageManager mStorageManager; - /* private final FragmentManager mFragmentManager; private FragmentTransaction mCurTransaction = null; private ArrayList mSavedState = new ArrayList(); private ArrayList mFragments = new ArrayList(); private Fragment mCurrentPrimaryItem = null; - */ /** * Constructor. @@ -68,8 +68,8 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { * @param storageManager Bridge to database. */ public PreviewImagePagerAdapter(FragmentManager fragmentManager, OCFile parentFolder, Account account, DataStorageManager storageManager) { - super(fragmentManager); - + //super(fragmentManager); + if (fragmentManager == null) { throw new IllegalArgumentException("NULL FragmentManager instance"); } @@ -84,6 +84,8 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { mStorageManager = storageManager; mImageFiles = mStorageManager.getDirectoryImages(parentFolder); mObsoleteFragments = new HashSet(); + mObsoletePositions = new HashSet(); + mFragmentManager = fragmentManager; } @@ -102,9 +104,9 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { OCFile file = mImageFiles.get(i); Fragment fragment = null; if (file.isDown()) { - fragment = new PreviewImageFragment(file, mAccount); + fragment = new PreviewImageFragment(file, mAccount, mObsoletePositions.contains(Integer.valueOf(i))); } else { - fragment = new FileDownloadFragment(file, mAccount); + fragment = new FileDownloadFragment(file, mAccount, mObsoletePositions.contains(Integer.valueOf(i))); } return fragment; } @@ -124,8 +126,9 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { } public void updateFile(int position, OCFile file) { - mImageFiles.set(position, file); mObsoleteFragments.add(instantiateItem(null, position)); + mObsoletePositions.add(Integer.valueOf(position)); + mImageFiles.set(position, file); } @Override @@ -139,11 +142,27 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { } - /* * + /** + * Should not be used for not already started fragments... + * + * @return + */ + protected FileFragment getFragmentAt(int position) { + try { + return (FileFragment) instantiateItem(null, position); + + } catch (Exception e) { + Log.e(TAG, "Wrong access to fragment in gallery ", e); + return null; + } + } + + + /** * Called when a change in the shown pages is going to start being made. * * @param container The containing View which is displaying this adapter's page views. - * -/ + */ @Override public void startUpdate(ViewGroup container) { Log.e(TAG, "** startUpdate"); @@ -182,7 +201,7 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { } fragment.setMenuVisibility(false); mFragments.set(position, fragment); - Log.e(TAG, "** \t adding fragment at position " + position + ", containerId " + container.getId()); + //Log.e(TAG, "** \t adding fragment at position " + position + ", containerId " + container.getId()); mCurTransaction.add(container.getId(), fragment); return fragment; @@ -288,6 +307,6 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { } } } - } */ + } }