summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/widget/LockPatternChecker.java15
-rw-r--r--packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java10
-rw-r--r--packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java25
3 files changed, 50 insertions, 0 deletions
diff --git a/core/java/com/android/internal/widget/LockPatternChecker.java b/core/java/com/android/internal/widget/LockPatternChecker.java
index df9b0ddc1804..3d43f5d2d419 100644
--- a/core/java/com/android/internal/widget/LockPatternChecker.java
+++ b/core/java/com/android/internal/widget/LockPatternChecker.java
@@ -29,6 +29,11 @@ public final class LockPatternChecker {
* the call. Only non-0 if matched is false.
*/
void onChecked(boolean matched, int throttleTimeoutMs);
+
+ /**
+ * Called when the underlying AsyncTask was cancelled.
+ */
+ default void onCancelled() {}
}
/**
@@ -110,6 +115,11 @@ public final class LockPatternChecker {
protected void onPostExecute(Boolean result) {
callback.onChecked(result, mThrottleTimeout);
}
+
+ @Override
+ protected void onCancelled() {
+ callback.onCancelled();
+ }
};
task.execute();
return task;
@@ -217,6 +227,11 @@ public final class LockPatternChecker {
protected void onPostExecute(Boolean result) {
callback.onChecked(result, mThrottleTimeout);
}
+
+ @Override
+ protected void onCancelled() {
+ callback.onCancelled();
+ }
};
task.execute();
return task;
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java
index 1a61f7a0d847..4330573877c1 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java
@@ -168,6 +168,16 @@ public abstract class KeyguardAbsKeyInputView extends LinearLayout
true /* isValidPassword */);
}
}
+
+ @Override
+ public void onCancelled() {
+ // We already got dismissed with the early matched callback, so we cancelled
+ // the check. However, we still need to note down the latency.
+ if (LatencyTracker.isEnabled(mContext)) {
+ LatencyTracker.getInstance(mContext).onActionEnd(
+ ACTION_CHECK_CREDENTIAL_UNLOCKED);
+ }
+ }
});
}
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java
index 7d1a6fba9700..a9ce19726c21 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java
@@ -15,6 +15,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.graphics.Rect;
import android.os.AsyncTask;
@@ -242,6 +245,10 @@ public class KeyguardPatternView extends LinearLayout implements KeyguardSecurit
return;
}
+ if (LatencyTracker.isEnabled(mContext)) {
+ LatencyTracker.getInstance(mContext).onActionStart(ACTION_CHECK_CREDENTIAL);
+ LatencyTracker.getInstance(mContext).onActionStart(ACTION_CHECK_CREDENTIAL_UNLOCKED);
+ }
mPendingLockCheck = LockPatternChecker.checkPattern(
mLockPatternUtils,
pattern,
@@ -250,12 +257,20 @@ public class KeyguardPatternView extends LinearLayout implements KeyguardSecurit
@Override
public void onEarlyMatched() {
+ if (LatencyTracker.isEnabled(mContext)) {
+ LatencyTracker.getInstance(mContext).onActionEnd(
+ ACTION_CHECK_CREDENTIAL);
+ }
onPatternChecked(userId, true /* matched */, 0 /* timeoutMs */,
true /* isValidPattern */);
}
@Override
public void onChecked(boolean matched, int timeoutMs) {
+ if (LatencyTracker.isEnabled(mContext)) {
+ LatencyTracker.getInstance(mContext).onActionEnd(
+ ACTION_CHECK_CREDENTIAL_UNLOCKED);
+ }
mLockPatternView.enableInput();
mPendingLockCheck = null;
if (!matched) {
@@ -263,6 +278,16 @@ public class KeyguardPatternView extends LinearLayout implements KeyguardSecurit
true /* isValidPattern */);
}
}
+
+ @Override
+ public void onCancelled() {
+ // We already got dismissed with the early matched callback, so we
+ // cancelled the check. However, we still need to note down the latency.
+ if (LatencyTracker.isEnabled(mContext)) {
+ LatencyTracker.getInstance(mContext).onActionEnd(
+ ACTION_CHECK_CREDENTIAL_UNLOCKED);
+ }
+ }
});
if (pattern.size() > MIN_PATTERN_BEFORE_POKE_WAKELOCK) {
mCallback.userActivity();