Merge "Enabling Face Unlock for user switching (bug 8495282)" into jb-mr2-dev

This commit is contained in:
Brian Colonna
2013-04-15 21:20:08 +00:00
committed by Android (Google) Code Review
3 changed files with 22 additions and 4 deletions

View File

@ -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 + ")");

View File

@ -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();

View File

@ -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);
}
}