X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/db7eea712def99464bab329da008c6ca56f581cf..00482b6dcb1e98da39df54374f7098b51d66bee5:/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 54ed582f..dda7dda2 100644 --- a/src/com/owncloud/android/ui/preview/PreviewImagePagerAdapter.java +++ b/src/com/owncloud/android/ui/preview/PreviewImagePagerAdapter.java @@ -1,10 +1,12 @@ -/* ownCloud Android client application - * Copyright (C) 2012-2013 ownCloud Inc. +/** + * ownCloud Android client application + * + * @author David A. Velasco + * Copyright (C) 2015 ownCloud Inc. * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. + * it under the terms of the GNU General Public License version 2, + * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -17,65 +19,50 @@ */ 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; +import com.owncloud.android.utils.FileStorageUtils; /** - * Adapter class that provides Fragment instances - * - * @author David A. Velasco + * Adapter class that provides Fragment instances */ //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 Set mDownloadErrors; - private DataStorageManager mStorageManager; + private FileDataStorageManager mStorageManager; private Map mCachedFragments; - /* - private final FragmentManager mFragmentManager; - private FragmentTransaction mCurTransaction = null; - private ArrayList mSavedState = new ArrayList(); - private ArrayList mFragments = new ArrayList(); - private Fragment mCurrentPrimaryItem = null; - */ - /** * Constructor. * - * @param fragmentManager {@link FragmentManager} instance that will handle the {@link Fragment}s provided by the adapter. + * @param fragmentManager {@link FragmentManager} instance that will handle + * the {@link Fragment}s provided by the adapter. * @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 /*, + boolean onlyOnDevice*/) { super(fragmentManager); if (fragmentManager == null) { @@ -90,14 +77,17 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { mAccount = account; mStorageManager = storageManager; - mImageFiles = mStorageManager.getDirectoryImages(parentFolder); + // TODO Enable when "On Device" is recovered ? + mImageFiles = mStorageManager.getFolderImages(parentFolder/*, false*/); + + mImageFiles = FileStorageUtils.sortFolder(mImageFiles); + mObsoleteFragments = new HashSet(); mObsoletePositions = new HashSet(); mDownloadErrors = new HashSet(); //mFragmentManager = fragmentManager; mCachedFragments = new HashMap(); } - /** * Returns the image files handled by the adapter. @@ -113,15 +103,18 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { OCFile file = mImageFiles.get(i); Fragment fragment = null; if (file.isDown()) { - fragment = new PreviewImageFragment(file, mAccount, mObsoletePositions.contains(Integer.valueOf(i))); + fragment = PreviewImageFragment.newInstance(file, + mObsoletePositions.contains(Integer.valueOf(i))); } else if (mDownloadErrors.contains(Integer.valueOf(i))) { - fragment = new FileDownloadFragment(file, mAccount, true); + fragment = FileDownloadFragment.newInstance(file, mAccount, true); ((FileDownloadFragment)fragment).setError(true); mDownloadErrors.remove(Integer.valueOf(i)); } else { - fragment = new FileDownloadFragment(file, mAccount, mObsoletePositions.contains(Integer.valueOf(i))); + fragment = FileDownloadFragment.newInstance( + file, mAccount, mObsoletePositions.contains(Integer.valueOf(i)) + ); } mObsoletePositions.remove(Integer.valueOf(i)); return fragment; @@ -197,8 +190,19 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { return mDownloadErrors.contains(Integer.valueOf(position)); } + /** + * Reset the image zoom to default value for each CachedFragments + */ + public void resetZoom() { + Iterator 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. * @@ -206,17 +210,17 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { *- / @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; } } @@ -242,7 +246,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_OC.e(TAG, "** \t adding fragment at position " + position + ", containerId " + container.getId()); mCurTransaction.add(container.getId(), fragment); return fragment; @@ -250,13 +254,13 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { @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); } @@ -282,13 +286,13 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { @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 @@ -343,7 +347,7 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter { 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); } } }