Merge "Send ACTION_MANAGED_PROFILE_REMOVED broadcast."

This commit is contained in:
Amith Yamasani
2014-05-02 20:58:54 +00:00
committed by Android (Google) Code Review

View File

@@ -1092,6 +1092,9 @@ public class UserManagerService extends IUserManager.Stub {
// on next startup, in case the runtime stops now before stopping and
// removing the user completely.
user.partial = true;
// Mark it as disabled, so that it isn't returned any more when
// profiles are queried.
user.flags |= UserInfo.FLAG_DISABLED;
writeUserLocked(user);
}
if (DBG) Slog.i(LOG_TAG, "Stopping user " + userHandle);
@@ -1120,6 +1123,7 @@ public class UserManagerService extends IUserManager.Stub {
// wiping the user's system directory and removing from the user list
long ident = Binder.clearCallingIdentity();
try {
final boolean isManaged = getUserInfo(userHandle).isManagedProfile();
Intent addedIntent = new Intent(Intent.ACTION_USER_REMOVED);
addedIntent.putExtra(Intent.EXTRA_USER_HANDLE, userHandle);
mContext.sendOrderedBroadcastAsUser(addedIntent, UserHandle.ALL,
@@ -1140,6 +1144,11 @@ public class UserManagerService extends IUserManager.Stub {
removeUserStateLocked(userHandle);
}
}
// Send broadcast to notify system that the user removed was a
// managed user.
if (isManaged) {
sendProfileRemovedBroadcast(userHandle);
}
}
}.start();
}
@@ -1191,6 +1200,13 @@ public class UserManagerService extends IUserManager.Stub {
parent.delete();
}
private void sendProfileRemovedBroadcast(int userHandle) {
Intent managedProfileIntent = new Intent(Intent.ACTION_MANAGED_PROFILE_REMOVED);
managedProfileIntent.putExtra(Intent.EXTRA_USER, new UserHandle(userHandle));
// Note: This makes an assumption that the parent owner is user 0.
mContext.sendBroadcastAsUser(managedProfileIntent, UserHandle.OWNER, null);
}
@Override
public Bundle getApplicationRestrictions(String packageName) {
return getApplicationRestrictionsForUser(packageName, UserHandle.getCallingUserId());