Merge "Migrate DozeSensor logcat logging to LogBuffer" into tm-qpr-dev am: 2995484c7f
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20225187 Change-Id: Ib550060b5c5b8af51bd054a6662a2ef9020cb2b2 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -287,8 +287,8 @@ public class DozeLog implements Dumpable {
|
|||||||
/**
|
/**
|
||||||
* Appends sensor event dropped event to logs
|
* Appends sensor event dropped event to logs
|
||||||
*/
|
*/
|
||||||
public void traceSensorEventDropped(int sensorEvent, String reason) {
|
public void traceSensorEventDropped(@Reason int pulseReason, String reason) {
|
||||||
mLogger.logSensorEventDropped(sensorEvent, reason);
|
mLogger.logSensorEventDropped(pulseReason, reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -386,6 +386,47 @@ public class DozeLog implements Dumpable {
|
|||||||
mLogger.logSetAodDimmingScrim((long) scrimOpacity);
|
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 class SummaryStats {
|
||||||
private int mCount;
|
private int mCount;
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import com.android.systemui.plugins.log.LogLevel.ERROR
|
|||||||
import com.android.systemui.plugins.log.LogLevel.INFO
|
import com.android.systemui.plugins.log.LogLevel.INFO
|
||||||
import com.android.systemui.log.dagger.DozeLog
|
import com.android.systemui.log.dagger.DozeLog
|
||||||
import com.android.systemui.statusbar.policy.DevicePostureController
|
import com.android.systemui.statusbar.policy.DevicePostureController
|
||||||
|
import com.google.errorprone.annotations.CompileTimeConstant
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.Date
|
import java.util.Date
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
@@ -324,6 +325,50 @@ class DozeLogger @Inject constructor(
|
|||||||
"Doze car mode started"
|
"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"
|
private const val TAG = "DozeLog"
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ import static com.android.systemui.plugins.SensorManagerPlugin.Sensor.TYPE_WAKE_
|
|||||||
|
|
||||||
import android.annotation.AnyThread;
|
import android.annotation.AnyThread;
|
||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
import android.content.Context;
|
|
||||||
import android.database.ContentObserver;
|
import android.database.ContentObserver;
|
||||||
import android.hardware.Sensor;
|
import android.hardware.Sensor;
|
||||||
import android.hardware.SensorManager;
|
import android.hardware.SensorManager;
|
||||||
@@ -37,7 +36,6 @@ import android.os.UserHandle;
|
|||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.IndentingPrintWriter;
|
import android.util.IndentingPrintWriter;
|
||||||
import android.util.Log;
|
|
||||||
import android.view.Display;
|
import android.view.Display;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
@@ -88,12 +86,9 @@ import java.util.function.Consumer;
|
|||||||
* trigger callbacks on the provided {@link mProxCallback}.
|
* trigger callbacks on the provided {@link mProxCallback}.
|
||||||
*/
|
*/
|
||||||
public class DozeSensors {
|
public class DozeSensors {
|
||||||
|
|
||||||
private static final boolean DEBUG = DozeService.DEBUG;
|
|
||||||
private static final String TAG = "DozeSensors";
|
private static final String TAG = "DozeSensors";
|
||||||
private static final UiEventLogger UI_EVENT_LOGGER = new UiEventLoggerImpl();
|
private static final UiEventLogger UI_EVENT_LOGGER = new UiEventLoggerImpl();
|
||||||
|
|
||||||
private final Context mContext;
|
|
||||||
private final AsyncSensorManager mSensorManager;
|
private final AsyncSensorManager mSensorManager;
|
||||||
private final AmbientDisplayConfiguration mConfig;
|
private final AmbientDisplayConfiguration mConfig;
|
||||||
private final WakeLock mWakeLock;
|
private final WakeLock mWakeLock;
|
||||||
@@ -144,7 +139,6 @@ public class DozeSensors {
|
|||||||
}
|
}
|
||||||
|
|
||||||
DozeSensors(
|
DozeSensors(
|
||||||
Context context,
|
|
||||||
AsyncSensorManager sensorManager,
|
AsyncSensorManager sensorManager,
|
||||||
DozeParameters dozeParameters,
|
DozeParameters dozeParameters,
|
||||||
AmbientDisplayConfiguration config,
|
AmbientDisplayConfiguration config,
|
||||||
@@ -157,7 +151,6 @@ public class DozeSensors {
|
|||||||
AuthController authController,
|
AuthController authController,
|
||||||
DevicePostureController devicePostureController
|
DevicePostureController devicePostureController
|
||||||
) {
|
) {
|
||||||
mContext = context;
|
|
||||||
mSensorManager = sensorManager;
|
mSensorManager = sensorManager;
|
||||||
mConfig = config;
|
mConfig = config;
|
||||||
mWakeLock = wakeLock;
|
mWakeLock = wakeLock;
|
||||||
@@ -605,10 +598,7 @@ public class DozeSensors {
|
|||||||
// cancel the previous sensor:
|
// cancel the previous sensor:
|
||||||
if (mRegistered) {
|
if (mRegistered) {
|
||||||
final boolean rt = mSensorManager.cancelTriggerSensor(this, oldSensor);
|
final boolean rt = mSensorManager.cancelTriggerSensor(this, oldSensor);
|
||||||
if (DEBUG) {
|
mDozeLog.traceSensorUnregisterAttempt(oldSensor.toString(), rt, "posture changed");
|
||||||
Log.d(TAG, "posture changed, cancelTriggerSensor[" + oldSensor + "] "
|
|
||||||
+ rt);
|
|
||||||
}
|
|
||||||
mRegistered = false;
|
mRegistered = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -654,19 +644,13 @@ public class DozeSensors {
|
|||||||
if (mRequested && !mDisabled && (enabledBySetting() || mIgnoresSetting)) {
|
if (mRequested && !mDisabled && (enabledBySetting() || mIgnoresSetting)) {
|
||||||
if (!mRegistered) {
|
if (!mRegistered) {
|
||||||
mRegistered = mSensorManager.requestTriggerSensor(this, sensor);
|
mRegistered = mSensorManager.requestTriggerSensor(this, sensor);
|
||||||
if (DEBUG) {
|
mDozeLog.traceSensorRegisterAttempt(sensor.toString(), mRegistered);
|
||||||
Log.d(TAG, "requestTriggerSensor[" + sensor + "] " + mRegistered);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if (DEBUG) {
|
mDozeLog.traceSkipRegisterSensor(sensor.toString());
|
||||||
Log.d(TAG, "requestTriggerSensor[" + sensor + "] already registered");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else if (mRegistered) {
|
} else if (mRegistered) {
|
||||||
final boolean rt = mSensorManager.cancelTriggerSensor(this, sensor);
|
final boolean rt = mSensorManager.cancelTriggerSensor(this, sensor);
|
||||||
if (DEBUG) {
|
mDozeLog.traceSensorUnregisterAttempt(sensor.toString(), rt);
|
||||||
Log.d(TAG, "cancelTriggerSensor[" + sensor + "] " + rt);
|
|
||||||
}
|
|
||||||
mRegistered = false;
|
mRegistered = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -704,7 +688,6 @@ public class DozeSensors {
|
|||||||
final Sensor sensor = mSensors[mPosture];
|
final Sensor sensor = mSensors[mPosture];
|
||||||
mDozeLog.traceSensor(mPulseReason);
|
mDozeLog.traceSensor(mPulseReason);
|
||||||
mHandler.post(mWakeLock.wrap(() -> {
|
mHandler.post(mWakeLock.wrap(() -> {
|
||||||
if (DEBUG) Log.d(TAG, "onTrigger: " + triggerEventToString(event));
|
|
||||||
if (sensor != null && sensor.getType() == Sensor.TYPE_PICK_UP_GESTURE) {
|
if (sensor != null && sensor.getType() == Sensor.TYPE_PICK_UP_GESTURE) {
|
||||||
UI_EVENT_LOGGER.log(DozeSensorsUiEvent.ACTION_AMBIENT_GESTURE_PICKUP);
|
UI_EVENT_LOGGER.log(DozeSensorsUiEvent.ACTION_AMBIENT_GESTURE_PICKUP);
|
||||||
}
|
}
|
||||||
@@ -776,11 +759,11 @@ public class DozeSensors {
|
|||||||
&& !mRegistered) {
|
&& !mRegistered) {
|
||||||
asyncSensorManager.registerPluginListener(mPluginSensor, this);
|
asyncSensorManager.registerPluginListener(mPluginSensor, this);
|
||||||
mRegistered = true;
|
mRegistered = true;
|
||||||
if (DEBUG) Log.d(TAG, "registerPluginListener");
|
mDozeLog.tracePluginSensorUpdate(true /* registered */);
|
||||||
} else if (mRegistered) {
|
} else if (mRegistered) {
|
||||||
asyncSensorManager.unregisterPluginListener(mPluginSensor, this);
|
asyncSensorManager.unregisterPluginListener(mPluginSensor, this);
|
||||||
mRegistered = false;
|
mRegistered = false;
|
||||||
if (DEBUG) Log.d(TAG, "unregisterPluginListener");
|
mDozeLog.tracePluginSensorUpdate(false /* registered */);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -813,10 +796,9 @@ public class DozeSensors {
|
|||||||
mHandler.post(mWakeLock.wrap(() -> {
|
mHandler.post(mWakeLock.wrap(() -> {
|
||||||
final long now = SystemClock.uptimeMillis();
|
final long now = SystemClock.uptimeMillis();
|
||||||
if (now < mDebounceFrom + mDebounce) {
|
if (now < mDebounceFrom + mDebounce) {
|
||||||
Log.d(TAG, "onSensorEvent dropped: " + triggerEventToString(event));
|
mDozeLog.traceSensorEventDropped(mPulseReason, "debounce");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (DEBUG) Log.d(TAG, "onSensorEvent: " + triggerEventToString(event));
|
|
||||||
mSensorCallback.onSensorPulse(mPulseReason, -1, -1, event.getValues());
|
mSensorCallback.onSensorPulse(mPulseReason, -1, -1, event.getValues());
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ public class DozeTriggers implements DozeMachine.Part {
|
|||||||
mAllowPulseTriggers = true;
|
mAllowPulseTriggers = true;
|
||||||
mSessionTracker = sessionTracker;
|
mSessionTracker = sessionTracker;
|
||||||
|
|
||||||
mDozeSensors = new DozeSensors(context, mSensorManager, dozeParameters,
|
mDozeSensors = new DozeSensors(mSensorManager, dozeParameters,
|
||||||
config, wakeLock, this::onSensor, this::onProximityFar, dozeLog, proximitySensor,
|
config, wakeLock, this::onSensor, this::onProximityFar, dozeLog, proximitySensor,
|
||||||
secureSettings, authController, devicePostureController);
|
secureSettings, authController, devicePostureController);
|
||||||
mDockManager = dockManager;
|
mDockManager = dockManager;
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ public class LogModule {
|
|||||||
@SysUISingleton
|
@SysUISingleton
|
||||||
@DozeLog
|
@DozeLog
|
||||||
public static LogBuffer provideDozeLogBuffer(LogBufferFactory factory) {
|
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. */
|
/** Provides a logging buffer for all logs related to the data layer of notifications. */
|
||||||
|
|||||||
@@ -423,7 +423,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGesturesAllInitiallyRespectSettings() {
|
public void testGesturesAllInitiallyRespectSettings() {
|
||||||
DozeSensors dozeSensors = new DozeSensors(getContext(), mSensorManager, mDozeParameters,
|
DozeSensors dozeSensors = new DozeSensors(mSensorManager, mDozeParameters,
|
||||||
mAmbientDisplayConfiguration, mWakeLock, mCallback, mProxCallback, mDozeLog,
|
mAmbientDisplayConfiguration, mWakeLock, mCallback, mProxCallback, mDozeLog,
|
||||||
mProximitySensor, mFakeSettings, mAuthController,
|
mProximitySensor, mFakeSettings, mAuthController,
|
||||||
mDevicePostureController);
|
mDevicePostureController);
|
||||||
@@ -435,7 +435,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
|
|
||||||
private class TestableDozeSensors extends DozeSensors {
|
private class TestableDozeSensors extends DozeSensors {
|
||||||
TestableDozeSensors() {
|
TestableDozeSensors() {
|
||||||
super(getContext(), mSensorManager, mDozeParameters,
|
super(mSensorManager, mDozeParameters,
|
||||||
mAmbientDisplayConfiguration, mWakeLock, mCallback, mProxCallback, mDozeLog,
|
mAmbientDisplayConfiguration, mWakeLock, mCallback, mProxCallback, mDozeLog,
|
||||||
mProximitySensor, mFakeSettings, mAuthController,
|
mProximitySensor, mFakeSettings, mAuthController,
|
||||||
mDevicePostureController);
|
mDevicePostureController);
|
||||||
|
|||||||
Reference in New Issue
Block a user