summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author George Mount <mount@google.com> 2014-06-27 18:15:43 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2014-06-26 18:07:29 +0000
commit566cbf20cc0a75c6c4942d4b443ec7f2013bb50d (patch)
treedc3886f2c97315129f201bf4e1208f84efa28070
parent2eb983be20c84560b078aac5e18b2e5183df7fd9 (diff)
parent60625b02ac099bacc96a387ec270751745dafae0 (diff)
Merge "Fix activity transitions enter transition."
-rw-r--r--core/java/android/app/ActivityTransitionCoordinator.java17
-rw-r--r--core/java/android/app/EnterTransitionCoordinator.java12
-rw-r--r--core/java/android/app/ExitTransitionCoordinator.java1
3 files changed, 22 insertions, 8 deletions
diff --git a/core/java/android/app/ActivityTransitionCoordinator.java b/core/java/android/app/ActivityTransitionCoordinator.java
index 8ecd608040e1..79dc6a8a4aed 100644
--- a/core/java/android/app/ActivityTransitionCoordinator.java
+++ b/core/java/android/app/ActivityTransitionCoordinator.java
@@ -218,17 +218,20 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver {
if (getViewsTransition() != null) {
getDecor().captureTransitioningViews(mTransitioningViews);
mTransitioningViews.removeAll(mSharedElements);
- Rect r = new Rect();
- for (int i = mTransitioningViews.size() - 1; i >= 0; i--) {
- View view = mTransitioningViews.get(i);
- if (!view.getGlobalVisibleRect(r)) {
- mTransitioningViews.remove(i);
- }
- }
}
setEpicenter();
}
+ protected void stripOffscreenViews() {
+ Rect r = new Rect();
+ for (int i = mTransitioningViews.size() - 1; i >= 0; i--) {
+ View view = mTransitioningViews.get(i);
+ if (!view.getGlobalVisibleRect(r)) {
+ mTransitioningViews.remove(i);
+ }
+ }
+ }
+
protected Window getWindow() {
return mWindow;
}
diff --git a/core/java/android/app/EnterTransitionCoordinator.java b/core/java/android/app/EnterTransitionCoordinator.java
index 389f42cf9032..6c71bb1c3248 100644
--- a/core/java/android/app/EnterTransitionCoordinator.java
+++ b/core/java/android/app/EnterTransitionCoordinator.java
@@ -286,6 +286,13 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator {
mResultReceiver = null; // all done sending messages.
}
+ @Override
+ protected void stripOffscreenViews() {
+ setViewVisibility(mTransitioningViews, View.VISIBLE);
+ super.stripOffscreenViews();
+ setViewVisibility(mTransitioningViews, View.INVISIBLE);
+ }
+
private void onTakeSharedElements() {
if (!mIsReadyForTransition || mSharedElementsBundle == null) {
return;
@@ -325,7 +332,10 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator {
Transition viewsTransition = null;
if (startEnterTransition && !mTransitioningViews.isEmpty()) {
viewsTransition = configureTransition(getViewsTransition());
- viewsTransition = addTargets(viewsTransition, mTransitioningViews);
+ if (viewsTransition != null) {
+ stripOffscreenViews();
+ viewsTransition = addTargets(viewsTransition, mTransitioningViews);
+ }
}
Transition transition = mergeTransitions(sharedElementTransition, viewsTransition);
diff --git a/core/java/android/app/ExitTransitionCoordinator.java b/core/java/android/app/ExitTransitionCoordinator.java
index 18a94684ba80..e38f527c495c 100644
--- a/core/java/android/app/ExitTransitionCoordinator.java
+++ b/core/java/android/app/ExitTransitionCoordinator.java
@@ -72,6 +72,7 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator {
super(activity.getWindow(), names, getListener(activity, isReturning),
isReturning);
viewsReady(mapSharedElements(accepted, mapped));
+ stripOffscreenViews();
mIsBackgroundReady = !isReturning;
mActivity = activity;
}