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

Commit ca662cc9 authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Notification channel group res id labels.

Test: manual
Change-Id: Icf7208dc952a7306f04d53f4d681ec794563f2fd
parent b79eec9e
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();
        }