summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2019-06-10 16:32:44 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-06-10 16:32:44 +0000
commit3baa0b34e3f3fad923715ef77d389f8b003ea53d (patch)
treefca5e81ca91ec1f389b450438242181b1cb30f56 /core/java
parent503b4893846028b12318e959abbc63eae5416729 (diff)
parentfa5fb1f6612f78db05bff674781a2be4f96a019a (diff)
Merge "Add timeout for setPermissionGrantState" into qt-dev
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/app/admin/DevicePolicyManager.java8
1 files changed, 8 insertions, 0 deletions
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index 507e97e3df05..d082f33cdefe 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -16,6 +16,8 @@
package android.app.admin;
+import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
+
import android.Manifest.permission;
import android.annotation.CallbackExecutor;
import android.annotation.ColorInt;
@@ -88,6 +90,7 @@ import android.util.Log;
import com.android.internal.R;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.os.BackgroundThread;
import com.android.internal.util.Preconditions;
import com.android.org.conscrypt.TrustedCertificateStore;
@@ -8810,6 +8813,11 @@ public class DevicePolicyManager {
mService.setPermissionGrantState(admin, mContext.getPackageName(), packageName,
permission, grantState, new RemoteCallback((b) -> result.complete(b != null)));
+ // Timeout
+ BackgroundThread.getHandler().sendMessageDelayed(
+ obtainMessage(CompletableFuture::complete, result, false),
+ 20_000);
+
return result.get();
} catch (RemoteException re) {
throw re.rethrowFromSystemServer();