Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e0d1e18a authored by Caitlin Shkuratov's avatar Caitlin Shkuratov Committed by Android (Google) Code Review
Browse files

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

parents de157676 9f18c47e
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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.
     *
+4 −0
Original line number Diff line number Diff line
@@ -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)
        }
+24 −3
Original line number Diff line number Diff line
@@ -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"
+3 −2
Original line number Diff line number Diff line
@@ -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)
    }
+3 −0
Original line number Diff line number Diff line
@@ -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,
Loading