Merge "[Chipbar] Add a #dump method." into tm-qpr-dev am: e0d1e18ae9

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20786087

Change-Id: Ieb518c88cae3fda081703c9977c959b9039fcc25
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Caitlin Shkuratov
2022-12-20 16:45:44 +00:00
committed by Automerger Merge Worker
10 changed files with 59 additions and 5 deletions

View File

@@ -51,6 +51,11 @@ open class DumpManager @Inject constructor() {
registerDumpable(name, module, DumpPriority.CRITICAL)
}
/** See [registerNormalDumpable]. */
fun registerNormalDumpable(module: Dumpable) {
registerNormalDumpable(module::class.java.simpleName, module)
}
/**
* Registers a dumpable to be called during the NORMAL section of the bug report.
*

View File

@@ -37,6 +37,7 @@ import com.android.systemui.common.shared.model.ContentDescription
import com.android.systemui.common.ui.binder.TintedIconViewBinder
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.dump.DumpManager
import com.android.systemui.media.taptotransfer.MediaTttFlags
import com.android.systemui.media.taptotransfer.common.MediaTttIcon
import com.android.systemui.media.taptotransfer.common.MediaTttLogger
@@ -69,6 +70,7 @@ open class MediaTttChipControllerReceiver @Inject constructor(
mainExecutor: DelayableExecutor,
accessibilityManager: AccessibilityManager,
configurationController: ConfigurationController,
dumpManager: DumpManager,
powerManager: PowerManager,
@Main private val mainHandler: Handler,
private val mediaTttFlags: MediaTttFlags,
@@ -83,6 +85,7 @@ open class MediaTttChipControllerReceiver @Inject constructor(
mainExecutor,
accessibilityManager,
configurationController,
dumpManager,
powerManager,
R.layout.media_ttt_chip_receiver,
wakeLockBuilder,
@@ -162,6 +165,7 @@ open class MediaTttChipControllerReceiver @Inject constructor(
}
override fun start() {
super.start()
if (mediaTttFlags.isMediaTttEnabled()) {
commandQueue.addCallback(commandQueueCallbacks)
}

View File

@@ -30,12 +30,16 @@ import android.view.accessibility.AccessibilityManager
import android.view.accessibility.AccessibilityManager.FLAG_CONTENT_CONTROLS
import android.view.accessibility.AccessibilityManager.FLAG_CONTENT_ICONS
import android.view.accessibility.AccessibilityManager.FLAG_CONTENT_TEXT
import androidx.annotation.CallSuper
import com.android.systemui.CoreStartable
import com.android.systemui.Dumpable
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.dump.DumpManager
import com.android.systemui.statusbar.policy.ConfigurationController
import com.android.systemui.util.concurrency.DelayableExecutor
import com.android.systemui.util.time.SystemClock
import com.android.systemui.util.wakelock.WakeLock
import java.io.PrintWriter
/**
* A generic controller that can temporarily display a new view in a new window.
@@ -69,11 +73,12 @@ abstract class TemporaryViewDisplayController<T : TemporaryViewInfo, U : Tempora
@Main private val mainExecutor: DelayableExecutor,
private val accessibilityManager: AccessibilityManager,
private val configurationController: ConfigurationController,
private val dumpManager: DumpManager,
private val powerManager: PowerManager,
@LayoutRes private val viewLayoutRes: Int,
private val wakeLockBuilder: WakeLock.Builder,
private val systemClock: SystemClock,
) : CoreStartable {
) : CoreStartable, Dumpable {
/**
* Window layout params that will be used as a starting point for the [windowLayoutParams] of
* all subclasses.
@@ -109,6 +114,11 @@ abstract class TemporaryViewDisplayController<T : TemporaryViewInfo, U : Tempora
return activeViews.getOrNull(0)
}
@CallSuper
override fun start() {
dumpManager.registerNormalDumpable(this)
}
/**
* Displays the view with the provided [newInfo].
*
@@ -382,6 +392,19 @@ abstract class TemporaryViewDisplayController<T : TemporaryViewInfo, U : Tempora
}
}
@Synchronized
@CallSuper
override fun dump(pw: PrintWriter, args: Array<out String>) {
pw.println("Current time millis: ${systemClock.currentTimeMillis()}")
pw.println("Active views size: ${activeViews.size}")
activeViews.forEachIndexed { index, displayInfo ->
pw.println("View[$index]:")
pw.println(" info=${displayInfo.info}")
pw.println(" hasView=${displayInfo.view != null}")
pw.println(" timeExpiration=${displayInfo.timeExpirationMillis}")
}
}
/**
* A method implemented by subclasses to update [currentView] based on [newInfo].
*/
@@ -445,8 +468,6 @@ abstract class TemporaryViewDisplayController<T : TemporaryViewInfo, U : Tempora
*/
var cancelViewTimeout: Runnable?,
)
// TODO(b/258019006): Add a dump method that dumps the currently active views.
}
private const val REMOVAL_REASON_TIMEOUT = "TIMEOUT"

