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

Commit 88904f9c authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

DO NOT MERGE - Use TimingsTraceLog on SystemServiceManager and...

DO NOT MERGE - Use TimingsTraceLog on SystemServiceManager and VoiceInteractionManagerService. am: ed30689e

Change-Id: If7965603748b09b8ea34528bf7c1bbf78986611f
parents 30afdb53 ed30689e
Loading
Loading
Loading
Loading
+26 −15
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.os.Environment;
import android.os.SystemClock;
import android.os.Trace;
import android.util.Slog;
import android.util.TimingsTraceLog;

import java.io.File;
import java.lang.reflect.Constructor;
@@ -178,12 +179,13 @@ public class SystemServiceManager {
    }

    public void startUser(final int userHandle) {
        final TimingsTraceLog t = new TimingsTraceLog(TAG, Trace.TRACE_TAG_SYSTEM_SERVER);
        t.traceBegin("ssm.startUser-" + userHandle);
        Slog.i(TAG, "Calling onStartUser u" + userHandle);
        final int serviceLen = mServices.size();
        for (int i = 0; i < serviceLen; i++) {
            final SystemService service = mServices.get(i);
            Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "onStartUser "
                    + service.getClass().getName());
            t.traceBegin("onStartUser-" + userHandle + " " + service.getClass().getName());
            long time = SystemClock.elapsedRealtime();
            try {
                service.onStartUser(userHandle);
@@ -192,17 +194,19 @@ public class SystemServiceManager {
                        + " to service " + service.getClass().getName(), ex);
            }
            warnIfTooLong(SystemClock.elapsedRealtime() - time, service, "onStartUser ");
            Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER);
            t.traceEnd();
        }
        t.traceEnd();
    }

    public void unlockUser(final int userHandle) {
        final TimingsTraceLog t = new TimingsTraceLog(TAG, Trace.TRACE_TAG_SYSTEM_SERVER);
        t.traceBegin("ssm.unlockUser-" + userHandle);
        Slog.i(TAG, "Calling onUnlockUser u" + userHandle);
        final int serviceLen = mServices.size();
        for (int i = 0; i < serviceLen; i++) {
            final SystemService service = mServices.get(i);
            Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "onUnlockUser "
                    + service.getClass().getName());
            t.traceBegin("onUnlockUser-" + userHandle + " " + service.getClass().getName());
            long time = SystemClock.elapsedRealtime();
            try {
                service.onUnlockUser(userHandle);
@@ -211,17 +215,19 @@ public class SystemServiceManager {
                        + " to service " + service.getClass().getName(), ex);
            }
            warnIfTooLong(SystemClock.elapsedRealtime() - time, service, "onUnlockUser ");
            Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER);
            t.traceEnd();
        }
        t.traceEnd();
    }

    public void switchUser(final int userHandle) {
        final TimingsTraceLog t = new TimingsTraceLog(TAG, Trace.TRACE_TAG_SYSTEM_SERVER);
        t.traceBegin("ssm.switchUser-" + userHandle);
        Slog.i(TAG, "Calling switchUser u" + userHandle);
        final int serviceLen = mServices.size();
        for (int i = 0; i < serviceLen; i++) {
            final SystemService service = mServices.get(i);
            Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "onSwitchUser "
                    + service.getClass().getName());
            t.traceBegin("onSwitchUser-" + userHandle + " " + service.getClass().getName());
            long time = SystemClock.elapsedRealtime();
            try {
                service.onSwitchUser(userHandle);
@@ -230,17 +236,19 @@ public class SystemServiceManager {
                        + " to service " + service.getClass().getName(), ex);
            }
            warnIfTooLong(SystemClock.elapsedRealtime() - time, service, "onSwitchUser");
            Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER);
            t.traceEnd();
        }
        t.traceEnd();
    }

    public void stopUser(final int userHandle) {
        final TimingsTraceLog t = new TimingsTraceLog(TAG, Trace.TRACE_TAG_SYSTEM_SERVER);
        t.traceBegin("ssm.stopUser-" + userHandle);
        Slog.i(TAG, "Calling onStopUser u" + userHandle);
        final int serviceLen = mServices.size();
        for (int i = 0; i < serviceLen; i++) {
            final SystemService service = mServices.get(i);
            Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "onStopUser "
                    + service.getClass().getName());
            t.traceBegin("onStopUser-" + userHandle + " " + service.getClass().getName());
            long time = SystemClock.elapsedRealtime();
            try {
                service.onStopUser(userHandle);
@@ -249,17 +257,19 @@ public class SystemServiceManager {
                        + " to service " + service.getClass().getName(), ex);
            }
            warnIfTooLong(SystemClock.elapsedRealtime() - time, service, "onStopUser");
            Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER);
            t.traceEnd();
        }
        t.traceEnd();
    }

    public void cleanupUser(final int userHandle) {
        final TimingsTraceLog t = new TimingsTraceLog(TAG, Trace.TRACE_TAG_SYSTEM_SERVER);
        t.traceBegin("ssm.cleanupUser-" + userHandle);
        Slog.i(TAG, "Calling onCleanupUser u" + userHandle);
        final int serviceLen = mServices.size();
        for (int i = 0; i < serviceLen; i++) {
            final SystemService service = mServices.get(i);
            Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "onCleanupUser "
                    + service.getClass().getName());
            t.traceBegin("onCleanupUser-" + userHandle + " " + service.getClass().getName());
            long time = SystemClock.elapsedRealtime();
            try {
                service.onCleanupUser(userHandle);
@@ -268,8 +278,9 @@ public class SystemServiceManager {
                        + " to service " + service.getClass().getName(), ex);
            }
            warnIfTooLong(SystemClock.elapsedRealtime() - time, service, "onCleanupUser");
            Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER);
            t.traceEnd();
        }
        t.traceEnd();
    }

    /** Sets the safe mode flag for services to query. */
