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

Commit f882f1ad authored by Amith Yamasani's avatar Amith Yamasani
Browse files

Bind to the correct face lock service.

When switching users, bind to the correct instance of FaceLock.

Tried to get the facelock screen to show up when switching users, but it
doesn't. Power off/on works, but not switching between users on the
lockscreen. Maybe a timing issue? Or not calling some function to make
the overlay visible?

Change-Id: I9300971331c7f0ed93ae7da28170342629426b20
parent d3ce6f50
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -223,6 +223,14 @@ public class LockPatternUtils {
        }
    }

    public int getCurrentUser() {
        if (Process.myUid() == Process.SYSTEM_UID) {
            return mCurrentUserId;
        } else {
            throw new SecurityException("Only the system process can get the current user");
        }
    }

    public void removeUser(int userId) {
        if (Process.myUid() == Process.SYSTEM_UID) {
            try {
+2 −1
Original line number Diff line number Diff line
@@ -213,7 +213,8 @@ public class FaceUnlock implements Handler.Callback {
                if (DEBUG) Log.d(TAG, "before bind to FaceLock service");
                mContext.bindService(new Intent(IFaceLockInterface.class.getName()),
                        mConnection,
                        Context.BIND_AUTO_CREATE);
                        Context.BIND_AUTO_CREATE,
                        mLockPatternUtils.getCurrentUser());
                if (DEBUG) Log.d(TAG, "after bind to FaceLock service");
                mBoundToService = true;
            } else {
+4 −1
Original line number Diff line number Diff line
@@ -703,6 +703,7 @@ public class LockPatternKeyguardView extends KeyguardViewBase {

        @Override
        public void onUserChanged(int userId) {
            mFaceUnlock.stopAndUnbind();
            mLockPatternUtils.setCurrentUser(userId);
            updateScreen(getInitialMode(), true);
        }
@@ -817,7 +818,9 @@ public class LockPatternKeyguardView extends KeyguardViewBase {
            if (force || mUnlockScreen == null || unlockMode != mUnlockScreenMode) {
                boolean restartFaceLock = mFaceUnlock.stopIfRunning();
                recreateUnlockScreen(unlockMode);
                if (restartFaceLock) mFaceUnlock.activateIfAble(mHasOverlay);
                if (restartFaceLock || force) {
                    mFaceUnlock.activateIfAble(mHasOverlay);
                }
            }
        }