diff options
6 files changed, 99 insertions, 31 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java index 2e51b51d2836..b69afeb37371 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java @@ -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; diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt b/packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt index 0e1bfba8aadb..ce5b33eeae58 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt @@ -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 @@ -320,6 +321,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" diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java b/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java index da6c163b1eea..9a091e725818 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java @@ -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()); })); } diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java index ef454ffbdeb1..0c563430796a 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java @@ -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; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java b/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java index 92a7b5129995..3de30cabed72 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java @@ -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. */ diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSensorsTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSensorsTest.java index 9ffc5a57cef6..c40c187d572a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSensorsTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSensorsTest.java @@ -423,7 +423,7 @@ public class DozeSensorsTest extends SysuiTestCase { @Test public void testGesturesAllInitiallyRespectSettings() { - DozeSensors dozeSensors = new DozeSensors(getContext(), mSensorManager, mDozeParameters, + DozeSensors dozeSensors = new DozeSensors(mSensorManager, mDozeParameters, mAmbientDisplayConfiguration, mWakeLock, mCallback, mProxCallback, mDozeLog, mProximitySensor, mFakeSettings, mAuthController, mDevicePostureController); @@ -435,7 +435,7 @@ public class DozeSensorsTest extends SysuiTestCase { private class TestableDozeSensors extends DozeSensors { TestableDozeSensors() { - super(getContext(), mSensorManager, mDozeParameters, + super(mSensorManager, mDozeParameters, mAmbientDisplayConfiguration, mWakeLock, mCallback, mProxCallback, mDozeLog, mProximitySensor, mFakeSettings, mAuthController, mDevicePostureController); |