Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3acfe8e6 authored by Sunny Goyal's avatar Sunny Goyal Committed by Android (Google) Code Review
Browse files

Merge "Generalize userproperties to support for more user types in iconCache" into main

parents fa4f576d 32d3648b
Loading
Loading
Loading
Loading
+16 −5
Original line number Original line Diff line number Diff line
@@ -54,6 +54,7 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.UserIcons;
import com.android.internal.util.UserIcons;
import com.android.launcher3.icons.BaseIconFactory.IconOptions;
import com.android.launcher3.icons.BaseIconFactory.IconOptions;
import com.android.launcher3.icons.IconFactory;
import com.android.launcher3.icons.IconFactory;
import com.android.launcher3.util.UserIconInfo;
import com.android.settingslib.drawable.UserIconDrawable;
import com.android.settingslib.drawable.UserIconDrawable;
import com.android.settingslib.fuelgauge.BatteryStatus;
import com.android.settingslib.fuelgauge.BatteryStatus;
import com.android.settingslib.utils.BuildCompatUtils;
import com.android.settingslib.utils.BuildCompatUtils;
@@ -597,15 +598,25 @@ public class Utils {


    /** Get the corresponding adaptive icon drawable. */
    /** Get the corresponding adaptive icon drawable. */
    public static Drawable getBadgedIcon(Context context, Drawable icon, UserHandle user) {
    public static Drawable getBadgedIcon(Context context, Drawable icon, UserHandle user) {
        UserManager um = context.getSystemService(UserManager.class);
        int userType = UserIconInfo.TYPE_MAIN;
        boolean isClone = um.getProfiles(user.getIdentifier()).stream()
        try {
                .anyMatch(profile ->
            UserInfo ui = context.getSystemService(UserManager.class).getUserInfo(
                        profile.isCloneProfile() && profile.id == user.getIdentifier());
                    user.getIdentifier());
            if (ui != null) {
                if (ui.isCloneProfile()) {
                    userType = UserIconInfo.TYPE_CLONED;
                } else if (ui.isManagedProfile()) {
                    userType = UserIconInfo.TYPE_WORK;
                }
            }
        } catch (Exception e) {
            // Ignore
        }
        try (IconFactory iconFactory = IconFactory.obtain(context)) {
        try (IconFactory iconFactory = IconFactory.obtain(context)) {
            return iconFactory
            return iconFactory
                    .createBadgedIconBitmap(
                    .createBadgedIconBitmap(
                            icon,
                            icon,
                            new IconOptions().setUser(user).setIsCloneProfile(isClone))
                            new IconOptions().setUser(new UserIconInfo(user, userType)))
                    .newIcon(context);
                    .newIcon(context);
        }
        }
    }
    }