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
This commit is contained in:
Fan Zhang
2018-06-21 11:11:47 -07:00
parent 8691fed1cb
commit ec40f41e4c
3 changed files with 2 additions and 33 deletions

View File

@@ -16,7 +16,6 @@
package com.android.settings.wallpaper; package com.android.settings.wallpaper;
import android.app.Fragment;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@@ -36,18 +35,13 @@ import androidx.preference.PreferenceScreen;
public class WallpaperTypePreferenceController extends BasePreferenceController public class WallpaperTypePreferenceController extends BasePreferenceController
implements LifecycleObserver, OnStart { implements LifecycleObserver, OnStart {
private Fragment mParentFragment;
private PreferenceScreen mScreen; private PreferenceScreen mScreen;
public WallpaperTypePreferenceController(Context context, String key) { public WallpaperTypePreferenceController(Context context, String key) {
super(context, key); super(context, key);
} }
public void setParentFragment(Fragment parentFragment) {
mParentFragment = parentFragment;
}
@Override @Override
public void displayPreference(PreferenceScreen screen) { public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen); super.displayPreference(screen);
@@ -64,8 +58,7 @@ public class WallpaperTypePreferenceController extends BasePreferenceController
if (preference.getIntent() == null) { if (preference.getIntent() == null) {
return super.handlePreferenceTreeClick(preference); return super.handlePreferenceTreeClick(preference);
} }
mParentFragment.startActivity(preference.getIntent()); mContext.startActivity(preference.getIntent());
mParentFragment.getActivity().finish();
return true; return true;
} }

View File

@@ -55,12 +55,6 @@ public class WallpaperTypeSettings extends DashboardFragment {
return R.xml.wallpaper_settings; 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 = public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() { new BaseSearchIndexProvider() {
@Override @Override

View File

@@ -17,13 +17,7 @@
package com.android.settings.wallpaper; package com.android.settings.wallpaper;
import static com.google.common.truth.Truth.assertThat; 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.Context;
import android.content.Intent; import android.content.Intent;
@@ -33,9 +27,7 @@ import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment; import org.robolectric.RuntimeEnvironment;
import androidx.preference.Preference; import androidx.preference.Preference;
@@ -43,11 +35,7 @@ import androidx.preference.Preference;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
public class WallpaperTypePreferenceControllerTest { public class WallpaperTypePreferenceControllerTest {
@Mock
private Fragment mFragment;
private Context mContext; private Context mContext;
private Activity mActivity;
private WallpaperTypePreferenceController mController; private WallpaperTypePreferenceController mController;
private Preference mPreference; private Preference mPreference;
private Intent mIntent; private Intent mIntent;
@@ -56,9 +44,7 @@ public class WallpaperTypePreferenceControllerTest {
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application; mContext = RuntimeEnvironment.application;
mActivity = spy(Robolectric.buildActivity(Activity.class).get());
mController = new WallpaperTypePreferenceController(mContext, "pref_key"); mController = new WallpaperTypePreferenceController(mContext, "pref_key");
mController.setParentFragment(mFragment);
mIntent = new Intent(); mIntent = new Intent();
mPreference = new Preference(mContext); mPreference = new Preference(mContext);
} }
@@ -81,10 +67,6 @@ public class WallpaperTypePreferenceControllerTest {
@Test @Test
public void testhandlePreferenceTreeClick_shouldLaunchIntent() { public void testhandlePreferenceTreeClick_shouldLaunchIntent() {
mPreference.setIntent(mIntent); 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); final boolean handled = mController.handlePreferenceTreeClick(mPreference);
assertThat(handled).isTrue(); assertThat(handled).isTrue();