Add latency tracking for checking PIN (1/2)
Also move tags to Keyguard as we need it in Keyguard.
Change-Id: I718581cb4081830da1c3a2f4ad9b9f0ec6f09ae5
diff --git a/packages/Keyguard/Android.mk b/packages/Keyguard/Android.mk
index f9e2686..38cf559 100644
--- a/packages/Keyguard/Android.mk
+++ b/packages/Keyguard/Android.mk
@@ -14,6 +14,17 @@
#
LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := SystemUI-tags
+
+LOCAL_SRC_FILES := src/com/android/systemui/EventLogTags.logtags
+
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+# ------------------
+
include $(CLEAR_VARS)
LOCAL_USE_AAPT2 := true
@@ -26,6 +37,8 @@
LOCAL_JAVA_LIBRARIES := SettingsLib
+LOCAL_STATIC_JAVA_LIBRARIES = SystemUI-tags
+
LOCAL_PRIVILEGED_MODULE := true
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java
index 766eab7..1a61f7a 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java
@@ -16,6 +16,9 @@
package com.android.keyguard;
+import static com.android.keyguard.LatencyTracker.ACTION_CHECK_CREDENTIAL;
+import static com.android.keyguard.LatencyTracker.ACTION_CHECK_CREDENTIAL_UNLOCKED;
+
import android.content.Context;
import android.os.AsyncTask;
import android.os.CountDownTimer;
@@ -132,6 +135,10 @@
return;
}
+ if (LatencyTracker.isEnabled(mContext)) {
+ LatencyTracker.getInstance(mContext).onActionStart(ACTION_CHECK_CREDENTIAL);
+ LatencyTracker.getInstance(mContext).onActionStart(ACTION_CHECK_CREDENTIAL_UNLOCKED);
+ }
mPendingLockCheck = LockPatternChecker.checkPassword(
mLockPatternUtils,
entry,
@@ -140,12 +147,20 @@
@Override
public void onEarlyMatched() {
+ if (LatencyTracker.isEnabled(mContext)) {
+ LatencyTracker.getInstance(mContext).onActionEnd(
+ ACTION_CHECK_CREDENTIAL);
+ }
onPasswordChecked(userId, true /* matched */, 0 /* timeoutMs */,
true /* isValidPassword */);
}
@Override
public void onChecked(boolean matched, int timeoutMs) {
+ if (LatencyTracker.isEnabled(mContext)) {
+ LatencyTracker.getInstance(mContext).onActionEnd(
+ ACTION_CHECK_CREDENTIAL_UNLOCKED);
+ }
setPasswordEntryInputEnabled(true);
mPendingLockCheck = null;
if (!matched) {
diff --git a/packages/SystemUI/src/com/android/systemui/LatencyTracker.java b/packages/Keyguard/src/com/android/keyguard/LatencyTracker.java
similarity index 83%
rename from packages/SystemUI/src/com/android/systemui/LatencyTracker.java
rename to packages/Keyguard/src/com/android/keyguard/LatencyTracker.java
index 0196815..f1b6126 100644
--- a/packages/SystemUI/src/com/android/systemui/LatencyTracker.java
+++ b/packages/Keyguard/src/com/android/keyguard/LatencyTracker.java
@@ -14,14 +14,13 @@
* limitations under the License
*/
-package com.android.systemui;
+package com.android.keyguard;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Build;
-import android.os.Handler;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.os.Trace;
@@ -29,9 +28,15 @@
import android.util.Log;
import android.util.SparseLongArray;
+import com.android.systemui.EventLogTags;
+
/**
* Class to track various latencies in SystemUI. It then outputs the latency to logcat so these
* latencies can be captured by tests and then used for dashboards.
+ * <p>
+ * This is currently only in Keyguard so it can be shared between SystemUI and Keyguard, but
+ * eventually we'd want to merge these two packages together so Keyguard can use common classes
+ * that are shared with SystemUI.
*/
public class LatencyTracker {
@@ -55,10 +60,23 @@
*/
public static final int ACTION_FINGERPRINT_WAKE_AND_UNLOCK = 2;
+ /**
+ * Time it takes to check PIN/Pattern/Password.
+ */
+ public static final int ACTION_CHECK_CREDENTIAL = 3;
+
+ /**
+ * Time it takes to check fully PIN/Pattern/Password, i.e. that's the time spent including the
+ * actions to unlock a user.
+ */
+ public static final int ACTION_CHECK_CREDENTIAL_UNLOCKED = 4;
+
private static final String[] NAMES = new String[] {
"expand panel",
"toggle recents",
- "fingerprint wake-and-unlock" };
+ "fingerprint wake-and-unlock",
+ "check credential",
+ "check credential unlocked" };
private static LatencyTracker sLatencyTracker;
diff --git a/packages/SystemUI/src/com/android/systemui/EventLogTags.logtags b/packages/Keyguard/src/com/android/systemui/EventLogTags.logtags
similarity index 100%
rename from packages/SystemUI/src/com/android/systemui/EventLogTags.logtags
rename to packages/Keyguard/src/com/android/systemui/EventLogTags.logtags
diff --git a/packages/SystemUI/Android.mk b/packages/SystemUI/Android.mk
index 71bfe85..ffddf02 100644
--- a/packages/SystemUI/Android.mk
+++ b/packages/SystemUI/Android.mk
@@ -2,10 +2,9 @@
include $(CLEAR_VARS)
-LOCAL_MODULE := SystemUI-proto-tags
+LOCAL_MODULE := SystemUI-proto
-LOCAL_SRC_FILES := $(call all-proto-files-under,src) \
- src/com/android/systemui/EventLogTags.logtags
+LOCAL_SRC_FILES := $(call all-proto-files-under,src)
LOCAL_PROTOC_OPTIMIZE_TYPE := nano
LOCAL_PROTO_JAVA_OUTPUT_PARAMS := optional_field_style=accessors
@@ -33,7 +32,7 @@
LOCAL_STATIC_JAVA_LIBRARIES := \
framework-protos \
- SystemUI-proto-tags
+ SystemUI-proto
LOCAL_JAVA_LIBRARIES := telephony-common
LOCAL_JAVA_LIBRARIES += android.car
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
index e5493b6..ec99d20 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
@@ -43,7 +43,7 @@
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.systemui.DejankUtils;
import com.android.systemui.Interpolators;
-import com.android.systemui.LatencyTracker;
+import com.android.keyguard.LatencyTracker;
import com.android.systemui.Prefs;
import com.android.systemui.R;
import com.android.systemui.recents.events.EventBus;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java
index 82867c6..c04ebb0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java
@@ -30,7 +30,7 @@
import com.android.keyguard.KeyguardConstants;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.KeyguardUpdateMonitorCallback;
-import com.android.systemui.LatencyTracker;
+import com.android.keyguard.LatencyTracker;
import com.android.systemui.keyguard.KeyguardViewMediator;
/**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
index c6aec73..3de03b5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
@@ -23,7 +23,6 @@
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
-import android.os.Trace;
import android.util.AttributeSet;
import android.util.Log;
import android.view.InputDevice;
@@ -37,7 +36,7 @@
import com.android.systemui.EventLogConstants;
import com.android.systemui.EventLogTags;
import com.android.systemui.Interpolators;
-import com.android.systemui.LatencyTracker;
+import com.android.keyguard.LatencyTracker;
import com.android.systemui.R;
import com.android.systemui.classifier.FalsingManager;
import com.android.systemui.doze.DozeLog;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index a442fc0..7c47457 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -133,7 +133,7 @@
import com.android.systemui.EventLogConstants;
import com.android.systemui.EventLogTags;
import com.android.systemui.Interpolators;
-import com.android.systemui.LatencyTracker;
+import com.android.keyguard.LatencyTracker;
import com.android.systemui.Prefs;
import com.android.systemui.R;
import com.android.systemui.SystemUIFactory;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
index 01609e4..e3ede46 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
@@ -31,7 +31,7 @@
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.ViewMediatorCallback;
import com.android.systemui.DejankUtils;
-import com.android.systemui.LatencyTracker;
+import com.android.keyguard.LatencyTracker;
import com.android.systemui.SystemUIFactory;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.RemoteInputController;
diff --git a/packages/SystemUI/tests/Android.mk b/packages/SystemUI/tests/Android.mk
index 23967aa..6038171 100644
--- a/packages/SystemUI/tests/Android.mk
+++ b/packages/SystemUI/tests/Android.mk
@@ -45,7 +45,8 @@
LOCAL_STATIC_JAVA_LIBRARIES := \
android-support-test \
mockito-target-minus-junit4 \
- SystemUI-proto-tags
+ SystemUI-proto \
+ SystemUI-tags
LOCAL_JAVA_LIBRARIES := android.test.runner telephony-common android.car