diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index ad5c2949fde..024569b3173 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -82,6 +82,7 @@
14dp
26dp
+ 48dp
16dp
7dp
diff --git a/src/com/android/settings/notification/NotificationBackend.java b/src/com/android/settings/notification/NotificationBackend.java
index c8fb7e3aa6c..d6f89863b88 100644
--- a/src/com/android/settings/notification/NotificationBackend.java
+++ b/src/com/android/settings/notification/NotificationBackend.java
@@ -37,6 +37,8 @@ import android.content.pm.PackageManager;
import android.content.pm.ParceledListSlice;
import android.content.pm.ShortcutInfo;
import android.content.pm.ShortcutManager;
+import android.graphics.Bitmap;
+import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.RemoteException;
import android.os.ServiceManager;
@@ -51,6 +53,7 @@ import androidx.annotation.VisibleForTesting;
import com.android.settingslib.R;
import com.android.settingslib.Utils;
+import com.android.settingslib.notification.ConversationIconFactory;
import com.android.settingslib.utils.StringUtil;
import java.util.ArrayList;
@@ -509,10 +512,15 @@ public class NotificationBackend {
return null;
}
- public Drawable getConversationDrawable(Context context, ShortcutInfo info) {
- LauncherApps la = context.getSystemService(LauncherApps.class);
- return la.getShortcutBadgedIconDrawable(info,
- context.getResources().getDisplayMetrics().densityDpi);
+ public Drawable getConversationDrawable(Context context, ShortcutInfo info, String pkg,
+ int uid) {
+ ConversationIconFactory iconFactory = new ConversationIconFactory(context,
+ context.getSystemService(LauncherApps.class),
+ context.getPackageManager(), IconDrawableFactory.newInstance(context),
+ context.getResources().getDimensionPixelSize(
+ R.dimen.conversation_icon_size));
+ return new BitmapDrawable(context.getResources(),
+ iconFactory.getConversationBitmap(info, pkg, uid));
}
public void requestPinShortcut(Context context, ShortcutInfo shortcutInfo) {
diff --git a/src/com/android/settings/notification/app/ConversationListPreferenceController.java b/src/com/android/settings/notification/app/ConversationListPreferenceController.java
index fa1b0504c44..dba70869017 100644
--- a/src/com/android/settings/notification/app/ConversationListPreferenceController.java
+++ b/src/com/android/settings/notification/app/ConversationListPreferenceController.java
@@ -127,7 +127,7 @@ public class ConversationListPreferenceController extends NotificationPreference
conversation.getParentChannelLabel(), conversation.getGroupLabel())
: conversation.getParentChannelLabel());
if (si != null) {
- pref.setIcon(mBackend.getConversationDrawable(mContext, si));
+ pref.setIcon(mBackend.getConversationDrawable(mContext, si, mAppRow.pkg, mAppRow.uid));
}
pref.setKey(conversation.getNotificationChannel().getId());
diff --git a/src/com/android/settings/notification/app/NotificationSettings.java b/src/com/android/settings/notification/app/NotificationSettings.java
index 983ad2b20c4..e30b35ca6e2 100644
--- a/src/com/android/settings/notification/app/NotificationSettings.java
+++ b/src/com/android/settings/notification/app/NotificationSettings.java
@@ -33,6 +33,7 @@ import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
import android.content.pm.ShortcutInfo;
+import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.UserHandle;
@@ -203,7 +204,8 @@ abstract public class NotificationSettings extends DashboardFragment {
mConversationInfo = mBackend.getConversationInfo(
mContext, mPkg, mUid, mChannel.getConversationId());
if (mConversationInfo != null) {
- mConversationDrawable = mBackend.getConversationDrawable(mContext, mConversationInfo);
+ mConversationDrawable = mBackend.getConversationDrawable(
+ mContext, mConversationInfo, mAppRow.pkg, mAppRow.uid);
}
}