Fix NPE in InstantAppButtonsPreferenceController

- check for valid install options menu before trying to disable it.

Change-Id: Ibe644a506094e66b0f657092a25557f5096d4942
Fixes: 73767192
Test: make RunSettingsRoboTests
This commit is contained in:
Doris Ling
2018-02-22 10:39:13 -08:00
parent 38bfe2e43d
commit 8f7edfa108
2 changed files with 13 additions and 3 deletions

View File

@@ -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);
}
}
}

View File

@@ -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);