From 1f565754bc4946b72df857de6877380f4c9d5c52 Mon Sep 17 00:00:00 2001 From: Florence Yang Date: Fri, 3 Feb 2023 01:53:17 +0000 Subject: [PATCH] Re-register dumpables for Region Sampler Re-registering dumpables on top of ClockEventController fix (change-id: I7568f0c096e0f3759b3ee82347cfbda2f4d66132) so that we can see state of Region Sampler in places where it's implemented (lockscreen smartspace and clock). Bug: 202758428 Test: manual Change-Id: I644957e2e1c2a4b15d43b839aa609cf9884b9da9 --- .../shared/regionsampling/RegionSampler.kt | 22 ++++++++++++++++++- .../LockscreenSmartspaceController.kt | 14 +++++++++++- .../LockscreenSmartspaceControllerTest.kt | 5 +++++ 3 files changed, 39 insertions(+), 2 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 ef2247f5d62c3..9a581aaa9b2c5 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,27 @@ 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!!))}" + ) + // TODO(b/265969235): mock initialSampling based on if component is on HS or LS wallpaper + // HS Smartspace - wallpaperManager?.getWallpaperColors(WallpaperManager.FLAG_SYSTEM) + // LS Smartspace, clock - wallpaperManager?.getWallpaperColors(WallpaperManager.FLAG_LOCK) + pw.println( + "initialSampling for lockscreen: " + + "${wallpaperManager?.getWallpaperColors(WallpaperManager.FLAG_LOCK)}" + ) } fun calculateSampledRegion(sampledView: View): RectF { 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 5440fcc913d4a..5c6146e6f7d89 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt @@ -37,10 +37,12 @@ import android.view.View import android.view.ViewGroup import com.android.keyguard.KeyguardUpdateMonitor 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 @@ -61,6 +63,7 @@ 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.time.Instant import java.util.Optional import java.util.concurrent.Executor @@ -85,6 +88,7 @@ constructor( private val deviceProvisionedController: DeviceProvisionedController, private val bypassController: KeyguardBypassController, private val keyguardUpdateMonitor: KeyguardUpdateMonitor, + private val dumpManager: DumpManager, private val execution: Execution, @Main private val uiExecutor: Executor, @Background private val bgExecutor: Executor, @@ -95,7 +99,7 @@ constructor( optionalWeatherPlugin: Optional, optionalPlugin: Optional, optionalConfigPlugin: Optional, -) { +) : Dumpable { companion object { private const val TAG = "LockscreenSmartspaceController" } @@ -229,6 +233,7 @@ constructor( init { deviceProvisionedController.addCallback(deviceProvisionedListener) + dumpManager.registerDumpable(this) } fun isEnabled(): Boolean { @@ -531,4 +536,11 @@ constructor( } return null } + + override fun dump(pw: PrintWriter, args: Array) { + pw.println("Region Samplers: ${regionSamplers.size}") + regionSamplers.map { (_, sampler) -> + sampler.dump(pw) + } + } } 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 9c69a6a652e20..d6225c6748f3e 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 @@ -34,6 +34,7 @@ import android.widget.FrameLayout import androidx.test.filters.SmallTest import com.android.keyguard.KeyguardUpdateMonitor 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 @@ -128,6 +129,9 @@ class LockscreenSmartspaceControllerTest : SysuiTestCase() { @Mock private lateinit var configPlugin: BcSmartspaceConfigPlugin + @Mock + private lateinit var dumpManager: DumpManager + @Mock private lateinit var controllerListener: SmartspaceTargetListener @@ -228,6 +232,7 @@ class LockscreenSmartspaceControllerTest : SysuiTestCase() { deviceProvisionedController, keyguardBypassController, keyguardUpdateMonitor, + dumpManager, execution, executor, bgExecutor,