From a7e923c57c30b72671191c924b9b4ccc9e9fcc40 Mon Sep 17 00:00:00 2001 From: Steve McKay Date: Thu, 28 Jan 2016 12:02:57 -0800 Subject: [PATCH] Create new windows on *other* side in multi-window mode. Bug:26831180 Change-Id: Ie3fb22847e70cd78998d467a8af9bf20642304e5 --- .../src/com/android/documentsui/FilesActivity.java | 12 ++++++++++-- .../com/android/documentsui/LauncherActivity.java | 5 ++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java b/packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java index 393fdcd0586ad..3af988d7611e4 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java +++ b/packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java @@ -16,12 +16,11 @@ package com.android.documentsui; +import static com.android.documentsui.OperationDialogFragment.DIALOG_TYPE_UNKNOWN; import static com.android.documentsui.Shared.DEBUG; import static com.android.documentsui.dirlist.DirectoryFragment.ANIM_NONE; import static com.android.internal.util.Preconditions.checkArgument; import static com.android.internal.util.Preconditions.checkState; -import static com.android.documentsui.OperationDialogFragment.DialogType; -import static com.android.documentsui.OperationDialogFragment.DIALOG_TYPE_UNKNOWN; import android.app.Activity; import android.app.FragmentManager; @@ -45,6 +44,7 @@ import android.widget.BaseAdapter; import android.widget.Spinner; import android.widget.Toolbar; +import com.android.documentsui.OperationDialogFragment.DialogType; import com.android.documentsui.RecentsProvider.ResumeColumns; import com.android.documentsui.dirlist.DirectoryFragment; import com.android.documentsui.model.DocumentInfo; @@ -287,6 +287,14 @@ public class FilesActivity extends BaseActivity { Metrics.logMultiWindow(this); Intent intent = LauncherActivity.createLaunchIntent(this); intent.putExtra(Shared.EXTRA_STACK, (Parcelable) mState.stack); + + // With new multi-window mode we have to pick how we are launched. + // By default we'd be launched in-place above the existing app. + // By setting launch-to-side ActivityManager will open us to side. + if (inMultiWindowMode()) { + intent.addFlags(Intent.FLAG_ACTIVITY_LAUNCH_TO_SIDE); + } + startActivity(intent); } diff --git a/packages/DocumentsUI/src/com/android/documentsui/LauncherActivity.java b/packages/DocumentsUI/src/com/android/documentsui/LauncherActivity.java index b3d0cf37bbd52..7930c28fc6c29 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/LauncherActivity.java +++ b/packages/DocumentsUI/src/com/android/documentsui/LauncherActivity.java @@ -74,6 +74,9 @@ public class LauncherActivity extends Activity { private void startTask() { Intent intent = createLaunchIntent(this); + + // Forward any flags from the original intent. + intent.setFlags(getIntent().getFlags()); if (DEBUG) Log.d(TAG, "Starting new task > " + intent.getData()); startActivity(intent); } @@ -84,7 +87,7 @@ public class LauncherActivity extends Activity { startActivity(intent); } - static Intent createLaunchIntent(Context context) { + static final Intent createLaunchIntent(Context context) { Intent intent = new Intent(context, FilesActivity.class); intent.setData(buildLaunchUri()); return intent;