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
This commit is contained in:
@@ -6329,7 +6329,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] -->
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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 {
|
||||||
|
Reference in New Issue
Block a user