Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e15ea496 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Notification channel group res id labels."

parents df0477bb ca662cc9
Loading
Loading
Loading
Loading
+10 −9
Original line number Diff line number Diff line
@@ -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());
                }
+12 −3
Original line number Diff line number Diff line
@@ -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();
        }