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

Commit cb05797c authored by Caitlin Shkuratov's avatar Caitlin Shkuratov
Browse files

[Central Surfaces] Make LetterboxAppearanceCalculator a singleton.

Bug: 277762009
Test: compiles
Test: `adb shell dumpsys activity service
com.android.systemui/.SystemUIService LetterboxAppearanceCalculator` ->
shows dump
Test: atest LeterboxAppearanceCalculatorTest

Change-Id: I3713c8ed9a5408283374229ebbf3d47497c716b5
parent f9e686b9
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -39,6 +39,11 @@ open class DumpManager @Inject constructor() {
    private val dumpables: MutableMap<String, RegisteredDumpable<Dumpable>> = ArrayMap()
    private val buffers: MutableMap<String, RegisteredDumpable<LogBuffer>> = ArrayMap()

    /** See [registerCriticalDumpable]. */
    fun registerCriticalDumpable(module: Dumpable) {
        registerCriticalDumpable(module::class.java.simpleName, module)
    }

    /**
     * Registers a dumpable to be called during the CRITICAL section of the bug report.
     *
+10 −14
Original line number Diff line number Diff line
@@ -26,10 +26,10 @@ import android.view.WindowInsetsController.Appearance
import com.android.internal.statusbar.LetterboxDetails
import com.android.internal.util.ContrastColorUtil
import com.android.internal.view.AppearanceRegion
import com.android.systemui.Dumpable
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dump.DumpManager
import com.android.systemui.statusbar.core.StatusBarInitializer.OnStatusBarViewInitializedListener
import com.android.systemui.statusbar.phone.dagger.CentralSurfacesComponent
import com.android.systemui.statusbar.phone.dagger.CentralSurfacesComponent.CentralSurfacesScope
import com.android.systemui.statusbar.phone.fragment.dagger.StatusBarFragmentComponent
import java.io.PrintWriter
import java.util.Arrays
@@ -50,24 +50,20 @@ class LetterboxAppearance(
 * Responsible for calculating the [Appearance] and [AppearanceRegion] for the status bar when apps
 * are letterboxed.
 */
@CentralSurfacesScope
@SysUISingleton
class LetterboxAppearanceCalculator
@Inject
constructor(
    private val lightBarController: LightBarController,
    private val dumpManager: DumpManager,
    dumpManager: DumpManager,
    private val letterboxBackgroundProvider: LetterboxBackgroundProvider,
) : OnStatusBarViewInitializedListener, CentralSurfacesComponent.Startable {
) : OnStatusBarViewInitializedListener, Dumpable {

    private var statusBarBoundsProvider: StatusBarBoundsProvider? = null

    override fun start() {
        dumpManager.registerCriticalDumpable(javaClass.simpleName) { pw, _ -> dump(pw) }
    init {
        dumpManager.registerCriticalDumpable(this)
    }

    override fun stop() {
        dumpManager.unregisterDumpable(javaClass.simpleName)
    }
    private var statusBarBoundsProvider: StatusBarBoundsProvider? = null

    private var lastAppearance: Int? = null
    private var lastAppearanceRegions: Array<AppearanceRegion>? = null
@@ -216,8 +212,8 @@ constructor(
        return this.intersect(other)
    }

    private fun dump(printWriter: PrintWriter) {
        printWriter.println(
    override fun dump(pw: PrintWriter, args: Array<out String>) {
        pw.println(
            """
           lastAppearance: ${lastAppearance?.toAppearanceString()}
           lastAppearanceRegion: ${Arrays.toString(lastAppearanceRegions)},
+0 −6
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.android.systemui.statusbar.phone.dagger;

import com.android.systemui.statusbar.phone.LetterboxAppearanceCalculator;
import com.android.systemui.statusbar.phone.SystemBarAttributesListener;

import dagger.Binds;
@@ -31,11 +30,6 @@ interface CentralSurfacesStartableModule {
    @Multibinds
    Set<CentralSurfacesComponent.Startable> multibindStartables();

    @Binds
    @IntoSet
    CentralSurfacesComponent.Startable letterboxAppearanceCalculator(
            LetterboxAppearanceCalculator letterboxAppearanceCalculator);

    @Binds
    @IntoSet
    CentralSurfacesComponent.Startable sysBarAttrsListener(