diff --git a/src/com/android/settings/notification/AppNotificationSettings.java b/src/com/android/settings/notification/AppNotificationSettings.java index 4c310e6f4af..eecc77c69bc 100644 --- a/src/com/android/settings/notification/AppNotificationSettings.java +++ b/src/com/android/settings/notification/AppNotificationSettings.java @@ -182,13 +182,13 @@ public class AppNotificationSettings extends NotificationSettingsBase { getPrefContext()); channelPref.setDisabledByAdmin(mSuspendedAppsAdmin); channelPref.setKey(channel.getId()); - channelPref.setTitle(channel.getName()); + channelPref.setTitle(getNotificationChannelLabel(channel)); channelPref.setChecked(channel.getImportance() != IMPORTANCE_NONE); channelPref.setMultiLine(true); if (channel.isDeleted()) { - channelPref.setTitle( - getString(R.string.deleted_channel_name, channel.getName())); + channelPref.setTitle(getString(R.string.deleted_channel_name, + getNotificationChannelLabel(channel))); channelPref.setEnabled(false); } else { channelPref.setSummary(getImportanceSummary(channel.getImportance())); @@ -275,8 +275,10 @@ public class AppNotificationSettings extends NotificationSettingsBase { if (left.isDeleted() != right.isDeleted()) { return Boolean.compare(left.isDeleted(), right.isDeleted()); } - if (!Objects.equals(left.getName(), right.getName())) { - return sCollator.compare(left.getName().toString(), right.getName().toString()); + if (!Objects.equals(getNotificationChannelLabel(left), + getNotificationChannelLabel(right))) { + return sCollator.compare(getNotificationChannelLabel(left).toString(), + getNotificationChannelLabel(right).toString()); } return left.getId().compareTo(right.getId()); } diff --git a/src/com/android/settings/notification/ChannelNotificationSettings.java b/src/com/android/settings/notification/ChannelNotificationSettings.java index ea450f405bb..7be98c1af00 100644 --- a/src/com/android/settings/notification/ChannelNotificationSettings.java +++ b/src/com/android/settings/notification/ChannelNotificationSettings.java @@ -130,7 +130,7 @@ public class ChannelNotificationSettings extends NotificationSettingsBase { .getApplicationFeatureProvider(activity) .newAppHeaderController(this /* fragment */, null /* appHeader */) .setIcon(mAppRow.icon) - .setLabel(mChannel.getName()) + .setLabel(getNotificationChannelLabel(mChannel)) .setSummary(mAppRow.label) .setPackageName(mAppRow.pkg) .setUid(mAppRow.uid) diff --git a/src/com/android/settings/notification/NotificationBackend.java b/src/com/android/settings/notification/NotificationBackend.java index 2a2185dc386..d201d60ca09 100644 --- a/src/com/android/settings/notification/NotificationBackend.java +++ b/src/com/android/settings/notification/NotificationBackend.java @@ -155,8 +155,4 @@ public class NotificationBackend { public boolean showBadge; public int userId; } - - public static class ChannelRow extends AppRow { - public NotificationChannel channel; - } } diff --git a/src/com/android/settings/notification/NotificationSettingsBase.java b/src/com/android/settings/notification/NotificationSettingsBase.java index 80d249f1e26..099b4f41901 100644 --- a/src/com/android/settings/notification/NotificationSettingsBase.java +++ b/src/com/android/settings/notification/NotificationSettingsBase.java @@ -248,4 +248,17 @@ abstract public class NotificationSettingsBase extends SettingsPreferenceFragmen return getContext().getString(R.string.notification_importance_high); } } + + protected CharSequence getNotificationChannelLabel(NotificationChannel channel) { + if (channel.getName() != null) { + return channel.getName(); + } + try { + ApplicationInfo info = mPm.getApplicationInfoAsUser(mAppRow.pkg, 0, mAppRow.userId); + return mPm.getText(mAppRow.pkg, channel.getNameResId(), info); + } catch (NameNotFoundException e) { + e.printStackTrace(); + } + return null; + } }