From a17263ae782e35aa086f6a6e5d76104d8fd145ea Mon Sep 17 00:00:00 2001 From: Nate Myren Date: Fri, 4 Mar 2022 15:02:06 -0800 Subject: [PATCH] TEMP: Delay start of Legacy Permission Dialog by 200ms This reduces the chances of an animation bug when launching Bug: 222757698 Test: manual Change-Id: I3eca5a377131fd7dd77c9c5bf5f15135c9548a5e --- .../android/server/policy/PermissionPolicyService.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/policy/PermissionPolicyService.java b/services/core/java/com/android/server/policy/PermissionPolicyService.java index f2ce0d4c49d3b..f860dc22abfeb 100644 --- a/services/core/java/com/android/server/policy/PermissionPolicyService.java +++ b/services/core/java/com/android/server/policy/PermissionPolicyService.java @@ -54,6 +54,8 @@ import android.content.pm.PackageManagerInternal.PackageListObserver; import android.content.pm.PermissionInfo; import android.os.Build; import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; import android.os.Process; import android.os.RemoteException; import android.os.ServiceManager; @@ -109,6 +111,7 @@ public final class PermissionPolicyService extends SystemService { private static final String SYSTEM_PKG = "android"; private static final boolean DEBUG = false; private static final long USER_SENSITIVE_UPDATE_DELAY_MS = 60000; + private static final long ACTIVITY_START_DELAY_MS = 200; private final Object mLock = new Object(); @@ -149,6 +152,7 @@ public final class PermissionPolicyService extends SystemService { private List mAppOpPermissions; private Context mContext; + private Handler mHandler; private PackageManagerInternal mPackageManagerInternal; private NotificationManagerInternal mNotificationManager; private final KeyguardManager mKeyguardManager; @@ -158,6 +162,7 @@ public final class PermissionPolicyService extends SystemService { super(context); mContext = context; + mHandler = new Handler(Looper.getMainLooper()); mPackageManager = context.getPackageManager(); mKeyguardManager = context.getSystemService(KeyguardManager.class); LocalServices.addService(PermissionPolicyInternal.class, new Internal()); @@ -1151,7 +1156,8 @@ public final class PermissionPolicyService extends SystemService { options.setTaskOverlay(true, false); options.setLaunchTaskId(taskId); try { - mContext.startActivityAsUser(grantPermission, options.toBundle(), user); + mHandler.postDelayed(() -> mContext.startActivityAsUser( + grantPermission, options.toBundle(), user), ACTIVITY_START_DELAY_MS); } catch (Exception e) { Log.e(LOG_TAG, "couldn't start grant permission dialog" + "for other package " + pkgName, e);