View File

@@ -41,6 +41,7 @@ import com.android.systemui.common.ui.binder.TextViewBinder
import com.android.systemui.common.ui.binder.TintedIconViewBinder
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.dump.DumpManager
import com.android.systemui.plugins.FalsingManager
import com.android.systemui.statusbar.VibratorHelper
import com.android.systemui.statusbar.policy.ConfigurationController
@@ -75,6 +76,7 @@ open class ChipbarCoordinator @Inject constructor(
@Main mainExecutor: DelayableExecutor,
accessibilityManager: AccessibilityManager,
configurationController: ConfigurationController,
dumpManager: DumpManager,
powerManager: PowerManager,
private val falsingManager: FalsingManager,
private val falsingCollector: FalsingCollector,
@@ -89,6 +91,7 @@ open class ChipbarCoordinator @Inject constructor(
mainExecutor,
accessibilityManager,
configurationController,
dumpManager,
powerManager,
R.layout.chipbar,
wakeLockBuilder,
@@ -225,8 +228,6 @@ open class ChipbarCoordinator @Inject constructor(
return requireViewById(R.id.chipbar_inner)
}
override fun start() {}
override fun getTouchableRegion(view: View, outRect: Rect) {
viewUtil.setRectToViewWindowLocation(view, outRect)
}

View File

@@ -22,6 +22,7 @@ import android.os.PowerManager
import android.view.ViewGroup
import android.view.WindowManager
import android.view.accessibility.AccessibilityManager
import com.android.systemui.dump.DumpManager
import com.android.systemui.media.taptotransfer.MediaTttFlags
import com.android.systemui.media.taptotransfer.common.MediaTttLogger
import com.android.systemui.statusbar.CommandQueue
@@ -39,6 +40,7 @@ class FakeMediaTttChipControllerReceiver(
mainExecutor: DelayableExecutor,
accessibilityManager: AccessibilityManager,
configurationController: ConfigurationController,
dumpManager: DumpManager,
powerManager: PowerManager,
mainHandler: Handler,
mediaTttFlags: MediaTttFlags,
@@ -55,6 +57,7 @@ class FakeMediaTttChipControllerReceiver(
mainExecutor,
accessibilityManager,
configurationController,
dumpManager,
powerManager,
mainHandler,
mediaTttFlags,

View File

@@ -34,6 +34,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.media.taptotransfer.MediaTttFlags
import com.android.systemui.media.taptotransfer.common.MediaTttLogger
import com.android.systemui.statusbar.CommandQueue
@@ -73,6 +74,8 @@ class MediaTttChipControllerReceiverTest : SysuiTestCase() {
@Mock
private lateinit var configurationController: ConfigurationController
@Mock
private lateinit var dumpManager: DumpManager
@Mock
private lateinit var mediaTttFlags: MediaTttFlags
@Mock
private lateinit var powerManager: PowerManager
@@ -122,6 +125,7 @@ class MediaTttChipControllerReceiverTest : SysuiTestCase() {
fakeExecutor,
accessibilityManager,
configurationController,
dumpManager,
powerManager,
Handler.getMain(),
mediaTttFlags,
@@ -150,6 +154,7 @@ class MediaTttChipControllerReceiverTest : SysuiTestCase() {
FakeExecutor(FakeSystemClock()),
accessibilityManager,
configurationController,
dumpManager,
powerManager,
Handler.getMain(),
mediaTttFlags,

View File

@@ -38,6 +38,7 @@ import com.android.systemui.R
import com.android.systemui.SysuiTestCase
import com.android.systemui.classifier.FalsingCollector
import com.android.systemui.common.shared.model.Text.Companion.loadText
import com.android.systemui.dump.DumpManager
import com.android.systemui.media.taptotransfer.MediaTttFlags
import com.android.systemui.media.taptotransfer.common.MediaTttLogger
import com.android.systemui.plugins.FalsingManager
@@ -81,6 +82,7 @@ class MediaTttSenderCoordinatorTest : SysuiTestCase() {
@Mock private lateinit var applicationInfo: ApplicationInfo
@Mock private lateinit var commandQueue: CommandQueue
@Mock private lateinit var configurationController: ConfigurationController
@Mock private lateinit var dumpManager: DumpManager
@Mock private lateinit var falsingManager: FalsingManager
@Mock private lateinit var falsingCollector: FalsingCollector
@Mock private lateinit var chipbarLogger: ChipbarLogger
@@ -137,6 +139,7 @@ class MediaTttSenderCoordinatorTest : SysuiTestCase() {
fakeExecutor,
accessibilityManager,
configurationController,
dumpManager,
powerManager,
falsingManager,
falsingCollector,

View File

@@ -27,6 +27,7 @@ import androidx.test.filters.SmallTest
import com.android.systemui.R
import com.android.systemui.SysuiTestCase
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.dump.DumpManager
import com.android.systemui.statusbar.policy.ConfigurationController
import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener
import com.android.systemui.util.concurrency.DelayableExecutor
@@ -66,6 +67,8 @@ class TemporaryViewDisplayControllerTest : SysuiTestCase() {
@Mock
private lateinit var configurationController: ConfigurationController
@Mock
private lateinit var dumpManager: DumpManager
@Mock
private lateinit var windowManager: WindowManager
@Mock
private lateinit var powerManager: PowerManager
@@ -91,6 +94,7 @@ class TemporaryViewDisplayControllerTest : SysuiTestCase() {
fakeExecutor,
accessibilityManager,
configurationController,
dumpManager,
powerManager,
fakeWakeLockBuilder,
fakeClock,
@@ -989,6 +993,7 @@ class TemporaryViewDisplayControllerTest : SysuiTestCase() {
@Main mainExecutor: DelayableExecutor,
accessibilityManager: AccessibilityManager,
configurationController: ConfigurationController,
dumpManager: DumpManager,
powerManager: PowerManager,
wakeLockBuilder: WakeLock.Builder,
systemClock: SystemClock,
@@ -999,6 +1004,7 @@ class TemporaryViewDisplayControllerTest : SysuiTestCase() {
mainExecutor,
accessibilityManager,
configurationController,
dumpManager,
powerManager,
R.layout.chipbar,
wakeLockBuilder,

View File

@@ -36,6 +36,7 @@ import com.android.systemui.common.shared.model.ContentDescription.Companion.loa
import com.android.systemui.common.shared.model.Icon
import com.android.systemui.common.shared.model.Text
import com.android.systemui.common.shared.model.TintedIcon
import com.android.systemui.dump.DumpManager
import com.android.systemui.plugins.FalsingManager
import com.android.systemui.statusbar.VibratorHelper
import com.android.systemui.statusbar.policy.ConfigurationController
@@ -66,6 +67,7 @@ class ChipbarCoordinatorTest : SysuiTestCase() {
@Mock private lateinit var logger: ChipbarLogger
@Mock private lateinit var accessibilityManager: AccessibilityManager
@Mock private lateinit var configurationController: ConfigurationController
@Mock private lateinit var dumpManager: DumpManager
@Mock private lateinit var powerManager: PowerManager
@Mock private lateinit var windowManager: WindowManager
@Mock private lateinit var falsingManager: FalsingManager
@@ -100,6 +102,7 @@ class ChipbarCoordinatorTest : SysuiTestCase() {
fakeExecutor,
accessibilityManager,
configurationController,
dumpManager,
powerManager,
falsingManager,
falsingCollector,

View File

@@ -22,6 +22,7 @@ import android.view.ViewGroup
import android.view.WindowManager
import android.view.accessibility.AccessibilityManager
import com.android.systemui.classifier.FalsingCollector
import com.android.systemui.dump.DumpManager
import com.android.systemui.plugins.FalsingManager
import com.android.systemui.statusbar.VibratorHelper
import com.android.systemui.statusbar.policy.ConfigurationController
@@ -38,6 +39,7 @@ class FakeChipbarCoordinator(
mainExecutor: DelayableExecutor,
accessibilityManager: AccessibilityManager,
configurationController: ConfigurationController,
dumpManager: DumpManager,
powerManager: PowerManager,
falsingManager: FalsingManager,
falsingCollector: FalsingCollector,
@@ -53,6 +55,7 @@ class FakeChipbarCoordinator(
mainExecutor,
accessibilityManager,
configurationController,
dumpManager,
powerManager,
falsingManager,
falsingCollector,