From eb2695c2aad73186561f25f0a1b8361fd3e1f036 Mon Sep 17 00:00:00 2001 From: Doris Ling Date: Thu, 18 Jan 2018 14:16:27 -0800 Subject: [PATCH] Only show app action button if it is not instant app. - for instant app, we are showing another set of buttons, and hence the regular app action buttons should be not be available. Change-Id: I53f2a10921451c281166e123671c088ab87b2b0d Fixes: 71919219 Test: make RunSettingsRoboTests --- .../AppActionButtonPreferenceController.java | 3 ++- ...pActionButtonPreferenceControllerTest.java | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/applications/appinfo/AppActionButtonPreferenceController.java b/src/com/android/settings/applications/appinfo/AppActionButtonPreferenceController.java index b10d06c9b55..130138c376f 100644 --- a/src/com/android/settings/applications/appinfo/AppActionButtonPreferenceController.java +++ b/src/com/android/settings/applications/appinfo/AppActionButtonPreferenceController.java @@ -93,7 +93,8 @@ public class AppActionButtonPreferenceController extends BasePreferenceControlle @Override public int getAvailabilityStatus() { - return AVAILABLE; + return AppUtils.isInstant(mParent.getPackageInfo().applicationInfo) + ? DISABLED_FOR_USER : AVAILABLE; } @Override diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppActionButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppActionButtonPreferenceControllerTest.java index 17b7a2299af..7d5eb318026 100644 --- a/tests/robotests/src/com/android/settings/applications/appinfo/AppActionButtonPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppActionButtonPreferenceControllerTest.java @@ -79,6 +79,8 @@ public class AppActionButtonPreferenceControllerTest { private DevicePolicyManagerWrapper mDevicePolicyManager; @Mock private AppInfoDashboardFragment mFragment; + @Mock + private ApplicationInfo mAppInfo; private Context mContext; private AppActionButtonPreferenceController mController; @@ -96,6 +98,25 @@ public class AppActionButtonPreferenceControllerTest { ReflectionHelpers.setField(mController, "mApplicationFeatureProvider", mFeatureFactory.applicationFeatureProvider); when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager); + final PackageInfo packageInfo = mock(PackageInfo.class); + packageInfo.applicationInfo = mAppInfo; + when(mFragment.getPackageInfo()).thenReturn(packageInfo); + } + + @Test + public void getAvailabilityStatus_notInstantApp_shouldReturnAvailable() { + ReflectionHelpers.setStaticField(AppUtils.class, "sInstantAppDataProvider", + (InstantAppDataProvider) (i -> false)); + + assertThat(mController.getAvailabilityStatus()).isEqualTo(mController.AVAILABLE); + } + + @Test + public void getAvailabilityStatus_isInstantApp_shouldReturnDisabled() { + ReflectionHelpers.setStaticField(AppUtils.class, "sInstantAppDataProvider", + (InstantAppDataProvider) (i -> true)); + + assertThat(mController.getAvailabilityStatus()).isEqualTo(mController.DISABLED_FOR_USER); } @Test