Merge "Clarify notification blocking in notification app list."

This commit is contained in:
Julia Reynolds
2016-02-02 19:46:35 +00:00
committed by Android (Google) Code Review
4 changed files with 21 additions and 2 deletions

View File

@@ -6334,7 +6334,9 @@
<!-- App notification summary with notifications enabled [CHAR LIMIT=40] --> <!-- App notification summary with notifications enabled [CHAR LIMIT=40] -->
<string name="notifications_enabled">Normal</string> <string name="notifications_enabled">Normal</string>
<!-- App notification summary with notifications disabled [CHAR LIMIT=40] --> <!-- 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] --> <!-- 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> <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] --> <!-- App notification summary with 3 items [CHAR LIMIT=15] -->

View File

@@ -63,7 +63,11 @@ public class AppStateNotificationBridge extends AppStateBaseBridge {
@Override @Override
public boolean filterApp(AppEntry info) { 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;
} }
}; };
} }

View File

@@ -821,6 +821,8 @@ public class InstalledAppDetails extends AppInfoBase
public static CharSequence getNotificationSummary(AppRow appRow, Context context) { public static CharSequence getNotificationSummary(AppRow appRow, Context context) {
if (appRow.banned) { if (appRow.banned) {
return context.getString(R.string.notifications_disabled); 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); return context.getString(R.string.notifications_enabled);
} }

View File

@@ -54,6 +54,7 @@ public class NotificationBackend {
row.appImportance = getImportance(row.pkg, row.uid, null); row.appImportance = getImportance(row.pkg, row.uid, null);
row.appBypassDnd = getBypassZenMode(row.pkg, row.uid, null); row.appBypassDnd = getBypassZenMode(row.pkg, row.uid, null);
row.appSensitive = getSensitive(row.pkg, row.uid, null); row.appSensitive = getSensitive(row.pkg, row.uid, null);
row.bannedTopics = hasBannedTopics(row.pkg, row.uid);
return row; 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 { static class Row {
public String section; public String section;
} }
@@ -186,6 +196,7 @@ public class NotificationBackend {
public int appImportance; public int appImportance;
public boolean appBypassDnd; public boolean appBypassDnd;
public boolean appSensitive; public boolean appSensitive;
public boolean bannedTopics;
} }
public static class TopicRow extends AppRow { public static class TopicRow extends AppRow {