diff options
| author | Mark Wei <markwei@google.com> | 2013-01-22 23:02:17 -0800 |
|---|---|---|
| committer | Mark Wei <markwei@google.com> | 2013-01-29 14:26:21 -0800 |
| commit | 79bc0d5ba2f06b25052fe95fac1593ebde234d9a (patch) | |
| tree | ff85822b30999d30df8bef89a0380fa4f0bc6d0c | |
| parent | 0bf849421d303e05c600cdcd7dab73cc84809a36 (diff) | |
| download | android_frameworks_opt_photoviewer-79bc0d5ba2f06b25052fe95fac1593ebde234d9a.tar.gz android_frameworks_opt_photoviewer-79bc0d5ba2f06b25052fe95fac1593ebde234d9a.tar.bz2 android_frameworks_opt_photoviewer-79bc0d5ba2f06b25052fe95fac1593ebde234d9a.zip | |
Starts a pending download immediately when swiping to that image.
Add a new Attachment state, PAUSED, for when we've queued the attachment in the
DownloadManager, but it hasn't started yet.
Modified onViewActivated() so it would only get triggered once when you swipe to
that fragment.
Bug: 8023818
Change-Id: I319f12235559feb1f716515155881188894d6f05
| -rw-r--r-- | src/com/android/ex/photo/PhotoViewActivity.java | 37 | ||||
| -rw-r--r-- | src/com/android/ex/photo/PhotoViewCallbacks.java | 8 | ||||
| -rw-r--r-- | src/com/android/ex/photo/fragments/PhotoViewFragment.java | 6 |
3 files changed, 29 insertions, 22 deletions
diff --git a/src/com/android/ex/photo/PhotoViewActivity.java b/src/com/android/ex/photo/PhotoViewActivity.java index 7408952..0d5e8bd 100644 --- a/src/com/android/ex/photo/PhotoViewActivity.java +++ b/src/com/android/ex/photo/PhotoViewActivity.java @@ -45,7 +45,9 @@ import com.android.ex.photo.fragments.PhotoViewFragment; import com.android.ex.photo.loaders.PhotoPagerLoader; import com.android.ex.photo.provider.PhotoContract; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; /** @@ -90,8 +92,9 @@ public class PhotoViewActivity extends FragmentActivity implements protected PhotoPagerAdapter mAdapter; /** Whether or not we're in "full screen" mode */ private boolean mFullScreen; - /** The set of listeners wanting full screen state */ - private Set<OnScreenListener> mScreenListeners = new HashSet<OnScreenListener>(); + /** The listeners wanting full screen state for each screen position */ + private Map<Integer, OnScreenListener> + mScreenListeners = new HashMap<Integer, OnScreenListener>(); /** The set of listeners wanting full screen state */ private Set<CursorChangedListener> mCursorListeners = new HashSet<CursorChangedListener>(); /** When {@code true}, restart the loader when the activity becomes active */ @@ -156,6 +159,7 @@ public class PhotoViewActivity extends FragmentActivity implements mMaxInitialScale = mIntent.getFloatExtra(Intents.EXTRA_MAX_INITIAL_SCALE, 1.0f); mPhotoIndex = currentItem; + mIsEmpty = true; setContentView(R.layout.photo_activity_view); @@ -231,13 +235,13 @@ public class PhotoViewActivity extends FragmentActivity implements } @Override - public void addScreenListener(OnScreenListener listener) { - mScreenListeners.add(listener); + public void addScreenListener(int position, OnScreenListener listener) { + mScreenListeners.put(position, listener); } @Override - public void removeScreenListener(OnScreenListener listener) { - mScreenListeners.remove(listener); + public void removeScreenListener(int position) { + mScreenListeners.remove(position); } @Override @@ -318,6 +322,7 @@ public class PhotoViewActivity extends FragmentActivity implements mRestartLoader = true; return; } + boolean wasEmpty = mIsEmpty; mIsEmpty = false; mAdapter.swapCursor(data); @@ -335,7 +340,9 @@ public class PhotoViewActivity extends FragmentActivity implements } mViewPager.setCurrentItem(itemIndex, false); - setViewActivated(); + if (wasEmpty) { + setViewActivated(itemIndex); + } } // Update the any action items updateActionItems(); @@ -368,7 +375,7 @@ public class PhotoViewActivity extends FragmentActivity implements @Override public void onPageSelected(int position) { mPhotoIndex = position; - setViewActivated(); + setViewActivated(position); } @Override @@ -393,14 +400,13 @@ public class PhotoViewActivity extends FragmentActivity implements boolean interceptLeft = false; boolean interceptRight = false; - for (OnScreenListener listener : mScreenListeners) { + for (OnScreenListener listener : mScreenListeners.values()) { if (!interceptLeft) { interceptLeft = listener.onInterceptMoveLeft(origX, origY); } if (!interceptRight) { interceptRight = listener.onInterceptMoveRight(origX, origY); } - listener.onViewActivated(); } if (interceptLeft) { @@ -432,7 +438,7 @@ public class PhotoViewActivity extends FragmentActivity implements } if (fullScreenChanged) { - for (OnScreenListener listener : mScreenListeners) { + for (OnScreenListener listener : mScreenListeners.values()) { listener.onFullScreenChanged(mFullScreen); } } @@ -480,8 +486,9 @@ public class PhotoViewActivity extends FragmentActivity implements }; @Override - public void setViewActivated() { - for (OnScreenListener listener : mScreenListeners) { + public void setViewActivated(int position) { + OnScreenListener listener = mScreenListeners.get(position); + if (listener != null) { listener.onViewActivated(); } } @@ -553,8 +560,8 @@ public class PhotoViewActivity extends FragmentActivity implements } @Override - public void onNewPhotoLoaded() { - setViewActivated(); + public void onNewPhotoLoaded(int position) { + // do nothing } protected boolean isFullScreen() { diff --git a/src/com/android/ex/photo/PhotoViewCallbacks.java b/src/com/android/ex/photo/PhotoViewCallbacks.java index 7e789c6..075b116 100644 --- a/src/com/android/ex/photo/PhotoViewCallbacks.java +++ b/src/com/android/ex/photo/PhotoViewCallbacks.java @@ -50,17 +50,17 @@ public interface PhotoViewCallbacks { public void onCursorChanged(Cursor cursor); } - public void addScreenListener(OnScreenListener listener); + public void addScreenListener(int position, OnScreenListener listener); - public void removeScreenListener(OnScreenListener listener); + public void removeScreenListener(int position); public void addCursorListener(CursorChangedListener listener); public void removeCursorListener(CursorChangedListener listener); - public void setViewActivated(); + public void setViewActivated(int position); - public void onNewPhotoLoaded(); + public void onNewPhotoLoaded(int position); public void toggleFullScreen(); diff --git a/src/com/android/ex/photo/fragments/PhotoViewFragment.java b/src/com/android/ex/photo/fragments/PhotoViewFragment.java index 21c355a..bfa8a3c 100644 --- a/src/com/android/ex/photo/fragments/PhotoViewFragment.java +++ b/src/com/android/ex/photo/fragments/PhotoViewFragment.java @@ -215,7 +215,7 @@ public class PhotoViewFragment extends Fragment implements @Override public void onResume() { super.onResume(); - mCallback.addScreenListener(this); + mCallback.addScreenListener(mPosition, this); mCallback.addCursorListener(this); if (!isPhotoBound()) { @@ -231,7 +231,7 @@ public class PhotoViewFragment extends Fragment implements public void onPause() { // Remove listeners mCallback.removeCursorListener(this); - mCallback.removeScreenListener(this); + mCallback.removeScreenListener(mPosition); resetPhotoView(); super.onPause(); } @@ -313,7 +313,7 @@ public class PhotoViewFragment extends Fragment implements } if (data != null) { - mCallback.onNewPhotoLoaded(); + mCallback.onNewPhotoLoaded(mPosition); } setViewVisibility(); } |
