Merge "Launch app intent after unlock" into tm-dev

This commit is contained in:
TreeHugger Robot
2022-05-20 01:02:45 +00:00
committed by Android (Google) Code Review
3 changed files with 32 additions and 7 deletions

View File

@@ -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()

View File

@@ -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
/**
@@ -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
@@ -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()
broadcastSender.closeSystemDialogs()
pendingIntent.send()
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 */
)
}
}
}

View File

@@ -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
@@ -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() {
@@ -69,7 +75,9 @@ class DetailDialogTest : SysuiTestCase() {
broadcastSender,
taskView,
pendingIntent,
controlViewHolder
controlViewHolder,
keyguardStateController,
activityStarter
)
}
}