Merge "Register Dumpables for Region Sampler" into tm-qpr-dev am: 78f1af0bf3

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

Change-Id: I427cbc9009116b59fc9c1e30ad27c0b91882df29
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Florence Yang
2023-01-26 18:45:36 +00:00
committed by Automerger Merge Worker
5 changed files with 50 additions and 9 deletions

View File

@@ -114,7 +114,25 @@ constructor(
/** Dump region sampler */ /** Dump region sampler */
fun dump(pw: PrintWriter) { 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 { fun calculateSampledRegion(sampledView: View): RectF {

View File

@@ -28,10 +28,12 @@ import android.widget.FrameLayout
import androidx.annotation.VisibleForTesting import androidx.annotation.VisibleForTesting
import androidx.lifecycle.Lifecycle import androidx.lifecycle.Lifecycle
import androidx.lifecycle.repeatOnLifecycle import androidx.lifecycle.repeatOnLifecycle
import com.android.systemui.Dumpable
import com.android.systemui.R import com.android.systemui.R
import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.broadcast.BroadcastDispatcher
import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.dump.DumpManager
import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags.DOZING_MIGRATION_1 import com.android.systemui.flags.Flags.DOZING_MIGRATION_1
import com.android.systemui.flags.Flags.REGION_SAMPLING import com.android.systemui.flags.Flags.REGION_SAMPLING
@@ -77,8 +79,9 @@ open class ClockEventController @Inject constructor(
@Background private val bgExecutor: Executor, @Background private val bgExecutor: Executor,
@KeyguardSmallClockLog private val smallLogBuffer: LogBuffer?, @KeyguardSmallClockLog private val smallLogBuffer: LogBuffer?,
@KeyguardLargeClockLog private val largeLogBuffer: LogBuffer?, @KeyguardLargeClockLog private val largeLogBuffer: LogBuffer?,
private val featureFlags: FeatureFlags private val featureFlags: FeatureFlags,
) { private val dumpManager: DumpManager
) : Dumpable {
var clock: ClockController? = null var clock: ClockController? = null
set(value) { set(value) {
field = value field = value
@@ -275,6 +278,7 @@ open class ClockEventController @Inject constructor(
configurationController.addCallback(configListener) configurationController.addCallback(configListener)
batteryController.addCallback(batteryCallback) batteryController.addCallback(batteryCallback)
keyguardUpdateMonitor.registerCallback(keyguardUpdateMonitorCallback) keyguardUpdateMonitor.registerCallback(keyguardUpdateMonitorCallback)
dumpManager.registerDumpable(this)
disposableHandle = parent.repeatWhenAttached { disposableHandle = parent.repeatWhenAttached {
repeatOnLifecycle(Lifecycle.State.STARTED) { repeatOnLifecycle(Lifecycle.State.STARTED) {
listenForDozing(this) listenForDozing(this)
@@ -300,6 +304,7 @@ open class ClockEventController @Inject constructor(
batteryController.removeCallback(batteryCallback) batteryController.removeCallback(batteryCallback)
keyguardUpdateMonitor.removeCallback(keyguardUpdateMonitorCallback) keyguardUpdateMonitor.removeCallback(keyguardUpdateMonitorCallback)
regionSampler?.stopRegionSampler() regionSampler?.stopRegionSampler()
dumpManager.unregisterDumpable(javaClass.simpleName)
} }
private fun updateFontSizes() { private fun updateFontSizes() {
@@ -312,7 +317,7 @@ open class ClockEventController @Inject constructor(
/** /**
* Dump information for debugging * Dump information for debugging
*/ */
fun dump(pw: PrintWriter) { override fun dump(pw: PrintWriter, args: Array<out String>) {
pw.println(this) pw.println(this)
clock?.dump(pw) clock?.dump(pw)
regionSampler?.dump(pw) regionSampler?.dump(pw)

View File

@@ -36,10 +36,12 @@ import android.view.ContextThemeWrapper
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.android.settingslib.Utils import com.android.settingslib.Utils
import com.android.systemui.Dumpable
import com.android.systemui.R import com.android.systemui.R
import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.dump.DumpManager
import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags import com.android.systemui.flags.Flags
import com.android.systemui.plugins.ActivityStarter 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.statusbar.policy.DeviceProvisionedController
import com.android.systemui.util.concurrency.Execution import com.android.systemui.util.concurrency.Execution
import com.android.systemui.util.settings.SecureSettings import com.android.systemui.util.settings.SecureSettings
import java.io.PrintWriter
import java.util.Optional import java.util.Optional
import java.util.concurrent.Executor import java.util.concurrent.Executor
import javax.inject.Inject import javax.inject.Inject
/** Controller for managing the smartspace view on the lockscreen */ /** Controller for managing the smartspace view on the lockscreen */
@SysUISingleton @SysUISingleton
class LockscreenSmartspaceController class LockscreenSmartspaceController @Inject constructor(
@Inject
constructor(
private val context: Context, private val context: Context,
private val featureFlags: FeatureFlags, private val featureFlags: FeatureFlags,
private val smartspaceManager: SmartspaceManager, private val smartspaceManager: SmartspaceManager,
@@ -78,13 +79,14 @@ constructor(
private val statusBarStateController: StatusBarStateController, private val statusBarStateController: StatusBarStateController,
private val deviceProvisionedController: DeviceProvisionedController, private val deviceProvisionedController: DeviceProvisionedController,
private val bypassController: KeyguardBypassController, private val bypassController: KeyguardBypassController,
private val dumpManager: DumpManager,
private val execution: Execution, private val execution: Execution,
@Main private val uiExecutor: Executor, @Main private val uiExecutor: Executor,
@Background private val bgExecutor: Executor, @Background private val bgExecutor: Executor,
@Main private val handler: Handler, @Main private val handler: Handler,
optionalPlugin: Optional<BcSmartspaceDataPlugin>, optionalPlugin: Optional<BcSmartspaceDataPlugin>,
optionalConfigPlugin: Optional<BcSmartspaceConfigPlugin>, optionalConfigPlugin: Optional<BcSmartspaceConfigPlugin>,
) { ) : Dumpable {
companion object { companion object {
private const val TAG = "LockscreenSmartspaceController" private const val TAG = "LockscreenSmartspaceController"
} }
@@ -201,6 +203,7 @@ constructor(
init { init {
deviceProvisionedController.addCallback(deviceProvisionedListener) deviceProvisionedController.addCallback(deviceProvisionedListener)
dumpManager.registerDumpable(this)
} }
fun isEnabled(): Boolean { fun isEnabled(): Boolean {
@@ -441,4 +444,11 @@ constructor(
} }
return null return null
} }
override fun dump(pw: PrintWriter, args: Array<out String>) {
pw.println("Region Samplers: ${regionSamplers.size}")
regionSamplers.map { (_, sampler) ->
sampler.dump(pw)
}
}
} }

View File

@@ -23,6 +23,7 @@ import android.widget.TextView
import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.broadcast.BroadcastDispatcher
import com.android.systemui.dump.DumpManager
import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.FeatureFlags
import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository
import com.android.systemui.keyguard.data.repository.KeyguardTransitionRepository 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 smallLogBuffer: LogBuffer
@Mock private lateinit var largeLogBuffer: LogBuffer @Mock private lateinit var largeLogBuffer: LogBuffer
private lateinit var underTest: ClockEventController private lateinit var underTest: ClockEventController
@Mock private lateinit var dumpManager: DumpManager
@Before @Before
fun setUp() { fun setUp() {
@@ -113,7 +115,8 @@ class ClockEventControllerTest : SysuiTestCase() {
bgExecutor, bgExecutor,
smallLogBuffer, smallLogBuffer,
largeLogBuffer, largeLogBuffer,
featureFlags featureFlags,
dumpManager
) )
underTest.clock = clock underTest.clock = clock

View File

@@ -33,6 +33,7 @@ import android.view.View
import android.widget.FrameLayout import android.widget.FrameLayout
import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
import com.android.systemui.dump.DumpManager
import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.FeatureFlags
import com.android.systemui.plugins.ActivityStarter import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.plugins.BcSmartspaceConfigPlugin import com.android.systemui.plugins.BcSmartspaceConfigPlugin
@@ -117,6 +118,9 @@ class LockscreenSmartspaceControllerTest : SysuiTestCase() {
@Mock @Mock
private lateinit var configPlugin: BcSmartspaceConfigPlugin private lateinit var configPlugin: BcSmartspaceConfigPlugin
@Mock
private lateinit var dumpManager: DumpManager
@Mock @Mock
private lateinit var controllerListener: SmartspaceTargetListener private lateinit var controllerListener: SmartspaceTargetListener
@@ -206,6 +210,7 @@ class LockscreenSmartspaceControllerTest : SysuiTestCase() {
statusBarStateController, statusBarStateController,
deviceProvisionedController, deviceProvisionedController,
keyguardBypassController, keyguardBypassController,
dumpManager,
execution, execution,
executor, executor,
bgExecutor, bgExecutor,