Loading core/java/android/app/ActivityTransitionCoordinator.java +6 −3 Original line number Diff line number Diff line Loading @@ -196,7 +196,7 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { final protected ArrayList<String> mAllSharedElementNames; final protected ArrayList<View> mSharedElements = new ArrayList<View>(); final protected ArrayList<String> mSharedElementNames = new ArrayList<String>(); final protected ArrayList<View> mTransitioningViews = new ArrayList<View>(); protected ArrayList<View> mTransitioningViews = new ArrayList<View>(); protected SharedElementCallback mListener; protected ResultReceiver mResultReceiver; final private FixedEpicenterCallback mEpicenterCallback = new FixedEpicenterCallback(); Loading @@ -222,7 +222,7 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { mListener.onMapSharedElements(mAllSharedElementNames, sharedElements); mSharedElementNames.addAll(sharedElements.keySet()); mSharedElements.addAll(sharedElements.values()); if (getViewsTransition() != null) { if (getViewsTransition() != null && mTransitioningViews != null) { ViewGroup decorView = getDecor(); if (decorView != null) { decorView.captureTransitioningViews(mTransitioningViews); Loading @@ -233,6 +233,9 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { } protected void stripOffscreenViews() { if (mTransitioningViews == null) { return; } Rect r = new Rect(); for (int i = mTransitioningViews.size() - 1; i >= 0; i--) { View view = mTransitioningViews.get(i); Loading Loading @@ -592,7 +595,7 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { // Clear the state so that we can't hold any references accidentally and leak memory. mWindow = null; mSharedElements.clear(); mTransitioningViews.clear(); mTransitioningViews = null; mOriginalAlphas.clear(); mResultReceiver = null; mPendingTransition = null; Loading core/java/android/app/EnterTransitionCoordinator.java +9 −5 Original line number Diff line number Diff line Loading @@ -115,7 +115,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { super.viewsReady(sharedElements); mIsReadyForTransition = true; hideViews(mSharedElements); if (getViewsTransition() != null) { if (getViewsTransition() != null && mTransitioningViews != null) { hideViews(mTransitioningViews); } if (mIsReturning) { Loading Loading @@ -249,7 +249,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { mIsCanceled = true; if (getViewsTransition() == null || mIsViewsTransitionStarted) { showViews(mSharedElements, true); } else { } else if (mTransitioningViews != null) { mTransitioningViews.addAll(mSharedElements); } mSharedElementNames.clear(); Loading Loading @@ -416,7 +416,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { Transition viewsTransition = null; if (startEnterTransition) { mIsViewsTransitionStarted = true; if (!mTransitioningViews.isEmpty()) { if (mTransitioningViews != null && !mTransitioningViews.isEmpty()) { viewsTransition = configureTransition(getViewsTransition(), true); if (viewsTransition != null && !mIsReturning) { stripOffscreenViews(); Loading @@ -426,11 +426,14 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { viewTransitionComplete(); } else { viewsTransition.forceVisibility(View.INVISIBLE, true); final ArrayList<View> transitioningViews = mTransitioningViews; viewsTransition.addListener(new ContinueTransitionListener() { @Override public void onTransitionStart(Transition transition) { mEnterViewsTransition = transition; showViews(mTransitioningViews, false); if (transitioningViews != null) { showViews(transitioningViews, false); } super.onTransitionStart(transition); } Loading @@ -451,7 +454,8 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { TransitionManager.beginDelayedTransition(decorView, transition); if (startSharedElementTransition && !mSharedElementNames.isEmpty()) { mSharedElements.get(0).invalidate(); } else if (startEnterTransition && !mTransitioningViews.isEmpty()) { } else if (startEnterTransition && mTransitioningViews != null && !mTransitioningViews.isEmpty()) { mTransitioningViews.get(0).invalidate(); } } else { Loading core/java/android/app/ExitTransitionCoordinator.java +8 −5 Original line number Diff line number Diff line Loading @@ -126,7 +126,9 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator { } public void resetViews() { if (mTransitioningViews != null) { showViews(mTransitioningViews, true); } showViews(mSharedElements, true); mIsHidden = true; ViewGroup decorView = getDecor(); Loading Loading @@ -253,7 +255,7 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator { private void startExitTransition() { Transition transition = getExitTransition(); ViewGroup decorView = getDecor(); if (transition != null && decorView != null) { if (transition != null && decorView != null && mTransitioningViews != null) { TransitionManager.beginDelayedTransition(decorView, transition); mTransitioningViews.get(0).invalidate(); } else { Loading Loading @@ -289,19 +291,20 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator { private Transition getExitTransition() { Transition viewsTransition = null; if (!mTransitioningViews.isEmpty()) { if (mTransitioningViews != null && !mTransitioningViews.isEmpty()) { viewsTransition = configureTransition(getViewsTransition(), true); } if (viewsTransition == null) { exitTransitionComplete(); } else { final ArrayList<View> transitioningViews = mTransitioningViews; viewsTransition.addListener(new ContinueTransitionListener() { @Override public void onTransitionEnd(Transition transition) { transition.removeListener(this); exitTransitionComplete(); if (mIsHidden) { showViews(mTransitioningViews, true); if (mIsHidden && transitioningViews != null) { showViews(transitioningViews, true); } if (mSharedElementBundle != null) { delayCancel(); Loading Loading
core/java/android/app/ActivityTransitionCoordinator.java +6 −3 Original line number Diff line number Diff line Loading @@ -196,7 +196,7 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { final protected ArrayList<String> mAllSharedElementNames; final protected ArrayList<View> mSharedElements = new ArrayList<View>(); final protected ArrayList<String> mSharedElementNames = new ArrayList<String>(); final protected ArrayList<View> mTransitioningViews = new ArrayList<View>(); protected ArrayList<View> mTransitioningViews = new ArrayList<View>(); protected SharedElementCallback mListener; protected ResultReceiver mResultReceiver; final private FixedEpicenterCallback mEpicenterCallback = new FixedEpicenterCallback(); Loading @@ -222,7 +222,7 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { mListener.onMapSharedElements(mAllSharedElementNames, sharedElements); mSharedElementNames.addAll(sharedElements.keySet()); mSharedElements.addAll(sharedElements.values()); if (getViewsTransition() != null) { if (getViewsTransition() != null && mTransitioningViews != null) { ViewGroup decorView = getDecor(); if (decorView != null) { decorView.captureTransitioningViews(mTransitioningViews); Loading @@ -233,6 +233,9 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { } protected void stripOffscreenViews() { if (mTransitioningViews == null) { return; } Rect r = new Rect(); for (int i = mTransitioningViews.size() - 1; i >= 0; i--) { View view = mTransitioningViews.get(i); Loading Loading @@ -592,7 +595,7 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { // Clear the state so that we can't hold any references accidentally and leak memory. mWindow = null; mSharedElements.clear(); mTransitioningViews.clear(); mTransitioningViews = null; mOriginalAlphas.clear(); mResultReceiver = null; mPendingTransition = null; Loading
core/java/android/app/EnterTransitionCoordinator.java +9 −5 Original line number Diff line number Diff line Loading @@ -115,7 +115,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { super.viewsReady(sharedElements); mIsReadyForTransition = true; hideViews(mSharedElements); if (getViewsTransition() != null) { if (getViewsTransition() != null && mTransitioningViews != null) { hideViews(mTransitioningViews); } if (mIsReturning) { Loading Loading @@ -249,7 +249,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { mIsCanceled = true; if (getViewsTransition() == null || mIsViewsTransitionStarted) { showViews(mSharedElements, true); } else { } else if (mTransitioningViews != null) { mTransitioningViews.addAll(mSharedElements); } mSharedElementNames.clear(); Loading Loading @@ -416,7 +416,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { Transition viewsTransition = null; if (startEnterTransition) { mIsViewsTransitionStarted = true; if (!mTransitioningViews.isEmpty()) { if (mTransitioningViews != null && !mTransitioningViews.isEmpty()) { viewsTransition = configureTransition(getViewsTransition(), true); if (viewsTransition != null && !mIsReturning) { stripOffscreenViews(); Loading @@ -426,11 +426,14 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { viewTransitionComplete(); } else { viewsTransition.forceVisibility(View.INVISIBLE, true); final ArrayList<View> transitioningViews = mTransitioningViews; viewsTransition.addListener(new ContinueTransitionListener() { @Override public void onTransitionStart(Transition transition) { mEnterViewsTransition = transition; showViews(mTransitioningViews, false); if (transitioningViews != null) { showViews(transitioningViews, false); } super.onTransitionStart(transition); } Loading @@ -451,7 +454,8 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { TransitionManager.beginDelayedTransition(decorView, transition); if (startSharedElementTransition && !mSharedElementNames.isEmpty()) { mSharedElements.get(0).invalidate(); } else if (startEnterTransition && !mTransitioningViews.isEmpty()) { } else if (startEnterTransition && mTransitioningViews != null && !mTransitioningViews.isEmpty()) { mTransitioningViews.get(0).invalidate(); } } else { Loading
core/java/android/app/ExitTransitionCoordinator.java +8 −5 Original line number Diff line number Diff line Loading @@ -126,7 +126,9 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator { } public void resetViews() { if (mTransitioningViews != null) { showViews(mTransitioningViews, true); } showViews(mSharedElements, true); mIsHidden = true; ViewGroup decorView = getDecor(); Loading Loading @@ -253,7 +255,7 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator { private void startExitTransition() { Transition transition = getExitTransition(); ViewGroup decorView = getDecor(); if (transition != null && decorView != null) { if (transition != null && decorView != null && mTransitioningViews != null) { TransitionManager.beginDelayedTransition(decorView, transition); mTransitioningViews.get(0).invalidate(); } else { Loading Loading @@ -289,19 +291,20 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator { private Transition getExitTransition() { Transition viewsTransition = null; if (!mTransitioningViews.isEmpty()) { if (mTransitioningViews != null && !mTransitioningViews.isEmpty()) { viewsTransition = configureTransition(getViewsTransition(), true); } if (viewsTransition == null) { exitTransitionComplete(); } else { final ArrayList<View> transitioningViews = mTransitioningViews; viewsTransition.addListener(new ContinueTransitionListener() { @Override public void onTransitionEnd(Transition transition) { transition.removeListener(this); exitTransitionComplete(); if (mIsHidden) { showViews(mTransitioningViews, true); if (mIsHidden && transitioningViews != null) { showViews(transitioningViews, true); } if (mSharedElementBundle != null) { delayCancel(); Loading