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

Commit 5eb91a69 authored by Steve Elliott's avatar Steve Elliott Committed by Android (Google) Code Review
Browse files

Merge "Add tracing to DisplayListener impls" into main

parents cb34ccbc df16b087
Loading
Loading
Loading
Loading
+11 −8
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.hardware.display.DisplayManager
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
import android.os.Handler
import android.view.DisplayInfo
import com.android.app.tracing.traceSection
import com.android.systemui.biometrics.BiometricDisplayListener.SensorType.Generic

/**
@@ -42,6 +43,7 @@ class BiometricDisplayListener(
    override fun onDisplayAdded(displayId: Int) {}
    override fun onDisplayRemoved(displayId: Int) {}
    override fun onDisplayChanged(displayId: Int) {
        traceSection({ "BiometricDisplayListener($sensorType)#onDisplayChanged" }) {
            val rotationChanged = didRotationChange()

            when (sensorType) {
@@ -53,6 +55,7 @@ class BiometricDisplayListener(
                }
            }
        }
    }

    private fun didRotationChange(): Boolean {
        val last = cachedDisplayInfo.rotation
@@ -82,8 +85,8 @@ class BiometricDisplayListener(
     * biometric prompt (and this object will likely change as multi-mode auth is added).
     */
    sealed class SensorType {
        object Generic : SensorType()
        object UnderDisplayFingerprint : SensorType()
        data object Generic : SensorType()
        data object UnderDisplayFingerprint : SensorType()
        data class SideFingerprint(
            val properties: FingerprintSensorPropertiesInternal
        ) : SensorType()
+12 −6
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.hardware.display.DisplayManager.EVENT_FLAG_DISPLAY_CHANGED
import android.os.Handler
import android.util.Size
import android.view.DisplayInfo
import com.android.app.tracing.traceSection
import com.android.internal.util.ArrayUtils
import com.android.systemui.biometrics.shared.model.DisplayRotation
import com.android.systemui.biometrics.shared.model.toDisplayRotation
@@ -130,6 +131,10 @@ constructor(
                        override fun onDisplayAdded(displayId: Int) {}

                        override fun onDisplayChanged(displayId: Int) {
                            traceSection(
                                "DisplayStateRepository" +
                                    ".currentRotationDisplayListener#onDisplayChanged"
                            ) {
                                val displayInfo = getDisplayInfo()
                                trySendWithFailureLogging(
                                    displayInfo,
@@ -138,6 +143,7 @@ constructor(
                                )
                            }
                        }
                    }
                displayManager.registerDisplayListener(
                    callback,
                    handler,
+25 −8
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.view.Display
import androidx.annotation.GuardedBy
import androidx.annotation.VisibleForTesting
import androidx.annotation.WorkerThread
import com.android.app.tracing.traceSection
import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.util.Assert
import java.lang.ref.WeakReference
@@ -46,20 +47,32 @@ internal constructor(
    val displayChangedListener: DisplayManager.DisplayListener =
        object : DisplayManager.DisplayListener {
            override fun onDisplayAdded(displayId: Int) {
                traceSection(
                    "DisplayTrackerImpl.displayChangedDisplayListener#onDisplayAdded",
                ) {
                    val list = synchronized(displayCallbacks) { displayCallbacks.toList() }
                    onDisplayAdded(displayId, list)
                }
            }

            override fun onDisplayRemoved(displayId: Int) {
                traceSection(
                    "DisplayTrackerImpl.displayChangedDisplayListener#onDisplayRemoved",
                ) {
                    val list = synchronized(displayCallbacks) { displayCallbacks.toList() }
                    onDisplayRemoved(displayId, list)
                }
            }

            override fun onDisplayChanged(displayId: Int) {
                traceSection(
                    "DisplayTrackerImpl.displayChangedDisplayListener#onDisplayChanged",
                ) {
                    val list = synchronized(displayCallbacks) { displayCallbacks.toList() }
                    onDisplayChanged(displayId, list)
                }
            }
        }

    @VisibleForTesting
    val displayBrightnessChangedListener: DisplayManager.DisplayListener =
@@ -69,10 +82,14 @@ internal constructor(
            override fun onDisplayRemoved(displayId: Int) {}

            override fun onDisplayChanged(displayId: Int) {
                traceSection(
                    "DisplayTrackerImpl.displayBrightnessChangedDisplayListener#onDisplayChanged",
                ) {
                    val list = synchronized(brightnessCallbacks) { brightnessCallbacks.toList() }
                    onDisplayChanged(displayId, list)
                }
            }
        }

    override fun addDisplayChangeCallback(callback: DisplayTracker.Callback, executor: Executor) {
        synchronized(displayCallbacks) {
+9 −4
Original line number Diff line number Diff line
@@ -476,11 +476,16 @@ public class ImageWallpaper extends WallpaperService {

        @Override
        public void onDisplayChanged(int displayId) {
            Trace.beginSection("ImageWallpaper.CanvasEngine#onDisplayChanged");
            try {
                // changes the display in the color extractor
                // the new display dimensions will be used in the next color computation
                if (displayId == getDisplayContext().getDisplayId()) {
                    getDisplaySizeAndUpdateColorExtractor();
                }
            } finally {
                Trace.endSection();
            }
        }

        private void getDisplaySizeAndUpdateColorExtractor() {
+13 −7
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.Context
import android.hardware.display.DisplayManager
import android.os.Handler
import android.os.RemoteException
import android.os.Trace
import com.android.systemui.unfold.util.CallbackController
import dagger.assisted.Assisted
import dagger.assisted.AssistedFactory
@@ -86,6 +87,8 @@ constructor(
    private inner class RotationDisplayListener : DisplayManager.DisplayListener {

        override fun onDisplayChanged(displayId: Int) {
            Trace.beginSection("RotationChangeProvider.RotationDisplayListener#onDisplayChanged")
            try {
                val display = context.display ?: return

                if (displayId == display.displayId) {
@@ -95,6 +98,9 @@ constructor(
                        lastRotation = currentRotation
                    }
                }
            } finally {
                Trace.endSection()
            }
        }

        override fun onDisplayAdded(displayId: Int) {}