diff options
| author | 2020-01-09 20:26:14 -0800 | |
|---|---|---|
| committer | 2020-01-09 20:30:03 -0800 | |
| commit | 73fd86eada856f29f1d262c54be5b0fcef8f8f42 (patch) | |
| tree | c2def911144a695cc89b3455aa858dbb9a45c74d | |
| parent | cb1aa8d29c67696f076b9f0af6650a440cf7649d (diff) | |
Make historical op getters async for real
The system server side was doing the work async and the binder call
was not oneway resulting in sync behavior for APIs desinged to be
async.
bug:147435904
Test: atest android.app.appops.cts.HistoricalAppopsTest
Change-Id: Ib184302798b58934ba9a0617a6a407f3aaa469af
| -rw-r--r-- | services/core/java/com/android/server/appop/AppOpsService.java | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java index a7593c7a43ec..e3b761e0773d 100644 --- a/services/core/java/com/android/server/appop/AppOpsService.java +++ b/services/core/java/com/android/server/appop/AppOpsService.java @@ -1759,8 +1759,9 @@ public class AppOpsService extends IAppOpsService.Stub { ? opNames.toArray(new String[opNames.size()]) : null; // Must not hold the appops lock - mHistoricalRegistry.getHistoricalOps(uid, packageName, featureId, opNamesArray, filter, - beginTimeMillis, endTimeMillis, flags, callback); + mHandler.post(PooledLambda.obtainRunnable(HistoricalRegistry::getHistoricalOps, + mHistoricalRegistry, uid, packageName, featureId, opNamesArray, filter, + beginTimeMillis, endTimeMillis, flags, callback).recycleOnUse()); } @Override @@ -1778,8 +1779,9 @@ public class AppOpsService extends IAppOpsService.Stub { ? opNames.toArray(new String[opNames.size()]) : null; // Must not hold the appops lock - mHistoricalRegistry.getHistoricalOpsFromDiskRaw(uid, packageName, featureId, opNamesArray, - filter, beginTimeMillis, endTimeMillis, flags, callback); + mHandler.post(PooledLambda.obtainRunnable(HistoricalRegistry::getHistoricalOpsFromDiskRaw, + mHistoricalRegistry, uid, packageName, featureId, opNamesArray, + filter, beginTimeMillis, endTimeMillis, flags, callback).recycleOnUse()); } @Override |