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

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

[SB][Mobile] Add more logs for SignalDrawable.java.

Bug: 378919631
Test: Verified new logs using demo mode
Flag: EXEMPT logging-only change
Change-Id: If893caa798f2d0dd3d738128e4d47bd33c53610d
parent 7f0e1c36
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -164,6 +164,15 @@ public class SignalDrawable extends DrawableWrapper {
        return true;
    }

    /**
     * Returns the level used to access the different drawable assets.
     *
     * Temporarily visible for logging purposes - b/378919631.
     */
    public int unpackLevel() {
        return unpackLevel(getLevel());
    }

    private int unpackLevel(int packedState) {
        int numBins = (packedState & NUM_LEVEL_MASK) >> NUM_LEVEL_SHIFT;
        int cutOutOffset = 0;
+1 −1
Original line number Diff line number Diff line
@@ -279,7 +279,7 @@ abstract class StatusBarPipelineModule {
        @SysUISingleton
        @VerboseMobileViewLog
        fun provideVerboseMobileViewLogBuffer(factory: LogBufferFactory): LogBuffer {
            return factory.create("VerboseMobileViewLog", 100)
            return factory.create("VerboseMobileViewLog", 200)
        }

        @Provides
+50 −7
Original line number Diff line number Diff line
@@ -35,9 +35,7 @@ import javax.inject.Inject
@SysUISingleton
class VerboseMobileViewLogger
@Inject
constructor(
    @VerboseMobileViewLog private val buffer: LogBuffer,
) {
constructor(@VerboseMobileViewLog private val buffer: LogBuffer) {
    fun logBinderReceivedVisibility(parentView: View, subId: Int, visibility: Boolean) {
        buffer.log(
            TAG,
@@ -51,7 +49,53 @@ constructor(
        )
    }

    fun logBinderReceivedSignalIcon(parentView: View, subId: Int, icon: SignalIconModel) {
    fun logBinderSignalIconResult(parentView: View, subId: Int, unpackedLevel: Int) {
        buffer.log(
            TAG,
            LogLevel.VERBOSE,
            {
                str1 = parentView.getIdForLogging()
                int1 = subId
                int2 = unpackedLevel
            },
            { "Binder[subId=$int1, viewId=$str1] SignalDrawable used $int2 for drawable level" },
        )
    }

    fun logBinderReceivedSignalCellularIcon(
        parentView: View,
        subId: Int,
        icon: SignalIconModel.Cellular,
        packedSignalDrawableState: Int,
        shouldRequestLayout: Boolean,
    ) {
        buffer.log(
            TAG,
            LogLevel.VERBOSE,
            {
                str1 = parentView.getIdForLogging()
                int1 = subId
                int2 = icon.level
                long1 = icon.numberOfLevels.toLong()
                // See SettingsLib/res/drawable/ic_mobile_level_list.xml for how the
                // SignalDrawableState level is used for rendering.
                long2 = packedSignalDrawableState.toLong()
                bool1 = icon.showExclamationMark
                bool2 = shouldRequestLayout
            },
            {
                "Binder[subId=$int1, viewId=$str1] received new signal icon (cellular): " +
                    "level=$int2 numLevels=$long1 showExclamation=$bool1 " +
                    "packedDrawableLevel=$long2 shouldRequestLayout=$bool2"
            },
        )
    }

    fun logBinderReceivedSignalSatelliteIcon(
        parentView: View,
        subId: Int,
        icon: SignalIconModel.Satellite,
    ) {
        buffer.log(
            TAG,
            LogLevel.VERBOSE,
@@ -59,11 +103,10 @@ constructor(
                str1 = parentView.getIdForLogging()
                int1 = subId
                int2 = icon.level
                bool1 = if (icon is SignalIconModel.Cellular) icon.showExclamationMark else false
            },
            {
                "Binder[subId=$int1, viewId=$str1] received new signal icon: " +
                    "level=$int2 showExclamation=$bool1"
                "Binder[subId=$int1, viewId=$str1] received new signal icon (satellite): " +
                    "level=$int2"
            },
        )
    }
+19 −6
Original line number Diff line number Diff line
@@ -149,15 +149,28 @@ object MobileIconBinder {
                                Pair(shouldRequestLayout, newIcon)
                            }
                            .collect { (shouldRequestLayout, newIcon) ->
                                viewModel.verboseLogger?.logBinderReceivedSignalIcon(
                                    view,
                                    viewModel.subscriptionId,
                                    newIcon,
                                )
                                if (newIcon is SignalIconModel.Cellular) {
                                    val packedSignalDrawableState = newIcon.toSignalDrawableState()
                                    viewModel.verboseLogger?.logBinderReceivedSignalCellularIcon(
                                        parentView = view,
                                        subId = viewModel.subscriptionId,
                                        icon = newIcon,
                                        packedSignalDrawableState = packedSignalDrawableState,
                                        shouldRequestLayout = shouldRequestLayout,
                                    )
                                    iconView.setImageDrawable(mobileDrawable)
                                    mobileDrawable.level = newIcon.toSignalDrawableState()
                                    mobileDrawable.level = packedSignalDrawableState
                                    viewModel.verboseLogger?.logBinderSignalIconResult(
                                        parentView = view,
                                        subId = viewModel.subscriptionId,
                                        unpackedLevel = mobileDrawable.unpackLevel(),
                                    )
                                } else if (newIcon is SignalIconModel.Satellite) {
                                    viewModel.verboseLogger?.logBinderReceivedSignalSatelliteIcon(
                                        parentView = view,
                                        subId = viewModel.subscriptionId,
                                        icon = newIcon,
                                    )
                                    IconViewBinder.bind(newIcon.icon, iconView)
                                }

+19 −6
Original line number Diff line number Diff line
@@ -225,15 +225,28 @@ object MobileIconBinderKairos {

                        else -> false
                    }
                viewModel.verboseLogger?.logBinderReceivedSignalIcon(
                    view,
                    viewModel.subscriptionId,
                    newIcon,
                )
                if (newIcon is SignalIconModel.Cellular) {
                    val packedSignalDrawableState = newIcon.toSignalDrawableState()
                    viewModel.verboseLogger?.logBinderReceivedSignalCellularIcon(
                        parentView = view,
                        subId = viewModel.subscriptionId,
                        icon = newIcon,
                        packedSignalDrawableState = packedSignalDrawableState,
                        shouldRequestLayout = shouldRequestLayout,
                    )
                    iconView.setImageDrawable(mobileDrawable)
                    mobileDrawable.level = newIcon.toSignalDrawableState()
                    mobileDrawable.level = packedSignalDrawableState
                    viewModel.verboseLogger?.logBinderSignalIconResult(
                        parentView = view,
                        subId = viewModel.subscriptionId,
                        unpackedLevel = mobileDrawable.unpackLevel(),
                    )
                } else if (newIcon is SignalIconModel.Satellite) {
                    viewModel.verboseLogger?.logBinderReceivedSignalSatelliteIcon(
                        parentView = view,
                        subId = viewModel.subscriptionId,
                        icon = newIcon,
                    )
                    IconViewBinder.bind(newIcon.icon, iconView)
                }
                if (shouldRequestLayout) {