Merge "Fix NPE in InstantAppButtonsPreferenceController"

This commit is contained in:
TreeHugger Robot
2018-02-23 06:53:32 +00:00
committed by Android (Google) Code Review
2 changed files with 13 additions and 3 deletions

View File

@@ -112,11 +112,12 @@ public class InstantAppButtonsPreferenceController extends BasePreferenceControl
@Override @Override
public void onPrepareOptionsMenu(Menu menu) { public void onPrepareOptionsMenu(Menu menu) {
mInstallMenu = menu.findItem(AppInfoDashboardFragment.INSTALL_INSTANT_APP_MENU); mInstallMenu = menu.findItem(AppInfoDashboardFragment.INSTALL_INSTANT_APP_MENU);
final Intent appStoreIntent = AppStoreUtil.getAppStoreLink(mContext, mPackageName); if (mInstallMenu != null) {
if (appStoreIntent == null) { if (AppStoreUtil.getAppStoreLink(mContext, mPackageName) == null) {
mInstallMenu.setEnabled(false); mInstallMenu.setEnabled(false);
} }
} }
}
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {

View File

@@ -179,6 +179,15 @@ public class InstantAppButtonsPreferenceControllerTest {
verify(menuItem, never()).setEnabled(false); verify(menuItem, never()).setEnabled(false);
} }
@Test
public void onPrepareOptionsMenu_installMenuNotFound_shoulNotCrash() {
final Menu menu = mock(Menu.class);
mController.onPrepareOptionsMenu(menu);
// no crash
}
@Test @Test
public void onOptionsItemSelected_shouldOpenAppStore() { public void onOptionsItemSelected_shouldOpenAppStore() {
final ResolveInfo resolveInfo = mock(ResolveInfo.class); final ResolveInfo resolveInfo = mock(ResolveInfo.class);