diff --git a/src/com/android/settings/applications/defaultapps/DefaultHomePicker.java b/src/com/android/settings/applications/defaultapps/DefaultHomePicker.java index dca7ad18584..aebe3435a71 100644 --- a/src/com/android/settings/applications/defaultapps/DefaultHomePicker.java +++ b/src/com/android/settings/applications/defaultapps/DefaultHomePicker.java @@ -18,6 +18,7 @@ package com.android.settings.applications.defaultapps; import android.content.ComponentName; import android.content.Context; +import android.content.Intent; import android.content.IntentFilter; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; @@ -104,6 +105,14 @@ public class DefaultHomePicker extends DefaultAppPickerFragment { IntentFilter.MATCH_CATEGORY_EMPTY, allComponents.toArray(new ComponentName[0]), component); + + // Launch the new Home app so the change is immediately visible even if + // the Home button is not pressed. + final Context context = getContext(); + Intent i = new Intent(Intent.ACTION_MAIN); + i.addCategory(Intent.CATEGORY_HOME); + i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + context.startActivity(i); return true; } return false; diff --git a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultHomePickerTest.java b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultHomePickerTest.java index f425d2fa19e..c024e3a534a 100644 --- a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultHomePickerTest.java +++ b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultHomePickerTest.java @@ -73,6 +73,7 @@ public class DefaultHomePickerTest { @Mock private PackageManager mPackageManager; + private Context mContext; private DefaultHomePicker mPicker; @Before @@ -85,7 +86,8 @@ public class DefaultHomePickerTest { mPicker.onAttach((Context) mActivity); ReflectionHelpers.setField(mPicker, "mPm", mPackageManagerWrapper); - doReturn(RuntimeEnvironment.application).when(mPicker).getContext(); + mContext = spy(RuntimeEnvironment.application); + doReturn(mContext).when(mPicker).getContext(); } @Test @@ -94,6 +96,7 @@ public class DefaultHomePickerTest { verify(mPackageManagerWrapper).replacePreferredActivity(any(IntentFilter.class), anyInt(), any(ComponentName[].class), any(ComponentName.class)); + verify(mContext).startActivity(any()); } @Test