Pipe through attributeId to notification app-op
The noteOp API without attributeId is deprecated. For @UnsupportedApi Binder calls we need to keep the old name there. Test: TH Bug: 136595429 Change-Id: Ib758b431c0842bb16ce8e8fb3a33d4524ab0878c
This commit is contained in:
@@ -123,10 +123,14 @@ interface INotificationManager
|
||||
// INotificationListener method.
|
||||
@UnsupportedAppUsage
|
||||
StatusBarNotification[] getActiveNotifications(String callingPkg);
|
||||
StatusBarNotification[] getActiveNotificationsWithAttribution(String callingPkg,
|
||||
String callingAttributionTag);
|
||||
@UnsupportedAppUsage
|
||||
StatusBarNotification[] getHistoricalNotifications(String callingPkg, int count, boolean includeSnoozed);
|
||||
StatusBarNotification[] getHistoricalNotificationsWithAttribution(String callingPkg,
|
||||
String callingAttributionTag, int count, boolean includeSnoozed);
|
||||
|
||||
NotificationHistory getNotificationHistory(String callingPkg);
|
||||
NotificationHistory getNotificationHistory(String callingPkg, String callingAttributionTag);
|
||||
|
||||
void registerListener(in INotificationListener listener, in ComponentName component, int userid);
|
||||
void unregisterListener(in INotificationListener listener, int userid);
|
||||
|
||||
@@ -3638,6 +3638,15 @@ public class NotificationManagerService extends SystemService {
|
||||
handleSavePolicyFile();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #getActiveNotificationsWithAttribution(String, String)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@Override
|
||||
public StatusBarNotification[] getActiveNotifications(String callingPkg) {
|
||||
return getActiveNotificationsWithAttribution(callingPkg, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* System-only API for getting a list of current (i.e. not cleared) notifications.
|
||||
*
|
||||
@@ -3645,7 +3654,8 @@ public class NotificationManagerService extends SystemService {
|
||||
* @returns A list of all the notifications, in natural order.
|
||||
*/
|
||||
@Override
|
||||
public StatusBarNotification[] getActiveNotifications(String callingPkg) {
|
||||
public StatusBarNotification[] getActiveNotificationsWithAttribution(String callingPkg,
|
||||
String callingAttributionTag) {
|
||||
// enforce() will ensure the calling uid has the correct permission
|
||||
getContext().enforceCallingOrSelfPermission(
|
||||
android.Manifest.permission.ACCESS_NOTIFICATIONS,
|
||||
@@ -3655,7 +3665,8 @@ public class NotificationManagerService extends SystemService {
|
||||
int uid = Binder.getCallingUid();
|
||||
|
||||
// noteOp will check to make sure the callingPkg matches the uid
|
||||
if (mAppOps.noteOpNoThrow(AppOpsManager.OP_ACCESS_NOTIFICATIONS, uid, callingPkg)
|
||||
if (mAppOps.noteOpNoThrow(AppOpsManager.OP_ACCESS_NOTIFICATIONS, uid, callingPkg,
|
||||
callingAttributionTag, null)
|
||||
== AppOpsManager.MODE_ALLOWED) {
|
||||
synchronized (mNotificationLock) {
|
||||
tmp = new StatusBarNotification[mNotificationList.size()];
|
||||
@@ -3737,12 +3748,24 @@ public class NotificationManagerService extends SystemService {
|
||||
}
|
||||
|
||||
/**
|
||||
* System-only API for getting a list of recent (cleared, no longer shown) notifications.
|
||||
* @deprecated Use {@link #getHistoricalNotificationsWithAttribution} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@Override
|
||||
@RequiresPermission(android.Manifest.permission.ACCESS_NOTIFICATIONS)
|
||||
public StatusBarNotification[] getHistoricalNotifications(String callingPkg, int count,
|
||||
boolean includeSnoozed) {
|
||||
return getHistoricalNotificationsWithAttribution(callingPkg, null, count,
|
||||
includeSnoozed);
|
||||
}
|
||||
|
||||
/**
|
||||
* System-only API for getting a list of recent (cleared, no longer shown) notifications.
|
||||
*/
|
||||
@Override
|
||||
@RequiresPermission(android.Manifest.permission.ACCESS_NOTIFICATIONS)
|
||||
public StatusBarNotification[] getHistoricalNotificationsWithAttribution(String callingPkg,
|
||||
String callingAttributionTag, int count, boolean includeSnoozed) {
|
||||
// enforce() will ensure the calling uid has the correct permission
|
||||
getContext().enforceCallingOrSelfPermission(
|
||||
android.Manifest.permission.ACCESS_NOTIFICATIONS,
|
||||
@@ -3752,7 +3775,8 @@ public class NotificationManagerService extends SystemService {
|
||||
int uid = Binder.getCallingUid();
|
||||
|
||||
// noteOp will check to make sure the callingPkg matches the uid
|
||||
if (mAppOps.noteOpNoThrow(AppOpsManager.OP_ACCESS_NOTIFICATIONS, uid, callingPkg)
|
||||
if (mAppOps.noteOpNoThrow(AppOpsManager.OP_ACCESS_NOTIFICATIONS, uid, callingPkg,
|
||||
callingAttributionTag, null)
|
||||
== AppOpsManager.MODE_ALLOWED) {
|
||||
synchronized (mArchive) {
|
||||
tmp = mArchive.getArray(count, includeSnoozed);
|
||||
@@ -3768,7 +3792,8 @@ public class NotificationManagerService extends SystemService {
|
||||
@Override
|
||||
@WorkerThread
|
||||
@RequiresPermission(android.Manifest.permission.ACCESS_NOTIFICATIONS)
|
||||
public NotificationHistory getNotificationHistory(String callingPkg) {
|
||||
public NotificationHistory getNotificationHistory(String callingPkg,
|
||||
String callingAttributionTag) {
|
||||
// enforce() will ensure the calling uid has the correct permission
|
||||
getContext().enforceCallingOrSelfPermission(
|
||||
android.Manifest.permission.ACCESS_NOTIFICATIONS,
|
||||
@@ -3776,7 +3801,8 @@ public class NotificationManagerService extends SystemService {
|
||||
int uid = Binder.getCallingUid();
|
||||
|
||||
// noteOp will check to make sure the callingPkg matches the uid
|
||||
if (mAppOps.noteOpNoThrow(AppOpsManager.OP_ACCESS_NOTIFICATIONS, uid, callingPkg)
|
||||
if (mAppOps.noteOpNoThrow(AppOpsManager.OP_ACCESS_NOTIFICATIONS, uid, callingPkg,
|
||||
callingAttributionTag, null)
|
||||
== AppOpsManager.MODE_ALLOWED) {
|
||||
IntArray currentUserIds = mUserProfiles.getCurrentProfileIds();
|
||||
Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "notifHistoryReadHistory");
|
||||
|
||||
Reference in New Issue
Block a user