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

Commit 896bf415 authored by Hawkwood Glazier's avatar Hawkwood Glazier Committed by Android (Google) Code Review
Browse files

Merge "Improve Plugin Logging and refactor out a core logging lib" into main

parents 70a711b9 93a00b03
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -18,8 +18,8 @@ package com.android.systemui.customization.clocks

import android.view.View
import android.view.View.MeasureSpec
import com.android.systemui.log.LogcatOnlyMessageBuffer
import com.android.systemui.log.core.LogLevel
import com.android.systemui.log.core.LogcatOnlyMessageBuffer
import com.android.systemui.log.core.Logger
import com.android.systemui.log.core.MessageBuffer
import com.android.systemui.plugins.clocks.VPointF
+1 −1
Original line number Diff line number Diff line
@@ -39,8 +39,8 @@ import com.android.systemui.animation.TypefaceVariantCacheImpl
import com.android.systemui.customization.R
import com.android.systemui.customization.clocks.ClockLogger
import com.android.systemui.customization.clocks.ClockLogger.Companion.escapeTime
import com.android.systemui.log.LogcatOnlyMessageBuffer
import com.android.systemui.log.core.LogLevel
import com.android.systemui.log.core.LogcatOnlyMessageBuffer
import com.android.systemui.log.core.MessageBuffer
import java.io.PrintWriter
import java.util.Calendar
+5 −6
Original line number Diff line number Diff line
@@ -22,10 +22,10 @@ import android.os.Trace
import android.os.UserHandle
import android.provider.Settings
import androidx.annotation.OpenForTesting
import com.android.systemui.log.LogBuffer
import com.android.systemui.log.LogcatOnlyMessageBuffer
import com.android.systemui.log.core.LogLevel
import com.android.systemui.log.core.LogcatOnlyMessageBuffer
import com.android.systemui.log.core.Logger
import com.android.systemui.log.core.MessageBuffer
import com.android.systemui.plugins.PluginLifecycleManager
import com.android.systemui.plugins.PluginListener
import com.android.systemui.plugins.PluginManager
@@ -125,12 +125,11 @@ open class ClockRegistry(

    private val pluginListener =
        object : PluginListener<ClockProviderPlugin> {
            override fun getLogBuffer(): MessageBuffer = logger.buffer

            override fun onPluginAttached(
                manager: PluginLifecycleManager<ClockProviderPlugin>
            ): Boolean {
                manager.setLogFunc({ tag, msg ->
                    (clockBuffers?.infraMessageBuffer as LogBuffer?)?.log(tag, LogLevel.DEBUG, msg)
                })
                if (keepAllLoaded) {
                    // Always load new plugins if requested
                    return true
@@ -144,7 +143,7 @@ open class ClockRegistry(
                    return true
                }

                logger.i({ "Skipping initial load of known clock package package: $str1" }) {
                logger.i({ "Skipping initial load of known clock package: $str1" }) {
                    str1 = manager.getPackage()
                }

+21 −1
Original line number Diff line number Diff line
@@ -22,15 +22,35 @@ package {
    default_applicable_licenses: ["frameworks_base_packages_SystemUI_license"],
}

java_library {
    sdk_version: "current",
    name: "SystemUILogCoreLib",
    device_supported: true,
    srcs: [
        "src/**/core/*.java",
        "src/**/core/*.kt",
    ],
    static_libs: [
        "error_prone_annotations",
    ],

    // Enforce compat with PluginCoreLib
    java_version: "1.8",
}

java_library {
    name: "SystemUILogLib",
    srcs: [
        "src/**/*.java",
        "src/**/*.kt",
    ],
    exclude_srcs: [
        "src/**/core/*.java",
        "src/**/core/*.kt",
    ],
    static_libs: [
        "error_prone_annotations",
        "SystemUICommon",
        "SystemUILogCoreLib",
    ],
    kotlincflags: ["-Xjvm-default=all"],
}
+11 −14
Original line number Diff line number Diff line
@@ -14,10 +14,12 @@
 * limitations under the License.
 */

package com.android.systemui.log.core
package com.android.systemui.log

import android.util.Log
import com.android.systemui.log.LogMessageImpl
import com.android.systemui.log.core.LogLevel
import com.android.systemui.log.core.LogMessage
import com.android.systemui.log.core.MessageBuffer
import com.android.systemui.log.core.MessagePrinter
import kotlin.collections.ArrayDeque

/**
@@ -25,9 +27,11 @@ import kotlin.collections.ArrayDeque
 * immediately. This defeats the intention behind [LogBuffer] and should only be used when
 * [LogBuffer]s are unavailable in a certain context.
 */
class LogcatOnlyMessageBuffer(
    val targetLogLevel: LogLevel,
    val maxMessageCount: Int = DEFAULT_MESSAGE_MAX_COUNT,
class LogcatOnlyMessageBuffer
@JvmOverloads
constructor(
    private val targetLogLevel: LogLevel,
    private val maxMessageCount: Int = DEFAULT_MESSAGE_MAX_COUNT,
) : MessageBuffer {
    private val messages = ArrayDeque<LogMessageImpl>(maxMessageCount)

@@ -47,14 +51,7 @@ class LogcatOnlyMessageBuffer(
    override fun commit(message: LogMessage) {
        if (message.level >= targetLogLevel) {
            val strMessage = message.messagePrinter(message)
            when (message.level) {
                LogLevel.VERBOSE -> Log.v(message.tag, strMessage, message.exception)
                LogLevel.DEBUG -> Log.d(message.tag, strMessage, message.exception)
                LogLevel.INFO -> Log.i(message.tag, strMessage, message.exception)
                LogLevel.WARNING -> Log.w(message.tag, strMessage, message.exception)
                LogLevel.ERROR -> Log.e(message.tag, strMessage, message.exception)
                LogLevel.WTF -> Log.wtf(message.tag, strMessage, message.exception)
            }
            message.level.logcatFunc(message.tag, strMessage, message.exception)
        }

        if (message is LogMessageImpl) {
Loading