Not use NEW_TASKS for Wallpaper & style's 2-pane UX
Refine launch mode to support 2-pane UX for Settings. Bug: 197609643 Test: make RunSettingsRoboTests Change-Id: I5212bbcf8c512fac571284379a29cf487f387c5a
This commit is contained in:
@@ -29,6 +29,7 @@ import androidx.preference.Preference;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.testutils.shadow.SettingsShadowResources;
|
||||
import com.android.settings.testutils.shadow.ShadowActivityEmbeddingUtils;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
@@ -43,7 +44,7 @@ import org.robolectric.annotation.Config;
|
||||
import org.robolectric.shadows.ShadowPackageManager;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = {SettingsShadowResources.class})
|
||||
@Config(shadows = {SettingsShadowResources.class, ShadowActivityEmbeddingUtils.class})
|
||||
public class TopLevelWallpaperPreferenceControllerTest {
|
||||
private static final String TEST_KEY = "test_key";
|
||||
|
||||
@@ -204,18 +205,32 @@ public class TopLevelWallpaperPreferenceControllerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handlePreferenceTreeClick_launchClearTask() {
|
||||
mShadowPackageManager.setResolveInfosForIntent(
|
||||
mWallpaperIntent, Lists.newArrayList());
|
||||
public void handlePreferenceTreeClick_embeddingActivityDisabled_launchWithTaskFlag() {
|
||||
ShadowActivityEmbeddingUtils.setIsEmbeddingActivityEnabled(false);
|
||||
mShadowPackageManager.setResolveInfosForIntent(
|
||||
mStylesAndWallpaperIntent, Lists.newArrayList(mock(ResolveInfo.class)));
|
||||
|
||||
Preference preference = new Preference(mContext);
|
||||
preference.setKey(TEST_KEY);
|
||||
|
||||
mController.handlePreferenceTreeClick(preference);
|
||||
|
||||
assertThat((Shadows.shadowOf(mContext).getNextStartedActivityForResult()
|
||||
.intent.getFlags() & Intent.FLAG_ACTIVITY_CLEAR_TASK) != 0).isTrue();
|
||||
int flags = Shadows.shadowOf(mContext).getNextStartedActivityForResult().intent.getFlags();
|
||||
assertThat((flags & Intent.FLAG_ACTIVITY_NEW_TASK) != 0).isTrue();
|
||||
assertThat((flags & Intent.FLAG_ACTIVITY_CLEAR_TASK) != 0).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handlePreferenceTreeClick_embeddingActivityEnabled_launchWithoutTaskFlag() {
|
||||
ShadowActivityEmbeddingUtils.setIsEmbeddingActivityEnabled(true);
|
||||
mShadowPackageManager.setResolveInfosForIntent(
|
||||
mStylesAndWallpaperIntent, Lists.newArrayList(mock(ResolveInfo.class)));
|
||||
Preference preference = new Preference(mContext);
|
||||
preference.setKey(TEST_KEY);
|
||||
|
||||
mController.handlePreferenceTreeClick(preference);
|
||||
|
||||
int flags = Shadows.shadowOf(mContext).getNextStartedActivityForResult().intent.getFlags();
|
||||
assertThat((flags & Intent.FLAG_ACTIVITY_NEW_TASK) != 0).isFalse();
|
||||
assertThat((flags & Intent.FLAG_ACTIVITY_CLEAR_TASK) != 0).isFalse();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user