Loading packages/SystemUI/src/com/android/systemui/controls/ui/ControlActionCoordinatorImpl.kt +1 −1 Original line number Diff line number Diff line Loading @@ -261,7 +261,7 @@ class ControlActionCoordinatorImpl @Inject constructor( taskViewFactory.get().create(context, uiExecutor, { dialog = DetailDialog( activityContext, broadcastSender, it, pendingIntent, cvh it, pendingIntent, cvh, keyguardStateController, activityStarter ).also { it.setOnDismissListener { _ -> dialog = null } it.show() Loading packages/SystemUI/src/com/android/systemui/controls/ui/DetailDialog.kt +22 −5 Original line number Diff line number Diff line Loading @@ -34,6 +34,8 @@ import android.widget.ImageView import com.android.internal.policy.ScreenDecorationsUtils import com.android.systemui.R import com.android.systemui.broadcast.BroadcastSender import com.android.systemui.plugins.ActivityStarter import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.wm.shell.TaskView /** Loading @@ -46,7 +48,9 @@ class DetailDialog( val broadcastSender: BroadcastSender, val taskView: TaskView, val pendingIntent: PendingIntent, val cvh: ControlViewHolder val cvh: ControlViewHolder, val keyguardStateController: KeyguardStateController, val activityStarter: ActivityStarter ) : Dialog( activityContext, R.style.Theme_SystemUI_Dialog_Control_DetailPanel Loading Loading @@ -145,12 +149,25 @@ class DetailDialog( requireViewById<ImageView>(R.id.control_detail_open_in_app).apply { setOnClickListener { v: View -> // Remove the task explicitly, since onRelease() callback will be executed after // startActivity() below is called. removeDetailTask() dismiss() val action = ActivityStarter.OnDismissAction { // Remove the task explicitly, since onRelease() callback will be executed after // startActivity() below is called. broadcastSender.closeSystemDialogs() pendingIntent.send() false } if (keyguardStateController.isUnlocked()) { action.onDismiss() } else { activityStarter.dismissKeyguardThenExecute( action, null /* cancel */, true /* afterKeyguardGone */ ) } } } Loading packages/SystemUI/tests/src/com/android/systemui/controls/ui/DetailDialogTest.kt +9 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import android.testing.TestableLooper import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.broadcast.BroadcastSender import com.android.systemui.plugins.ActivityStarter import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.wm.shell.TaskView import org.junit.Before import org.junit.Test Loading @@ -45,6 +47,10 @@ class DetailDialogTest : SysuiTestCase() { private lateinit var controlViewHolder: ControlViewHolder @Mock private lateinit var pendingIntent: PendingIntent @Mock private lateinit var keyguardStateController: KeyguardStateController @Mock private lateinit var activityStarter: ActivityStarter @Before fun setUp() { Loading @@ -69,7 +75,9 @@ class DetailDialogTest : SysuiTestCase() { broadcastSender, taskView, pendingIntent, controlViewHolder controlViewHolder, keyguardStateController, activityStarter ) } } Loading
packages/SystemUI/src/com/android/systemui/controls/ui/ControlActionCoordinatorImpl.kt +1 −1 Original line number Diff line number Diff line Loading @@ -261,7 +261,7 @@ class ControlActionCoordinatorImpl @Inject constructor( taskViewFactory.get().create(context, uiExecutor, { dialog = DetailDialog( activityContext, broadcastSender, it, pendingIntent, cvh it, pendingIntent, cvh, keyguardStateController, activityStarter ).also { it.setOnDismissListener { _ -> dialog = null } it.show() Loading
packages/SystemUI/src/com/android/systemui/controls/ui/DetailDialog.kt +22 −5 Original line number Diff line number Diff line Loading @@ -34,6 +34,8 @@ import android.widget.ImageView import com.android.internal.policy.ScreenDecorationsUtils import com.android.systemui.R import com.android.systemui.broadcast.BroadcastSender import com.android.systemui.plugins.ActivityStarter import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.wm.shell.TaskView /** Loading @@ -46,7 +48,9 @@ class DetailDialog( val broadcastSender: BroadcastSender, val taskView: TaskView, val pendingIntent: PendingIntent, val cvh: ControlViewHolder val cvh: ControlViewHolder, val keyguardStateController: KeyguardStateController, val activityStarter: ActivityStarter ) : Dialog( activityContext, R.style.Theme_SystemUI_Dialog_Control_DetailPanel Loading Loading @@ -145,12 +149,25 @@ class DetailDialog( requireViewById<ImageView>(R.id.control_detail_open_in_app).apply { setOnClickListener { v: View -> // Remove the task explicitly, since onRelease() callback will be executed after // startActivity() below is called. removeDetailTask() dismiss() val action = ActivityStarter.OnDismissAction { // Remove the task explicitly, since onRelease() callback will be executed after // startActivity() below is called. broadcastSender.closeSystemDialogs() pendingIntent.send() false } if (keyguardStateController.isUnlocked()) { action.onDismiss() } else { activityStarter.dismissKeyguardThenExecute( action, null /* cancel */, true /* afterKeyguardGone */ ) } } } Loading
packages/SystemUI/tests/src/com/android/systemui/controls/ui/DetailDialogTest.kt +9 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import android.testing.TestableLooper import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.broadcast.BroadcastSender import com.android.systemui.plugins.ActivityStarter import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.wm.shell.TaskView import org.junit.Before import org.junit.Test Loading @@ -45,6 +47,10 @@ class DetailDialogTest : SysuiTestCase() { private lateinit var controlViewHolder: ControlViewHolder @Mock private lateinit var pendingIntent: PendingIntent @Mock private lateinit var keyguardStateController: KeyguardStateController @Mock private lateinit var activityStarter: ActivityStarter @Before fun setUp() { Loading @@ -69,7 +75,9 @@ class DetailDialogTest : SysuiTestCase() { broadcastSender, taskView, pendingIntent, controlViewHolder controlViewHolder, keyguardStateController, activityStarter ) } }