Merge "Enabling Face Unlock for user switching (bug 8495282)" into jb-mr2-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
3f1375e50f
@ -151,7 +151,9 @@ public class KeyguardFaceUnlockView extends LinearLayout implements KeyguardSecu
|
||||
public void onResume(int reason) {
|
||||
if (DEBUG) Log.d(TAG, "onResume()");
|
||||
mIsShowing = KeyguardUpdateMonitor.getInstance(mContext).isKeyguardVisible();
|
||||
maybeStartBiometricUnlock();
|
||||
if (!KeyguardUpdateMonitor.getInstance(mContext).isSwitchingUser()) {
|
||||
maybeStartBiometricUnlock();
|
||||
}
|
||||
KeyguardUpdateMonitor.getInstance(mContext).registerCallback(mUpdateCallback);
|
||||
|
||||
// Registers a callback which handles stopping the biometric unlock and restarting it in
|
||||
@ -268,6 +270,14 @@ public class KeyguardFaceUnlockView extends LinearLayout implements KeyguardSecu
|
||||
// mLockPatternUtils.setCurrentUser(userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUserSwitchComplete(int userId) {
|
||||
if (DEBUG) Log.d(TAG, "onUserSwitchComplete(" + userId + ")");
|
||||
if (mBiometricUnlock != null) {
|
||||
maybeStartBiometricUnlock();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onKeyguardVisibilityChanged(boolean showing) {
|
||||
if (DEBUG) Log.d(TAG, "onKeyguardVisibilityChanged(" + showing + ")");
|
||||
|
@ -124,6 +124,8 @@ public class KeyguardUpdateMonitor {
|
||||
mCallbacks = Lists.newArrayList();
|
||||
private ContentObserver mDeviceProvisionedObserver;
|
||||
|
||||
private boolean mSwitchingUser;
|
||||
|
||||
private final Handler mHandler = new Handler() {
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
@ -461,11 +463,13 @@ public class KeyguardUpdateMonitor {
|
||||
public void onUserSwitching(int newUserId, IRemoteCallback reply) {
|
||||
mHandler.sendMessage(mHandler.obtainMessage(MSG_USER_SWITCHING,
|
||||
newUserId, 0, reply));
|
||||
mSwitchingUser = true;
|
||||
}
|
||||
@Override
|
||||
public void onUserSwitchComplete(int newUserId) throws RemoteException {
|
||||
mHandler.sendMessage(mHandler.obtainMessage(MSG_USER_SWITCH_COMPLETE,
|
||||
newUserId));
|
||||
mSwitchingUser = false;
|
||||
}
|
||||
});
|
||||
} catch (RemoteException e) {
|
||||
@ -529,7 +533,6 @@ public class KeyguardUpdateMonitor {
|
||||
cb.onUserSwitching(userId);
|
||||
}
|
||||
}
|
||||
setAlternateUnlockEnabled(false);
|
||||
try {
|
||||
reply.sendResult(null);
|
||||
} catch (RemoteException e) {
|
||||
@ -733,6 +736,10 @@ public class KeyguardUpdateMonitor {
|
||||
return mKeyguardIsVisible;
|
||||
}
|
||||
|
||||
public boolean isSwitchingUser() {
|
||||
return mSwitchingUser;
|
||||
}
|
||||
|
||||
private static boolean isBatteryUpdateInteresting(BatteryStatus old, BatteryStatus current) {
|
||||
final boolean nowPluggedIn = current.isPluggedIn();
|
||||
final boolean wasPluggedIn = old.isPluggedIn();
|
||||
|
@ -319,8 +319,9 @@ public class KeyguardViewMediator {
|
||||
mSwitchingUser = true;
|
||||
resetStateLocked(null);
|
||||
adjustStatusBarLocked();
|
||||
// Disable face unlock when the user switches.
|
||||
KeyguardUpdateMonitor.getInstance(mContext).setAlternateUnlockEnabled(false);
|
||||
// When we switch users we want to bring the new user to the biometric unlock even
|
||||
// if the current user has gone to the backup.
|
||||
KeyguardUpdateMonitor.getInstance(mContext).setAlternateUnlockEnabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user