summaryrefslogtreecommitdiff
path: root/src_ui_overrides/com/android/launcher3/uioverrides/ApiWrapper.java
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2024-03-06 09:30:05 -0800
committerXin Li <delphij@google.com>2024-03-06 09:30:05 -0800
commit7e8ae158f4a73ee580c468d71ca9a1df6f90a8cd (patch)
treebd40604eb4b00a1a0e63edfe28cb0ebe33f23029 /src_ui_overrides/com/android/launcher3/uioverrides/ApiWrapper.java
parentded14cc2110e39408f74abac8a83e0a0f16608d2 (diff)
parent962f362912c24802026be9fe38aa0bb8e7dfa5c6 (diff)
downloadLauncher3-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.java43
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;
+ }
+ }
}