diff options
| author | 2024-01-04 00:07:39 +0000 | |
|---|---|---|
| committer | 2024-01-24 23:52:56 +0000 | |
| commit | 6579e31de925371e802a3bb5831dadd0cd5a2b48 (patch) | |
| tree | e6a608dd5a3dacee2245450511caf7a94ebf0ae0 | |
| parent | a90768d4ff47c027019b52b679beba5bbcf5de26 (diff) | |
Stop screen recording when turning off RecordIssueTile
Bug: 305049544
Flag: ACONFIG record_issue_qs_tile DEVELOPMENT
Test: Manually tested on device
Change-Id: Iffac63a44c66c8229c1549a23b2197fa6d29ce16
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/tiles/RecordIssueTile.kt | 15 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/qs/tiles/RecordIssueTileTest.kt | 3 |
2 files changed, 18 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/RecordIssueTile.kt b/packages/SystemUI/src/com/android/systemui/qs/tiles/RecordIssueTile.kt index 216d716b07a4..88863cbad1ee 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/RecordIssueTile.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/RecordIssueTile.kt @@ -17,6 +17,8 @@ package com.android.systemui.qs.tiles import android.app.AlertDialog +import android.app.BroadcastOptions +import android.app.PendingIntent import android.content.Intent import android.os.Handler import android.os.Looper @@ -42,6 +44,8 @@ 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.screenrecord.RecordingService +import com.android.systemui.settings.UserContextProvider import com.android.systemui.statusbar.phone.KeyguardDismissUtil import com.android.systemui.statusbar.policy.KeyguardStateController import javax.inject.Inject @@ -61,6 +65,7 @@ constructor( private val keyguardDismissUtil: KeyguardDismissUtil, private val keyguardStateController: KeyguardStateController, private val dialogLaunchAnimator: DialogLaunchAnimator, + private val userContextProvider: UserContextProvider, private val delegateFactory: RecordIssueDialogDelegate.Factory, ) : QSTileImpl<QSTile.BooleanState>( @@ -91,12 +96,22 @@ constructor( public override fun handleClick(view: View?) { if (isRecording) { isRecording = false + stopScreenRecord() } else { mUiHandler.post { showPrompt(view) } } refreshState() } + private fun stopScreenRecord() = + PendingIntent.getService( + userContextProvider.userContext, + RecordingService.REQUEST_CODE, + RecordingService.getStopIntent(userContextProvider.userContext), + PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE + ) + .send(BroadcastOptions.makeBasic().apply { isInteractive = true }.toBundle()) + private fun showPrompt(view: View?) { val dialog: AlertDialog = delegateFactory diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/RecordIssueTileTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/RecordIssueTileTest.kt index c7479fd50db1..1ed8c3cdf0ba 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/RecordIssueTileTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/RecordIssueTileTest.kt @@ -32,6 +32,7 @@ import com.android.systemui.qs.QsEventLogger import com.android.systemui.qs.logging.QSLogger 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 @@ -65,6 +66,7 @@ class RecordIssueTileTest : SysuiTestCase() { @Mock private lateinit var keyguardDismissUtil: KeyguardDismissUtil @Mock private lateinit var keyguardStateController: KeyguardStateController @Mock private lateinit var dialogLauncherAnimator: DialogLaunchAnimator + @Mock private lateinit var userContextProvider: UserContextProvider @Mock private lateinit var delegateFactory: RecordIssueDialogDelegate.Factory @Mock private lateinit var dialogDelegate: RecordIssueDialogDelegate @Mock private lateinit var dialog: SystemUIDialog @@ -94,6 +96,7 @@ class RecordIssueTileTest : SysuiTestCase() { keyguardDismissUtil, keyguardStateController, dialogLauncherAnimator, + userContextProvider, delegateFactory, ) } |