From c08984befdadbfb5eadfe33df722a4dffab3f98d Mon Sep 17 00:00:00 2001 From: Doris Ling Date: Tue, 6 Mar 2018 13:37:21 -0800 Subject: [PATCH] Add intent fields when launching instant app. - add browseable category, package name, and new task flag. Change-Id: Ie558f5885b5f0f78c88241de7c2d7a21cfb9d0fe Fixes: 74131502 Test: make RunSettingsRoboTests --- .../appinfo/InstantAppButtonsPreferenceController.java | 3 +++ .../appinfo/InstantAppButtonsPreferenceControllerTest.java | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceController.java b/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceController.java index df64d76b43d..d2515a37810 100644 --- a/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceController.java +++ b/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceController.java @@ -147,7 +147,10 @@ public class InstantAppButtonsPreferenceController extends BasePreferenceControl if (!TextUtils.isEmpty(mLaunchUri)) { installButton.setVisibility(View.GONE); final Intent intent = new Intent(Intent.ACTION_VIEW); + intent.addCategory(Intent.CATEGORY_BROWSABLE); + intent.setPackage(mPackageName); intent.setData(Uri.parse(mLaunchUri)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); launchButton.setOnClickListener(v -> mParent.startActivity(intent)); } else { launchButton.setVisibility(View.GONE); diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java index 8a85d70a01b..ad0a9fe75f7 100644 --- a/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java @@ -262,6 +262,9 @@ public class InstantAppButtonsPreferenceControllerTest { verify(mFragment).startActivity(argThat(intent-> intent != null && intent.getAction().equals(Intent.ACTION_VIEW) + && intent.hasCategory(Intent.CATEGORY_BROWSABLE) + && (intent.getFlags() & Intent.FLAG_ACTIVITY_NEW_TASK) != 0 + && TextUtils.equals(intent.getPackage(), TEST_AIA_PACKAGE_NAME) && TextUtils.equals(intent.getDataString(), launchUri))); }