diff options
| author | Philip P. Moltmann <moltmann@google.com> | 2019-01-10 17:03:42 -0800 |
|---|---|---|
| committer | Philip P. Moltmann <moltmann@google.com> | 2019-01-12 11:39:31 -0800 |
| commit | 1117ca31ccccd5818cb3573392ceb2587ff55dbb (patch) | |
| tree | 962984143c73887f5227e26bbdb08dd2e69d10e8 /core/java/android/permission/PermissionControllerManager.java | |
| parent | 339ecba5424fee80dd41436b66ea6491f0ee6946 (diff) | |
Call timeout callbacks on executor too
Test: atest PermissionControllerTest
Change-Id: I23832d6ff992e7417e0a0128ef94203b2a435cb7
Diffstat (limited to 'core/java/android/permission/PermissionControllerManager.java')
| -rw-r--r-- | core/java/android/permission/PermissionControllerManager.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/core/java/android/permission/PermissionControllerManager.java b/core/java/android/permission/PermissionControllerManager.java index e21a6608bee0..7c0b8113c37c 100644 --- a/core/java/android/permission/PermissionControllerManager.java +++ b/core/java/android/permission/PermissionControllerManager.java @@ -309,6 +309,7 @@ public final class PermissionControllerManager { private final boolean mDoDryRun; private final int mReason; private final @NonNull String mCallingPackage; + private final @NonNull Executor mExecutor; private final @NonNull OnRevokeRuntimePermissionsCallback mCallback; private final @NonNull RemoteCallback mRemoteCallback; @@ -324,6 +325,7 @@ public final class PermissionControllerManager { mDoDryRun = doDryRun; mReason = reason; mCallingPackage = callingPackage; + mExecutor = executor; mCallback = callback; mRemoteCallback = new RemoteCallback(result -> executor.execute(() -> { @@ -358,7 +360,13 @@ public final class PermissionControllerManager { @Override protected void onTimeout(RemoteService remoteService) { - mCallback.onRevokeRuntimePermissions(Collections.emptyMap()); + long token = Binder.clearCallingIdentity(); + try { + mExecutor.execute( + () -> mCallback.onRevokeRuntimePermissions(Collections.emptyMap())); + } finally { + Binder.restoreCallingIdentity(token); + } } @Override |
