diff --git a/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceController.java b/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceController.java index dcae5ef506a..df64d76b43d 100644 --- a/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceController.java +++ b/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceController.java @@ -112,9 +112,10 @@ public class InstantAppButtonsPreferenceController extends BasePreferenceControl @Override public void onPrepareOptionsMenu(Menu menu) { mInstallMenu = menu.findItem(AppInfoDashboardFragment.INSTALL_INSTANT_APP_MENU); - final Intent appStoreIntent = AppStoreUtil.getAppStoreLink(mContext, mPackageName); - if (appStoreIntent == null) { - mInstallMenu.setEnabled(false); + if (mInstallMenu != null) { + if (AppStoreUtil.getAppStoreLink(mContext, mPackageName) == null) { + mInstallMenu.setEnabled(false); + } } } 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 935389c10a3..24823fe9d50 100644 --- a/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java @@ -179,6 +179,15 @@ public class InstantAppButtonsPreferenceControllerTest { verify(menuItem, never()).setEnabled(false); } + @Test + public void onPrepareOptionsMenu_installMenuNotFound_shoulNotCrash() { + final Menu menu = mock(Menu.class); + + mController.onPrepareOptionsMenu(menu); + + // no crash + } + @Test public void onOptionsItemSelected_shouldOpenAppStore() { final ResolveInfo resolveInfo = mock(ResolveInfo.class);