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

Commit 4fb372fe authored by Brad Ebinger's avatar Brad Ebinger
Browse files

Switch on android.telecom.Log in Telecom

Move over the Runnable Class into android.telecom and turn on the
framework's usage in Telecom.

Test: All Telecom unit tests pass. Manual Log testing has also been
confirmed to be working as it did before.
Bug: 26571395
Change-Id: If7e2036c746c5a953f3a77e2d625a423ce5bf8f3
parent cbb03d1a
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.telecom;

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

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

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

    private static MessageDigest sMessageDigest;

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

}