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
private Vector<OCFile> mImageFiles;
private Account mAccount;
private Set<Object> mObsoleteFragments;
+ private Set<Integer> mObsoletePositions;
private DataStorageManager mStorageManager;
/*
*/
public PreviewImagePagerAdapter(FragmentManager fragmentManager, OCFile parentFolder, Account account, DataStorageManager storageManager) {
super(fragmentManager);
-
+
if (fragmentManager == null) {
throw new IllegalArgumentException("NULL FragmentManager instance");
}
mStorageManager = storageManager;
mImageFiles = mStorageManager.getDirectoryImages(parentFolder);
mObsoleteFragments = new HashSet<Object>();
+ mObsoletePositions = new HashSet<Integer>();
+ //mFragmentManager = fragmentManager;
}
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;
}
}
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;
}
- /* *
+ /**
+ * 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");
}
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;
}
}
}
- } */
-
+ }
+ */
}