summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ben Lin <linben@google.com> 2021-02-08 19:28:12 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2021-02-08 19:28:12 +0000
commitc8227c58fa84f2b75d22c740d8e0728d6a13691f (patch)
tree3a1fa548858df99746b0392477fb6661f6a343a1
parent32906bfbbd6b1843598f30813fb11cd1ce58a604 (diff)
parent52e7ab8b6fbf25c7ae2daa32676076de8359580e (diff)
Merge "Pass ActivityOptions to HeavyWeightSwitcherAcivity." into sc-dev
-rw-r--r--core/java/com/android/internal/app/HeavyWeightSwitcherActivity.java9
-rw-r--r--services/core/java/com/android/server/wm/ActivityStarter.java5
2 files changed, 11 insertions, 3 deletions
diff --git a/core/java/com/android/internal/app/HeavyWeightSwitcherActivity.java b/core/java/com/android/internal/app/HeavyWeightSwitcherActivity.java
index 015238788191..c2ee6461e5e1 100644
--- a/core/java/com/android/internal/app/HeavyWeightSwitcherActivity.java
+++ b/core/java/com/android/internal/app/HeavyWeightSwitcherActivity.java
@@ -53,8 +53,10 @@ public class HeavyWeightSwitcherActivity extends Activity {
public static final String KEY_CUR_TASK = "cur_task";
/** Package of newly requested heavy-weight app. */
public static final String KEY_NEW_APP = "new_app";
+ public static final String KEY_ACTIVITY_OPTIONS = "activity_options";
IntentSender mStartIntent;
+ Bundle mActivityOptions;
boolean mHasResult;
String mCurApp;
int mCurTask;
@@ -65,8 +67,9 @@ public class HeavyWeightSwitcherActivity extends Activity {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
-
+
mStartIntent = (IntentSender)getIntent().getParcelableExtra(KEY_INTENT);
+ mActivityOptions = getIntent().getBundleExtra(KEY_ACTIVITY_OPTIONS);
mHasResult = getIntent().getBooleanExtra(KEY_HAS_RESULT, false);
mCurApp = getIntent().getStringExtra(KEY_CUR_APP);
mCurTask = getIntent().getIntExtra(KEY_CUR_TASK, 0);
@@ -148,9 +151,9 @@ public class HeavyWeightSwitcherActivity extends Activity {
if (mHasResult) {
startIntentSenderForResult(mStartIntent, -1, null,
Intent.FLAG_ACTIVITY_FORWARD_RESULT,
- Intent.FLAG_ACTIVITY_FORWARD_RESULT, 0);
+ Intent.FLAG_ACTIVITY_FORWARD_RESULT, 0, mActivityOptions);
} else {
- startIntentSenderForResult(mStartIntent, -1, null, 0, 0, 0);
+ startIntentSenderForResult(mStartIntent, -1, null, 0, 0, 0, mActivityOptions);
}
} catch (IntentSender.SendIntentException ex) {
Log.w("HeavyWeightSwitcherActivity", "Failure starting", ex);
diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java
index 79f8229c6162..3456e51d028a 100644
--- a/services/core/java/com/android/server/wm/ActivityStarter.java
+++ b/services/core/java/com/android/server/wm/ActivityStarter.java
@@ -772,6 +772,11 @@ class ActivityStarter {
newIntent.putExtra(HeavyWeightSwitcherActivity.KEY_HAS_RESULT, true);
}
newIntent.putExtra(HeavyWeightSwitcherActivity.KEY_INTENT, new IntentSender(target));
+ ActivityOptions options = mRequest.activityOptions.getOptions(mRequest.intent,
+ mRequest.activityInfo,
+ mService.getProcessController(mRequest.caller),
+ mSupervisor);
+ newIntent.putExtra(HeavyWeightSwitcherActivity.KEY_ACTIVITY_OPTIONS, options.toBundle());
heavy.updateIntentForHeavyWeightActivity(newIntent);
newIntent.putExtra(HeavyWeightSwitcherActivity.KEY_NEW_APP,
mRequest.activityInfo.packageName);