Merge "StrongAuthTracker: Don\'t rely on USER_PRESENT" into nyc-dev
am: c142a8c
* commit 'c142a8c43fa7d1b6c9d797e044060755d9ecfcd6':
StrongAuthTracker: Don't rely on USER_PRESENT
Change-Id: Id81115f8311e797f0b7d8a435226ea5862a9550a
This commit is contained in:
@@ -43,4 +43,5 @@ interface ILockSettings {
|
|||||||
void unregisterStrongAuthTracker(in IStrongAuthTracker tracker);
|
void unregisterStrongAuthTracker(in IStrongAuthTracker tracker);
|
||||||
void requireStrongAuth(int strongAuthReason, int userId);
|
void requireStrongAuth(int strongAuthReason, int userId);
|
||||||
void systemReady();
|
void systemReady();
|
||||||
|
void userPresent(int userId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -172,6 +172,14 @@ public class LockPatternUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void userPresent(int userId) {
|
||||||
|
try {
|
||||||
|
getLockSettings().userPresent(userId);
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
throw e.rethrowFromSystemServer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static final class RequestThrottledException extends Exception {
|
public static final class RequestThrottledException extends Exception {
|
||||||
private int mTimeoutMs;
|
private int mTimeoutMs;
|
||||||
public RequestThrottledException(int timeoutMs) {
|
public RequestThrottledException(int timeoutMs) {
|
||||||
|
|||||||
@@ -1477,12 +1477,14 @@ public class KeyguardViewMediator extends SystemUI {
|
|||||||
private void sendUserPresentBroadcast() {
|
private void sendUserPresentBroadcast() {
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
if (mBootCompleted) {
|
if (mBootCompleted) {
|
||||||
final UserHandle currentUser = new UserHandle(KeyguardUpdateMonitor.getCurrentUser());
|
int currentUserId = KeyguardUpdateMonitor.getCurrentUser();
|
||||||
|
final UserHandle currentUser = new UserHandle(currentUserId);
|
||||||
final UserManager um = (UserManager) mContext.getSystemService(
|
final UserManager um = (UserManager) mContext.getSystemService(
|
||||||
Context.USER_SERVICE);
|
Context.USER_SERVICE);
|
||||||
for (int profileId : um.getProfileIdsWithDisabled(currentUser.getIdentifier())) {
|
for (int profileId : um.getProfileIdsWithDisabled(currentUser.getIdentifier())) {
|
||||||
mContext.sendBroadcastAsUser(USER_PRESENT_INTENT, UserHandle.of(profileId));
|
mContext.sendBroadcastAsUser(USER_PRESENT_INTENT, UserHandle.of(profileId));
|
||||||
}
|
}
|
||||||
|
getLockPatternUtils().userPresent(currentUserId);
|
||||||
} else {
|
} else {
|
||||||
mBootSendUserPresent = true;
|
mBootSendUserPresent = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -229,7 +229,6 @@ public class LockSettingsService extends ILockSettings.Stub {
|
|||||||
filter.addAction(Intent.ACTION_USER_ADDED);
|
filter.addAction(Intent.ACTION_USER_ADDED);
|
||||||
filter.addAction(Intent.ACTION_USER_STARTING);
|
filter.addAction(Intent.ACTION_USER_STARTING);
|
||||||
filter.addAction(Intent.ACTION_USER_REMOVED);
|
filter.addAction(Intent.ACTION_USER_REMOVED);
|
||||||
filter.addAction(Intent.ACTION_USER_PRESENT);
|
|
||||||
mContext.registerReceiverAsUser(mBroadcastReceiver, UserHandle.ALL, filter, null, null);
|
mContext.registerReceiverAsUser(mBroadcastReceiver, UserHandle.ALL, filter, null, null);
|
||||||
|
|
||||||
mStorage = new LockSettingsStorage(context, new LockSettingsStorage.Callback() {
|
mStorage = new LockSettingsStorage(context, new LockSettingsStorage.Callback() {
|
||||||
@@ -369,8 +368,6 @@ public class LockSettingsService extends ILockSettings.Stub {
|
|||||||
} else if (Intent.ACTION_USER_STARTING.equals(intent.getAction())) {
|
} else if (Intent.ACTION_USER_STARTING.equals(intent.getAction())) {
|
||||||
final int userHandle = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0);
|
final int userHandle = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0);
|
||||||
mStorage.prefetchUser(userHandle);
|
mStorage.prefetchUser(userHandle);
|
||||||
} else if (Intent.ACTION_USER_PRESENT.equals(intent.getAction())) {
|
|
||||||
mStrongAuth.reportUnlock(getSendingUserId());
|
|
||||||
} else if (Intent.ACTION_USER_REMOVED.equals(intent.getAction())) {
|
} else if (Intent.ACTION_USER_REMOVED.equals(intent.getAction())) {
|
||||||
final int userHandle = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0);
|
final int userHandle = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0);
|
||||||
if (userHandle > 0) {
|
if (userHandle > 0) {
|
||||||
@@ -1347,6 +1344,12 @@ public class LockSettingsService extends ILockSettings.Stub {
|
|||||||
mStrongAuth.requireStrongAuth(strongAuthReason, userId);
|
mStrongAuth.requireStrongAuth(strongAuthReason, userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void userPresent(int userId) {
|
||||||
|
checkWritePermission(userId);
|
||||||
|
mStrongAuth.reportUnlock(userId);
|
||||||
|
}
|
||||||
|
|
||||||
private static final String[] VALID_SETTINGS = new String[] {
|
private static final String[] VALID_SETTINGS = new String[] {
|
||||||
LockPatternUtils.LOCKOUT_PERMANENT_KEY,
|
LockPatternUtils.LOCKOUT_PERMANENT_KEY,
|
||||||
LockPatternUtils.LOCKOUT_ATTEMPT_DEADLINE,
|
LockPatternUtils.LOCKOUT_ATTEMPT_DEADLINE,
|
||||||
|
|||||||
@@ -974,7 +974,6 @@ public class TrustManagerService extends SystemService {
|
|||||||
public void register(Context context) {
|
public void register(Context context) {
|
||||||
IntentFilter filter = new IntentFilter();
|
IntentFilter filter = new IntentFilter();
|
||||||
filter.addAction(DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED);
|
filter.addAction(DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED);
|
||||||
filter.addAction(Intent.ACTION_USER_PRESENT);
|
|
||||||
filter.addAction(Intent.ACTION_USER_ADDED);
|
filter.addAction(Intent.ACTION_USER_ADDED);
|
||||||
filter.addAction(Intent.ACTION_USER_REMOVED);
|
filter.addAction(Intent.ACTION_USER_REMOVED);
|
||||||
context.registerReceiverAsUser(this,
|
context.registerReceiverAsUser(this,
|
||||||
|
|||||||
Reference in New Issue
Block a user