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

Commit 2720447c authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Replace shared dagger inject with Intent Extras in IssueRecordingService." into main

parents 24a5e6b6 350bed0a
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -30,9 +30,11 @@ import com.android.systemui.plugins.statusbar.statusBarStateController
import com.android.systemui.qs.pipeline.domain.interactor.panelInteractor
import com.android.systemui.qs.tiles.base.interactor.QSTileInput
import com.android.systemui.qs.tiles.viewmodel.QSTileUserAction
import com.android.systemui.recordissue.IssueRecordingState
import com.android.systemui.recordissue.RecordIssueDialogDelegate
import com.android.systemui.screenrecord.RecordingController
import com.android.systemui.settings.UserContextProvider
import com.android.systemui.settings.userFileManager
import com.android.systemui.settings.userTracker
import com.android.systemui.statusbar.phone.KeyguardDismissUtil
import com.android.systemui.statusbar.policy.keyguardStateController
@@ -81,10 +83,11 @@ class IssueRecordingUserActionInteractorTest : SysuiTestCase() {
            underTest =
                IssueRecordingUserActionInteractor(
                    testDispatcher,
                    IssueRecordingState(userTracker, userFileManager),
                    KeyguardDismissUtil(
                        keyguardStateController,
                        statusBarStateController,
                        activityStarter
                        activityStarter,
                    ),
                    keyguardStateController,
                    dialogTransitionAnimator,
+2 −2
Original line number Diff line number Diff line
@@ -107,7 +107,7 @@ class IssueRecordingServiceSessionTest : SysuiTestCase() {

    @Test
    fun requestBugreport_afterReceivingShareCommand_withTakeBugreportTrue() {
        issueRecordingState.takeBugreport = true
        underTest.takeBugReport = true
        val uri = mock<Uri>()

        underTest.share(0, uri)
@@ -118,7 +118,7 @@ class IssueRecordingServiceSessionTest : SysuiTestCase() {

    @Test
    fun sharesTracesDirectly_afterReceivingShareCommand_withTakeBugreportFalse() {
        issueRecordingState.takeBugreport = false
        underTest.takeBugReport = false
        val uri = mock<Uri>()

        underTest.share(0, uri)
+8 −1
Original line number Diff line number Diff line
@@ -152,7 +152,14 @@ constructor(
        recordingController.startCountdown(
            DELAY_MS,
            INTERVAL_MS,
            pendingServiceIntent(getStartIntent(userContextProvider.userContext)),
            pendingServiceIntent(
                getStartIntent(
                    userContextProvider.userContext,
                    issueRecordingState.traceConfig,
                    issueRecordingState.recordScreen,
                    issueRecordingState.takeBugreport,
                )
            ),
            pendingServiceIntent(getStopIntent(userContextProvider.userContext)),
        )

+12 −3
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import com.android.systemui.qs.tiles.base.interactor.QSTileUserActionInteractor
import com.android.systemui.qs.tiles.viewmodel.QSTileUserAction
import com.android.systemui.recordissue.IssueRecordingService.Companion.getStartIntent
import com.android.systemui.recordissue.IssueRecordingService.Companion.getStopIntent
import com.android.systemui.recordissue.IssueRecordingState
import com.android.systemui.recordissue.RecordIssueDialogDelegate
import com.android.systemui.recordissue.RecordIssueModule.Companion.TILE_SPEC
import com.android.systemui.screenrecord.RecordingController
@@ -52,6 +53,7 @@ class IssueRecordingUserActionInteractor
@Inject
constructor(
    @Main private val mainCoroutineContext: CoroutineContext,
    private val state: IssueRecordingState,
    private val keyguardDismissUtil: KeyguardDismissUtil,
    private val keyguardStateController: KeyguardStateController,
    private val dialogTransitionAnimator: DialogTransitionAnimator,
@@ -104,8 +106,15 @@ constructor(
        recordingController.startCountdown(
            DELAY_MS,
            INTERVAL_MS,
            pendingServiceIntent(getStartIntent(userContextProvider.userContext)),
            pendingServiceIntent(getStopIntent(userContextProvider.userContext))
            pendingServiceIntent(
                getStartIntent(
                    userContextProvider.userContext,
                    state.traceConfig,
                    state.recordScreen,
                    state.takeBugreport,
                )
            ),
            pendingServiceIntent(getStopIntent(userContextProvider.userContext)),
        )

    private fun stopIssueRecordingService() =
@@ -117,6 +126,6 @@ constructor(
            userContextProvider.userContext,
            RecordingService.REQUEST_CODE,
            action,
            PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
            PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,
        )
}
+22 −3
Original line number Diff line number Diff line
@@ -38,6 +38,8 @@ import com.android.systemui.screenrecord.RecordingService
import com.android.systemui.screenrecord.RecordingServiceStrings
import com.android.systemui.settings.UserContextProvider
import com.android.systemui.statusbar.phone.KeyguardDismissUtil
import com.android.traceur.MessageConstants.INTENT_EXTRA_TRACE_TYPE
import com.android.traceur.TraceConfig
import java.util.concurrent.Executor
import javax.inject.Inject

@@ -110,7 +112,13 @@ constructor(
        when (intent?.action) {
            ACTION_START -> {
                session.start()
                if (!issueRecordingState.recordScreen) {
                with(session) {
                    traceConfig =
                        intent.getParcelableExtra(INTENT_EXTRA_TRACE_TYPE, TraceConfig::class.java)
                    takeBugReport = intent.getBooleanExtra(EXTRA_BUG_REPORT, false)
                    start()
                }
                if (!intent.getBooleanExtra(EXTRA_SCREEN_RECORD, false)) {
                    // If we don't want to record the screen, the ACTION_SHOW_START_NOTIF action
                    // will circumvent the RecordingService's screen recording start code.
                    return super.onStartCommand(Intent(ACTION_SHOW_START_NOTIF), flags, startId)
@@ -136,6 +144,8 @@ constructor(
    companion object {
        private const val TAG = "IssueRecordingService"
        private const val CHANNEL_ID = "issue_record"
        const val EXTRA_SCREEN_RECORD = "extra_screenRecord"
        const val EXTRA_BUG_REPORT = "extra_bugReport"

        /**
         * Get an intent to stop the issue recording service.
@@ -153,8 +163,17 @@ constructor(
         *
         * @param context Context from the requesting activity
         */
        fun getStartIntent(context: Context): Intent =
            Intent(context, IssueRecordingService::class.java).setAction(ACTION_START)
        fun getStartIntent(
            context: Context,
            traceConfig: TraceConfig,
            screenRecord: Boolean,
            bugReport: Boolean,
        ): Intent =
            Intent(context, IssueRecordingService::class.java)
                .setAction(ACTION_START)
                .putExtra(INTENT_EXTRA_TRACE_TYPE, traceConfig)
                .putExtra(EXTRA_SCREEN_RECORD, screenRecord)
                .putExtra(EXTRA_BUG_REPORT, bugReport)
    }
}

Loading