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

Commit d284b566 authored by Automerger Merge Worker's avatar Automerger Merge Worker Committed by Android (Google) Code Review
Browse files

Merge "Merge "Use separate LogBuffer for QS config changes" into tm-qpr-dev...

Merge "Merge "Use separate LogBuffer for QS config changes" into tm-qpr-dev am: 614f8384 am: 9a553c15 am: d781632b am: 046475fd"
parents fe077a79 cd488deb
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -160,6 +160,14 @@ public class LogModule {
        return factory.create("QSLog", 700 /* maxSize */, false /* systrace */);
        return factory.create("QSLog", 700 /* maxSize */, false /* systrace */);
    }
    }


    /** Provides a logging buffer for logs related to Quick Settings configuration. */
    @Provides
    @SysUISingleton
    @QSConfigLog
    public static LogBuffer provideQSConfigLogBuffer(LogBufferFactory factory) {
        return factory.create("QSConfigLog", 100 /* maxSize */, true /* systrace */);
    }

    /** Provides a logging buffer for {@link com.android.systemui.broadcast.BroadcastDispatcher} */
    /** Provides a logging buffer for {@link com.android.systemui.broadcast.BroadcastDispatcher} */
    @Provides
    @Provides
    @SysUISingleton
    @SysUISingleton
+33 −0
Original line number Original line Diff line number Diff line
/*
 * Copyright (C) 2023 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.systemui.log.dagger;

import static java.lang.annotation.RetentionPolicy.RUNTIME;

import com.android.systemui.plugins.log.LogBuffer;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;

import javax.inject.Qualifier;

/** A {@link LogBuffer} for QS configuration changed messages. */
@Qualifier
@Documented
@Retention(RUNTIME)
public @interface QSConfigLog {
}
+10 −7
Original line number Original line Diff line number Diff line
@@ -91,16 +91,19 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
            new QSPanel.OnConfigurationChangedListener() {
            new QSPanel.OnConfigurationChangedListener() {
                @Override
                @Override
                public void onConfigurationChange(Configuration newConfig) {
                public void onConfigurationChange(Configuration newConfig) {
                    mQSLogger.logOnConfigurationChanged(
                    final boolean previousSplitShadeState = mShouldUseSplitNotificationShade;
                        /* lastOrientation= */ mLastOrientation,
                    final int previousOrientation = mLastOrientation;
                        /* newOrientation= */ newConfig.orientation,
                        /* containerName= */ mView.getDumpableTag());

                    boolean previousSplitShadeState = mShouldUseSplitNotificationShade;
                    mShouldUseSplitNotificationShade =
                    mShouldUseSplitNotificationShade =
                            LargeScreenUtils.shouldUseSplitNotificationShade(getResources());
                            LargeScreenUtils.shouldUseSplitNotificationShade(getResources());
                    mLastOrientation = newConfig.orientation;
                    mLastOrientation = newConfig.orientation;


                    mQSLogger.logOnConfigurationChanged(
                        /* oldOrientation= */ previousOrientation,
                        /* newOrientation= */ mLastOrientation,
                        /* oldShouldUseSplitShade= */ previousSplitShadeState,
                        /* newShouldUseSplitShade= */ mShouldUseSplitNotificationShade,
                        /* containerName= */ mView.getDumpableTag());

                    switchTileLayoutIfNeeded();
                    switchTileLayoutIfNeeded();
                    onConfigurationChanged();
                    onConfigurationChanged();
                    if (previousSplitShadeState != mShouldUseSplitNotificationShade) {
                    if (previousSplitShadeState != mShouldUseSplitNotificationShade) {
+32 −7
Original line number Original line Diff line number Diff line
@@ -16,8 +16,12 @@


package com.android.systemui.qs.logging
package com.android.systemui.qs.logging


import android.content.res.Configuration.ORIENTATION_LANDSCAPE
import android.content.res.Configuration.ORIENTATION_PORTRAIT
import android.content.res.Configuration.Orientation
import android.service.quicksettings.Tile
import android.service.quicksettings.Tile
import android.view.View
import android.view.View
import com.android.systemui.log.dagger.QSConfigLog
import com.android.systemui.log.dagger.QSLog
import com.android.systemui.log.dagger.QSLog
import com.android.systemui.plugins.log.ConstantStringsLogger
import com.android.systemui.plugins.log.ConstantStringsLogger
import com.android.systemui.plugins.log.ConstantStringsLoggerImpl
import com.android.systemui.plugins.log.ConstantStringsLoggerImpl
@@ -32,8 +36,12 @@ import javax.inject.Inject


private const val TAG = "QSLog"
private const val TAG = "QSLog"


class QSLogger @Inject constructor(@QSLog private val buffer: LogBuffer) :
class QSLogger
    ConstantStringsLogger by ConstantStringsLoggerImpl(buffer, TAG) {
@Inject
constructor(
    @QSLog private val buffer: LogBuffer,
    @QSConfigLog private val configChangedBuffer: LogBuffer,
) : ConstantStringsLogger by ConstantStringsLoggerImpl(buffer, TAG) {


    fun logException(@CompileTimeConstant logMsg: String, ex: Exception) {
    fun logException(@CompileTimeConstant logMsg: String, ex: Exception) {
        buffer.log(TAG, ERROR, {}, { logMsg }, exception = ex)
        buffer.log(TAG, ERROR, {}, { logMsg }, exception = ex)
@@ -264,19 +272,28 @@ class QSLogger @Inject constructor(@QSLog private val buffer: LogBuffer) :
    }
    }


    fun logOnConfigurationChanged(
    fun logOnConfigurationChanged(
        lastOrientation: Int,
        @Orientation oldOrientation: Int,
        newOrientation: Int,
        @Orientation newOrientation: Int,
        newShouldUseSplitShade: Boolean,
        oldShouldUseSplitShade: Boolean,
        containerName: String
        containerName: String
    ) {
    ) {
        buffer.log(
        configChangedBuffer.log(
            TAG,
            TAG,
            DEBUG,
            DEBUG,
            {
            {
                str1 = containerName
                str1 = containerName
                int1 = lastOrientation
                int1 = oldOrientation
                int2 = newOrientation
                int2 = newOrientation
                bool1 = oldShouldUseSplitShade
                bool2 = newShouldUseSplitShade
            },
            },
            { "configuration change: $str1 orientation was $int1, now $int2" }
            {
                "config change: " +
                    "$str1 orientation=${toOrientationString(int2)} " +
                    "(was ${toOrientationString(int1)}), " +
                    "splitShade=$bool2 (was $bool1)"
            }
        )
        )
    }
    }


@@ -353,3 +370,11 @@ class QSLogger @Inject constructor(@QSLog private val buffer: LogBuffer) :
        }
        }
    }
    }
}
}

private inline fun toOrientationString(@Orientation orientation: Int): String {
    return when (orientation) {
        ORIENTATION_LANDSCAPE -> "land"
        ORIENTATION_PORTRAIT -> "port"
        else -> "undefined"
    }
}