diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/controls/ui/DetailDialog.kt | 5 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/controls/ui/DetailDialogTest.kt | 23 |
2 files changed, 27 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/DetailDialog.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/DetailDialog.kt index 5d608c3e3f9e..3bc5d44671e5 100644 --- a/packages/SystemUI/src/com/android/systemui/controls/ui/DetailDialog.kt +++ b/packages/SystemUI/src/com/android/systemui/controls/ui/DetailDialog.kt @@ -19,6 +19,7 @@ package com.android.systemui.controls.ui import android.app.ActivityOptions import android.app.ActivityTaskManager import android.app.ActivityTaskManager.INVALID_TASK_ID +import android.app.ComponentOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED import android.app.Dialog import android.app.PendingIntent import android.content.ComponentName @@ -96,7 +97,9 @@ class DetailDialog( activityContext, 0 /* enterResId */, 0 /* exitResId */ - ) + ).setPendingIntentBackgroundActivityStartMode(MODE_BACKGROUND_ACTIVITY_START_ALLOWED) + options.isPendingIntentBackgroundActivityLaunchAllowedByPermission = true + taskView.startActivity( pendingIntent, fillInIntent, diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/ui/DetailDialogTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/ui/DetailDialogTest.kt index c3506e80966b..54142590b453 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/controls/ui/DetailDialogTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/controls/ui/DetailDialogTest.kt @@ -16,6 +16,7 @@ package com.android.systemui.controls.ui +import android.app.ActivityOptions import android.app.PendingIntent import android.testing.AndroidTestingRunner import android.testing.TestableLooper @@ -24,7 +25,10 @@ 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.systemui.util.mockito.argumentCaptor +import com.android.systemui.util.mockito.capture import com.android.wm.shell.taskview.TaskView +import com.google.common.truth.Truth.assertThat import org.junit.Before import org.junit.Test import org.junit.runner.RunWith @@ -69,6 +73,25 @@ class DetailDialogTest : SysuiTestCase() { verify(taskView).startActivity(eq(pendingIntent), any(), any(), any()) } + @Test + fun testActivityOptionsAllowBal() { + // GIVEN the dialog is created with a PendingIntent + val dialog = createDialog(pendingIntent) + + // WHEN the TaskView is initialized + dialog.stateCallback.onInitialized() + + val optionsCaptor = argumentCaptor<ActivityOptions>() + + // THEN the ActivityOptions have the correct flags + verify(taskView).startActivity(any(), any(), capture(optionsCaptor), any()) + + assertThat(optionsCaptor.value.pendingIntentBackgroundActivityStartMode) + .isEqualTo(ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED) + assertThat(optionsCaptor.value.isPendingIntentBackgroundActivityLaunchAllowedByPermission) + .isTrue() + } + private fun createDialog(pendingIntent: PendingIntent): DetailDialog { return DetailDialog( mContext, |