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

Commit eb455965 authored by Beverly's avatar Beverly
Browse files

Category message is sufficient for message notif

If a notification is marked with category message, then
it is sufficient enough to be deemed a "message" notification.
However, to be considered an important message, we still
check if the message is from the default messaging app and has
category = message.

Change-Id: I4f2b502634b805919bdf8b82e3bdf475c0992bdd
Fixes:76019310
Test: AttentionManagementVerifierActivity
Test: atest services/tests/uiservicestests/src/com/android/server/notification/NotificationComparatorTest.java
parent 1c7c2bdd
Loading
Loading
Loading
Loading
+17 −19
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@ import android.os.Looper;
import android.os.UserHandle;
import android.provider.Settings;
import android.service.notification.StatusBarNotification;
import android.text.TextUtils;
import android.util.ArrayMap;

import java.util.Objects;
@@ -47,6 +46,18 @@ public class NotificationMessagingUtil {
                Settings.Secure.getUriFor(DEFAULT_SMS_APP_SETTING), false, mSmsContentObserver);
    }

    public boolean isImportantMessaging(StatusBarNotification sbn, int importance) {
        if (importance < NotificationManager.IMPORTANCE_LOW) {
            return false;
        }

        return hasMessagingStyle(sbn) || (isCategoryMessage(sbn) && isDefaultMessagingApp(sbn));
    }

    public boolean isMessaging(StatusBarNotification sbn) {
        return hasMessagingStyle(sbn) || isDefaultMessagingApp(sbn) || isCategoryMessage(sbn);
    }

    @SuppressWarnings("deprecation")
    private boolean isDefaultMessagingApp(StatusBarNotification sbn) {
        final int userId = sbn.getUserId();
@@ -73,25 +84,12 @@ public class NotificationMessagingUtil {
        }
    };

    public boolean isImportantMessaging(StatusBarNotification sbn, int importance) {
        if (importance < NotificationManager.IMPORTANCE_LOW) {
            return false;
        }

        return isMessaging(sbn);
    }

    public boolean isMessaging(StatusBarNotification sbn) {
    private boolean hasMessagingStyle(StatusBarNotification sbn) {
        Class<? extends Notification.Style> style = sbn.getNotification().getNotificationStyle();
        if (Notification.MessagingStyle.class.equals(style)) {
            return true;
        return Notification.MessagingStyle.class.equals(style);
    }

        if (Notification.CATEGORY_MESSAGE.equals(sbn.getNotification().category)
                && isDefaultMessagingApp(sbn)) {
            return true;
        }

        return false;
    private boolean isCategoryMessage(StatusBarNotification sbn) {
        return Notification.CATEGORY_MESSAGE.equals(sbn.getNotification().category);
    }
}