Merge "Fixes nav stack issue." into udc-dev
diff --git a/src/com/android/settings/display/CustomizableLockScreenUtils.java b/src/com/android/settings/display/CustomizableLockScreenUtils.java
index d945652..2344436 100644
--- a/src/com/android/settings/display/CustomizableLockScreenUtils.java
+++ b/src/com/android/settings/display/CustomizableLockScreenUtils.java
@@ -60,6 +60,12 @@
@VisibleForTesting
static final String AFFORDANCE_NAME = "affordance_name";
+ @VisibleForTesting
+ static final String WALLPAPER_LAUNCH_SOURCE = "com.android.wallpaper.LAUNCH_SOURCE";
+ @VisibleForTesting
+ static final String LAUNCH_SOURCE_SETTINGS = "app_launched_settings";
+
+
private CustomizableLockScreenUtils() {}
/**
@@ -163,7 +169,14 @@
* activity.
*/
public static Intent newIntent() {
- return new Intent(Intent.ACTION_SET_WALLPAPER);
+ final Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER);
+ // By adding the launch source here, we tell our destination (in this case, the wallpaper
+ // picker app) that it's been launched from within settings. That way, if we are in a
+ // multi-pane configuration (for example, for large screens), the wallpaper picker app can
+ // safely skip redirecting to the multi-pane version of its activity, as it's already opened
+ // within a multi-pane configuration context.
+ intent.putExtra(WALLPAPER_LAUNCH_SOURCE, LAUNCH_SOURCE_SETTINGS);
+ return intent;
}
private static boolean isWallpaperPickerInstalled(Context context) {
diff --git a/tests/robotests/src/com/android/settings/display/CustomizableLockScreenQuickAffordancesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/CustomizableLockScreenQuickAffordancesPreferenceControllerTest.java
index e92dbe6..bf316e9 100644
--- a/tests/robotests/src/com/android/settings/display/CustomizableLockScreenQuickAffordancesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/CustomizableLockScreenQuickAffordancesPreferenceControllerTest.java
@@ -114,6 +114,9 @@
assertThat(intentCaptor.getValue().getPackage()).isEqualTo(
mContext.getString(R.string.config_wallpaper_picker_package));
assertThat(intentCaptor.getValue().getAction()).isEqualTo(Intent.ACTION_SET_WALLPAPER);
+ assertThat(intentCaptor.getValue().getStringExtra(
+ CustomizableLockScreenUtils.WALLPAPER_LAUNCH_SOURCE)).isEqualTo(
+ CustomizableLockScreenUtils.LAUNCH_SOURCE_SETTINGS);
assertThat(intentCaptor.getValue().getStringExtra("destination"))
.isEqualTo("quick_affordances");
}