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

Commit d8f5b522 authored by Stefan Andonian's avatar Stefan Andonian
Browse files

Close the Notification Shade when starting/sharing traces.

This makes the UI look smoother and more polished. Attached to this
commit is a small change to remove the notification once the traces have
been shared since they are deleted immediately afterwards inside the
Traceur code anyways.

Bug: 305049544
Flag: ACONFIG record_issue_qs_tile DEVELOPMENT
Test: Tested this locally on a device.
Change-Id: I5e9b4ece86effb833e690ed65e62e567ba8d89e2
parent 0f59265d
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.qs.QSHost
import com.android.systemui.qs.QsEventLogger
import com.android.systemui.qs.logging.QSLogger
import com.android.systemui.qs.pipeline.domain.interactor.PanelInteractor
import com.android.systemui.qs.tileimpl.QSTileImpl
import com.android.systemui.recordissue.IssueRecordingService
import com.android.systemui.recordissue.RecordIssueDialogDelegate
@@ -66,6 +67,7 @@ constructor(
    private val keyguardDismissUtil: KeyguardDismissUtil,
    private val keyguardStateController: KeyguardStateController,
    private val dialogTransitionAnimator: DialogTransitionAnimator,
    private val panelInteractor: PanelInteractor,
    private val userContextProvider: UserContextProvider,
    private val delegateFactory: RecordIssueDialogDelegate.Factory,
) :
@@ -138,6 +140,8 @@ constructor(
                .create {
                    isRecording = true
                    startIssueRecordingService(it.screenRecord, it.winscopeTracing)
                    dialogTransitionAnimator.disableAllCurrentDialogsExitAnimations()
                    panelInteractor.collapsePanels()
                    refreshState()
                }
                .createDialog()
+12 −8
Original line number Diff line number Diff line
@@ -26,8 +26,10 @@ import android.os.UserHandle
import android.util.Log
import androidx.core.content.FileProvider
import com.android.internal.logging.UiEventLogger
import com.android.systemui.animation.DialogTransitionAnimator
import com.android.systemui.dagger.qualifiers.LongRunning
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.qs.pipeline.domain.interactor.PanelInteractor
import com.android.systemui.res.R
import com.android.systemui.screenrecord.RecordingController
import com.android.systemui.screenrecord.RecordingService
@@ -53,7 +55,9 @@ constructor(
    uiEventLogger: UiEventLogger,
    notificationManager: NotificationManager,
    userContextProvider: UserContextProvider,
    keyguardDismissUtil: KeyguardDismissUtil
    keyguardDismissUtil: KeyguardDismissUtil,
    private val dialogTransitionAnimator: DialogTransitionAnimator,
    private val panelInteractor: PanelInteractor,
) :
    RecordingService(
        controller,
@@ -97,6 +101,8 @@ constructor(
            }
            ACTION_SHARE -> {
                shareRecording(intent)
                dialogTransitionAnimator.disableAllCurrentDialogsExitAnimations()
                panelInteractor.collapsePanels()

                // Unlike all other actions, action_share has different behavior for the screen
                // recording qs tile than it does for the record issue qs tile. Return sticky to
@@ -119,13 +125,11 @@ constructor(
            FileSender.buildSendIntent(this, listOf(sharableUri))
                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

        if (mNotificationId != NOTIF_BASE_ID) {
        mNotificationManager.cancelAsUser(
            null,
            mNotificationId,
            UserHandle(mUserContextTracker.userContext.userId)
        )
        }

        // TODO: Debug why the notification shade isn't closing upon starting the BetterBug activity
        mKeyguardDismissUtil.executeWhenUnlocked(
+3 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.qs.QSHost
import com.android.systemui.qs.QsEventLogger
import com.android.systemui.qs.logging.QSLogger
import com.android.systemui.qs.pipeline.domain.interactor.PanelInteractor
import com.android.systemui.recordissue.RecordIssueDialogDelegate
import com.android.systemui.res.R
import com.android.systemui.settings.UserContextProvider
@@ -66,6 +67,7 @@ class RecordIssueTileTest : SysuiTestCase() {
    @Mock private lateinit var keyguardDismissUtil: KeyguardDismissUtil
    @Mock private lateinit var keyguardStateController: KeyguardStateController
    @Mock private lateinit var dialogLauncherAnimator: DialogTransitionAnimator
    @Mock private lateinit var panelInteractor: PanelInteractor
    @Mock private lateinit var userContextProvider: UserContextProvider
    @Mock private lateinit var delegateFactory: RecordIssueDialogDelegate.Factory
    @Mock private lateinit var dialogDelegate: RecordIssueDialogDelegate
@@ -96,6 +98,7 @@ class RecordIssueTileTest : SysuiTestCase() {
                keyguardDismissUtil,
                keyguardStateController,
                dialogLauncherAnimator,
                panelInteractor,
                userContextProvider,
                delegateFactory,
            )