Merge "Add telecom log marking shell command."
diff --git a/src/com/android/server/telecom/CallsManager.java b/src/com/android/server/telecom/CallsManager.java
index 6873e42..6757ead 100755
--- a/src/com/android/server/telecom/CallsManager.java
+++ b/src/com/android/server/telecom/CallsManager.java
@@ -5583,4 +5583,16 @@
UserHandle userHandle, ConnectionServiceWrapper service) {
mConnectionServiceRepository.setService(componentName, userHandle, service);
}
+
+ /**
+ * Generates a log "marking". This is a unique call event which contains a specified message.
+ * A log mark is triggered by the command: adb shell telecom log-mark MESSAGE
+ * A tester can use this when executing tests to make it very clear when a particular test step
+ * was reached.
+ * @param message the message to mark in the logs.
+ */
+ public void requestLogMark(String message) {
+ mCalls.forEach(c -> Log.addEvent(c, LogUtils.Events.USER_LOG_MARK, message));
+ Log.addEvent(null /* global */, LogUtils.Events.USER_LOG_MARK, message);
+ }
}
diff --git a/src/com/android/server/telecom/TelecomServiceImpl.java b/src/com/android/server/telecom/TelecomServiceImpl.java
index 620378b..80bcbe0 100644
--- a/src/com/android/server/telecom/TelecomServiceImpl.java
+++ b/src/com/android/server/telecom/TelecomServiceImpl.java
@@ -1961,6 +1961,24 @@
}
@Override
+ public void requestLogMark(String message) {
+ try {
+ Log.startSession("TSI.rLM");
+ enforceShellOnly(Binder.getCallingUid(), "requestLogMark is for shell only");
+ synchronized (mLock) {
+ long token = Binder.clearCallingIdentity();
+ try {
+ mCallsManager.requestLogMark(message);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+ } finally {
+ Log.endSession();
+ }
+ }
+
+ @Override
public void setTestPhoneAcctSuggestionComponent(String flattenedComponentName) {
try {
Log.startSession("TSI.sPASA");