summaryrefslogtreecommitdiffstats
path: root/photoviewer
diff options
context:
space:
mode:
authorPaul Westbrook <pwestbro@google.com>2012-08-15 13:08:31 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-08-15 13:08:31 -0700
commit3cc133fe36e86783dae73525d97a36b75a61908a (patch)
treed1f871f1fed358c2b3c45bbb2e4ff0c45db20e7b /photoviewer
parentad379b9393e46ba0e5f5b99e9e1008513fb1d37a (diff)
parent48f32e2bd993a91542b08c2efdbbb2b940273099 (diff)
downloadandroid_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')
-rw-r--r--photoviewer/src/com/android/ex/photo/PhotoViewActivity.java11
-rw-r--r--photoviewer/src/com/android/ex/photo/adapters/BaseFragmentPagerAdapter.java21
-rw-r--r--photoviewer/src/com/android/ex/photo/fragments/PhotoViewFragment.java31
-rw-r--r--photoviewer/src/com/android/ex/photo/views/ProgressBarWrapper.java4
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,