Loading quickstep/src/com/android/quickstep/util/SplitSelectStateController.java +16 −1 Original line number Diff line number Diff line Loading @@ -70,6 +70,7 @@ import android.window.RemoteTransition; import android.window.TransitionInfo; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import com.android.internal.logging.InstanceId; import com.android.launcher3.Launcher; Loading Loading @@ -132,6 +133,7 @@ public class SplitSelectStateController { private final StatsLogManager mStatsLogManager; private final SystemUiProxy mSystemUiProxy; private final StateManager mStateManager; @Nullable private SplitFromDesktopController mSplitFromDesktopController; @Nullable private DepthController mDepthController; Loading Loading @@ -208,6 +210,9 @@ public class SplitSelectStateController { mActivityBackCallback = null; mAppPairsController.onDestroy(); mSplitSelectDataHolder.onDestroy(); if (mSplitFromDesktopController != null) { mSplitFromDesktopController.onDestroy(); } } /** Loading Loading @@ -643,7 +648,12 @@ public class SplitSelectStateController { } public void initSplitFromDesktopController(Launcher launcher) { mSplitFromDesktopController = new SplitFromDesktopController(launcher); initSplitFromDesktopController(new SplitFromDesktopController(launcher)); } @VisibleForTesting void initSplitFromDesktopController(SplitFromDesktopController controller) { mSplitFromDesktopController = controller; } private RemoteTransition getShellRemoteTransition(int firstTaskId, int secondTaskId, Loading Loading @@ -977,6 +987,11 @@ public class SplitSelectStateController { SystemUiProxy.INSTANCE.get(mLauncher).registerSplitSelectListener(mSplitSelectListener); } void onDestroy() { SystemUiProxy.INSTANCE.get(mLauncher).unregisterSplitSelectListener( mSplitSelectListener); } /** * Enter split select from desktop mode. * @param taskInfo the desktop task to move to split stage Loading quickstep/tests/multivalentTests/src/com/android/quickstep/util/SplitSelectStateControllerTest.kt +14 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import com.android.launcher3.util.ComponentKey import com.android.launcher3.util.SplitConfigurationOptions import com.android.quickstep.RecentsModel import com.android.quickstep.SystemUiProxy import com.android.quickstep.util.SplitSelectStateController.SplitFromDesktopController import com.android.systemui.shared.recents.model.Task import com.android.wm.shell.common.split.SplitScreenConstants.SNAP_TO_50_50 import java.util.function.Consumer Loading Loading @@ -65,6 +66,7 @@ class SplitSelectStateControllerTest { private val context: StatefulActivity<*> = mock() private val recentsModel: RecentsModel = mock() private val pendingIntent: PendingIntent = mock() private val splitFromDesktopController: SplitFromDesktopController = mock() private lateinit var splitSelectStateController: SplitSelectStateController Loading Loading @@ -607,6 +609,18 @@ class SplitSelectStateControllerTest { assertTrue(splitSelectStateController.isBothSplitAppsConfirmed) } @Test fun splitSelectStateControllerDestroyed_SplitFromDesktopControllerAlsoDestroyed() { // Initiate split from desktop controller splitSelectStateController.initSplitFromDesktopController(splitFromDesktopController) // Simulate default controller being destroyed splitSelectStateController.onDestroy() // Verify desktop controller is also destroyed verify(splitFromDesktopController).onDestroy() } // Generate GroupTask with default userId. private fun generateGroupTask( task1ComponentName: ComponentName, Loading Loading
quickstep/src/com/android/quickstep/util/SplitSelectStateController.java +16 −1 Original line number Diff line number Diff line Loading @@ -70,6 +70,7 @@ import android.window.RemoteTransition; import android.window.TransitionInfo; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import com.android.internal.logging.InstanceId; import com.android.launcher3.Launcher; Loading Loading @@ -132,6 +133,7 @@ public class SplitSelectStateController { private final StatsLogManager mStatsLogManager; private final SystemUiProxy mSystemUiProxy; private final StateManager mStateManager; @Nullable private SplitFromDesktopController mSplitFromDesktopController; @Nullable private DepthController mDepthController; Loading Loading @@ -208,6 +210,9 @@ public class SplitSelectStateController { mActivityBackCallback = null; mAppPairsController.onDestroy(); mSplitSelectDataHolder.onDestroy(); if (mSplitFromDesktopController != null) { mSplitFromDesktopController.onDestroy(); } } /** Loading Loading @@ -643,7 +648,12 @@ public class SplitSelectStateController { } public void initSplitFromDesktopController(Launcher launcher) { mSplitFromDesktopController = new SplitFromDesktopController(launcher); initSplitFromDesktopController(new SplitFromDesktopController(launcher)); } @VisibleForTesting void initSplitFromDesktopController(SplitFromDesktopController controller) { mSplitFromDesktopController = controller; } private RemoteTransition getShellRemoteTransition(int firstTaskId, int secondTaskId, Loading Loading @@ -977,6 +987,11 @@ public class SplitSelectStateController { SystemUiProxy.INSTANCE.get(mLauncher).registerSplitSelectListener(mSplitSelectListener); } void onDestroy() { SystemUiProxy.INSTANCE.get(mLauncher).unregisterSplitSelectListener( mSplitSelectListener); } /** * Enter split select from desktop mode. * @param taskInfo the desktop task to move to split stage Loading
quickstep/tests/multivalentTests/src/com/android/quickstep/util/SplitSelectStateControllerTest.kt +14 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import com.android.launcher3.util.ComponentKey import com.android.launcher3.util.SplitConfigurationOptions import com.android.quickstep.RecentsModel import com.android.quickstep.SystemUiProxy import com.android.quickstep.util.SplitSelectStateController.SplitFromDesktopController import com.android.systemui.shared.recents.model.Task import com.android.wm.shell.common.split.SplitScreenConstants.SNAP_TO_50_50 import java.util.function.Consumer Loading Loading @@ -65,6 +66,7 @@ class SplitSelectStateControllerTest { private val context: StatefulActivity<*> = mock() private val recentsModel: RecentsModel = mock() private val pendingIntent: PendingIntent = mock() private val splitFromDesktopController: SplitFromDesktopController = mock() private lateinit var splitSelectStateController: SplitSelectStateController Loading Loading @@ -607,6 +609,18 @@ class SplitSelectStateControllerTest { assertTrue(splitSelectStateController.isBothSplitAppsConfirmed) } @Test fun splitSelectStateControllerDestroyed_SplitFromDesktopControllerAlsoDestroyed() { // Initiate split from desktop controller splitSelectStateController.initSplitFromDesktopController(splitFromDesktopController) // Simulate default controller being destroyed splitSelectStateController.onDestroy() // Verify desktop controller is also destroyed verify(splitFromDesktopController).onDestroy() } // Generate GroupTask with default userId. private fun generateGroupTask( task1ComponentName: ComponentName, Loading