Merge "Set DeviceLockedForUser state synchronously" into nyc-mr1-dev
This commit is contained in:
@@ -102,9 +102,8 @@ public class TrustManagerService extends SystemService {
|
|||||||
private static final int MSG_START_USER = 7;
|
private static final int MSG_START_USER = 7;
|
||||||
private static final int MSG_CLEANUP_USER = 8;
|
private static final int MSG_CLEANUP_USER = 8;
|
||||||
private static final int MSG_SWITCH_USER = 9;
|
private static final int MSG_SWITCH_USER = 9;
|
||||||
private static final int MSG_SET_DEVICE_LOCKED = 10;
|
private static final int MSG_FLUSH_TRUST_USUALLY_MANAGED = 10;
|
||||||
private static final int MSG_FLUSH_TRUST_USUALLY_MANAGED = 11;
|
private static final int MSG_UNLOCK_USER = 11;
|
||||||
private static final int MSG_UNLOCK_USER = 12;
|
|
||||||
|
|
||||||
private static final int TRUST_USUALLY_MANAGED_FLUSH_DELAY = 2 * 60 * 1000;
|
private static final int TRUST_USUALLY_MANAGED_FLUSH_DELAY = 2 * 60 * 1000;
|
||||||
|
|
||||||
@@ -317,20 +316,6 @@ public class TrustManagerService extends SystemService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDeviceLockedForUser(int userId, boolean locked) {
|
|
||||||
if (mLockPatternUtils.isSeparateProfileChallengeEnabled(userId)) {
|
|
||||||
synchronized (mDeviceLockedForUser) {
|
|
||||||
mDeviceLockedForUser.put(userId, locked);
|
|
||||||
}
|
|
||||||
if (locked) {
|
|
||||||
try {
|
|
||||||
ActivityManagerNative.getDefault().notifyLockedProfile(userId);
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean isDeviceLockedInner(int userId) {
|
boolean isDeviceLockedInner(int userId) {
|
||||||
synchronized (mDeviceLockedForUser) {
|
synchronized (mDeviceLockedForUser) {
|
||||||
return mDeviceLockedForUser.get(userId, true);
|
return mDeviceLockedForUser.get(userId, true);
|
||||||
@@ -838,10 +823,24 @@ public class TrustManagerService extends SystemService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setDeviceLockedForUser(int userId, boolean value) {
|
public void setDeviceLockedForUser(int userId, boolean locked) {
|
||||||
enforceReportPermission();
|
enforceReportPermission();
|
||||||
mHandler.obtainMessage(MSG_SET_DEVICE_LOCKED, value ? 1 : 0, userId)
|
final long identity = Binder.clearCallingIdentity();
|
||||||
.sendToTarget();
|
try {
|
||||||
|
if (mLockPatternUtils.isSeparateProfileChallengeEnabled(userId)) {
|
||||||
|
synchronized (mDeviceLockedForUser) {
|
||||||
|
mDeviceLockedForUser.put(userId, locked);
|
||||||
|
}
|
||||||
|
if (locked) {
|
||||||
|
try {
|
||||||
|
ActivityManagerNative.getDefault().notifyLockedProfile(userId);
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
Binder.restoreCallingIdentity(identity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -917,9 +916,6 @@ public class TrustManagerService extends SystemService {
|
|||||||
mCurrentUser = msg.arg1;
|
mCurrentUser = msg.arg1;
|
||||||
refreshDeviceLockedForUser(UserHandle.USER_ALL);
|
refreshDeviceLockedForUser(UserHandle.USER_ALL);
|
||||||
break;
|
break;
|
||||||
case MSG_SET_DEVICE_LOCKED:
|
|
||||||
setDeviceLockedForUser(msg.arg2, msg.arg1 != 0);
|
|
||||||
break;
|
|
||||||
case MSG_FLUSH_TRUST_USUALLY_MANAGED:
|
case MSG_FLUSH_TRUST_USUALLY_MANAGED:
|
||||||
SparseBooleanArray usuallyManaged;
|
SparseBooleanArray usuallyManaged;
|
||||||
synchronized (mTrustUsuallyManagedForUser) {
|
synchronized (mTrustUsuallyManagedForUser) {
|
||||||
|
|||||||
Reference in New Issue
Block a user