X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/def870aa0fffb6127d77efe1bda3f7dc617406c8..6cfa24f55ab605770df08a6bed889bfccf0c0888:/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 c6fd7ca9..b6b28375 100644 --- a/src/com/owncloud/android/ui/preview/PreviewImagePagerAdapter.java +++ b/src/com/owncloud/android/ui/preview/PreviewImagePagerAdapter.java @@ -36,7 +36,7 @@ import android.view.ViewGroup; import com.owncloud.android.datamodel.DataStorageManager; import com.owncloud.android.datamodel.OCFile; -import com.owncloud.android.ui.fragment.FileDownloadFragment; +import com.owncloud.android.ui.fragment.FileFragment; /** * Adapter class that provides Fragment instances @@ -51,6 +51,7 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { private Vector mImageFiles; private Account mAccount; private Set mObsoleteFragments; + private Set mObsoletePositions; private DataStorageManager mStorageManager; /* @@ -70,7 +71,7 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { */ public PreviewImagePagerAdapter(FragmentManager fragmentManager, OCFile parentFolder, Account account, DataStorageManager storageManager) { super(fragmentManager); - + if (fragmentManager == null) { throw new IllegalArgumentException("NULL FragmentManager instance"); } @@ -85,6 +86,8 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { mStorageManager = storageManager; mImageFiles = mStorageManager.getDirectoryImages(parentFolder); mObsoleteFragments = new HashSet(); + mObsoletePositions = new HashSet(); + //mFragmentManager = fragmentManager; } @@ -99,13 +102,12 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { public Fragment getItem(int i) { - Log.e(TAG, "GETTING PAGE " + i); 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; } @@ -125,13 +127,13 @@ 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 public int getItemPosition(Object object) { - Log.e(TAG, "getItemPosition "); if (mObsoleteFragments.contains(object)) { mObsoleteFragments.remove(object); return POSITION_NONE; @@ -140,11 +142,26 @@ 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) { + 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"); @@ -183,7 +200,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; @@ -289,6 +306,6 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { } } } - } */ - + } + */ }