From ec40f41e4c7e8d76077cb75ca85095afd64eff33 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Thu, 21 Jun 2018 11:11:47 -0700 Subject: [PATCH] Do not stop wallpaper chooser activity When choosing wallpaper type, do not finish the activity so we can maintain a consistent back stack. Change-Id: I690f4482716c6eaeb0a31605fbdf0a2525be0a15 Fixes: 80554423 Test: robotests --- .../WallpaperTypePreferenceController.java | 11 ++--------- .../wallpaper/WallpaperTypeSettings.java | 6 ------ .../WallpaperTypePreferenceControllerTest.java | 18 ------------------ 3 files changed, 2 insertions(+), 33 deletions(-) diff --git a/src/com/android/settings/wallpaper/WallpaperTypePreferenceController.java b/src/com/android/settings/wallpaper/WallpaperTypePreferenceController.java index 0dad196f493..b7dd84f4442 100644 --- a/src/com/android/settings/wallpaper/WallpaperTypePreferenceController.java +++ b/src/com/android/settings/wallpaper/WallpaperTypePreferenceController.java @@ -16,7 +16,6 @@ package com.android.settings.wallpaper; -import android.app.Fragment; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -36,18 +35,13 @@ import androidx.preference.PreferenceScreen; public class WallpaperTypePreferenceController extends BasePreferenceController implements LifecycleObserver, OnStart { - private Fragment mParentFragment; + private PreferenceScreen mScreen; public WallpaperTypePreferenceController(Context context, String key) { super(context, key); } - public void setParentFragment(Fragment parentFragment) { - mParentFragment = parentFragment; - } - - @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); @@ -64,8 +58,7 @@ public class WallpaperTypePreferenceController extends BasePreferenceController if (preference.getIntent() == null) { return super.handlePreferenceTreeClick(preference); } - mParentFragment.startActivity(preference.getIntent()); - mParentFragment.getActivity().finish(); + mContext.startActivity(preference.getIntent()); return true; } diff --git a/src/com/android/settings/wallpaper/WallpaperTypeSettings.java b/src/com/android/settings/wallpaper/WallpaperTypeSettings.java index ca42ddaef48..1ea0b740905 100644 --- a/src/com/android/settings/wallpaper/WallpaperTypeSettings.java +++ b/src/com/android/settings/wallpaper/WallpaperTypeSettings.java @@ -55,12 +55,6 @@ public class WallpaperTypeSettings extends DashboardFragment { return R.xml.wallpaper_settings; } - @Override - public void onAttach(Context context) { - super.onAttach(context); - use(WallpaperTypePreferenceController.class).setParentFragment(this); - } - public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider() { @Override diff --git a/tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java index c03215407d5..9bebc934424 100644 --- a/tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java @@ -17,13 +17,7 @@ package com.android.settings.wallpaper; import static com.google.common.truth.Truth.assertThat; -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.doNothing; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.when; -import android.app.Activity; -import android.app.Fragment; import android.content.Context; import android.content.Intent; @@ -33,9 +27,7 @@ import com.android.settings.testutils.SettingsRobolectricTestRunner; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.robolectric.Robolectric; import org.robolectric.RuntimeEnvironment; import androidx.preference.Preference; @@ -43,11 +35,7 @@ import androidx.preference.Preference; @RunWith(SettingsRobolectricTestRunner.class) public class WallpaperTypePreferenceControllerTest { - @Mock - private Fragment mFragment; - private Context mContext; - private Activity mActivity; private WallpaperTypePreferenceController mController; private Preference mPreference; private Intent mIntent; @@ -56,9 +44,7 @@ public class WallpaperTypePreferenceControllerTest { public void setUp() { MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; - mActivity = spy(Robolectric.buildActivity(Activity.class).get()); mController = new WallpaperTypePreferenceController(mContext, "pref_key"); - mController.setParentFragment(mFragment); mIntent = new Intent(); mPreference = new Preference(mContext); } @@ -81,10 +67,6 @@ public class WallpaperTypePreferenceControllerTest { @Test public void testhandlePreferenceTreeClick_shouldLaunchIntent() { mPreference.setIntent(mIntent); - doNothing().when(mFragment).startActivity(any(Intent.class)); - when(mFragment.getActivity()).thenReturn(mActivity); - doNothing().when(mActivity).finish(); - final boolean handled = mController.handlePreferenceTreeClick(mPreference); assertThat(handled).isTrue();