From ca662cc9a7ec1a22a29536ab4d7454dad90f6d74 Mon Sep 17 00:00:00 2001 From: Julia Reynolds Date: Thu, 2 Mar 2017 16:00:09 -0500 Subject: [PATCH] Notification channel group res id labels. Test: manual Change-Id: Icf7208dc952a7306f04d53f4d681ec794563f2fd --- .../notification/AppNotificationSettings.java | 19 ++++++++++--------- .../NotificationSettingsBase.java | 15 ++++++++++++--- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/com/android/settings/notification/AppNotificationSettings.java b/src/com/android/settings/notification/AppNotificationSettings.java index eecc77c69bc..34745a79d37 100644 --- a/src/com/android/settings/notification/AppNotificationSettings.java +++ b/src/com/android/settings/notification/AppNotificationSettings.java @@ -161,12 +161,12 @@ public class AppNotificationSettings extends NotificationSettingsBase { } else { for (NotificationChannelGroup group : mChannelGroupList) { PreferenceCategory groupCategory = new PreferenceCategory(getPrefContext()); - if (group.getName() == null) { + if (group.getId() == null) { groupCategory.setTitle(mChannelGroupList.size() > 1 ? R.string.notification_channels_other : R.string.notification_channels); } else { - groupCategory.setTitle(group.getName()); + groupCategory.setTitle(getNotificationGroupLabel(group)); } groupCategory.setKey(group.getId()); groupCategory.setOrderingAsAdded(true); @@ -275,10 +275,10 @@ public class AppNotificationSettings extends NotificationSettingsBase { if (left.isDeleted() != right.isDeleted()) { return Boolean.compare(left.isDeleted(), right.isDeleted()); } - if (!Objects.equals(getNotificationChannelLabel(left), - getNotificationChannelLabel(right))) { - return sCollator.compare(getNotificationChannelLabel(left).toString(), - getNotificationChannelLabel(right).toString()); + CharSequence leftName = getNotificationChannelLabel(left); + CharSequence rightName = getNotificationChannelLabel(right); + if (!Objects.equals(leftName, rightName)) { + return sCollator.compare(leftName.toString(), rightName.toString()); } return left.getId().compareTo(right.getId()); } @@ -296,10 +296,11 @@ public class AppNotificationSettings extends NotificationSettingsBase { } else if (right.getId() == null && left.getId() != null) { return -1; } + CharSequence leftName = getNotificationGroupLabel(left); + CharSequence rightName = getNotificationGroupLabel(right); // sort rest of the groups by name - if (!Objects.equals(left.getName(), right.getName())) { - return sCollator.compare(left.getName().toString(), - right.getName().toString()); + if (!Objects.equals(leftName, rightName)) { + return sCollator.compare(leftName.toString(), rightName.toString()); } return left.getId().compareTo(right.getId()); } diff --git a/src/com/android/settings/notification/NotificationSettingsBase.java b/src/com/android/settings/notification/NotificationSettingsBase.java index 099b4f41901..38de27eee91 100644 --- a/src/com/android/settings/notification/NotificationSettingsBase.java +++ b/src/com/android/settings/notification/NotificationSettingsBase.java @@ -25,6 +25,7 @@ import com.android.settingslib.RestrictedSwitchPreference; import android.app.Notification; import android.app.NotificationChannel; +import android.app.NotificationChannelGroup; import android.app.NotificationManager; import android.content.Context; import android.content.Intent; @@ -249,13 +250,21 @@ abstract public class NotificationSettingsBase extends SettingsPreferenceFragmen } } + protected CharSequence getNotificationGroupLabel(NotificationChannelGroup group) { + return getLabel(group.getName(), group.getNameResId()); + } + protected CharSequence getNotificationChannelLabel(NotificationChannel channel) { - if (channel.getName() != null) { - return channel.getName(); + return getLabel(channel.getName(), channel.getNameResId()); + } + + private CharSequence getLabel(CharSequence name, int nameResId) { + if (!TextUtils.isEmpty(name)) { + return name; } try { ApplicationInfo info = mPm.getApplicationInfoAsUser(mAppRow.pkg, 0, mAppRow.userId); - return mPm.getText(mAppRow.pkg, channel.getNameResId(), info); + return mPm.getText(mAppRow.pkg, nameResId, info); } catch (NameNotFoundException e) { e.printStackTrace(); }