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); + } + } }