Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 62171312 authored by Stefan Andonian's avatar Stefan Andonian Committed by Android (Google) Code Review
Browse files

Merge "Stop screen recording when turning off RecordIssueTile" into main

parents 5f323f5a 6579e31d
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -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
+3 −0
Original line number Diff line number Diff line
@@ -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,
            )
    }