Merge "Use UnlockMethodCache#canSkipBouncer in user switcher" into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
57e8d83cab
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -80,9 +80,4 @@ public class FakeKeyguardMonitor implements KeyguardMonitor {
|
||||
public long calculateGoingToFullShadeDelay() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canSkipBouncer() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user