*/
package com.owncloud.android.ui.preview;
-import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.Vector;
import android.accounts.Account;
-import android.os.Bundle;
-import android.os.Parcelable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
-import android.support.v4.app.FragmentTransaction;
-import android.support.v4.view.PagerAdapter;
-import android.support.v4.view.ViewPager;
-import android.util.Log;
-import android.view.View;
import android.view.ViewGroup;
-import com.owncloud.android.datamodel.DataStorageManager;
+import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.ui.fragment.FileFragment;
//public class PreviewImagePagerAdapter extends PagerAdapter {
public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter {
- private static final String TAG = PreviewImagePagerAdapter.class.getSimpleName();
-
private Vector<OCFile> mImageFiles;
private Account mAccount;
private Set<Object> mObsoleteFragments;
private Set<Integer> mObsoletePositions;
private Set<Integer> mDownloadErrors;
- private DataStorageManager mStorageManager;
+ private FileDataStorageManager mStorageManager;
private Map<Integer, FileFragment> mCachedFragments;
- /*
- private final FragmentManager mFragmentManager;
- private FragmentTransaction mCurTransaction = null;
- private ArrayList<Fragment.SavedState> mSavedState = new ArrayList<Fragment.SavedState>();
- private ArrayList<Fragment> mFragments = new ArrayList<Fragment>();
- private Fragment mCurrentPrimaryItem = null;
- */
-
/**
* Constructor.
*
* @param parentFolder Folder where images will be searched for.
* @param storageManager Bridge to database.
*/
- public PreviewImagePagerAdapter(FragmentManager fragmentManager, OCFile parentFolder, Account account, DataStorageManager storageManager) {
+ public PreviewImagePagerAdapter(FragmentManager fragmentManager, OCFile parentFolder, Account account, FileDataStorageManager storageManager) {
super(fragmentManager);
if (fragmentManager == null) {
mAccount = account;
mStorageManager = storageManager;
- mImageFiles = mStorageManager.getDirectoryImages(parentFolder);
+ mImageFiles = mStorageManager.getFolderImages(parentFolder);
mObsoleteFragments = new HashSet<Object>();
mObsoletePositions = new HashSet<Integer>();
mDownloadErrors = new HashSet<Integer>();
return mDownloadErrors.contains(Integer.valueOf(position));
}
+ /**
+ * Reset the image zoom to default value for each CachedFragments
+ */
+ public void resetZoom() {
+ Iterator<FileFragment> entries = mCachedFragments.values().iterator();
+ while (entries.hasNext()) {
+ FileFragment fileFragment = (FileFragment) entries.next();
+ if (fileFragment instanceof PreviewImageFragment) {
+ ((PreviewImageFragment) fileFragment).getImageView().resetZoom();
+ }
+ }
+ }
-
/* -*
* Called when a change in the shown pages is going to start being made.
*
*- /
@Override
public void startUpdate(ViewGroup container) {
- Log.e(TAG, "** startUpdate");
+ Log_OC.e(TAG, "** startUpdate");
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
- Log.e(TAG, "** instantiateItem " + position);
+ Log_OC.e(TAG, "** instantiateItem " + position);
if (mFragments.size() > position) {
Fragment fragment = mFragments.get(position);
if (fragment != null) {
- Log.e(TAG, "** \t returning cached item");
+ Log_OC.e(TAG, "** \t returning cached item");
return fragment;
}
}
}
fragment.setMenuVisibility(false);
mFragments.set(position, fragment);
- //Log.e(TAG, "** \t adding fragment at position " + position + ", containerId " + container.getId());
+ //Log_OC.e(TAG, "** \t adding fragment at position " + position + ", containerId " + container.getId());
mCurTransaction.add(container.getId(), fragment);
return fragment;
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
- Log.e(TAG, "** destroyItem " + position);
+ Log_OC.e(TAG, "** destroyItem " + position);
Fragment fragment = (Fragment)object;
if (mCurTransaction == null) {
mCurTransaction = mFragmentManager.beginTransaction();
}
- Log.e(TAG, "** \t removing fragment at position " + position);
+ Log_OC.e(TAG, "** \t removing fragment at position " + position);
while (mSavedState.size() <= position) {
mSavedState.add(null);
}
@Override
public void finishUpdate(ViewGroup container) {
- Log.e(TAG, "** finishUpdate (start)");
+ Log_OC.e(TAG, "** finishUpdate (start)");
if (mCurTransaction != null) {
mCurTransaction.commitAllowingStateLoss();
mCurTransaction = null;
mFragmentManager.executePendingTransactions();
}
- Log.e(TAG, "** finishUpdate (end)");
+ Log_OC.e(TAG, "** finishUpdate (end)");
}
@Override
f.setMenuVisibility(false);
mFragments.set(index, f);
} else {
- Log.w(TAG, "Bad fragment at key " + key);
+ Log_OC.w(TAG, "Bad fragment at key " + key);
}
}
}