Loading packages/SettingsLib/src/com/android/settingslib/Utils.java +16 −5 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } } } } Loading Loading
packages/SettingsLib/src/com/android/settingslib/Utils.java +16 −5 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } } } } Loading