Merge "Notification channel group res id labels."

This commit is contained in:
TreeHugger Robot
2017-03-03 19:45:42 +00:00
committed by Android (Google) Code Review
2 changed files with 22 additions and 12 deletions

View File

@@ -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());
}

View File

@@ -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();
}