From f74070204d10df469a97b2dc2c7edc3de681c1f5 Mon Sep 17 00:00:00 2001 From: Caitlin Cassidy Date: Mon, 27 Sep 2021 20:05:01 +0000 Subject: [PATCH] [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 --- .../dagger/StatusBarDependenciesModule.java | 5 +++-- .../phone/ongoingcall/OngoingCallController.kt | 17 ++++++++++++++--- .../ongoingcall/OngoingCallControllerTest.kt | 5 ++++- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java index 94f186f007784..77a1a0986f556 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java @@ -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; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallController.kt index eeff010e0bdf8..6fdf0361cf76b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallController.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallController.kt @@ -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 { + private val logger: OngoingCallLogger, + private val dumpManager: DumpManager, +) : CallbackController, 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) { + pw.println("Active call notification: $callNotificationInfo") + pw.println("Call app visible: $isCallAppVisible") + } } private fun isCallNotification(entry: NotificationEntry): Boolean { diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallControllerTest.kt index efe2c1774b088..5b6c244b50cbb 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallControllerTest.kt @@ -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)