Do nothing when a finishing Activity configuration changed
Primary Activity and secondary Activity were both finished while starting another Activity with FLAG_ACTIVITY_CLEAR_TASK flag. The secondary container was then removed and the primary container was resized to fullscreen while the organizer gets the secondary TaskFragment info-changed event. And the primary container was removed by primary TaskFragment info-changed event afterward. Since the primary Activity was resized before completely being destroyed. The organizer got an onActivityConfigurationChanged c allback and resulted in another placeholder activity being launched. Bug: 236272623 Test: making Duo calls Change-Id: I851828f739a4937725510d99cbdfae9ed212a023
This commit is contained in:
@@ -642,6 +642,11 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen
|
||||
}
|
||||
|
||||
private void onActivityConfigurationChanged(@NonNull Activity activity) {
|
||||
if (activity.isFinishing()) {
|
||||
// Do nothing if the activity is currently finishing.
|
||||
return;
|
||||
}
|
||||
|
||||
if (isInPictureInPicture(activity)) {
|
||||
// We don't embed activity when it is in PIP.
|
||||
return;
|
||||
@@ -1115,6 +1120,10 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen
|
||||
}
|
||||
|
||||
boolean launchPlaceholderIfNecessary(@NonNull Activity activity, boolean isOnCreated) {
|
||||
if (activity.isFinishing()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final TaskFragmentContainer container = getContainerWithActivity(activity);
|
||||
// Don't launch placeholder if the container is occluded.
|
||||
if (container != null && container != getTopActiveContainer(container.getTaskId())) {
|
||||
|
||||
Reference in New Issue
Block a user