From df340332880761cf20622c558131458053971461 Mon Sep 17 00:00:00 2001 From: Liahav Eitan Date: Mon, 20 Mar 2023 13:11:35 +0000 Subject: [PATCH] TestAPI to skip user confirmation dialog when launching cross-profile intents This is required since ag/21334979 added a new UI for user confirmation, but some tests rely on being able to easily launch intents cross-profile. Bug: 270573663 Test: atest com.android.cts.devicepolicy.ManagedProfileCrossProfileTest Change-Id: I68a65ae42c1d135a5054e1fd3a1dc030e6154cf7 --- .../internal/app/IntentForwarderActivity.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/core/java/com/android/internal/app/IntentForwarderActivity.java b/core/java/com/android/internal/app/IntentForwarderActivity.java index ae192a4effc74..75e797b4ec9db 100644 --- a/core/java/com/android/internal/app/IntentForwarderActivity.java +++ b/core/java/com/android/internal/app/IntentForwarderActivity.java @@ -16,14 +16,17 @@ package com.android.internal.app; +import static android.Manifest.permission.INTERACT_ACROSS_USERS; import static android.app.admin.DevicePolicyResources.Strings.Core.FORWARD_INTENT_TO_PERSONAL; import static android.app.admin.DevicePolicyResources.Strings.Core.FORWARD_INTENT_TO_WORK; import static android.content.pm.PackageManager.MATCH_DEFAULT_ONLY; +import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static com.android.internal.app.ResolverActivity.EXTRA_CALLING_USER; import static com.android.internal.app.ResolverActivity.EXTRA_SELECTED_PROFILE; import android.annotation.Nullable; +import android.annotation.TestApi; import android.app.Activity; import android.app.ActivityThread; import android.app.AppGlobals; @@ -79,6 +82,10 @@ public class IntentForwarderActivity extends Activity { public static String FORWARD_INTENT_TO_MANAGED_PROFILE = "com.android.internal.app.ForwardIntentToManagedProfile"; + @TestApi + public static final String EXTRA_SKIP_USER_CONFIRMATION = + "com.android.internal.app.EXTRA_SKIP_USER_CONFIRMATION"; + private static final Set ALLOWED_TEXT_MESSAGE_SCHEMES = new HashSet<>(Arrays.asList("sms", "smsto", "mms", "mmsto")); @@ -181,6 +188,15 @@ public class IntentForwarderActivity extends Activity { return; } + if (launchIntent.getBooleanExtra(EXTRA_SKIP_USER_CONFIRMATION, /* defaultValue= */ false) + && getCallingPackage() != null + && PERMISSION_GRANTED == getPackageManager().checkPermission( + INTERACT_ACROSS_USERS, getCallingPackage())) { + startActivityAsCaller(launchIntent, targetUserId); + finish(); + return; + } + int layoutId = R.layout.miniresolver; setContentView(layoutId);