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

Commit 810fe76d authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Add Telecom log tagging for whether logs took place in Telecom lock."...

Merge "Add Telecom log tagging for whether logs took place in Telecom lock." into udc-dev am: 822c57f7 am: 0223c912

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22129028



Change-Id: Ie951e79291043875272c7a29e76fd9ed355f3a2d
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 8b00eceb 0223c912
Loading
Loading
Loading
Loading
+18 −1
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@ public class Log {
    private static final Object sSingletonSync = new Object();
    private static EventManager sEventManager;
    private static SessionManager sSessionManager;
    private static Object sLock = null;

    /**
     * Tracks whether user-activated extended logging is enabled.
@@ -387,6 +388,19 @@ public class Log {
        ERROR = isLoggable(android.util.Log.ERROR);
    }

    /**
     * Sets the main telecom sync lock used within Telecom.  This is used when building log messages
     * so that we can identify places in the code where we are doing something outside of the
     * Telecom lock.
     * @param lock The lock.
     */
    public static void setLock(Object lock) {
        // Don't do lock monitoring on user builds.
        if (!Build.IS_USER) {
            sLock = lock;
        }
    }

    /**
     * If user enabled extended logging is enabled and the time limit has passed, disables the
     * extended logging.
@@ -512,7 +526,10 @@ public class Log {
                    args.length);
            msg = format + " (An error occurred while formatting the message.)";
        }
        return String.format(Locale.US, "%s: %s%s", prefix, msg, sessionPostfix);
        // If a lock was set, check if this thread holds that lock and output an emoji that lets
        // the developer know whether a log message came from within the Telecom lock or not.
        String isLocked = sLock != null ? (Thread.holdsLock(sLock) ? "\uD83D\uDD12" : "❗") : "";
        return String.format(Locale.US, "%s: %s%s%s", prefix, msg, sessionPostfix, isLocked);
    }

    /**