Merge "Fix starting window isn't removed" into tm-dev
This commit is contained in:
@@ -6340,8 +6340,10 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
|||||||
mSharedStartingData != null ? mSharedStartingData.mAssociatedTask : null;
|
mSharedStartingData != null ? mSharedStartingData.mAssociatedTask : null;
|
||||||
if (associatedTask == null) {
|
if (associatedTask == null) {
|
||||||
removeStartingWindow();
|
removeStartingWindow();
|
||||||
} else if (associatedTask.getActivity(
|
} else if (associatedTask.getActivity(r -> r.mVisibleRequested && !r.firstWindowDrawn
|
||||||
r -> r.mVisibleRequested && !r.firstWindowDrawn) == null) {
|
// Don't block starting window removal if an Activity can't be a starting window
|
||||||
|
// target.
|
||||||
|
&& r.mSharedStartingData != null) == null) {
|
||||||
// The last drawn activity may not be the one that owns the starting window.
|
// The last drawn activity may not be the one that owns the starting window.
|
||||||
final ActivityRecord r = associatedTask.topActivityContainsStartingWindow();
|
final ActivityRecord r = associatedTask.topActivityContainsStartingWindow();
|
||||||
if (r != null) {
|
if (r != null) {
|
||||||
|
|||||||
@@ -2853,6 +2853,11 @@ public class ActivityRecordTests extends WindowTestsBase {
|
|||||||
assertTrue(activity2.isResizeable());
|
assertTrue(activity2.isResizeable());
|
||||||
activity1.reparent(taskFragment1, POSITION_TOP);
|
activity1.reparent(taskFragment1, POSITION_TOP);
|
||||||
|
|
||||||
|
// Adds an Activity which doesn't have shared starting data, and verify if it blocks
|
||||||
|
// starting window removal.
|
||||||
|
final ActivityRecord activity3 = new ActivityBuilder(mAtm).build();
|
||||||
|
taskFragment2.addChild(activity3, POSITION_TOP);
|
||||||
|
|
||||||
verify(activity1.getSyncTransaction()).reparent(eq(startingWindow.mSurfaceControl),
|
verify(activity1.getSyncTransaction()).reparent(eq(startingWindow.mSurfaceControl),
|
||||||
eq(task.mSurfaceControl));
|
eq(task.mSurfaceControl));
|
||||||
assertEquals(activity1.mStartingData, startingWindow.mStartingData);
|
assertEquals(activity1.mStartingData, startingWindow.mStartingData);
|
||||||
|
|||||||
Reference in New Issue
Block a user