Loading core/java/android/app/ActivityTransitionCoordinator.java +11 −9 Original line number Diff line number Diff line Loading @@ -467,11 +467,12 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { } protected void scheduleSetSharedElementEnd(final ArrayList<View> snapshots) { getDecor().getViewTreeObserver().addOnPreDrawListener( final View decorView = getDecor(); decorView.getViewTreeObserver().addOnPreDrawListener( new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { getDecor().getViewTreeObserver().removeOnPreDrawListener(this); decorView.getViewTreeObserver().removeOnPreDrawListener(this); notifySharedElementEnd(snapshots); return true; } Loading Loading @@ -664,8 +665,7 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { GhostView.addGhost(view, decor); ViewGroup parent = (ViewGroup) view.getParent(); if (moveWithParent && !isInTransitionGroup(parent, decor)) { GhostViewListeners listener = new GhostViewListeners(view, decor); GhostViewListeners listener = new GhostViewListeners(view, parent, decor); parent.getViewTreeObserver().addOnPreDrawListener(listener); mGhostViewListeners.add(listener); } Loading Loading @@ -723,11 +723,12 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { } protected void scheduleGhostVisibilityChange(final int visibility) { getDecor().getViewTreeObserver() final View decorView = getDecor(); decorView.getViewTreeObserver() .addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { getDecor().getViewTreeObserver().removeOnPreDrawListener(this); decorView.getViewTreeObserver().removeOnPreDrawListener(this); setGhostVisibility(visibility); return true; } Loading Loading @@ -769,10 +770,12 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { private static class GhostViewListeners implements ViewTreeObserver.OnPreDrawListener { private View mView; private ViewGroup mDecor; private View mParent; private Matrix mMatrix = new Matrix(); public GhostViewListeners(View view, ViewGroup decor) { public GhostViewListeners(View view, View parent, ViewGroup decor) { mView = view; mParent = parent; mDecor = decor; } Loading @@ -782,10 +785,9 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { @Override public boolean onPreDraw() { ViewGroup parent = ((ViewGroup) mView.getParent()); GhostView ghostView = GhostView.getGhost(mView); if (ghostView == null) { parent.getViewTreeObserver().removeOnPreDrawListener(this); mParent.getViewTreeObserver().removeOnPreDrawListener(this); } else { GhostView.calculateMatrix(mView, mDecor, mMatrix); ghostView.setMatrix(mMatrix); Loading core/java/android/app/EnterTransitionCoordinator.java +10 −7 Original line number Diff line number Diff line Loading @@ -69,12 +69,13 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { Bundle resultReceiverBundle = new Bundle(); resultReceiverBundle.putParcelable(KEY_REMOTE_RECEIVER, this); mResultReceiver.send(MSG_SET_REMOTE_RECEIVER, resultReceiverBundle); getDecor().getViewTreeObserver().addOnPreDrawListener( final View decorView = getDecor(); decorView.getViewTreeObserver().addOnPreDrawListener( new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { if (mIsReadyForTransition) { getDecor().getViewTreeObserver().removeOnPreDrawListener(this); decorView.getViewTreeObserver().removeOnPreDrawListener(this); } return mIsReadyForTransition; } Loading Loading @@ -187,11 +188,12 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { moveSharedElementsToOverlay(); mResultReceiver.send(MSG_SHARED_ELEMENT_DESTINATION, state); } else { getDecor().getViewTreeObserver() final View decorView = getDecor(); decorView.getViewTreeObserver() .addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { getDecor().getViewTreeObserver().removeOnPreDrawListener(this); decorView.getViewTreeObserver().removeOnPreDrawListener(this); if (mResultReceiver != null) { Bundle state = captureSharedElementState(); setSharedElementMatrices(); Loading Loading @@ -342,11 +344,12 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { } final Bundle sharedElementState = mSharedElementsBundle; mSharedElementsBundle = null; getDecor().getViewTreeObserver() final View decorView = getDecor(); decorView.getViewTreeObserver() .addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { getDecor().getViewTreeObserver().removeOnPreDrawListener(this); decorView.getViewTreeObserver().removeOnPreDrawListener(this); startTransition(new Runnable() { @Override public void run() { Loading @@ -356,7 +359,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { return false; } }); getDecor().invalidate(); decorView.invalidate(); } private void requestLayoutForSharedElements() { Loading core/java/android/app/ExitTransitionCoordinator.java +3 −2 Original line number Diff line number Diff line Loading @@ -165,11 +165,12 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator { }); final ArrayList<View> sharedElementSnapshots = createSnapshots(mExitSharedElementBundle, mSharedElementNames); getDecor().getViewTreeObserver() final View decorView = getDecor(); decorView.getViewTreeObserver() .addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { getDecor().getViewTreeObserver().removeOnPreDrawListener(this); decorView.getViewTreeObserver().removeOnPreDrawListener(this); setSharedElementState(mExitSharedElementBundle, sharedElementSnapshots); return true; } Loading Loading
core/java/android/app/ActivityTransitionCoordinator.java +11 −9 Original line number Diff line number Diff line Loading @@ -467,11 +467,12 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { } protected void scheduleSetSharedElementEnd(final ArrayList<View> snapshots) { getDecor().getViewTreeObserver().addOnPreDrawListener( final View decorView = getDecor(); decorView.getViewTreeObserver().addOnPreDrawListener( new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { getDecor().getViewTreeObserver().removeOnPreDrawListener(this); decorView.getViewTreeObserver().removeOnPreDrawListener(this); notifySharedElementEnd(snapshots); return true; } Loading Loading @@ -664,8 +665,7 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { GhostView.addGhost(view, decor); ViewGroup parent = (ViewGroup) view.getParent(); if (moveWithParent && !isInTransitionGroup(parent, decor)) { GhostViewListeners listener = new GhostViewListeners(view, decor); GhostViewListeners listener = new GhostViewListeners(view, parent, decor); parent.getViewTreeObserver().addOnPreDrawListener(listener); mGhostViewListeners.add(listener); } Loading Loading @@ -723,11 +723,12 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { } protected void scheduleGhostVisibilityChange(final int visibility) { getDecor().getViewTreeObserver() final View decorView = getDecor(); decorView.getViewTreeObserver() .addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { getDecor().getViewTreeObserver().removeOnPreDrawListener(this); decorView.getViewTreeObserver().removeOnPreDrawListener(this); setGhostVisibility(visibility); return true; } Loading Loading @@ -769,10 +770,12 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { private static class GhostViewListeners implements ViewTreeObserver.OnPreDrawListener { private View mView; private ViewGroup mDecor; private View mParent; private Matrix mMatrix = new Matrix(); public GhostViewListeners(View view, ViewGroup decor) { public GhostViewListeners(View view, View parent, ViewGroup decor) { mView = view; mParent = parent; mDecor = decor; } Loading @@ -782,10 +785,9 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { @Override public boolean onPreDraw() { ViewGroup parent = ((ViewGroup) mView.getParent()); GhostView ghostView = GhostView.getGhost(mView); if (ghostView == null) { parent.getViewTreeObserver().removeOnPreDrawListener(this); mParent.getViewTreeObserver().removeOnPreDrawListener(this); } else { GhostView.calculateMatrix(mView, mDecor, mMatrix); ghostView.setMatrix(mMatrix); Loading
core/java/android/app/EnterTransitionCoordinator.java +10 −7 Original line number Diff line number Diff line Loading @@ -69,12 +69,13 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { Bundle resultReceiverBundle = new Bundle(); resultReceiverBundle.putParcelable(KEY_REMOTE_RECEIVER, this); mResultReceiver.send(MSG_SET_REMOTE_RECEIVER, resultReceiverBundle); getDecor().getViewTreeObserver().addOnPreDrawListener( final View decorView = getDecor(); decorView.getViewTreeObserver().addOnPreDrawListener( new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { if (mIsReadyForTransition) { getDecor().getViewTreeObserver().removeOnPreDrawListener(this); decorView.getViewTreeObserver().removeOnPreDrawListener(this); } return mIsReadyForTransition; } Loading Loading @@ -187,11 +188,12 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { moveSharedElementsToOverlay(); mResultReceiver.send(MSG_SHARED_ELEMENT_DESTINATION, state); } else { getDecor().getViewTreeObserver() final View decorView = getDecor(); decorView.getViewTreeObserver() .addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { getDecor().getViewTreeObserver().removeOnPreDrawListener(this); decorView.getViewTreeObserver().removeOnPreDrawListener(this); if (mResultReceiver != null) { Bundle state = captureSharedElementState(); setSharedElementMatrices(); Loading Loading @@ -342,11 +344,12 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { } final Bundle sharedElementState = mSharedElementsBundle; mSharedElementsBundle = null; getDecor().getViewTreeObserver() final View decorView = getDecor(); decorView.getViewTreeObserver() .addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { getDecor().getViewTreeObserver().removeOnPreDrawListener(this); decorView.getViewTreeObserver().removeOnPreDrawListener(this); startTransition(new Runnable() { @Override public void run() { Loading @@ -356,7 +359,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { return false; } }); getDecor().invalidate(); decorView.invalidate(); } private void requestLayoutForSharedElements() { Loading
core/java/android/app/ExitTransitionCoordinator.java +3 −2 Original line number Diff line number Diff line Loading @@ -165,11 +165,12 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator { }); final ArrayList<View> sharedElementSnapshots = createSnapshots(mExitSharedElementBundle, mSharedElementNames); getDecor().getViewTreeObserver() final View decorView = getDecor(); decorView.getViewTreeObserver() .addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { getDecor().getViewTreeObserver().removeOnPreDrawListener(this); decorView.getViewTreeObserver().removeOnPreDrawListener(this); setSharedElementState(mExitSharedElementBundle, sharedElementSnapshots); return true; } Loading