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

Commit 2995484c authored by Beverly Tai's avatar Beverly Tai Committed by Android (Google) Code Review
Browse files

Merge "Migrate DozeSensor logcat logging to LogBuffer" into tm-qpr-dev

parents a52c7538 d333a54b
Loading
Loading
Loading
Loading
+43 −2
Original line number Diff line number Diff line
@@ -287,8 +287,8 @@ public class DozeLog implements Dumpable {
    /**
     * Appends sensor event dropped event to logs
     */
    public void traceSensorEventDropped(int sensorEvent, String reason) {
        mLogger.logSensorEventDropped(sensorEvent, reason);
    public void traceSensorEventDropped(@Reason int pulseReason, String reason) {
        mLogger.logSensorEventDropped(pulseReason, reason);
    }

    /**
@@ -386,6 +386,47 @@ public class DozeLog implements Dumpable {
        mLogger.logSetAodDimmingScrim((long) scrimOpacity);
    }

    /**
     * Appends sensor attempted to register and whether it was a successful registration.
     */
    public void traceSensorRegisterAttempt(String sensorName, boolean successfulRegistration) {
        mLogger.logSensorRegisterAttempt(sensorName, successfulRegistration);
    }

    /**
     * Appends sensor attempted to unregister and whether it was successfully unregistered.
     */
    public void traceSensorUnregisterAttempt(String sensorInfo, boolean successfullyUnregistered) {
        mLogger.logSensorUnregisterAttempt(sensorInfo, successfullyUnregistered);
    }

    /**
     * Appends sensor attempted to unregister and whether it was successfully unregistered
     * with a reason the sensor is being unregistered.
     */
    public void traceSensorUnregisterAttempt(String sensorInfo, boolean successfullyUnregistered,
            String reason) {
        mLogger.logSensorUnregisterAttempt(sensorInfo, successfullyUnregistered, reason);
    }

    /**
     * Appends the event of skipping a sensor registration since it's already registered.
     */
    public void traceSkipRegisterSensor(String sensorInfo) {
        mLogger.logSkipSensorRegistration(sensorInfo);
    }

    /**
     * Appends a plugin sensor was registered or unregistered event.
     */
    public void tracePluginSensorUpdate(boolean registered) {
        if (registered) {
            mLogger.log("register plugin sensor");
        } else {
            mLogger.log("unregister plugin sensor");
        }
    }

    private class SummaryStats {
        private int mCount;

+45 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import com.android.systemui.plugins.log.LogLevel.ERROR
import com.android.systemui.plugins.log.LogLevel.INFO
import com.android.systemui.log.dagger.DozeLog
import com.android.systemui.statusbar.policy.DevicePostureController
import com.google.errorprone.annotations.CompileTimeConstant
import java.text.SimpleDateFormat
import java.util.Date
import java.util.Locale
@@ -324,6 +325,50 @@ class DozeLogger @Inject constructor(
            "Doze car mode started"
        })
    }

    fun logSensorRegisterAttempt(sensorInfo: String, successfulRegistration: Boolean) {
        buffer.log(TAG, INFO, {
            str1 = sensorInfo
            bool1 = successfulRegistration
        }, {
            "Register sensor. Success=$bool1 sensor=$str1"
        })
    }

    fun logSensorUnregisterAttempt(sensorInfo: String, successfulUnregister: Boolean) {
        buffer.log(TAG, INFO, {
            str1 = sensorInfo
            bool1 = successfulUnregister
        }, {
            "Unregister sensor. Success=$bool1 sensor=$str1"
        })
    }

    fun logSensorUnregisterAttempt(
            sensorInfo: String,
            successfulUnregister: Boolean,
            reason: String
    ) {
        buffer.log(TAG, INFO, {
            str1 = sensorInfo
            bool1 = successfulUnregister
            str2 = reason
        }, {
            "Unregister sensor. reason=$str2. Success=$bool1 sensor=$str1"
        })
    }

    fun logSkipSensorRegistration(sensor: String) {
        buffer.log(TAG, DEBUG, {
            str1 = sensor
        }, {
            "Skipping sensor registration because its already registered. sensor=$str1"
        })
    }

    fun log(@CompileTimeConstant msg: String) {
        buffer.log(TAG, DEBUG, msg)
    }
}

private const val TAG = "DozeLog"
+7 −25
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import static com.android.systemui.plugins.SensorManagerPlugin.Sensor.TYPE_WAKE_

import android.annotation.AnyThread;
import android.app.ActivityManager;
import android.content.Context;
import android.database.ContentObserver;
import android.hardware.Sensor;
import android.hardware.SensorManager;
@@ -37,7 +36,6 @@ import android.os.UserHandle;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.IndentingPrintWriter;
import android.util.Log;
import android.view.Display;

import androidx.annotation.NonNull;
@@ -88,12 +86,9 @@ import java.util.function.Consumer;
 * trigger callbacks on the provided {@link mProxCallback}.
 */
public class DozeSensors {

    private static final boolean DEBUG = DozeService.DEBUG;
    private static final String TAG = "DozeSensors";
    private static final UiEventLogger UI_EVENT_LOGGER = new UiEventLoggerImpl();

