diff options
| -rw-r--r-- | core/java/android/content/Intent.java | 11 | ||||
| -rw-r--r-- | data/etc/preinstalled-packages-platform.xml | 5 | ||||
| -rw-r--r-- | services/core/java/com/android/server/pm/UserManagerService.java | 9 |
3 files changed, 23 insertions, 2 deletions
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index 3d75423edfa9..b4f9f7488b19 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -4215,6 +4215,17 @@ public class Intent implements Parcelable, Cloneable { public static final String ACTION_USER_INFO_CHANGED = "android.intent.action.USER_INFO_CHANGED"; + + /** + * Broadcast sent to the system when a user's information changes. Carries an extra + * {@link #EXTRA_USER_HANDLE} to indicate which user's information changed. + * This is only sent to permission protected manifest receivers. It is sent to all users. + * @hide + */ + @BroadcastBehavior(includeBackground = true) + public static final String ACTION_USER_INFO_CHANGED_BACKGROUND = + "android.intent.action.USER_INFO_CHANGED_BACKGROUND"; + /** * Broadcast sent to the primary user when an associated managed profile is added (the profile * was created and is ready to be used). Carries an extra {@link #EXTRA_USER} that specifies diff --git a/data/etc/preinstalled-packages-platform.xml b/data/etc/preinstalled-packages-platform.xml index 782327713fdc..3403bbfa2384 100644 --- a/data/etc/preinstalled-packages-platform.xml +++ b/data/etc/preinstalled-packages-platform.xml @@ -134,4 +134,9 @@ to pre-existing users, but cannot uninstall pre-existing system packages from pr <install-in-user-type package="com.android.avatarpicker"> <install-in user-type="FULL" /> </install-in-user-type> + + <!-- Users Widget (Users widget)--> + <install-in-user-type package="com.android.multiuser"> + <install-in user-type="FULL" /> + </install-in-user-type> </config> diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index 8249d65868cd..4bd4b50d4166 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -3312,13 +3312,18 @@ public class UserManagerService extends IUserManager.Stub { } } - - private void sendUserInfoChangedBroadcast(@UserIdInt int userId) { Intent changedIntent = new Intent(Intent.ACTION_USER_INFO_CHANGED); changedIntent.putExtra(Intent.EXTRA_USER_HANDLE, userId); changedIntent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); mContext.sendBroadcastAsUser(changedIntent, UserHandle.ALL); + + // This intent allow system UI apps to refresh the content even if process was freezed. + Intent bgIntent = new Intent(Intent.ACTION_USER_INFO_CHANGED_BACKGROUND); + bgIntent.putExtra(Intent.EXTRA_USER_HANDLE, userId); + bgIntent.addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND); + mContext.sendBroadcastAsUser(bgIntent, UserHandle.ALL, + Manifest.permission.MANAGE_USERS); } @Override |