Loading packages/SystemUI/src/com/android/systemui/qs/tiles/RecordIssueTile.kt +3 −1 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ import com.android.systemui.qs.logging.QSLogger import com.android.systemui.qs.tileimpl.QSTileImpl import com.android.systemui.recordissue.RecordIssueDialogDelegate import com.android.systemui.res.R import com.android.systemui.settings.UserContextProvider import com.android.systemui.statusbar.phone.KeyguardDismissUtil import com.android.systemui.statusbar.phone.SystemUIDialog import com.android.systemui.statusbar.policy.KeyguardStateController Loading @@ -63,6 +64,7 @@ constructor( private val keyguardStateController: KeyguardStateController, private val dialogLaunchAnimator: DialogLaunchAnimator, private val sysuiDialogFactory: SystemUIDialog.Factory, private val userContextProvider: UserContextProvider, ) : QSTileImpl<QSTile.BooleanState>( host, Loading Loading @@ -100,7 +102,7 @@ constructor( private fun showPrompt(view: View?) { val dialog: AlertDialog = RecordIssueDialogDelegate(sysuiDialogFactory) { RecordIssueDialogDelegate(sysuiDialogFactory, userContextProvider) { isRecording = true refreshState() } Loading packages/SystemUI/src/com/android/systemui/recordissue/RecordIssueDialogDelegate.kt +25 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,9 @@ package com.android.systemui.recordissue import android.annotation.SuppressLint import android.app.Activity import android.app.BroadcastOptions import android.app.PendingIntent import android.content.Context import android.content.res.ColorStateList import android.graphics.Color Loading @@ -28,10 +31,14 @@ import android.widget.Button import android.widget.PopupMenu import android.widget.Switch import com.android.systemui.res.R import com.android.systemui.screenrecord.RecordingService import com.android.systemui.screenrecord.ScreenRecordingAudioSource import com.android.systemui.settings.UserContextProvider import com.android.systemui.statusbar.phone.SystemUIDialog class RecordIssueDialogDelegate( private val factory: SystemUIDialog.Factory, private val userContextProvider: UserContextProvider, private val onStarted: Runnable ) : SystemUIDialog.Delegate { Loading @@ -46,6 +53,9 @@ class RecordIssueDialogDelegate( setNegativeButton(R.string.cancel) { _, _ -> dismiss() } setPositiveButton(R.string.qs_record_issue_start) { _, _ -> onStarted.run() if (screenRecordSwitch.isChecked) { requestScreenCapture() } dismiss() } } Loading Loading @@ -85,4 +95,19 @@ class RecordIssueDialogDelegate( show() } } private fun requestScreenCapture() = PendingIntent.getForegroundService( userContextProvider.userContext, RecordingService.REQUEST_CODE, RecordingService.getStartIntent( userContextProvider.userContext, Activity.RESULT_OK, ScreenRecordingAudioSource.NONE.ordinal, false, null ), PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE ) .send(BroadcastOptions.makeBasic().apply { isInteractive = true }.toBundle()) } packages/SystemUI/tests/src/com/android/systemui/qs/tiles/RecordIssueTileTest.kt +4 −1 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import com.android.systemui.qs.QSHost import com.android.systemui.qs.QsEventLogger import com.android.systemui.qs.logging.QSLogger import com.android.systemui.res.R import com.android.systemui.settings.UserContextProvider import com.android.systemui.statusbar.phone.KeyguardDismissUtil import com.android.systemui.statusbar.phone.SystemUIDialog import com.android.systemui.statusbar.policy.KeyguardStateController Loading Loading @@ -66,6 +67,7 @@ class RecordIssueTileTest : SysuiTestCase() { @Mock private lateinit var dialogLauncherAnimator: DialogLaunchAnimator @Mock private lateinit var dialogFactory: SystemUIDialog.Factory @Mock private lateinit var dialog: SystemUIDialog @Mock private lateinit var userContextProvider: UserContextProvider private lateinit var testableLooper: TestableLooper private lateinit var tile: RecordIssueTile Loading @@ -91,7 +93,8 @@ class RecordIssueTileTest : SysuiTestCase() { keyguardDismissUtil, keyguardStateController, dialogLauncherAnimator, dialogFactory dialogFactory, userContextProvider, ) } Loading packages/SystemUI/tests/src/com/android/systemui/recordissue/RecordIssueDialogDelegateTest.kt +2 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,8 @@ class RecordIssueDialogDelegateTest : SysuiTestCase() { ) latch = CountDownLatch(1) dialog = RecordIssueDialogDelegate(dialogFactory) { latch.countDown() }.createDialog() dialog = RecordIssueDialogDelegate(dialogFactory, mock()) { latch.countDown() }.createDialog() dialog.show() } Loading Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/RecordIssueTile.kt +3 −1 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ import com.android.systemui.qs.logging.QSLogger import com.android.systemui.qs.tileimpl.QSTileImpl import com.android.systemui.recordissue.RecordIssueDialogDelegate import com.android.systemui.res.R import com.android.systemui.settings.UserContextProvider import com.android.systemui.statusbar.phone.KeyguardDismissUtil import com.android.systemui.statusbar.phone.SystemUIDialog import com.android.systemui.statusbar.policy.KeyguardStateController Loading @@ -63,6 +64,7 @@ constructor( private val keyguardStateController: KeyguardStateController, private val dialogLaunchAnimator: DialogLaunchAnimator, private val sysuiDialogFactory: SystemUIDialog.Factory, private val userContextProvider: UserContextProvider, ) : QSTileImpl<QSTile.BooleanState>( host, Loading Loading @@ -100,7 +102,7 @@ constructor( private fun showPrompt(view: View?) { val dialog: AlertDialog = RecordIssueDialogDelegate(sysuiDialogFactory) { RecordIssueDialogDelegate(sysuiDialogFactory, userContextProvider) { isRecording = true refreshState() } Loading
packages/SystemUI/src/com/android/systemui/recordissue/RecordIssueDialogDelegate.kt +25 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,9 @@ package com.android.systemui.recordissue import android.annotation.SuppressLint import android.app.Activity import android.app.BroadcastOptions import android.app.PendingIntent import android.content.Context import android.content.res.ColorStateList import android.graphics.Color Loading @@ -28,10 +31,14 @@ import android.widget.Button import android.widget.PopupMenu import android.widget.Switch import com.android.systemui.res.R import com.android.systemui.screenrecord.RecordingService import com.android.systemui.screenrecord.ScreenRecordingAudioSource import com.android.systemui.settings.UserContextProvider import com.android.systemui.statusbar.phone.SystemUIDialog class RecordIssueDialogDelegate( private val factory: SystemUIDialog.Factory, private val userContextProvider: UserContextProvider, private val onStarted: Runnable ) : SystemUIDialog.Delegate { Loading @@ -46,6 +53,9 @@ class RecordIssueDialogDelegate( setNegativeButton(R.string.cancel) { _, _ -> dismiss() } setPositiveButton(R.string.qs_record_issue_start) { _, _ -> onStarted.run() if (screenRecordSwitch.isChecked) { requestScreenCapture() } dismiss() } } Loading Loading @@ -85,4 +95,19 @@ class RecordIssueDialogDelegate( show() } } private fun requestScreenCapture() = PendingIntent.getForegroundService( userContextProvider.userContext, RecordingService.REQUEST_CODE, RecordingService.getStartIntent( userContextProvider.userContext, Activity.RESULT_OK, ScreenRecordingAudioSource.NONE.ordinal, false, null ), PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE ) .send(BroadcastOptions.makeBasic().apply { isInteractive = true }.toBundle()) }
packages/SystemUI/tests/src/com/android/systemui/qs/tiles/RecordIssueTileTest.kt +4 −1 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import com.android.systemui.qs.QSHost import com.android.systemui.qs.QsEventLogger import com.android.systemui.qs.logging.QSLogger import com.android.systemui.res.R import com.android.systemui.settings.UserContextProvider import com.android.systemui.statusbar.phone.KeyguardDismissUtil import com.android.systemui.statusbar.phone.SystemUIDialog import com.android.systemui.statusbar.policy.KeyguardStateController Loading Loading @@ -66,6 +67,7 @@ class RecordIssueTileTest : SysuiTestCase() { @Mock private lateinit var dialogLauncherAnimator: DialogLaunchAnimator @Mock private lateinit var dialogFactory: SystemUIDialog.Factory @Mock private lateinit var dialog: SystemUIDialog @Mock private lateinit var userContextProvider: UserContextProvider private lateinit var testableLooper: TestableLooper private lateinit var tile: RecordIssueTile Loading @@ -91,7 +93,8 @@ class RecordIssueTileTest : SysuiTestCase() { keyguardDismissUtil, keyguardStateController, dialogLauncherAnimator, dialogFactory dialogFactory, userContextProvider, ) } Loading
packages/SystemUI/tests/src/com/android/systemui/recordissue/RecordIssueDialogDelegateTest.kt +2 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,8 @@ class RecordIssueDialogDelegateTest : SysuiTestCase() { ) latch = CountDownLatch(1) dialog = RecordIssueDialogDelegate(dialogFactory) { latch.countDown() }.createDialog() dialog = RecordIssueDialogDelegate(dialogFactory, mock()) { latch.countDown() }.createDialog() dialog.show() } Loading