From 617acf352b095461eac15eeb9896b9a5fff06e9a Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Wed, 14 Mar 2018 13:46:54 -0700 Subject: [PATCH] Fixing settings crash when no default home app is set Test: make -j20 RunSettingsRoboTests Bug: 74519090 Change-Id: I8846bae1f0083be981cfde9a68291c1b01359228 --- .../DefaultHomePreferenceController.java | 3 +++ .../DefaultHomePreferenceControllerTest.java | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/com/android/settings/applications/defaultapps/DefaultHomePreferenceController.java b/src/com/android/settings/applications/defaultapps/DefaultHomePreferenceController.java index 6f377973cc3..02409b20b35 100644 --- a/src/com/android/settings/applications/defaultapps/DefaultHomePreferenceController.java +++ b/src/com/android/settings/applications/defaultapps/DefaultHomePreferenceController.java @@ -91,6 +91,9 @@ public class DefaultHomePreferenceController extends DefaultAppPreferenceControl @Override protected Intent getSettingIntent(DefaultAppInfo info) { + if (info == null) { + return null; + } final String packageName; if (info.componentName != null) { packageName = info.componentName.getPackageName(); diff --git a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultHomePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultHomePreferenceControllerTest.java index 2aa2fa6842e..a9cfa01e0b5 100644 --- a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultHomePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultHomePreferenceControllerTest.java @@ -88,6 +88,13 @@ public class DefaultHomePreferenceControllerTest { verify(mPackageManager).getHomeActivities(anyList()); } + @Test + public void getDefaultApp_noDefaultHome_shouldReturnNull() { + when(mPackageManager.getHomeActivities(anyList())).thenReturn(null); + + assertThat(mController.getDefaultAppInfo()).isNull(); + } + @Test public void updateState_noDefaultApp_shouldAskPackageManagerForOnlyApp() { when(mPackageManager.getHomeActivities(anyList())).thenReturn(null); @@ -152,4 +159,11 @@ public class DefaultHomePreferenceControllerTest { .thenReturn(Arrays.asList(mock(ResolveInfo.class), mock(ResolveInfo.class))); assertThat(mController.getSettingIntent(mController.getDefaultAppInfo())).isNull(); } + + @Test + public void testGetSettingIntent_noDefauldHome_shouldReturnNull() { + when(mPackageManager.getHomeActivities(anyList())).thenReturn(null); + assertThat(mController.getSettingIntent(mController.getDefaultAppInfo())).isNull(); + } + }