summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/app/AppOpsManager.java11
1 files changed, 7 insertions, 4 deletions
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java
index 71b866b7b16a..3347e045886a 100644
--- a/core/java/android/app/AppOpsManager.java
+++ b/core/java/android/app/AppOpsManager.java
@@ -227,7 +227,7 @@ public class AppOpsManager {
* {@link #sMessageCollector}, which forces {@link COLLECT_SYNC} mode.
*/
@GuardedBy("sLock")
- private static ArrayList<SyncNotedAppOp> sUnforwardedOps = new ArrayList<>();
+ private static ArrayList<AsyncNotedAppOp> sUnforwardedOps = new ArrayList<>();
/**
* Additional collector that collect accesses and forwards a few of them them via
@@ -8195,7 +8195,10 @@ public class AppOpsManager {
if (sOnOpNotedCallback != null) {
sOnOpNotedCallback.onNoted(new SyncNotedAppOp(code, attributionTag));
} else {
- sUnforwardedOps.add(new SyncNotedAppOp(code, attributionTag));
+ String message = getFormattedStackTrace();
+ sUnforwardedOps.add(
+ new AsyncNotedAppOp(code, Process.myUid(), attributionTag,
+ message, System.currentTimeMillis()));
if (sUnforwardedOps.size() > MAX_UNFORWARDED_OPS) {
sUnforwardedOps.remove(0);
}
@@ -8268,10 +8271,10 @@ public class AppOpsManager {
synchronized (this) {
int numMissedSyncOps = sUnforwardedOps.size();
for (int i = 0; i < numMissedSyncOps; i++) {
- final SyncNotedAppOp syncNotedAppOp = sUnforwardedOps.get(i);
+ final AsyncNotedAppOp syncNotedAppOp = sUnforwardedOps.get(i);
if (sOnOpNotedCallback != null) {
sOnOpNotedCallback.getAsyncNotedExecutor().execute(
- () -> sOnOpNotedCallback.onNoted(syncNotedAppOp));
+ () -> sOnOpNotedCallback.onAsyncNoted(syncNotedAppOp));
}
}
sUnforwardedOps.clear();