summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabian Kozynski <kozynski@google.com>2019-09-04 16:53:37 -0400
committerandroid-build-team Robot <android-build-team-robot@google.com>2019-09-20 02:56:19 +0000
commitaaba8ef289dee0c143b3dc0fe47e6b9595f22c65 (patch)
tree281425834d92a96eeb88d91c934a5c633f01a79e
parentce472cd14f7262a0f5b3ffe656af05ed673c8e08 (diff)
downloadandroid_frameworks_base-aaba8ef289dee0c143b3dc0fe47e6b9595f22c65.tar.gz
android_frameworks_base-aaba8ef289dee0c143b3dc0fe47e6b9595f22c65.tar.bz2
android_frameworks_base-aaba8ef289dee0c143b3dc0fe47e6b9595f22c65.zip
Use UnlockMethodCache#canSkipBouncer in user switcher
KeyguardMonitor#canSkipBouncer was not updated properly when the phone was unlocked using fingerprint. This CL removes that method and changes UserSwitcherController to query UnlockMethodCache directly, as it was KeyguardMonitor's only client for that method. Test: manual unlocking with FP and with pattern Test: no automated test yet Bug: 140486529 Merged-In: Idbff4fbabca962c632ff5d78b25418c0502db9a7 Change-Id: Idbff4fbabca962c632ff5d78b25418c0502db9a7 (cherry picked from commit d2eb34b689eaa8a9b064b4e69773083c723e3756)
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitor.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitorImpl.java26
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java7
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeKeyguardMonitor.java5
4 files changed, 5 insertions, 34 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitor.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitor.java
index 01498e6bd54..6fc265e6f98 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitor.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitor.java
@@ -19,7 +19,6 @@ import com.android.systemui.statusbar.policy.KeyguardMonitor.Callback;
public interface KeyguardMonitor extends CallbackController<Callback> {
boolean isSecure();
- boolean canSkipBouncer();
boolean isShowing();
boolean isOccluded();
boolean isKeyguardFadingAway();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitorImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitorImpl.java
index b53ff0e45ce..2b08d68f107 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitorImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitorImpl.java
@@ -17,13 +17,11 @@
package com.android.systemui.statusbar.policy;
import android.annotation.NonNull;
-import android.app.ActivityManager;
import android.content.Context;
import com.android.internal.util.Preconditions;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.KeyguardUpdateMonitorCallback;
-import com.android.systemui.settings.CurrentUserTracker;
import java.util.ArrayList;
@@ -39,14 +37,11 @@ public class KeyguardMonitorImpl extends KeyguardUpdateMonitorCallback
private final ArrayList<Callback> mCallbacks = new ArrayList<>();
private final Context mContext;
- private final CurrentUserTracker mUserTracker;
private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
- private int mCurrentUser;
private boolean mShowing;
private boolean mSecure;
private boolean mOccluded;
- private boolean mCanSkipBouncer;
private boolean mListening;
private boolean mKeyguardFadingAway;
@@ -61,13 +56,6 @@ public class KeyguardMonitorImpl extends KeyguardUpdateMonitorCallback
public KeyguardMonitorImpl(Context context) {
mContext = context;
mKeyguardUpdateMonitor = KeyguardUpdateMonitor.getInstance(mContext);
- mUserTracker = new CurrentUserTracker(mContext) {
- @Override
- public void onUserSwitched(int newUserId) {
- mCurrentUser = newUserId;
- updateCanSkipBouncerState();
- }
- };
}
@Override
@@ -76,10 +64,7 @@ public class KeyguardMonitorImpl extends KeyguardUpdateMonitorCallback
mCallbacks.add(callback);
if (mCallbacks.size() != 0 && !mListening) {
mListening = true;
- mCurrentUser = ActivityManager.getCurrentUser();
- updateCanSkipBouncerState();
mKeyguardUpdateMonitor.registerCallback(this);
- mUserTracker.startTracking();
}
}
@@ -89,7 +74,6 @@ public class KeyguardMonitorImpl extends KeyguardUpdateMonitorCallback
if (mCallbacks.remove(callback) && mCallbacks.size() == 0 && mListening) {
mListening = false;
mKeyguardUpdateMonitor.removeCallback(this);
- mUserTracker.stopTracking();
}
}
@@ -108,11 +92,6 @@ public class KeyguardMonitorImpl extends KeyguardUpdateMonitorCallback
return mOccluded;
}
- @Override
- public boolean canSkipBouncer() {
- return mCanSkipBouncer;
- }
-
public void notifyKeyguardState(boolean showing, boolean secure, boolean occluded) {
if (mShowing == showing && mSecure == secure && mOccluded == occluded) return;
mShowing = showing;
@@ -123,7 +102,6 @@ public class KeyguardMonitorImpl extends KeyguardUpdateMonitorCallback
@Override
public void onTrustChanged(int userId) {
- updateCanSkipBouncerState();
notifyKeyguardChanged();
}
@@ -131,10 +109,6 @@ public class KeyguardMonitorImpl extends KeyguardUpdateMonitorCallback
return mKeyguardUpdateMonitor.isDeviceInteractive();
}
- private void updateCanSkipBouncerState() {
- mCanSkipBouncer = mKeyguardUpdateMonitor.getUserCanSkipBouncer(mCurrentUser);
- }
-
private void notifyKeyguardChanged() {
// Copy the list to allow removal during callback.
new ArrayList<>(mCallbacks).forEach(Callback::onKeyguardShowingChanged);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java
index 395add76dda..35e3923f285 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java
@@ -61,6 +61,7 @@ import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.qs.DetailAdapter;
import com.android.systemui.qs.tiles.UserDetailView;
import com.android.systemui.statusbar.phone.SystemUIDialog;
+import com.android.systemui.statusbar.phone.UnlockMethodCache;
import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -595,17 +596,19 @@ public class UserSwitcherController implements Dumpable {
final UserSwitcherController mController;
private final KeyguardMonitor mKeyguardMonitor;
+ private final UnlockMethodCache mUnlockMethodCache;
protected BaseUserAdapter(UserSwitcherController controller) {
mController = controller;
mKeyguardMonitor = controller.mKeyguardMonitor;
+ mUnlockMethodCache = UnlockMethodCache.getInstance(controller.mContext);
controller.addAdapter(new WeakReference<>(this));
}
public int getUserCount() {
boolean secureKeyguardShowing = mKeyguardMonitor.isShowing()
&& mKeyguardMonitor.isSecure()
- && !mKeyguardMonitor.canSkipBouncer();
+ && !mUnlockMethodCache.canSkipBouncer();
if (!secureKeyguardShowing) {
return mController.getUsers().size();
}
@@ -627,7 +630,7 @@ public class UserSwitcherController implements Dumpable {
public int getCount() {
boolean secureKeyguardShowing = mKeyguardMonitor.isShowing()
&& mKeyguardMonitor.isSecure()
- && !mKeyguardMonitor.canSkipBouncer();
+ && !mUnlockMethodCache.canSkipBouncer();
if (!secureKeyguardShowing) {
return mController.getUsers().size();
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeKeyguardMonitor.java b/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeKeyguardMonitor.java
index 95c7a4d09f9..2fb0e0e7caf 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeKeyguardMonitor.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeKeyguardMonitor.java
@@ -80,9 +80,4 @@ public class FakeKeyguardMonitor implements KeyguardMonitor {
public long calculateGoingToFullShadeDelay() {
return 0;
}
-
- @Override
- public boolean canSkipBouncer() {
- return false;
- }
}