diff --git a/src/com/android/settings/applications/appinfo/AppInstallerInfoPreferenceController.java b/src/com/android/settings/applications/appinfo/AppInstallerInfoPreferenceController.java index bf8567684ec..2e119537a2c 100644 --- a/src/com/android/settings/applications/appinfo/AppInstallerInfoPreferenceController.java +++ b/src/com/android/settings/applications/appinfo/AppInstallerInfoPreferenceController.java @@ -42,6 +42,11 @@ public class AppInstallerInfoPreferenceController extends AppInfoPreferenceContr if (UserManager.get(mContext).isManagedProfile()) { return DISABLED_FOR_USER; } + + if (AppUtils.isMainlineModule(mContext, mPackageName)) { + return DISABLED_FOR_USER; + } + return mInstallerLabel != null ? AVAILABLE : DISABLED_FOR_USER; } diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppInstallerInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppInstallerInfoPreferenceControllerTest.java index 1f85477c02e..00bd5f80724 100644 --- a/tests/robotests/src/com/android/settings/applications/appinfo/AppInstallerInfoPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppInstallerInfoPreferenceControllerTest.java @@ -32,6 +32,7 @@ import android.content.Context; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; +import android.content.pm.ModuleInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; @@ -148,4 +149,16 @@ public class AppInstallerInfoPreferenceControllerTest { verify(mPreference, never()).setEnabled(false); verify(mPreference).setIntent(any(Intent.class)); } + + @Test + public void getAvailabilityStatus_isMainlineModule_shouldReturnDisabled() + throws PackageManager.NameNotFoundException { + when(mUserManager.isManagedProfile()).thenReturn(false); + when(mAppInfo.loadLabel(mPackageManager)).thenReturn("Label"); + mController.setPackageName("Package"); + when(mPackageManager.getModuleInfo("Package", 0 /* flags */)).thenReturn(new ModuleInfo()); + + assertThat(mController.getAvailabilityStatus()).isEqualTo( + BasePreferenceController.DISABLED_FOR_USER); + } }