diff options
author | Paul Westbrook <pwestbro@google.com> | 2012-08-15 13:08:31 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-08-15 13:08:31 -0700 |
commit | 3cc133fe36e86783dae73525d97a36b75a61908a (patch) | |
tree | d1f871f1fed358c2b3c45bbb2e4ff0c45db20e7b /photoviewer | |
parent | ad379b9393e46ba0e5f5b99e9e1008513fb1d37a (diff) | |
parent | 48f32e2bd993a91542b08c2efdbbb2b940273099 (diff) | |
download | android_frameworks_ex-3cc133fe36e86783dae73525d97a36b75a61908a.tar.gz android_frameworks_ex-3cc133fe36e86783dae73525d97a36b75a61908a.tar.bz2 android_frameworks_ex-3cc133fe36e86783dae73525d97a36b75a61908a.zip |
am 48f32e2b: am 8c38139e: am 459c618b: Fix some photo view problems
* commit '48f32e2bd993a91542b08c2efdbbb2b940273099':
Fix some photo view problems
Diffstat (limited to 'photoviewer')
4 files changed, 33 insertions, 34 deletions
diff --git a/photoviewer/src/com/android/ex/photo/PhotoViewActivity.java b/photoviewer/src/com/android/ex/photo/PhotoViewActivity.java index 7a4c6a9..927b0e4 100644 --- a/photoviewer/src/com/android/ex/photo/PhotoViewActivity.java +++ b/photoviewer/src/com/android/ex/photo/PhotoViewActivity.java @@ -35,7 +35,6 @@ import android.view.View; import com.android.ex.photo.PhotoViewPager.InterceptType; import com.android.ex.photo.PhotoViewPager.OnInterceptTouchListener; -import com.android.ex.photo.adapters.BaseFragmentPagerAdapter.OnFragmentPagerListener; import com.android.ex.photo.adapters.PhotoPagerAdapter; import com.android.ex.photo.fragments.PhotoViewFragment; import com.android.ex.photo.loaders.PhotoPagerLoader; @@ -49,7 +48,7 @@ import java.util.Set; */ public class PhotoViewActivity extends Activity implements LoaderCallbacks<Cursor>, OnPageChangeListener, OnInterceptTouchListener, - OnFragmentPagerListener, OnMenuVisibilityListener { + OnMenuVisibilityListener { /** * Listener to be invoked for screen events. @@ -183,7 +182,6 @@ public class PhotoViewActivity extends Activity implements // Create the adapter and add the view pager mAdapter = new PhotoPagerAdapter(this, getFragmentManager(), null); - mAdapter.setFragmentPagerListener(this); mViewPager = (PhotoViewPager) findViewById(R.id.photo_view_pager); mViewPager.setAdapter(mAdapter); @@ -300,6 +298,8 @@ public class PhotoViewActivity extends Activity implements mAlbumCount = data.getCount(); // Cannot do this directly; need to be out of the loader + // TODO(pwestbro): Fix this as this could cause a problem as the cursor may be + // closed before the runnable runs. new Handler().post(new Runnable() { @Override public void run() { @@ -356,11 +356,6 @@ public class PhotoViewActivity extends Activity implements public void onPageScrollStateChanged(int state) { } - @Override - public void onPageActivated(Fragment fragment) { - setViewActivated(); - } - public boolean isFragmentActive(Fragment fragment) { if (mViewPager == null || mAdapter == null) { return false; diff --git a/photoviewer/src/com/android/ex/photo/adapters/BaseFragmentPagerAdapter.java b/photoviewer/src/com/android/ex/photo/adapters/BaseFragmentPagerAdapter.java index 0c779a7..9c24575 100644 --- a/photoviewer/src/com/android/ex/photo/adapters/BaseFragmentPagerAdapter.java +++ b/photoviewer/src/com/android/ex/photo/adapters/BaseFragmentPagerAdapter.java @@ -41,21 +41,9 @@ import android.view.View; * added to a cache. If the fragment is evicted from the cache, it will be deleted. * An album may contain thousands of photos and we want to avoid having thousands of * fragments.</li> - * <li>The interface {@link OnFragmentPagerListener} and supporting plumbing has been - * added.</li> * </ol> */ public abstract class BaseFragmentPagerAdapter extends PagerAdapter { - /** - * Listener for fragment pager events - */ - public interface OnFragmentPagerListener { - /** - * The given fragment has been made the activated fragment. - */ - public void onPageActivated(Fragment fragment); - } - /** The default size of {@link #mFragmentCache} */ private static final int DEFAULT_CACHE_SIZE = 5; private static final String TAG = "FragmentPagerAdapter"; @@ -64,7 +52,6 @@ public abstract class BaseFragmentPagerAdapter extends PagerAdapter { private final FragmentManager mFragmentManager; private FragmentTransaction mCurTransaction = null; private Fragment mCurrentPrimaryItem = null; - private OnFragmentPagerListener mPagerListener; /** A cache to store detached fragments before they are removed */ private LruCache<String, Fragment> mFragmentCache = new FragmentCache(DEFAULT_CACHE_SIZE); @@ -144,9 +131,6 @@ public abstract class BaseFragmentPagerAdapter extends PagerAdapter { mCurrentPrimaryItem = fragment; } - if (mPagerListener != null) { - mPagerListener.onPageActivated(fragment); - } } @Override @@ -179,11 +163,6 @@ public abstract class BaseFragmentPagerAdapter extends PagerAdapter { public void restoreState(Parcelable state, ClassLoader loader) { } - /** Sets the fragment pager listener */ - public void setFragmentPagerListener(OnFragmentPagerListener pagerListener) { - mPagerListener = pagerListener; - } - /** Creates a name for the fragment */ protected String makeFragmentName(int viewId, int index) { return "android:switcher:" + viewId + ":" + index; diff --git a/photoviewer/src/com/android/ex/photo/fragments/PhotoViewFragment.java b/photoviewer/src/com/android/ex/photo/fragments/PhotoViewFragment.java index b8bfd4f..97ea3b8 100644 --- a/photoviewer/src/com/android/ex/photo/fragments/PhotoViewFragment.java +++ b/photoviewer/src/com/android/ex/photo/fragments/PhotoViewFragment.java @@ -106,16 +106,21 @@ public class PhotoViewFragment extends Fragment implements /** Whether or not the fragment should make the photo full-screen */ private boolean mFullScreen; + /** Whether or not the progress bar is showing valid information about the progress stated */ + private boolean mProgressBarNeeded = true; + private View mPhotoPreviewAndProgress; public PhotoViewFragment() { mPosition = -1; + mProgressBarNeeded = true; } public PhotoViewFragment(Intent intent, int position, PhotoPagerAdapter adapter) { mIntent = intent; mPosition = position; mAdapter = adapter; + mProgressBarNeeded = true; } @Override @@ -255,29 +260,45 @@ public class PhotoViewFragment extends Fragment implements final int id = loader.getId(); switch (id) { case LOADER_ID_PHOTO: - if (data == null) { - getLoaderManager().initLoader(LOADER_ID_THUMBNAIL, null, this); - } else { + if (data != null) { bindPhoto(data); mPhotoPreviewAndProgress.setVisibility(View.GONE); + mProgressBarNeeded = false; + } else { + // Received a null result for the full size image. Instead attempt to load the + // thumbnail + getLoaderManager().initLoader(LOADER_ID_THUMBNAIL, null, this); } break; case LOADER_ID_THUMBNAIL: if (isPhotoBound()) { + // There is need to do anything with the thumbnail image, as the full size + // image is being shown. + mPhotoPreviewAndProgress.setVisibility(View.GONE); + mProgressBarNeeded = false; return; } else if (data == null) { // no preview, show default mPhotoPreviewImage.setVisibility(View.VISIBLE); mPhotoPreviewImage.setImageResource(R.drawable.default_image); + + mProgressBarNeeded = false; } else { mPhotoPreviewImage.setVisibility(View.VISIBLE); mPhotoPreviewImage.setImageBitmap(data); + + mProgressBarNeeded = false; } break; default: break; } + if (mProgressBarNeeded == false) { + // Hide the progress bar as it isn't needed anymore. + mPhotoProgressBar.setVisibility(View.GONE); + } + mCallback.setViewActivated(); setViewVisibility(); } @@ -406,4 +427,8 @@ public class PhotoViewFragment extends Fragment implements public ImageView getRetryButton() { return mRetryButton; } + + public boolean isProgressBarNeeded() { + return mProgressBarNeeded; + } } diff --git a/photoviewer/src/com/android/ex/photo/views/ProgressBarWrapper.java b/photoviewer/src/com/android/ex/photo/views/ProgressBarWrapper.java index 77b9000..2669273 100644 --- a/photoviewer/src/com/android/ex/photo/views/ProgressBarWrapper.java +++ b/photoviewer/src/com/android/ex/photo/views/ProgressBarWrapper.java @@ -27,8 +27,8 @@ import android.widget.ProgressBar; * modes. */ public class ProgressBarWrapper { - private ProgressBar mDeterminate; - private ProgressBar mIndeterminate; + private final ProgressBar mDeterminate; + private final ProgressBar mIndeterminate; private boolean mIsIndeterminate; public ProgressBarWrapper(ProgressBar determinate, |