diff options
| author | 2023-07-10 16:41:31 +0000 | |
|---|---|---|
| committer | 2023-07-10 16:41:31 +0000 | |
| commit | 646c4f254eaa2d4a14cad5aaaf9a72a520b7397f (patch) | |
| tree | 865ee9bb0c22b51ba1a550764b700f6f6c9f9690 | |
| parent | cbba85d2331e51e00dcbc7054ed8c6781d93d3e1 (diff) | |
| parent | 96c2b131230db84221c23c07ac4853ed02fc6461 (diff) | |
Merge "Fix how taskview is used by controlsUi" into udc-dev
3 files changed, 14 insertions, 27 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt index d73c85b0803b..776b336e7b61 100644 --- a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt @@ -279,7 +279,7 @@ class ControlsUiControllerImpl @Inject constructor ( controlsListingController.get().removeCallback(listingCallback) controlsController.get().unsubscribe() - taskViewController?.dismiss() + taskViewController?.removeTask() taskViewController = null val fadeAnim = ObjectAnimator.ofFloat(parent, "alpha", 1.0f, 0.0f) @@ -777,7 +777,7 @@ class ControlsUiControllerImpl @Inject constructor ( closeDialogs(true) controlsController.get().unsubscribe() - taskViewController?.dismiss() + taskViewController?.removeTask() taskViewController = null controlsById.clear() diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/PanelTaskViewController.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/PanelTaskViewController.kt index 025d7e40201e..db009dc46d89 100644 --- a/packages/SystemUI/src/com/android/systemui/controls/ui/PanelTaskViewController.kt +++ b/packages/SystemUI/src/com/android/systemui/controls/ui/PanelTaskViewController.kt @@ -18,7 +18,6 @@ package com.android.systemui.controls.ui import android.app.ActivityOptions -import android.app.ActivityTaskManager import android.app.ActivityTaskManager.INVALID_TASK_ID import android.app.PendingIntent import android.content.ComponentName @@ -28,6 +27,7 @@ import android.graphics.Color import android.graphics.drawable.ShapeDrawable import android.graphics.drawable.shapes.RoundRectShape import android.os.Trace +import com.android.internal.annotations.VisibleForTesting import com.android.systemui.R import com.android.systemui.util.boundsOnScreen import com.android.wm.shell.taskview.TaskView @@ -54,12 +54,6 @@ class PanelTaskViewController( addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK) } - private fun removeDetailTask() { - if (detailTaskId == INVALID_TASK_ID) return - ActivityTaskManager.getInstance().removeTask(detailTaskId) - detailTaskId = INVALID_TASK_ID - } - private val stateCallback = object : TaskView.Listener { override fun onInitialized() { @@ -95,7 +89,7 @@ class PanelTaskViewController( override fun onTaskRemovalStarted(taskId: Int) { detailTaskId = INVALID_TASK_ID - dismiss() + release() } override fun onTaskCreated(taskId: Int, name: ComponentName?) { @@ -103,12 +97,7 @@ class PanelTaskViewController( taskView.alpha = 1f } - override fun onReleased() { - removeDetailTask() - } - override fun onBackPressedOnTaskRoot(taskId: Int) { - dismiss() hide() } } @@ -117,10 +106,17 @@ class PanelTaskViewController( taskView.onLocationChanged() } - fun dismiss() { + /** Call when the taskView is no longer being used, shouldn't be called before removeTask. */ + @VisibleForTesting + fun release() { taskView.release() } + /** Call to explicitly remove the task from window manager. */ + fun removeTask() { + taskView.removeTask() + } + fun launchTaskView() { taskView.setListener(uiExecutor, stateCallback) } diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/ui/PanelTaskViewControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/ui/PanelTaskViewControllerTest.kt index 7840525b14aa..021facc51dba 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/controls/ui/PanelTaskViewControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/controls/ui/PanelTaskViewControllerTest.kt @@ -146,17 +146,8 @@ class PanelTaskViewControllerTest : SysuiTestCase() { } @Test - fun testTaskViewReleasedOnDismiss() { - underTest.dismiss() - verify(taskView).release() - } - - @Test - fun testTaskViewReleasedOnBackOnRoot() { - underTest.launchTaskView() - verify(taskView).setListener(any(), capture(listenerCaptor)) - - listenerCaptor.value.onBackPressedOnTaskRoot(0) + fun testTaskViewReleasedOnRelease() { + underTest.release() verify(taskView).release() } |