summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/ActivityRecord.java16
-rw-r--r--services/core/java/com/android/server/wm/Task.java11
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/SyncEngineTests.java20
3 files changed, 6 insertions, 41 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index d5a354da7b5e..ca8afe1972e9 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -2507,14 +2507,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
ProtoLog.v(WM_DEBUG_STARTING_WINDOW, "Creating SnapshotStartingData");
mStartingData = new SnapshotStartingData(mWmService, snapshot, typeParams);
- if ((!mStyleFillsParent && task.getChildCount() > 1)
- || task.forAllLeafTaskFragments(TaskFragment::isEmbedded)) {
- // Case 1:
- // If it is moving a Task{[0]=main activity, [1]=translucent activity} to front, use
- // shared starting window so that the transition doesn't need to wait for the activity
- // behind the translucent activity. Also, onFirstWindowDrawn will check all visible
- // activities are drawn in the task to remove the snapshot starting window.
- // Case 2:
+ if (task.forAllLeafTaskFragments(TaskFragment::isEmbedded)) {
// Associate with the task so if this activity is resized by task fragment later, the
// starting window can keep the same bounds as the task.
associateStartingDataWithTask();
@@ -10649,13 +10642,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
@Override
boolean isSyncFinished(BLASTSyncEngine.SyncGroup group) {
- if (task != null && task.mSharedStartingData != null) {
- final WindowState startingWin = task.topStartingWindow();
- if (startingWin != null && startingWin.isSyncFinished(group)) {
- // The sync is ready if a drawn starting window covered the task.
- return true;
- }
- }
if (!super.isSyncFinished(group)) return false;
if (mDisplayContent != null && mDisplayContent.mUnknownAppVisibilityController
.isVisibilityUnknown(this)) {
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index 1370ee6f7d92..c674176e766d 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -1411,13 +1411,12 @@ class Task extends TaskFragment {
return isUidPresent;
}
- WindowState topStartingWindow() {
- return getWindow(w -> w.mAttrs.type == TYPE_APPLICATION_STARTING);
- }
-
ActivityRecord topActivityContainsStartingWindow() {
- final WindowState startingWindow = topStartingWindow();
- return startingWindow != null ? startingWindow.mActivityRecord : null;
+ if (getParent() == null) {
+ return null;
+ }
+ return getActivity((r) -> r.getWindow(window ->
+ window.getBaseType() == TYPE_APPLICATION_STARTING) != null);
}
/**
diff --git a/services/tests/wmtests/src/com/android/server/wm/SyncEngineTests.java b/services/tests/wmtests/src/com/android/server/wm/SyncEngineTests.java
index 0f1e4d1e928f..810cbe8f8080 100644
--- a/services/tests/wmtests/src/com/android/server/wm/SyncEngineTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/SyncEngineTests.java
@@ -16,7 +16,6 @@
package com.android.server.wm;
-import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
@@ -138,25 +137,6 @@ public class SyncEngineTests extends WindowTestsBase {
}
@Test
- public void testFinishSyncByStartingWindow() {
- final ActivityRecord taskRoot = new ActivityBuilder(mAtm).setCreateTask(true).build();
- final Task task = taskRoot.getTask();
- final ActivityRecord translucentTop = new ActivityBuilder(mAtm).setTask(task)
- .setActivityTheme(android.R.style.Theme_Translucent).build();
- createWindow(null, TYPE_BASE_APPLICATION, taskRoot, "win");
- final WindowState startingWindow = createWindow(null, TYPE_APPLICATION_STARTING,
- translucentTop, "starting");
- startingWindow.mStartingData = new SnapshotStartingData(mWm, null, 0);
- task.mSharedStartingData = startingWindow.mStartingData;
- task.prepareSync();
-
- final BLASTSyncEngine.SyncGroup group = mock(BLASTSyncEngine.SyncGroup.class);
- assertFalse(task.isSyncFinished(group));
- startingWindow.onSyncFinishedDrawing();
- assertTrue(task.isSyncFinished(group));
- }
-
- @Test
public void testInvisibleSyncCallback() {
TestWindowContainer mockWC = new TestWindowContainer(mWm, true /* waiter */);