summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Wei <markwei@google.com>2013-01-22 23:02:17 -0800
committerMark Wei <markwei@google.com>2013-01-29 14:26:21 -0800
commit79bc0d5ba2f06b25052fe95fac1593ebde234d9a (patch)
treeff85822b30999d30df8bef89a0380fa4f0bc6d0c
parent0bf849421d303e05c600cdcd7dab73cc84809a36 (diff)
downloadandroid_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.java37
-rw-r--r--src/com/android/ex/photo/PhotoViewCallbacks.java8
-rw-r--r--src/com/android/ex/photo/fragments/PhotoViewFragment.java6
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();
}