am 6f6facc1: Merge "Ignoring FUL unlock signal if user changed fixes b/7572354" into jb-mr1.1-dev

* commit '6f6facc17812fe529f3de0b75de5f9011d73eacc':
  Ignoring FUL unlock signal if user changed fixes b/7572354
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/FaceUnlock.java b/policy/src/com/android/internal/policy/impl/keyguard/FaceUnlock.java
index 259f1e4..830471a 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/FaceUnlock.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/FaceUnlock.java
@@ -31,6 +31,7 @@
 import android.os.Message;
 import android.os.PowerManager;
 import android.os.RemoteException;
+import android.os.UserHandle;
 import android.util.Log;
 import android.view.View;
 
@@ -214,7 +215,7 @@
                 handleServiceDisconnected();
                 break;
             case MSG_UNLOCK:
-                handleUnlock();
+                handleUnlock(msg.arg1);
                 break;
             case MSG_CANCEL:
                 handleCancel();
@@ -297,11 +298,18 @@
     /**
      * Stops the Face Unlock service and tells the device to grant access to the user.
      */
-    void handleUnlock() {
+    void handleUnlock(int authenticatedUserId) {
         if (DEBUG) Log.d(TAG, "handleUnlock()");
         stop();
-        mKeyguardScreenCallback.reportSuccessfulUnlockAttempt();
-        mKeyguardScreenCallback.dismiss(true);
+        int currentUserId = mLockPatternUtils.getCurrentUser();
+        if (authenticatedUserId == currentUserId) {
+            if (DEBUG) Log.d(TAG, "Unlocking for user " + authenticatedUserId);
+            mKeyguardScreenCallback.reportSuccessfulUnlockAttempt();
+            mKeyguardScreenCallback.dismiss(true);
+        } else {
+            Log.d(TAG, "Ignoring unlock for authenticated user (" + authenticatedUserId +
+                    ") because the current user is " + currentUserId);
+        }
     }
 
     /**
@@ -420,7 +428,8 @@
          */
         public void unlock() {
             if (DEBUG) Log.d(TAG, "unlock()");
-            mHandler.sendEmptyMessage(MSG_UNLOCK);
+            Message message = mHandler.obtainMessage(MSG_UNLOCK, UserHandle.getCallingUserId(), -1);
+            mHandler.sendMessage(message);
         }
 
         /**