summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/app/ActivityTransitionCoordinator.java10
-rw-r--r--core/java/android/app/EnterTransitionCoordinator.java4
2 files changed, 10 insertions, 4 deletions
diff --git a/core/java/android/app/ActivityTransitionCoordinator.java b/core/java/android/app/ActivityTransitionCoordinator.java
index 6458d6f9f799..ec21882f431e 100644
--- a/core/java/android/app/ActivityTransitionCoordinator.java
+++ b/core/java/android/app/ActivityTransitionCoordinator.java
@@ -206,6 +206,7 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver {
private ArrayList<Matrix> mSharedElementParentMatrices;
private boolean mSharedElementTransitionComplete;
private boolean mViewsTransitionComplete;
+ private ArrayList<View> mStrippedTransitioningViews = new ArrayList<>();
public ActivityTransitionCoordinator(Window window,
ArrayList<String> allSharedElementNames,
@@ -287,7 +288,7 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver {
View view = mTransitioningViews.get(i);
if (!view.getGlobalVisibleRect(r)) {
mTransitioningViews.remove(i);
- showView(view, true);
+ mStrippedTransitioningViews.add(view);
}
}
}
@@ -360,6 +361,12 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver {
}
}
}
+ if (mStrippedTransitioningViews != null) {
+ for (int i = mStrippedTransitioningViews.size() - 1; i >= 0; i--) {
+ View view = mStrippedTransitioningViews.get(i);
+ set.excludeTarget(view, true);
+ }
+ }
// By adding the transition after addTarget, we prevent addTarget from
// affecting transition.
set.addTransition(transition);
@@ -679,6 +686,7 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver {
mWindow = null;
mSharedElements.clear();
mTransitioningViews = null;
+ mStrippedTransitioningViews = null;
mOriginalAlphas.clear();
mResultReceiver = null;
mPendingTransition = null;
diff --git a/core/java/android/app/EnterTransitionCoordinator.java b/core/java/android/app/EnterTransitionCoordinator.java
index c6736eefbc71..27a02003669d 100644
--- a/core/java/android/app/EnterTransitionCoordinator.java
+++ b/core/java/android/app/EnterTransitionCoordinator.java
@@ -123,6 +123,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator {
mIsReadyForTransition = true;
hideViews(mSharedElements);
if (getViewsTransition() != null && mTransitioningViews != null) {
+ stripOffscreenViews();
hideViews(mTransitioningViews);
}
if (mIsReturning) {
@@ -518,9 +519,6 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator {
mIsViewsTransitionStarted = true;
if (mTransitioningViews != null && !mTransitioningViews.isEmpty()) {
viewsTransition = configureTransition(getViewsTransition(), true);
- if (viewsTransition != null && !mIsReturning) {
- stripOffscreenViews();
- }
}
if (viewsTransition == null) {
viewsTransitionComplete();