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

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

Clarify notification blocking in notification app list.

Change summary to: Normal (nothing blocked), Partially blocked
(at least one topic blocked), or Totally blocked (entire app
blocked).

Allow filtering on apps that are partially or totally blocked.

Bug: 26882239
Change-Id: I29924147a97a3d1693b0286d48905485e11edf1d
parent cac0dddd
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -6329,7 +6329,9 @@
   <!-- App notification summary with notifications enabled [CHAR LIMIT=40] -->
   <string name="notifications_enabled">Normal</string>
   <!-- App notification summary with notifications disabled [CHAR LIMIT=40] -->
   <string name="notifications_disabled">Block</string>
   <string name="notifications_disabled">Fully Blocked</string>
   <!-- App notification summary with notifications disabled [CHAR LIMIT=40] -->
   <string name="notifications_partially_disabled">Partially Blocked</string>
   <!-- App notification summary with 2 items [CHAR LIMIT=15] -->
   <string name="notifications_two_items"><xliff:g id="notif_state" example="Priority">%1$s</xliff:g> / <xliff:g id="notif_state" example="Priority">%2$s</xliff:g></string>
   <!-- App notification summary with 3 items [CHAR LIMIT=15] -->
+5 −1
Original line number Diff line number Diff line
@@ -63,7 +63,11 @@ public class AppStateNotificationBridge extends AppStateBaseBridge {

        @Override
        public boolean filterApp(AppEntry info) {
            return info.extraInfo != null && ((AppRow) info.extraInfo).banned;
            if (info == null) {
                return false;
            }
            AppRow row = (AppRow) info.extraInfo;
            return row.banned || row.bannedTopics;
        }
    };
}
+2 −0
Original line number Diff line number Diff line
@@ -821,6 +821,8 @@ public class InstalledAppDetails extends AppInfoBase
    public static CharSequence getNotificationSummary(AppRow appRow, Context context) {
        if (appRow.banned) {
            return context.getString(R.string.notifications_disabled);
        } else if (appRow.bannedTopics) {
            return context.getString(R.string.notifications_partially_disabled);
        }
        return context.getString(R.string.notifications_enabled);
    }
+11 −0
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ public class NotificationBackend {
        row.appImportance = getImportance(row.pkg, row.uid, null);
        row.appBypassDnd = getBypassZenMode(row.pkg, row.uid, null);
        row.appSensitive = getSensitive(row.pkg, row.uid, null);
        row.bannedTopics = hasBannedTopics(row.pkg, row.uid);
        return row;
    }

@@ -170,6 +171,15 @@ public class NotificationBackend {
        }
    }

    public boolean hasBannedTopics(String pkg, int uid) {
        try {
            return sINM.hasBannedTopics(pkg, uid);
        } catch (Exception e) {
            Log.w(TAG, "Error calling NoMan", e);
            return false;
        }
    }

    static class Row {
        public String section;
    }
@@ -186,6 +196,7 @@ public class NotificationBackend {
        public int appImportance;
        public boolean appBypassDnd;
        public boolean appSensitive;
        public boolean bannedTopics;
    }

    public static class TopicRow extends AppRow {