Loading packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/irecording/IssueRecordingUserActionInteractorTest.kt +4 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -81,10 +83,11 @@ class IssueRecordingUserActionInteractorTest : SysuiTestCase() { underTest = IssueRecordingUserActionInteractor( testDispatcher, IssueRecordingState(userTracker, userFileManager), KeyguardDismissUtil( keyguardStateController, statusBarStateController, activityStarter activityStarter, ), keyguardStateController, dialogTransitionAnimator, Loading packages/SystemUI/multivalentTests/src/com/android/systemui/recordissue/IssueRecordingServiceSessionTest.kt +2 −2 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -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) Loading packages/SystemUI/src/com/android/systemui/qs/tiles/RecordIssueTile.kt +8 −1 Original line number Diff line number Diff line Loading @@ -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)), ) Loading packages/SystemUI/src/com/android/systemui/qs/tiles/impl/irecording/IssueRecordingUserActionInteractor.kt +12 −3 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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, Loading Loading @@ -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() = Loading @@ -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, ) } packages/SystemUI/src/com/android/systemui/recordissue/IssueRecordingService.kt +22 −3 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) Loading @@ -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. Loading @@ -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 Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/irecording/IssueRecordingUserActionInteractorTest.kt +4 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -81,10 +83,11 @@ class IssueRecordingUserActionInteractorTest : SysuiTestCase() { underTest = IssueRecordingUserActionInteractor( testDispatcher, IssueRecordingState(userTracker, userFileManager), KeyguardDismissUtil( keyguardStateController, statusBarStateController, activityStarter activityStarter, ), keyguardStateController, dialogTransitionAnimator, Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/recordissue/IssueRecordingServiceSessionTest.kt +2 −2 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -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) Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/RecordIssueTile.kt +8 −1 Original line number Diff line number Diff line Loading @@ -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)), ) Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/impl/irecording/IssueRecordingUserActionInteractor.kt +12 −3 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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, Loading Loading @@ -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() = Loading @@ -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, ) }
packages/SystemUI/src/com/android/systemui/recordissue/IssueRecordingService.kt +22 −3 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) Loading @@ -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. Loading @@ -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