From ad4120494661eaaef3ab16eaf58bda03b706d3b7 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Fri, 23 Apr 2021 10:48:17 -0700 Subject: [PATCH] Manage ref to transition manager from binder object Bug: 186121207 Test: Presubmit Change-Id: I14735708f1368e2b008e1e8d44273d569219e5df --- .../launcher3/QuickstepTransitionManager.java | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java index 827eb7d0bb..fe413af708 100644 --- a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +++ b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java @@ -172,6 +172,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener private final float mClosingWindowTransY; private final float mMaxShadowRadius; + private final StartingWindowListener mStartingWindowListener = new StartingWindowListener(); + private DeviceProfile mDeviceProfile; private RemoteAnimationProvider mRemoteAnimationProvider; @@ -221,13 +223,9 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener } }; + mStartingWindowListener.setTransitionManager(this); SystemUiProxy.INSTANCE.get(mLauncher).setStartingWindowListener( - new IStartingWindowListener.Stub() { - @Override - public void onTaskLaunching(int taskId, int supportedType) { - mTypeForTaskId.put(taskId, supportedType); - } - }); + mStartingWindowListener); } } @@ -819,6 +817,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener public void onActivityDestroyed() { unregisterRemoteAnimations(); unregisterRemoteTransitions(); + mStartingWindowListener.setTransitionManager(null); SystemUiProxy.INSTANCE.getNoCreate().setStartingWindowListener(null); } @@ -1240,4 +1239,17 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener cropCenterYEnd = windowTargetBounds.centerY(); } } + + private static class StartingWindowListener extends IStartingWindowListener.Stub { + private QuickstepTransitionManager mTransitionManager; + + public void setTransitionManager(QuickstepTransitionManager transitionManager) { + mTransitionManager = transitionManager; + } + + @Override + public void onTaskLaunching(int taskId, int supportedType) { + mTransitionManager.mTypeForTaskId.put(taskId, supportedType); + } + } }