summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/app
diff options
context:
space:
mode:
authorBobby Georgescu <georgescu@google.com>2012-10-18 14:02:16 -0700
committerBobby Georgescu <georgescu@google.com>2012-10-18 15:25:15 -0700
commit548038a155d94f674e7afc622f2a5b356a6f5328 (patch)
tree5243f41b593ee83057bd995566c96b94b204336f /src/com/android/gallery3d/app
parent155195bb5fa12d4f16872af3c30fc26701785414 (diff)
downloadandroid_packages_apps_Snap-548038a155d94f674e7afc622f2a5b356a6f5328.tar.gz
android_packages_apps_Snap-548038a155d94f674e7afc622f2a5b356a6f5328.tar.bz2
android_packages_apps_Snap-548038a155d94f674e7afc622f2a5b356a6f5328.zip
Various transition tweaks/fixes in Gallery
Bug: 7376109 -Add new animation preset for photos based on UX feedback -Fix showing of highlight when tapping album grid photo -Move StateTransition enum to StateTransitionAnimation.State Change-Id: I2ce57580fa6c5f34d9545561515031899eb41eb2
Diffstat (limited to 'src/com/android/gallery3d/app')
-rw-r--r--src/com/android/gallery3d/app/ActivityState.java26
-rw-r--r--src/com/android/gallery3d/app/AlbumPage.java26
-rw-r--r--src/com/android/gallery3d/app/StateManager.java10
3 files changed, 42 insertions, 20 deletions
diff --git a/src/com/android/gallery3d/app/ActivityState.java b/src/com/android/gallery3d/app/ActivityState.java
index ff0b32c32..cdd91ff4d 100644
--- a/src/com/android/gallery3d/app/ActivityState.java
+++ b/src/com/android/gallery3d/app/ActivityState.java
@@ -71,8 +71,8 @@ abstract public class ActivityState {
private static final String KEY_TRANSITION_IN = "transition-in";
- public static enum StateTransition { None, Outgoing, Incoming };
- private StateTransition mNextTransition = StateTransition.None;
+ private StateTransitionAnimation.Transition mNextTransition =
+ StateTransitionAnimation.Transition.None;
private StateTransitionAnimation mIntroAnimation;
private GLView mContentPane;
@@ -81,7 +81,7 @@ abstract public class ActivityState {
protected void setContentPane(GLView content) {
mContentPane = content;
- if (mNextTransition != StateTransition.None) {
+ if (mIntroAnimation != null) {
mContentPane.setIntroAnimation(mIntroAnimation);
mIntroAnimation = null;
}
@@ -174,11 +174,11 @@ abstract public class ActivityState {
}
protected void transitionOnNextPause(Class<? extends ActivityState> outgoing,
- Class<? extends ActivityState> incoming, StateTransition hint) {
+ Class<? extends ActivityState> incoming, StateTransitionAnimation.Transition hint) {
if (outgoing == PhotoPage.class && incoming == AlbumPage.class) {
- mNextTransition = StateTransition.Outgoing;
+ mNextTransition = StateTransitionAnimation.Transition.Outgoing;
} else if (outgoing == AlbumPage.class && incoming == PhotoPage.class) {
- mNextTransition = StateTransition.Incoming;
+ mNextTransition = StateTransitionAnimation.Transition.PhotoIncoming;
} else {
mNextTransition = hint;
}
@@ -188,10 +188,10 @@ abstract public class ActivityState {
if (0 != (mFlags & FLAG_SCREEN_ON_WHEN_PLUGGED)) {
((Activity) mActivity).unregisterReceiver(mPowerIntentReceiver);
}
- if (mNextTransition != StateTransition.None) {
+ if (mNextTransition != StateTransitionAnimation.Transition.None) {
mActivity.getTransitionStore().put(KEY_TRANSITION_IN, mNextTransition);
PreparePageFadeoutTexture.prepareFadeOutTexture(mActivity, mContentPane);
- mNextTransition = StateTransition.None;
+ mNextTransition = StateTransitionAnimation.Transition.None;
}
}
@@ -249,12 +249,10 @@ abstract public class ActivityState {
RawTexture fade = mActivity.getTransitionStore().get(
PreparePageFadeoutTexture.KEY_FADE_TEXTURE);
mNextTransition = mActivity.getTransitionStore().get(
- KEY_TRANSITION_IN, StateTransition.None);
- if (mNextTransition != StateTransition.None) {
- mIntroAnimation = new StateTransitionAnimation(
- (mNextTransition == StateTransition.Incoming) ?
- StateTransitionAnimation.Spec.INCOMING :
- StateTransitionAnimation.Spec.OUTGOING, fade);
+ KEY_TRANSITION_IN, StateTransitionAnimation.Transition.None);
+ if (mNextTransition != StateTransitionAnimation.Transition.None) {
+ mIntroAnimation = new StateTransitionAnimation(mNextTransition, fade);
+ mNextTransition = StateTransitionAnimation.Transition.None;
}
}
diff --git a/src/com/android/gallery3d/app/AlbumPage.java b/src/com/android/gallery3d/app/AlbumPage.java
index 4cf73a886..f1e149771 100644
--- a/src/com/android/gallery3d/app/AlbumPage.java
+++ b/src/com/android/gallery3d/app/AlbumPage.java
@@ -22,6 +22,8 @@ import android.content.Intent;
import android.graphics.Rect;
import android.net.Uri;
import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
import android.os.Vibrator;
import android.provider.MediaStore;
import android.view.Menu;
@@ -43,6 +45,7 @@ import com.android.gallery3d.ui.ActionModeHandler.ActionModeListener;
import com.android.gallery3d.ui.AlbumSlotRenderer;
import com.android.gallery3d.ui.DetailsHelper;
import com.android.gallery3d.ui.DetailsHelper.CloseListener;
+import com.android.gallery3d.ui.FadeTexture;
import com.android.gallery3d.ui.GLCanvas;
import com.android.gallery3d.ui.GLRoot;
import com.android.gallery3d.ui.GLView;
@@ -50,6 +53,7 @@ import com.android.gallery3d.ui.PhotoFallbackEffect;
import com.android.gallery3d.ui.RelativePosition;
import com.android.gallery3d.ui.SelectionManager;
import com.android.gallery3d.ui.SlotView;
+import com.android.gallery3d.ui.SynchronizedHandler;
import com.android.gallery3d.util.Future;
import com.android.gallery3d.util.GalleryUtils;
import com.android.gallery3d.util.MediaSetUtils;
@@ -105,6 +109,9 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster
private boolean mInitialSynced = false;
private RelativePosition mOpenCenter = new RelativePosition();
+ private Handler mHandler;
+ private static final int MSG_PICK_PHOTO = 0;
+
private PhotoFallbackEffect mResumeEffect;
private PhotoFallbackEffect.PositionProvider mPositionProvider =
new PhotoFallbackEffect.PositionProvider() {
@@ -248,8 +255,9 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster
} else {
// Render transition in pressed state
mAlbumView.setPressedIndex(slotIndex);
-
- pickPhoto(slotIndex);
+ mAlbumView.setPressedUp();
+ mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_PICK_PHOTO, slotIndex, 0),
+ FadeTexture.DURATION);
}
}
@@ -370,6 +378,20 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster
mLaunchedFromPhotoPage =
mActivity.getStateManager().hasStateClass(PhotoPage.class);
mInCameraApp = data.getBoolean(PhotoPage.KEY_APP_BRIDGE, false);
+
+ mHandler = new SynchronizedHandler(mActivity.getGLRoot()) {
+ @Override
+ public void handleMessage(Message message) {
+ switch (message.what) {
+ case MSG_PICK_PHOTO: {
+ pickPhoto(message.arg1);
+ break;
+ }
+ default:
+ throw new AssertionError(message.what);
+ }
+ }
+ };
}
@Override
diff --git a/src/com/android/gallery3d/app/StateManager.java b/src/com/android/gallery3d/app/StateManager.java
index fefb2c807..3293e40f7 100644
--- a/src/com/android/gallery3d/app/StateManager.java
+++ b/src/com/android/gallery3d/app/StateManager.java
@@ -24,6 +24,7 @@ import android.os.Parcelable;
import android.view.Menu;
import android.view.MenuItem;
+import com.android.gallery3d.anim.StateTransitionAnimation;
import com.android.gallery3d.common.Utils;
import java.util.Stack;
@@ -58,7 +59,7 @@ public class StateManager {
if (!mStack.isEmpty()) {
ActivityState top = getTopState();
top.transitionOnNextPause(top.getClass(), klass,
- ActivityState.StateTransition.Incoming);
+ StateTransitionAnimation.Transition.Incoming);
if (mIsResumed) top.onPause();
}
state.initialize(mActivity, data);
@@ -84,7 +85,7 @@ public class StateManager {
if (!mStack.isEmpty()) {
ActivityState as = getTopState();
as.transitionOnNextPause(as.getClass(), klass,
- ActivityState.StateTransition.Incoming);
+ StateTransitionAnimation.Transition.Incoming);
as.mReceivedResults = state.mResult;
if (mIsResumed) as.onPause();
} else {
@@ -194,7 +195,7 @@ public class StateManager {
if (mIsResumed && fireOnPause) {
if (top != null) {
state.transitionOnNextPause(state.getClass(), top.getClass(),
- ActivityState.StateTransition.Outgoing);
+ StateTransitionAnimation.Transition.Outgoing);
}
state.onPause();
}
@@ -216,7 +217,8 @@ public class StateManager {
mStack.pop();
if (!data.containsKey(PhotoPage.KEY_APP_BRIDGE)) {
// Do not do the fade out stuff when we are switching camera modes
- oldState.transitionOnNextPause(oldState.getClass(), klass, ActivityState.StateTransition.Incoming);
+ oldState.transitionOnNextPause(oldState.getClass(), klass,
+ StateTransitionAnimation.Transition.Incoming);
}
if (mIsResumed) oldState.onPause();
oldState.onDestroy();