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

Commit 37521b9b authored by Brad Ebinger's avatar Brad Ebinger Committed by Gerrit Code Review
Browse files

Merge "Switch on android.telecom.Log in Telecom"

parents 6071abdb 4fb372fe
Loading
Loading
Loading
Loading
+7 −2
Original line number Original line Diff line number Diff line
@@ -16,6 +16,7 @@


package android.telecom;
package android.telecom;


import android.content.Context;
import android.net.Uri;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.AsyncTask;
import android.telecom.Logging.EventManager;
import android.telecom.Logging.EventManager;
@@ -175,6 +176,10 @@ public class Log {
     * loggers.
     * loggers.
     */
     */


    public static void setSessionContext(Context context) {
        getSessionManager().setContext(context);
    }

    public static void startSession(String shortMethodName) {
    public static void startSession(String shortMethodName) {
        getSessionManager().startSession(shortMethodName, null);
        getSessionManager().startSession(shortMethodName, null);
    }
    }
@@ -304,7 +309,7 @@ public class Log {


    private static MessageDigest sMessageDigest;
    private static MessageDigest sMessageDigest;


    static void initMd5Sum() {
    public static void initMd5Sum() {
        new AsyncTask<Void, Void, Void>() {
        new AsyncTask<Void, Void, Void>() {
            @Override
            @Override
            public Void doInBackground(Void... args) {
            public Void doInBackground(Void... args) {
@@ -430,7 +435,7 @@ public class Log {
            msg = (args == null || args.length == 0) ? format
            msg = (args == null || args.length == 0) ? format
                    : String.format(Locale.US, format, args);
                    : String.format(Locale.US, format, args);
        } catch (IllegalFormatException ife) {
        } catch (IllegalFormatException ife) {
            e("Log", ife, "IllegalFormatException: formatString='%s' numArgs=%d", format,
            e(TAG, ife, "Log: IllegalFormatException: formatString='%s' numArgs=%d", format,
                    args.length);
                    args.length);
            msg = format + " (An error occurred while formatting the message.)";
            msg = format + " (An error occurred while formatting the message.)";
        }
        }
+1 −1
Original line number Original line Diff line number Diff line
@@ -291,7 +291,7 @@ public class EventManager {
            msg = (args == null || args.length == 0) ? format
            msg = (args == null || args.length == 0) ? format
                    : String.format(Locale.US, format, args);
                    : String.format(Locale.US, format, args);
        } catch (IllegalFormatException ife) {
        } catch (IllegalFormatException ife) {
            Log.e("Log", ife, "IllegalFormatException: formatString='%s' numArgs=%d", format,
            Log.e(this, ife, "IllegalFormatException: formatString='%s' numArgs=%d", format,
                    args.length);
                    args.length);
            msg = format + " (An error occurred while formatting the message.)";
            msg = format + " (An error occurred while formatting the message.)";
        }
        }
+88 −0
Original line number Original line Diff line number Diff line
/*
 * Copyright (C) 2016 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 android.telecom.Logging;

import android.telecom.Log;

/**
 * Encapsulates session logging in a Runnable to reduce code duplication when continuing subsessions
 * in a handler/thread.
 * @hide
 */
public abstract class Runnable {

    private Session mSubsession;
    private final String mSubsessionName;
    private final Object mLock = new Object();
    private final java.lang.Runnable mRunnable = new java.lang.Runnable() {
        @Override
        public void run() {
            synchronized (mLock) {
                try {
                    Log.continueSession(mSubsession, mSubsessionName);
                    loggedRun();
                } finally {
                    if (mSubsession != null) {
                        Log.endSession();
                        mSubsession = null;
                    }
                }
            }
        }
    };

    public Runnable(String subsessionName) {
        mSubsessionName = subsessionName;
    }

    /**
     * Return the runnable that will be canceled in the handler queue.
     * @return Runnable object to cancel.
     */
    public final java.lang.Runnable getRunnableToCancel() {
        return mRunnable;
    }

    /**
     * Creates a Runnable and a logging subsession that can be used in a handler/thread. Be sure to
     * call cancel() if this session is never going to be run (removed from a handler queue, for
     * for example).
     * @return A Java Runnable that can be used in a handler queue or thread.
     */
    public java.lang.Runnable prepare() {
        cancel();
        mSubsession = Log.createSubsession();
        return mRunnable;
    }

    /**
     * This method is used to clean up the active session if the Runnable gets removed from a
     * handler and is never run.
     */
    public void cancel() {
        synchronized (mLock) {
            Log.cancelSubsession(mSubsession);
            mSubsession = null;
        }
    }

    /**
     * The method that will be run in the handler/thread.
     */
    abstract public void loggedRun();

}