Add timeout for setPermissionGrantState

Fixes: 134380096
Test: presubmit
Change-Id: Ifff243068eea2637cf8f6391b52a4c53bc544615
This commit is contained in:
Eugene Susla
2019-06-07 10:42:19 -07:00
parent d4d9b233b2
commit fa5fb1f661

View File

@@ -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();