Loading packages/SystemUI/src/com/android/systemui/doze/DozeLog.java +43 −2 Original line number Diff line number Diff line Loading @@ -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); } /** Loading Loading @@ -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; Loading packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt +45 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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" Loading packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java +7 −25 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -144,7 +139,6 @@ public class DozeSensors { } DozeSensors( Context context, AsyncSensorManager sensorManager, DozeParameters dozeParameters, AmbientDisplayConfiguration config, Loading @@ -157,7 +151,6 @@ public class DozeSensors { AuthController authController, DevicePostureController devicePostureController ) { mContext = context; mSensorManager = sensorManager; mConfig = config; mWakeLock = wakeLock; Loading Loading @@ -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; } Loading Loading @@ -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; } } Loading Loading @@ -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); } Loading Loading @@ -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 */); } } Loading Loading @@ -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()); })); } Loading packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
packages/SystemUI/src/com/android/systemui/doze/DozeLog.java +43 −2 Original line number Diff line number Diff line Loading @@ -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); } /** Loading Loading @@ -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; Loading
packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt +45 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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" Loading
packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java +7 −25 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -144,7 +139,6 @@ public class DozeSensors { } DozeSensors( Context context, AsyncSensorManager sensorManager, DozeParameters dozeParameters, AmbientDisplayConfiguration config, Loading @@ -157,7 +151,6 @@ public class DozeSensors { AuthController authController, DevicePostureController devicePostureController ) { mContext = context; mSensorManager = sensorManager; mConfig = config; mWakeLock = wakeLock; Loading Loading @@ -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; } Loading Loading @@ -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; } } Loading Loading @@ -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); } Loading Loading @@ -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 */); } } Loading Loading @@ -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()); })); } Loading
packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading
packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java +1 −1 Original line number Diff line number Diff line Loading @@ -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