diff options
author | Bobby Georgescu <georgescu@google.com> | 2012-10-17 14:50:47 -0700 |
---|---|---|
committer | Bobby Georgescu <georgescu@google.com> | 2012-10-17 17:14:22 -0700 |
commit | 2ba8604e8f1a8faf0e692706c3103cc889142583 (patch) | |
tree | 6c8700c0959eeb4fefe4a829c3fbb08c27b98d22 /src/com/android/gallery3d/app/StateManager.java | |
parent | 591ba8d027d574f1e9fedaf878d3b7b41ebe4861 (diff) | |
download | android_packages_apps_Snap-2ba8604e8f1a8faf0e692706c3103cc889142583.tar.gz android_packages_apps_Snap-2ba8604e8f1a8faf0e692706c3103cc889142583.tar.bz2 android_packages_apps_Snap-2ba8604e8f1a8faf0e692706c3103cc889142583.zip |
Big refactor, additions to state transition animations
Bug: 7362944
Refactored a lot of the state transitions code, adding
support for definable transition animations and defining
distinct outgoing and incoming animations.
Change-Id: I31a69057ea1b72dd3185cec656e59b11fdb528c1
Diffstat (limited to 'src/com/android/gallery3d/app/StateManager.java')
-rw-r--r-- | src/com/android/gallery3d/app/StateManager.java | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/com/android/gallery3d/app/StateManager.java b/src/com/android/gallery3d/app/StateManager.java index 10de5d201..fefb2c807 100644 --- a/src/com/android/gallery3d/app/StateManager.java +++ b/src/com/android/gallery3d/app/StateManager.java @@ -57,7 +57,8 @@ public class StateManager { } if (!mStack.isEmpty()) { ActivityState top = getTopState(); - top.fadeOutOnNextPause(); + top.transitionOnNextPause(top.getClass(), klass, + ActivityState.StateTransition.Incoming); if (mIsResumed) top.onPause(); } state.initialize(mActivity, data); @@ -82,7 +83,8 @@ public class StateManager { if (!mStack.isEmpty()) { ActivityState as = getTopState(); - as.fadeOutOnNextPause(); + as.transitionOnNextPause(as.getClass(), klass, + ActivityState.StateTransition.Incoming); as.mReceivedResults = state.mResult; if (mIsResumed) as.onPause(); } else { @@ -188,15 +190,18 @@ public class StateManager { // Remove the top state. mStack.pop(); state.mIsFinishing = true; - if (mIsResumed && fireOnPause) state.onPause(); + ActivityState top = !mStack.isEmpty() ? mStack.peek().activityState : null; + if (mIsResumed && fireOnPause) { + if (top != null) { + state.transitionOnNextPause(state.getClass(), top.getClass(), + ActivityState.StateTransition.Outgoing); + } + state.onPause(); + } mActivity.getGLRoot().setContentPane(null); state.onDestroy(); - if (!mStack.isEmpty()) { - // Restore the immediately previous state - ActivityState top = mStack.peek().activityState; - if (mIsResumed) top.resume(); - } + if (top != null && mIsResumed) top.resume(); } public void switchState(ActivityState oldState, @@ -211,7 +216,7 @@ 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.fadeOutOnNextPause(); + oldState.transitionOnNextPause(oldState.getClass(), klass, ActivityState.StateTransition.Incoming); } if (mIsResumed) oldState.onPause(); oldState.onDestroy(); |