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

Commit f7caedcf authored by Danesh M's avatar Danesh M Committed by Danesh M
Browse files

SpamFilter : Hide option if notification cannot be filtered

Hide option to filter notification if its a completely custom notification
which did not invoke setContentTitle/Message...etc.

NOTES-85

Change-Id: Ieec799dba589329b994f7add703babece13b6d14
parent 32b90fc3
Loading
Loading
Loading
Loading
+18 −1
Original line number Original line Diff line number Diff line
@@ -46,10 +46,21 @@ public class SpamFilter {
    }
    }


    public static String getNotificationContent(Notification notification) {
    public static String getNotificationContent(Notification notification) {
        CharSequence notificationTitle = getNotificationTitle(notification);
        CharSequence notificationMessage = getNotificationMessage(notification);
        return notificationTitle + "\n" + notificationMessage;
    }

    private static CharSequence getNotificationTitle(Notification notification) {
        Bundle extras = notification.extras;
        Bundle extras = notification.extras;
        String titleExtra = extras.containsKey(Notification.EXTRA_TITLE_BIG)
        String titleExtra = extras.containsKey(Notification.EXTRA_TITLE_BIG)
                ? Notification.EXTRA_TITLE_BIG : Notification.EXTRA_TITLE;
                ? Notification.EXTRA_TITLE_BIG : Notification.EXTRA_TITLE;
        CharSequence notificationTitle = extras.getCharSequence(titleExtra);
        CharSequence notificationTitle = extras.getCharSequence(titleExtra);
        return notificationTitle;
    }

    private static CharSequence getNotificationMessage(Notification notification) {
        Bundle extras = notification.extras;
        CharSequence notificationMessage = extras.getCharSequence(Notification.EXTRA_TEXT);
        CharSequence notificationMessage = extras.getCharSequence(Notification.EXTRA_TEXT);


        if (TextUtils.isEmpty(notificationMessage)) {
        if (TextUtils.isEmpty(notificationMessage)) {
@@ -60,6 +71,12 @@ public class SpamFilter {
                notificationMessage = TextUtils.join("\n", inboxLines);
                notificationMessage = TextUtils.join("\n", inboxLines);
            }
            }
        }
        }
        return notificationTitle + "\n" + notificationMessage;
        return notificationMessage;
    }

    public static boolean hasFilterableContent(Notification notification) {
        CharSequence notificationTitle = getNotificationTitle(notification);
        CharSequence notificationMessage = getNotificationMessage(notification);
        return !(TextUtils.isEmpty(notificationTitle) && TextUtils.isEmpty(notificationMessage));
    }
    }
}
}
+3 −1
Original line number Original line Diff line number Diff line
@@ -956,7 +956,9 @@ public abstract class BaseStatusBar extends SystemUI implements
                }
                }
            });
            });


            filterButton.setVisibility(View.VISIBLE);
            Notification notification = sbn.getNotification();
            filterButton.setVisibility(SpamFilter.hasFilterableContent(notification)
                    ? View.VISIBLE : View.GONE);
            filterButton.setOnClickListener(new View.OnClickListener() {
            filterButton.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                public void onClick(View v) {
                    AsyncTask.execute(new Runnable() {
                    AsyncTask.execute(new Runnable() {