Loading core/java/com/android/internal/widget/ILockSettings.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -44,4 +44,5 @@ interface ILockSettings { void requireStrongAuth(int strongAuthReason, int userId); void systemReady(); void userPresent(int userId); int getStrongAuthForUser(int userId); } core/java/com/android/internal/widget/LockPatternUtils.java +28 −3 Original line number Diff line number Diff line Loading @@ -1451,6 +1451,32 @@ public class LockPatternUtils { } } /** * @see StrongAuthTracker#getStrongAuthForUser */ public int getStrongAuthForUser(int userId) { try { return getLockSettings().getStrongAuthForUser(userId); } catch (RemoteException e) { Log.e(TAG, "Could not get StrongAuth", e); return StrongAuthTracker.getDefaultFlags(mContext); } } /** * @see StrongAuthTracker#isTrustAllowedForUser */ public boolean isTrustAllowedForUser(int userId) { return getStrongAuthForUser(userId) == StrongAuthTracker.STRONG_AUTH_NOT_REQUIRED; } /** * @see StrongAuthTracker#isFingerprintAllowedForUser */ public boolean isFingerprintAllowedForUser(int userId) { return (getStrongAuthForUser(userId) & ~StrongAuthTracker.ALLOWING_FINGERPRINT) == 0; } /** * Tracks the global strong authentication state. */ Loading Loading @@ -1556,9 +1582,8 @@ public class LockPatternUtils { public void onStrongAuthRequiredChanged(int userId) { } void handleStrongAuthRequiredChanged(@StrongAuthFlags int strongAuthFlags, protected void handleStrongAuthRequiredChanged(@StrongAuthFlags int strongAuthFlags, int userId) { int oldValue = getStrongAuthForUser(userId); if (strongAuthFlags != oldValue) { if (strongAuthFlags == mDefaultStrongAuthFlags) { Loading @@ -1571,7 +1596,7 @@ public class LockPatternUtils { } final IStrongAuthTracker.Stub mStub = new IStrongAuthTracker.Stub() { protected final IStrongAuthTracker.Stub mStub = new IStrongAuthTracker.Stub() { @Override public void onStrongAuthRequiredChanged(@StrongAuthFlags int strongAuthFlags, int userId) { Loading services/core/java/com/android/server/LockSettingsService.java +34 −0 Original line number Diff line number Diff line Loading @@ -120,6 +120,7 @@ public class LockSettingsService extends ILockSettings.Stub { private final Context mContext; private final LockSettingsStorage mStorage; private final LockSettingsStrongAuth mStrongAuth; private final SynchronizedStrongAuthTracker mStrongAuthTracker; private LockPatternUtils mLockPatternUtils; private boolean mFirstCallToVold; Loading Loading @@ -177,6 +178,30 @@ public class LockSettingsService extends ILockSettings.Stub { } } private class SynchronizedStrongAuthTracker extends LockPatternUtils.StrongAuthTracker { public SynchronizedStrongAuthTracker(Context context) { super(context); } @Override protected void handleStrongAuthRequiredChanged(int strongAuthFlags, int userId) { synchronized (this) { super.handleStrongAuthRequiredChanged(strongAuthFlags, userId); } } @Override public int getStrongAuthForUser(int userId) { synchronized (this) { return super.getStrongAuthForUser(userId); } } void register() { mStrongAuth.registerStrongAuthTracker(this.mStub); } } /** * Tie managed profile to primary profile if it is in unified mode and not tied before. * Loading Loading @@ -245,6 +270,9 @@ public class LockSettingsService extends ILockSettings.Stub { mNotificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE); mStrongAuthTracker = new SynchronizedStrongAuthTracker(mContext); mStrongAuthTracker.register(); } /** Loading Loading @@ -1398,6 +1426,12 @@ public class LockSettingsService extends ILockSettings.Stub { mStrongAuth.reportUnlock(userId); } @Override public int getStrongAuthForUser(int userId) { checkPasswordReadPermission(userId); return mStrongAuthTracker.getStrongAuthForUser(userId); } private static final String[] VALID_SETTINGS = new String[] { LockPatternUtils.LOCKOUT_PERMANENT_KEY, LockPatternUtils.LOCKOUT_ATTEMPT_DEADLINE, Loading Loading
core/java/com/android/internal/widget/ILockSettings.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -44,4 +44,5 @@ interface ILockSettings { void requireStrongAuth(int strongAuthReason, int userId); void systemReady(); void userPresent(int userId); int getStrongAuthForUser(int userId); }
core/java/com/android/internal/widget/LockPatternUtils.java +28 −3 Original line number Diff line number Diff line Loading @@ -1451,6 +1451,32 @@ public class LockPatternUtils { } } /** * @see StrongAuthTracker#getStrongAuthForUser */ public int getStrongAuthForUser(int userId) { try { return getLockSettings().getStrongAuthForUser(userId); } catch (RemoteException e) { Log.e(TAG, "Could not get StrongAuth", e); return StrongAuthTracker.getDefaultFlags(mContext); } } /** * @see StrongAuthTracker#isTrustAllowedForUser */ public boolean isTrustAllowedForUser(int userId) { return getStrongAuthForUser(userId) == StrongAuthTracker.STRONG_AUTH_NOT_REQUIRED; } /** * @see StrongAuthTracker#isFingerprintAllowedForUser */ public boolean isFingerprintAllowedForUser(int userId) { return (getStrongAuthForUser(userId) & ~StrongAuthTracker.ALLOWING_FINGERPRINT) == 0; } /** * Tracks the global strong authentication state. */ Loading Loading @@ -1556,9 +1582,8 @@ public class LockPatternUtils { public void onStrongAuthRequiredChanged(int userId) { } void handleStrongAuthRequiredChanged(@StrongAuthFlags int strongAuthFlags, protected void handleStrongAuthRequiredChanged(@StrongAuthFlags int strongAuthFlags, int userId) { int oldValue = getStrongAuthForUser(userId); if (strongAuthFlags != oldValue) { if (strongAuthFlags == mDefaultStrongAuthFlags) { Loading @@ -1571,7 +1596,7 @@ public class LockPatternUtils { } final IStrongAuthTracker.Stub mStub = new IStrongAuthTracker.Stub() { protected final IStrongAuthTracker.Stub mStub = new IStrongAuthTracker.Stub() { @Override public void onStrongAuthRequiredChanged(@StrongAuthFlags int strongAuthFlags, int userId) { Loading
services/core/java/com/android/server/LockSettingsService.java +34 −0 Original line number Diff line number Diff line Loading @@ -120,6 +120,7 @@ public class LockSettingsService extends ILockSettings.Stub { private final Context mContext; private final LockSettingsStorage mStorage; private final LockSettingsStrongAuth mStrongAuth; private final SynchronizedStrongAuthTracker mStrongAuthTracker; private LockPatternUtils mLockPatternUtils; private boolean mFirstCallToVold; Loading Loading @@ -177,6 +178,30 @@ public class LockSettingsService extends ILockSettings.Stub { } } private class SynchronizedStrongAuthTracker extends LockPatternUtils.StrongAuthTracker { public SynchronizedStrongAuthTracker(Context context) { super(context); } @Override protected void handleStrongAuthRequiredChanged(int strongAuthFlags, int userId) { synchronized (this) { super.handleStrongAuthRequiredChanged(strongAuthFlags, userId); } } @Override public int getStrongAuthForUser(int userId) { synchronized (this) { return super.getStrongAuthForUser(userId); } } void register() { mStrongAuth.registerStrongAuthTracker(this.mStub); } } /** * Tie managed profile to primary profile if it is in unified mode and not tied before. * Loading Loading @@ -245,6 +270,9 @@ public class LockSettingsService extends ILockSettings.Stub { mNotificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE); mStrongAuthTracker = new SynchronizedStrongAuthTracker(mContext); mStrongAuthTracker.register(); } /** Loading Loading @@ -1398,6 +1426,12 @@ public class LockSettingsService extends ILockSettings.Stub { mStrongAuth.reportUnlock(userId); } @Override public int getStrongAuthForUser(int userId) { checkPasswordReadPermission(userId); return mStrongAuthTracker.getStrongAuthForUser(userId); } private static final String[] VALID_SETTINGS = new String[] { LockPatternUtils.LOCKOUT_PERMANENT_KEY, LockPatternUtils.LOCKOUT_ATTEMPT_DEADLINE, Loading