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

Commit f7407020 authored by Caitlin Cassidy's avatar Caitlin Cassidy
Browse files

[Ongoing Call Controller] Add a #dump method with current call

information.

Sample output:

    Active call notification: CallNotificationInfo(key=0|com.google.android.dialer|1|null|10142, callStartTime=1632773848984, intent=Intent { act=android.intent.action.MAIN flg=0x10040000 cmp=com.google.android.dialer/com.android.incallui.LegacyInCallActivity (has extras) }, uid=10142, isOngoing=true)
    Call app visible: false

Bug: 199600334
Test: Manual
Change-Id: I2ade3280a60f83138d79349828168dd00ed6b623
parent 1ed317d6
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -248,11 +248,12 @@ public interface StatusBarDependenciesModule {
            ActivityStarter activityStarter,
            @Main Executor mainExecutor,
            IActivityManager iActivityManager,
            OngoingCallLogger logger) {
            OngoingCallLogger logger,
            DumpManager dumpManager) {
        OngoingCallController ongoingCallController =
                new OngoingCallController(
                        notifCollection, featureFlags, systemClock, activityStarter, mainExecutor,
                        iActivityManager, logger);
                        iActivityManager, logger, dumpManager);
        ongoingCallController.init();
        return ongoingCallController;
    }
+14 −3
Original line number Diff line number Diff line
@@ -26,10 +26,12 @@ import android.util.Log
import android.view.View
import androidx.annotation.VisibleForTesting
import com.android.internal.jank.InteractionJankMonitor
import com.android.systemui.Dumpable
import com.android.systemui.R
import com.android.systemui.animation.ActivityLaunchAnimator
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.dump.DumpManager
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.statusbar.notification.collection.NotificationEntry
@@ -37,6 +39,8 @@ import com.android.systemui.statusbar.notification.collection.notifcollection.Co
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener
import com.android.systemui.statusbar.policy.CallbackController
import com.android.systemui.util.time.SystemClock
import java.io.FileDescriptor
import java.io.PrintWriter
import java.util.concurrent.Executor
import javax.inject.Inject

@@ -51,13 +55,14 @@ class OngoingCallController @Inject constructor(
    private val activityStarter: ActivityStarter,
    @Main private val mainExecutor: Executor,
    private val iActivityManager: IActivityManager,
    private val logger: OngoingCallLogger
) : CallbackController<OngoingCallListener> {
    private val logger: OngoingCallLogger,
    private val dumpManager: DumpManager,
) : CallbackController<OngoingCallListener>, Dumpable {

    /** Non-null if there's an active call notification. */
    private var callNotificationInfo: CallNotificationInfo? = null
    /** True if the application managing the call is visible to the user. */
    private var isCallAppVisible: Boolean = true
    private var isCallAppVisible: Boolean = false
    private var chipView: View? = null
    private var uidObserver: IUidObserver.Stub? = null

@@ -120,6 +125,7 @@ class OngoingCallController @Inject constructor(
    }

    fun init() {
        dumpManager.registerDumpable(this)
        if (featureFlags.isOngoingCallStatusBarChipEnabled) {
            notifCollection.addCollectionListener(notifListener)
        }
@@ -299,6 +305,11 @@ class OngoingCallController @Inject constructor(
         */
        fun hasValidStartTime(): Boolean = callStartTime > 0
    }

    override fun dump(fd: FileDescriptor, pw: PrintWriter, args: Array<out String>) {
        pw.println("Active call notification: $callNotificationInfo")
        pw.println("Call app visible: $isCallAppVisible")
    }
}

private fun isCallNotification(entry: NotificationEntry): Boolean {
+4 −1
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import androidx.test.filters.SmallTest
import com.android.internal.logging.testing.UiEventLoggerFake
import com.android.systemui.R
import com.android.systemui.SysuiTestCase
import com.android.systemui.dump.DumpManager
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.statusbar.notification.collection.NotificationEntry
@@ -105,7 +106,9 @@ class OngoingCallControllerTest : SysuiTestCase() {
                mockActivityStarter,
                mainExecutor,
                mockIActivityManager,
                OngoingCallLogger(uiEventLoggerFake))
                OngoingCallLogger(uiEventLoggerFake),
                DumpManager(),
        )
        controller.init()
        controller.addCallback(mockOngoingCallListener)
        controller.setChipView(chipView)