getActivityTokenBelow should exclude finishing activity
This method was introduced in ag/15302841 to check the new launch activity and the activity below. However, when launching an activity into split, the organizer may also call to finish existing activity in split. We don't want to check the split rule with a finishing activity. Bug: 190433398 Test: test with demo app Change-Id: I7f604ddea7c2f68adc3cee52b8872e653d5dad98
This commit is contained in:
@@ -207,7 +207,8 @@ public class ActivityClient {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the activity token below in the same task if it belongs to the same process.
|
||||
* Returns the non-finishing activity token below in the same task if it belongs to the same
|
||||
* process.
|
||||
*/
|
||||
@Nullable
|
||||
public IBinder getActivityTokenBelow(IBinder activityToken) {
|
||||
|
||||
@@ -554,7 +554,9 @@ class ActivityClientController extends IActivityClientController.Stub {
|
||||
if (ar == null) {
|
||||
return null;
|
||||
}
|
||||
final ActivityRecord below = ar.getTask().getActivityBelow(ar);
|
||||
// Exclude finishing activity.
|
||||
final ActivityRecord below = ar.getTask().getActivity((r) -> !r.finishing,
|
||||
ar, false /*includeBoundary*/, true /*traverseTopToBottom*/);
|
||||
if (below != null && below.getUid() == ar.getUid()) {
|
||||
return below.appToken.asBinder();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user