diff options
5 files changed, 7 insertions, 41 deletions
diff --git a/services/core/java/com/android/server/wm/AbsAppSnapshotController.java b/services/core/java/com/android/server/wm/AbsAppSnapshotController.java index 09de01e88c9e..68f37380659e 100644 --- a/services/core/java/com/android/server/wm/AbsAppSnapshotController.java +++ b/services/core/java/com/android/server/wm/AbsAppSnapshotController.java @@ -43,7 +43,6 @@ import android.view.InsetsState; import android.view.SurfaceControl; import android.view.ThreadedRenderer; import android.view.WindowInsets; -import android.view.WindowInsetsController; import android.view.WindowManager; import android.window.ScreenCapture; import android.window.SnapshotDrawerUtils; @@ -137,7 +136,6 @@ abstract class AbsAppSnapshotController<TYPE extends WindowContainer, } abstract ActivityRecord getTopActivity(TYPE source); - abstract WindowState getTopFullscreenWindow(TYPE source); abstract ActivityManager.TaskDescription getTaskDescription(TYPE source); /** * Find the window for a given task to take a snapshot. Top child of the task is usually the one @@ -331,7 +329,7 @@ abstract class AbsAppSnapshotController<TYPE extends WindowContainer, builder.setPixelFormat(pixelFormat); builder.setIsTranslucent(isTranslucent); builder.setWindowingMode(source.getWindowingMode()); - builder.setAppearance(getAppearance(source)); + builder.setAppearance(mainWindow.mAttrs.insetsFlags.appearance); final Configuration taskConfig = activity.getTask().getConfiguration(); final int displayRotation = taskConfig.windowConfiguration.getDisplayRotation(); @@ -450,7 +448,7 @@ abstract class AbsAppSnapshotController<TYPE extends WindowContainer, mainWindow.getWindowConfiguration().getRotation(), new Point(taskWidth, taskHeight), contentInsets, letterboxInsets, false /* isLowResolution */, false /* isRealSnapshot */, source.getWindowingMode(), - getAppearance(source), false /* isTranslucent */, false /* hasImeSurface */); + attrs.insetsFlags.appearance, false /* isTranslucent */, false /* hasImeSurface */); return validateSnapshot(taskSnapshot); } @@ -460,19 +458,6 @@ abstract class AbsAppSnapshotController<TYPE extends WindowContainer, } /** - * @return The {@link WindowInsetsController.Appearance} flags for the top main app window in - * the given {@param TYPE}. - */ - @WindowInsetsController.Appearance - private int getAppearance(TYPE source) { - final WindowState topFullscreenWindow = getTopFullscreenWindow(source); - if (topFullscreenWindow != null) { - return topFullscreenWindow.mAttrs.insetsFlags.appearance; - } - return 0; - } - - /** * Called when an {@link ActivityRecord} has been removed. */ void onAppRemoved(ActivityRecord activity) { diff --git a/services/core/java/com/android/server/wm/ActivitySnapshotController.java b/services/core/java/com/android/server/wm/ActivitySnapshotController.java index 48bc813b0a38..aa63393b898b 100644 --- a/services/core/java/com/android/server/wm/ActivitySnapshotController.java +++ b/services/core/java/com/android/server/wm/ActivitySnapshotController.java @@ -590,10 +590,6 @@ class ActivitySnapshotController extends AbsAppSnapshotController<ActivityRecord return activity; } - WindowState getTopFullscreenWindow(ActivityRecord activity) { - return activity.findMainWindow(); - } - @Override ActivityManager.TaskDescription getTaskDescription(ActivityRecord object) { return object.taskDescription; diff --git a/services/core/java/com/android/server/wm/StartingSurfaceController.java b/services/core/java/com/android/server/wm/StartingSurfaceController.java index a1e6701f75fd..2da1fec49f91 100644 --- a/services/core/java/com/android/server/wm/StartingSurfaceController.java +++ b/services/core/java/com/android/server/wm/StartingSurfaceController.java @@ -148,8 +148,7 @@ public class StartingSurfaceController { } // For snapshot surface, the top activity could be trampoline activity, so here should // search for top fullscreen activity in the task. - final WindowState mainWindow = task - .getTopFullscreenMainWindow(false /* includeStartingApp */); + final WindowState mainWindow = task.getTopFullscreenMainWindow(); if (mainWindow == null) { Slog.w(TAG, "TaskSnapshotSurface.create: no main window in " + activity); return null; diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 259ca83f47e0..d96d3ef3ef12 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -3007,17 +3007,9 @@ class Task extends TaskFragment { return r.getTask().mTaskId != taskId && r.token != notTop && r.canBeTopRunning(); } - WindowState getTopFullscreenMainWindow(boolean includeStartingApp) { - final WindowState[] candidate = new WindowState[1]; - getActivity((r) -> { - final WindowState win = r.findMainWindow(includeStartingApp); - if (win != null && win.mAttrs.isFullscreen()) { - candidate[0] = win; - return true; - } - return false; - }); - return candidate[0]; + @Nullable + WindowState getTopFullscreenMainWindow() { + return getWindow(w -> w.mAttrs.type == TYPE_BASE_APPLICATION && w.mAttrs.isFullscreen()); } /** @@ -3585,8 +3577,7 @@ class Task extends TaskFragment { // starting window because persisted configuration does not effect to Task. info.taskInfo.configuration.setTo(activity.getConfiguration()); if (!Flags.drawSnapshotAspectRatioMatch()) { - final WindowState mainWindow = - getTopFullscreenMainWindow(false /* includeStartingApp */); + final WindowState mainWindow = getTopFullscreenMainWindow(); if (mainWindow != null) { info.topOpaqueWindowInsetsState = mainWindow.getInsetsStateWithVisibilityOverride(); diff --git a/services/core/java/com/android/server/wm/TaskSnapshotController.java b/services/core/java/com/android/server/wm/TaskSnapshotController.java index 57c7753d5c4b..d4b12b63fe1c 100644 --- a/services/core/java/com/android/server/wm/TaskSnapshotController.java +++ b/services/core/java/com/android/server/wm/TaskSnapshotController.java @@ -261,11 +261,6 @@ class TaskSnapshotController extends AbsAppSnapshotController<Task, TaskSnapshot } @Override - WindowState getTopFullscreenWindow(Task source) { - return source.getTopFullscreenMainWindow(true /* includeStartingApp */); - } - - @Override ActivityManager.TaskDescription getTaskDescription(Task source) { return source.getTaskDescription(); } |