Set launch display id to an action performed on RemoteViews.

When user click notification's action (i.e. answer call), the activity
wouldn't display as the user is interacting with.
Add ActivityOptions#setLaunchDisplayId to the display that the given view
is currently on. So the activity will be launched to the display as the
user is interacting with.

Bug: 191222363
Test: Manually tested using Exo. Open calling application(e.g.WhatsApp)
on Exo virtual display, and answer the call from the notification of
phone.
https://drive.google.com/file/d/1OhS1yn5nCcUe1Aiti3_MLL7k5BLFf7_W/view?resourcekey=0-CCR2Mihn-cfCSIqQZMg-ow

Change-Id: I215519965074b2ddc66eb0a53320673295d4fb17
This commit is contained in:
Iris Yang
2021-08-27 18:12:42 +00:00
parent 0efd62c157
commit 30691cd24d

View File

@@ -6512,6 +6512,7 @@ public class RemoteViews implements Parcelable, Filter {
opts = ActivityOptions.makeBasic();
opts.setPendingIntentLaunchFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
opts.setLaunchDisplayId(view.getDisplay().getDisplayId());
return Pair.create(intent, opts);
}
}