+24 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.Manifest;
import android.annotation.CallbackExecutor;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.UserIdInt;
import android.app.ActivityManager;
import android.app.ActivityManagerInternal;
import android.app.AppGlobals;
@@ -51,6 +52,7 @@ import android.os.Parcel;
import android.os.RemoteCallback;
import android.os.RemoteCallbackList;
import android.os.RemoteException;
import android.os.Trace;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
@@ -65,6 +67,7 @@ import android.text.TextUtils;
import android.util.ArraySet;
import android.util.Log;
import android.util.Slog;
import android.util.TimingsTraceLog;

import com.android.internal.app.IVoiceActionCheckCallback;
import com.android.internal.app.IVoiceInteractionManagerService;
@@ -269,7 +272,17 @@ public class VoiceInteractionManagerService extends SystemService {
            }
        }

        public void initForUser(int userHandle) {
        public void initForUser(@UserIdInt int userHandle) {
            final TimingsTraceLog t = new TimingsTraceLog(TAG, Trace.TRACE_TAG_SYSTEM_SERVER);
            t.traceBegin("initForUser(" + userHandle + ")");
            try {
                initForUserNoTracing(userHandle);
            } finally {
                t.traceEnd();
            }
        }

        private void initForUserNoTracing(@UserIdInt int userHandle) {
            if (DEBUG) Slog.d(TAG, "**************** initForUser user=" + userHandle);
            String curInteractorStr = Settings.Secure.getStringForUser(
                    mContext.getContentResolver(),
@@ -426,6 +439,16 @@ public class VoiceInteractionManagerService extends SystemService {
        }

        void switchImplementationIfNeededLocked(boolean force) {
            final TimingsTraceLog t = new TimingsTraceLog(TAG, Trace.TRACE_TAG_SYSTEM_SERVER);
            t.traceBegin("switchImplementation(" + mCurUser + ")");
            try {
                switchImplementationIfNeededNoTracingLocked(force);
            } finally {
                t.traceEnd();
            }
        }

        void switchImplementationIfNeededNoTracingLocked(boolean force) {
            if (!mSafeMode) {
                String curService = Settings.Secure.getStringForUser(
                        mResolver, Settings.Secure.VOICE_INTERACTION_SERVICE, mCurUser);