Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4b4b954d authored by Amith Yamasani's avatar Amith Yamasani
Browse files

Fix face unlock for multiple users

Bug: 7152537

Not all instances of LockPatternUtils are getting updated with the current user, so
query it directly from the Activity Manager.

Change-Id: I46395c3e00feecd0edfe4228f8d7966f425519f2
parent cd6e7e1b
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import com.android.internal.R;
import com.android.internal.telephony.ITelephony;
import com.google.android.collect.Lists;

import android.app.ActivityManagerNative;
import android.app.admin.DevicePolicyManager;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
@@ -225,7 +226,11 @@ public class LockPatternUtils {

    public int getCurrentUser() {
        if (Process.myUid() == Process.SYSTEM_UID) {
            try {
                return ActivityManagerNative.getDefault().getCurrentUser().id;
            } catch (RemoteException re) {
                return mCurrentUserId;
            }
        } else {
            throw new SecurityException("Only the system process can get the current user");
        }
+2 −1
Original line number Diff line number Diff line
@@ -153,7 +153,8 @@ public class FaceUnlock implements BiometricSensorUnlock, Handler.Callback {
        // This must show before bind to guarantee that Face Unlock has a place to display
        show(SERVICE_STARTUP_VIEW_TIMEOUT);
        if (!mBoundToService) {
            Log.d(TAG, "Binding to Face Unlock service");
            Log.d(TAG, "Binding to Face Unlock service for user="
                    + mLockPatternUtils.getCurrentUser());
            mContext.bindService(new Intent(IFaceLockInterface.class.getName()),
                    mConnection,
                    Context.BIND_AUTO_CREATE,