From 7d58e08fc49bbb6c4aafa8f2da5981ad61fc3b58 Mon Sep 17 00:00:00 2001 From: Tracy Zhou Date: Sat, 2 May 2020 14:26:24 -0700 Subject: [PATCH] Use adaptive icon in Settings Fixed the usage of icons in the following pages - apps info page (https://screenshot.googleplex.com/RLyDQ1PcO7X) - accounts page (https://screenshot.googleplex.com/VjY87JxrKqZ) Bug: 130916962 Test: Manual Change-Id: I3720fab1ce56505c85a175a8f4c550f6f465f507 --- .../src/com/android/settingslib/Utils.java | 20 +++++++++---------- .../accounts/AuthenticatorHelper.java | 4 +++- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/Utils.java b/packages/SettingsLib/src/com/android/settingslib/Utils.java index eb02a1c8b880a..a43412e116c85 100644 --- a/packages/SettingsLib/src/com/android/settingslib/Utils.java +++ b/packages/SettingsLib/src/com/android/settingslib/Utils.java @@ -29,8 +29,6 @@ import android.telephony.AccessNetworkConstants; import android.telephony.NetworkRegistrationInfo; import android.telephony.ServiceState; -import androidx.annotation.NonNull; - import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.UserIcons; import com.android.launcher3.icons.IconFactory; @@ -457,19 +455,21 @@ public class Utils { return state; } - /** - * Get the {@link Drawable} that represents the app icon - */ - public static @NonNull Drawable getBadgedIcon( - @NonNull Context context, @NonNull ApplicationInfo appInfo) { - final UserHandle user = UserHandle.getUserHandleForUid(appInfo.uid); + /** Get the corresponding adaptive icon drawable. */ + public static Drawable getBadgedIcon(Context context, Drawable icon, UserHandle user) { try (IconFactory iconFactory = IconFactory.obtain(context)) { - final Bitmap iconBmp = iconFactory.createBadgedIconBitmap( - appInfo.loadUnbadgedIcon(context.getPackageManager()), user, false).icon; + final Bitmap iconBmp = iconFactory.createBadgedIconBitmap(icon, user, + true /* shrinkNonAdaptiveIcons */).icon; return new BitmapDrawable(context.getResources(), iconBmp); } } + /** Get the {@link Drawable} that represents the app icon */ + public static Drawable getBadgedIcon(Context context, ApplicationInfo appInfo) { + return getBadgedIcon(context, appInfo.loadUnbadgedIcon(context.getPackageManager()), + UserHandle.getUserHandleForUid(appInfo.uid)); + } + private static boolean isNotInIwlan(ServiceState serviceState) { final NetworkRegistrationInfo networkRegWlan = serviceState.getNetworkRegistrationInfo( NetworkRegistrationInfo.DOMAIN_PS, diff --git a/packages/SettingsLib/src/com/android/settingslib/accounts/AuthenticatorHelper.java b/packages/SettingsLib/src/com/android/settingslib/accounts/AuthenticatorHelper.java index ef511bbc81331..4af9e3c441de0 100644 --- a/packages/SettingsLib/src/com/android/settingslib/accounts/AuthenticatorHelper.java +++ b/packages/SettingsLib/src/com/android/settingslib/accounts/AuthenticatorHelper.java @@ -32,6 +32,8 @@ import android.os.AsyncTask; import android.os.UserHandle; import android.util.Log; +import com.android.settingslib.Utils; + import java.util.ArrayList; import java.util.HashMap; import java.util.Map; @@ -116,7 +118,7 @@ final public class AuthenticatorHelper extends BroadcastReceiver { if (icon == null) { icon = context.getPackageManager().getDefaultActivityIcon(); } - return icon; + return Utils.getBadgedIcon(mContext, icon, mUserHandle); } /**