diff options
| author | 2022-12-10 02:08:29 +0000 | |
|---|---|---|
| committer | 2023-01-25 23:07:57 +0000 | |
| commit | bf40e574d3061c9c5d72060fa22b152fc0c08500 (patch) | |
| tree | b82cc80136b14c571f785d53bcc107ddf2f79c73 | |
| parent | 4e02695e3e7bcd48416f94a879b2b9d6bcd13bee (diff) | |
Register Dumpables for Region Sampler
Register dumpables where Region Sampler is implemented (lockscreen
smartspace and clock) to log more information and help debug bug reports.
Bug: 202758428
Test: manual
Change-Id: I83c4362e49521b843892f068aef19f487f430b86
5 files changed, 50 insertions, 9 deletions
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/regionsampling/RegionSampler.kt b/packages/SystemUI/shared/src/com/android/systemui/shared/regionsampling/RegionSampler.kt index ef2247f5d62c..0cbf1db197a5 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/regionsampling/RegionSampler.kt +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/regionsampling/RegionSampler.kt @@ -114,7 +114,25 @@ constructor( /** Dump region sampler */ fun dump(pw: PrintWriter) { - regionSampler?.dump(pw) + pw.println("[RegionSampler]") + pw.println("regionSamplingEnabled: $regionSamplingEnabled") + pw.println("regionDarkness: $regionDarkness") + pw.println("lightForegroundColor: ${Integer.toHexString(lightForegroundColor)}") + pw.println("darkForegroundColor:${Integer.toHexString(darkForegroundColor)}") + pw.println("passed-in sampledView: $sampledView") + pw.println("calculated samplingBounds: $samplingBounds") + pw.println( + "sampledView width: ${sampledView?.width}, sampledView height: ${sampledView?.height}" + ) + pw.println("screen width: ${displaySize.x}, screen height: ${displaySize.y}") + pw.println( + "sampledRegionWithOffset: ${convertBounds(calculateSampledRegion(sampledView!!))}" + ) + pw.println( + "initialSampling for lockscreen: " + + "${wallpaperManager?.getWallpaperColors(WallpaperManager.FLAG_LOCK)}" + ) + // TODO(b/265969235): add initialSampling dump for HS smartspace } fun calculateSampledRegion(sampledView: View): RectF { diff --git a/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt b/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt index 1680b477c7cf..b1ce54ebe099 100644 --- a/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt +++ b/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt @@ -28,10 +28,12 @@ import android.widget.FrameLayout import androidx.annotation.VisibleForTesting import androidx.lifecycle.Lifecycle import androidx.lifecycle.repeatOnLifecycle +import com.android.systemui.Dumpable import com.android.systemui.R import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Main +import com.android.systemui.dump.DumpManager import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.Flags.DOZING_MIGRATION_1 import com.android.systemui.flags.Flags.REGION_SAMPLING @@ -77,8 +79,9 @@ open class ClockEventController @Inject constructor( @Background private val bgExecutor: Executor, @KeyguardSmallClockLog private val smallLogBuffer: LogBuffer?, @KeyguardLargeClockLog private val largeLogBuffer: LogBuffer?, - private val featureFlags: FeatureFlags -) { + private val featureFlags: FeatureFlags, + private val dumpManager: DumpManager +) : Dumpable { var clock: ClockController? = null set(value) { field = value @@ -275,6 +278,7 @@ open class ClockEventController @Inject constructor( configurationController.addCallback(configListener) batteryController.addCallback(batteryCallback) keyguardUpdateMonitor.registerCallback(keyguardUpdateMonitorCallback) + dumpManager.registerDumpable(this) disposableHandle = parent.repeatWhenAttached { repeatOnLifecycle(Lifecycle.State.STARTED) { listenForDozing(this) @@ -300,6 +304,7 @@ open class ClockEventController @Inject constructor( batteryController.removeCallback(batteryCallback) keyguardUpdateMonitor.removeCallback(keyguardUpdateMonitorCallback) regionSampler?.stopRegionSampler() + dumpManager.unregisterDumpable(javaClass.simpleName) } private fun updateFontSizes() { @@ -312,7 +317,7 @@ open class ClockEventController @Inject constructor( /** * Dump information for debugging */ - fun dump(pw: PrintWriter) { + override fun dump(pw: PrintWriter, args: Array<out String>) { pw.println(this) clock?.dump(pw) regionSampler?.dump(pw) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt index 43e2e52b3b8a..5a0cb9d1cdb9 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt @@ -36,10 +36,12 @@ import android.view.ContextThemeWrapper import android.view.View import android.view.ViewGroup import com.android.settingslib.Utils +import com.android.systemui.Dumpable import com.android.systemui.R import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Main +import com.android.systemui.dump.DumpManager import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.Flags import com.android.systemui.plugins.ActivityStarter @@ -57,15 +59,14 @@ import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.statusbar.policy.DeviceProvisionedController import com.android.systemui.util.concurrency.Execution import com.android.systemui.util.settings.SecureSettings +import java.io.PrintWriter import java.util.Optional import java.util.concurrent.Executor import javax.inject.Inject /** Controller for managing the smartspace view on the lockscreen */ @SysUISingleton -class LockscreenSmartspaceController -@Inject -constructor( +class LockscreenSmartspaceController @Inject constructor( private val context: Context, private val featureFlags: FeatureFlags, private val smartspaceManager: SmartspaceManager, @@ -78,13 +79,14 @@ constructor( private val statusBarStateController: StatusBarStateController, private val deviceProvisionedController: DeviceProvisionedController, private val bypassController: KeyguardBypassController, + private val dumpManager: DumpManager, private val execution: Execution, @Main private val uiExecutor: Executor, @Background private val bgExecutor: Executor, @Main private val handler: Handler, optionalPlugin: Optional<BcSmartspaceDataPlugin>, optionalConfigPlugin: Optional<BcSmartspaceConfigPlugin>, -) { + ) : Dumpable { companion object { private const val TAG = "LockscreenSmartspaceController" } @@ -201,6 +203,7 @@ constructor( init { deviceProvisionedController.addCallback(deviceProvisionedListener) + dumpManager.registerDumpable(this) } fun isEnabled(): Boolean { @@ -441,4 +444,11 @@ constructor( } return null } + + override fun dump(pw: PrintWriter, args: Array<out String>) { + pw.println("Region Samplers: ${regionSamplers.size}") + regionSamplers.map { (_, sampler) -> + sampler.dump(pw) + } + } } diff --git a/packages/SystemUI/tests/src/com/android/keyguard/ClockEventControllerTest.kt b/packages/SystemUI/tests/src/com/android/keyguard/ClockEventControllerTest.kt index 00b2fbe8a4cb..dbedba09b696 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/ClockEventControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/keyguard/ClockEventControllerTest.kt @@ -23,6 +23,7 @@ import android.widget.TextView import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.broadcast.BroadcastDispatcher +import com.android.systemui.dump.DumpManager import com.android.systemui.flags.FeatureFlags import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository import com.android.systemui.keyguard.data.repository.KeyguardTransitionRepository @@ -86,6 +87,7 @@ class ClockEventControllerTest : SysuiTestCase() { @Mock private lateinit var smallLogBuffer: LogBuffer @Mock private lateinit var largeLogBuffer: LogBuffer private lateinit var underTest: ClockEventController + @Mock private lateinit var dumpManager: DumpManager @Before fun setUp() { @@ -113,7 +115,8 @@ class ClockEventControllerTest : SysuiTestCase() { bgExecutor, smallLogBuffer, largeLogBuffer, - featureFlags + featureFlags, + dumpManager ) underTest.clock = clock diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceControllerTest.kt index 4bcb54ddbbc0..fe38b838858e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceControllerTest.kt @@ -33,6 +33,7 @@ import android.view.View import android.widget.FrameLayout import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase +import com.android.systemui.dump.DumpManager import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.Flags import com.android.systemui.plugins.ActivityStarter @@ -119,6 +120,9 @@ class LockscreenSmartspaceControllerTest : SysuiTestCase() { private lateinit var configPlugin: BcSmartspaceConfigPlugin @Mock + private lateinit var dumpManager: DumpManager + + @Mock private lateinit var controllerListener: SmartspaceTargetListener @Captor @@ -209,6 +213,7 @@ class LockscreenSmartspaceControllerTest : SysuiTestCase() { statusBarStateController, deviceProvisionedController, keyguardBypassController, + dumpManager, execution, executor, bgExecutor, |