    private final Context mContext;
    private final AsyncSensorManager mSensorManager;
    private final AmbientDisplayConfiguration mConfig;
    private final WakeLock mWakeLock;
@@ -144,7 +139,6 @@ public class DozeSensors {
    }

    DozeSensors(
            Context context,
            AsyncSensorManager sensorManager,
            DozeParameters dozeParameters,
            AmbientDisplayConfiguration config,
@@ -157,7 +151,6 @@ public class DozeSensors {
            AuthController authController,
            DevicePostureController devicePostureController
    ) {
        mContext = context;
        mSensorManager = sensorManager;
        mConfig = config;
        mWakeLock = wakeLock;
@@ -605,10 +598,7 @@ public class DozeSensors {
            // cancel the previous sensor:
            if (mRegistered) {
                final boolean rt = mSensorManager.cancelTriggerSensor(this, oldSensor);
                if (DEBUG) {
                    Log.d(TAG, "posture changed, cancelTriggerSensor[" + oldSensor + "] "
                            + rt);
                }
                mDozeLog.traceSensorUnregisterAttempt(oldSensor.toString(), rt, "posture changed");
                mRegistered = false;
            }

@@ -654,19 +644,13 @@ public class DozeSensors {
            if (mRequested && !mDisabled && (enabledBySetting() || mIgnoresSetting)) {
                if (!mRegistered) {
                    mRegistered = mSensorManager.requestTriggerSensor(this, sensor);
                    if (DEBUG) {
                        Log.d(TAG, "requestTriggerSensor[" + sensor + "] " + mRegistered);
                    }
                    mDozeLog.traceSensorRegisterAttempt(sensor.toString(), mRegistered);
                } else {
                    if (DEBUG) {
                        Log.d(TAG, "requestTriggerSensor[" + sensor + "] already registered");
                    }
                    mDozeLog.traceSkipRegisterSensor(sensor.toString());
                }
            } else if (mRegistered) {
                final boolean rt = mSensorManager.cancelTriggerSensor(this, sensor);
                if (DEBUG) {
                    Log.d(TAG, "cancelTriggerSensor[" + sensor + "] " + rt);
                }
                mDozeLog.traceSensorUnregisterAttempt(sensor.toString(), rt);
                mRegistered = false;
            }
        }
@@ -704,7 +688,6 @@ public class DozeSensors {
            final Sensor sensor = mSensors[mPosture];
            mDozeLog.traceSensor(mPulseReason);
            mHandler.post(mWakeLock.wrap(() -> {
                if (DEBUG) Log.d(TAG, "onTrigger: " + triggerEventToString(event));
                if (sensor != null && sensor.getType() == Sensor.TYPE_PICK_UP_GESTURE) {
                    UI_EVENT_LOGGER.log(DozeSensorsUiEvent.ACTION_AMBIENT_GESTURE_PICKUP);
                }
@@ -776,11 +759,11 @@ public class DozeSensors {
                    && !mRegistered) {
                asyncSensorManager.registerPluginListener(mPluginSensor, this);
                mRegistered = true;
                if (DEBUG) Log.d(TAG, "registerPluginListener");
                mDozeLog.tracePluginSensorUpdate(true /* registered */);
            } else if (mRegistered) {
                asyncSensorManager.unregisterPluginListener(mPluginSensor, this);
                mRegistered = false;
                if (DEBUG) Log.d(TAG, "unregisterPluginListener");
                mDozeLog.tracePluginSensorUpdate(false /* registered */);
            }
        }

@@ -813,10 +796,9 @@ public class DozeSensors {
            mHandler.post(mWakeLock.wrap(() -> {
                final long now = SystemClock.uptimeMillis();
                if (now < mDebounceFrom + mDebounce) {
                    Log.d(TAG, "onSensorEvent dropped: " + triggerEventToString(event));
                    mDozeLog.traceSensorEventDropped(mPulseReason, "debounce");
                    return;
                }
                if (DEBUG) Log.d(TAG, "onSensorEvent: " + triggerEventToString(event));
                mSensorCallback.onSensorPulse(mPulseReason, -1, -1, event.getValues());
            }));
        }
+1 −1
Original line number Diff line number Diff line
@@ -198,7 +198,7 @@ public class DozeTriggers implements DozeMachine.Part {
        mAllowPulseTriggers = true;
        mSessionTracker = sessionTracker;

        mDozeSensors = new DozeSensors(context, mSensorManager, dozeParameters,
        mDozeSensors = new DozeSensors(mSensorManager, dozeParameters,
                config, wakeLock, this::onSensor, this::onProximityFar, dozeLog, proximitySensor,
                secureSettings, authController, devicePostureController);
        mDockManager = dockManager;
+1 −1
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ public class LogModule {
    @SysUISingleton
    @DozeLog
    public static LogBuffer provideDozeLogBuffer(LogBufferFactory factory) {
        return factory.create("DozeLog", 120);
        return factory.create("DozeLog", 150);
    }

    /** Provides a logging buffer for all logs related to the data layer of notifications. */
Loading