diff options
author | Xin Li <delphij@google.com> | 2024-03-06 09:30:05 -0800 |
---|---|---|
committer | Xin Li <delphij@google.com> | 2024-03-06 09:30:05 -0800 |
commit | 7e8ae158f4a73ee580c468d71ca9a1df6f90a8cd (patch) | |
tree | bd40604eb4b00a1a0e63edfe28cb0ebe33f23029 /src_ui_overrides/com/android/launcher3/uioverrides/ApiWrapper.java | |
parent | ded14cc2110e39408f74abac8a83e0a0f16608d2 (diff) | |
parent | 962f362912c24802026be9fe38aa0bb8e7dfa5c6 (diff) | |
download | Launcher3-7e8ae158f4a73ee580c468d71ca9a1df6f90a8cd.tar.gz |
Merge Android 14 QPR2 to AOSP main
Bug: 319669529
Merged-In: Ic9b3be62af2271286292cfaf30bda03351c1aaf6
Change-Id: I2af35abec8a5f2c046192cac6006d9cc759d93c9
Diffstat (limited to 'src_ui_overrides/com/android/launcher3/uioverrides/ApiWrapper.java')
-rw-r--r-- | src_ui_overrides/com/android/launcher3/uioverrides/ApiWrapper.java | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src_ui_overrides/com/android/launcher3/uioverrides/ApiWrapper.java b/src_ui_overrides/com/android/launcher3/uioverrides/ApiWrapper.java index 599a59154a..fe5c1fd000 100644 --- a/src_ui_overrides/com/android/launcher3/uioverrides/ApiWrapper.java +++ b/src_ui_overrides/com/android/launcher3/uioverrides/ApiWrapper.java @@ -21,10 +21,16 @@ import android.app.Person; import android.content.Context; import android.content.pm.LauncherActivityInfo; import android.content.pm.ShortcutInfo; +import android.graphics.drawable.ColorDrawable; +import android.os.UserHandle; +import android.os.UserManager; +import android.util.ArrayMap; import com.android.launcher3.Utilities; +import com.android.launcher3.util.UserIconInfo; import java.util.Collections; +import java.util.List; import java.util.Map; /** @@ -48,4 +54,41 @@ public class ApiWrapper { public static ActivityOptions createFadeOutAnimOptions(Context context) { return ActivityOptions.makeCustomAnimation(context, 0, android.R.anim.fade_out); } + + /** + * Returns a map of all users on the device to their corresponding UI properties + */ + public static Map<UserHandle, UserIconInfo> queryAllUsers(Context context) { + UserManager um = context.getSystemService(UserManager.class); + Map<UserHandle, UserIconInfo> users = new ArrayMap<>(); + List<UserHandle> usersActual = um.getUserProfiles(); + if (usersActual != null) { + for (UserHandle user : usersActual) { + long serial = um.getSerialNumberForUser(user); + + // Simple check to check if the provided user is work profile + // TODO: Migrate to a better platform API + NoopDrawable d = new NoopDrawable(); + boolean isWork = (d != context.getPackageManager().getUserBadgedIcon(d, user)); + UserIconInfo info = new UserIconInfo( + user, + isWork ? UserIconInfo.TYPE_WORK : UserIconInfo.TYPE_MAIN, + serial); + users.put(user, info); + } + } + return users; + } + + private static class NoopDrawable extends ColorDrawable { + @Override + public int getIntrinsicHeight() { + return 1; + } + + @Override + public int getIntrinsicWidth() { + return 1; + } + } } |