diff options
| author | 2014-06-27 18:15:43 +0000 | |
|---|---|---|
| committer | 2014-06-26 18:07:29 +0000 | |
| commit | 566cbf20cc0a75c6c4942d4b443ec7f2013bb50d (patch) | |
| tree | dc3886f2c97315129f201bf4e1208f84efa28070 | |
| parent | 2eb983be20c84560b078aac5e18b2e5183df7fd9 (diff) | |
| parent | 60625b02ac099bacc96a387ec270751745dafae0 (diff) | |
Merge "Fix activity transitions enter transition."
| -rw-r--r-- | core/java/android/app/ActivityTransitionCoordinator.java | 17 | ||||
| -rw-r--r-- | core/java/android/app/EnterTransitionCoordinator.java | 12 | ||||
| -rw-r--r-- | core/java/android/app/ExitTransitionCoordinator.java | 1 |
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; } |