Loading services/core/java/com/android/server/wm/AbsAppSnapshotController.java +2 −5 Original line number Diff line number Diff line Loading @@ -137,7 +137,7 @@ abstract class AbsAppSnapshotController<TYPE extends WindowContainer, } abstract ActivityRecord getTopActivity(TYPE source); abstract ActivityRecord getTopFullscreenActivity(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 Loading Loading @@ -465,10 +465,7 @@ abstract class AbsAppSnapshotController<TYPE extends WindowContainer, */ @WindowInsetsController.Appearance private int getAppearance(TYPE source) { final ActivityRecord topFullscreenActivity = getTopFullscreenActivity(source); final WindowState topFullscreenWindow = topFullscreenActivity != null ? topFullscreenActivity.findMainWindow() : null; final WindowState topFullscreenWindow = getTopFullscreenWindow(source); if (topFullscreenWindow != null) { return topFullscreenWindow.mAttrs.insetsFlags.appearance; } Loading services/core/java/com/android/server/wm/ActivitySnapshotController.java +2 −4 Original line number Diff line number Diff line Loading @@ -590,10 +590,8 @@ class ActivitySnapshotController extends AbsAppSnapshotController<ActivityRecord return activity; } @Override ActivityRecord getTopFullscreenActivity(ActivityRecord activity) { final WindowState win = activity.findMainWindow(); return (win != null && win.mAttrs.isFullscreen()) ? activity : null; WindowState getTopFullscreenWindow(ActivityRecord activity) { return activity.findMainWindow(); } @Override Loading services/core/java/com/android/server/wm/StartingSurfaceController.java +4 −1 Original line number Diff line number Diff line Loading @@ -146,7 +146,10 @@ public class StartingSurfaceController { + activity); return null; } final WindowState mainWindow = activity.findMainWindow(false); // 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 */); if (mainWindow == null) { Slog.w(TAG, "TaskSnapshotSurface.create: no main window in " + activity); return null; Loading services/core/java/com/android/server/wm/Task.java +16 −12 Original line number Diff line number Diff line Loading @@ -3007,11 +3007,17 @@ class Task extends TaskFragment { return r.getTask().mTaskId != taskId && r.token != notTop && r.canBeTopRunning(); } ActivityRecord getTopFullscreenActivity() { return getActivity((r) -> { final WindowState win = r.findMainWindow(); return (win != null && win.mAttrs.isFullscreen()); 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]; } /** Loading Loading @@ -3579,16 +3585,14 @@ class Task extends TaskFragment { // starting window because persisted configuration does not effect to Task. info.taskInfo.configuration.setTo(activity.getConfiguration()); if (!Flags.drawSnapshotAspectRatioMatch()) { final ActivityRecord topFullscreenActivity = getTopFullscreenActivity(); if (topFullscreenActivity != null) { final WindowState mainWindow = topFullscreenActivity.findMainWindow(false); final WindowState mainWindow = getTopFullscreenMainWindow(false /* includeStartingApp */); if (mainWindow != null) { info.topOpaqueWindowInsetsState = mainWindow.getInsetsStateWithVisibilityOverride(); info.topOpaqueWindowLayoutParams = mainWindow.getAttrs(); } } } return info; } Loading services/core/java/com/android/server/wm/TaskSnapshotController.java +2 −2 Original line number Diff line number Diff line Loading @@ -261,8 +261,8 @@ class TaskSnapshotController extends AbsAppSnapshotController<Task, TaskSnapshot } @Override ActivityRecord getTopFullscreenActivity(Task source) { return source.getTopFullscreenActivity(); WindowState getTopFullscreenWindow(Task source) { return source.getTopFullscreenMainWindow(true /* includeStartingApp */); } @Override Loading Loading
services/core/java/com/android/server/wm/AbsAppSnapshotController.java +2 −5 Original line number Diff line number Diff line Loading @@ -137,7 +137,7 @@ abstract class AbsAppSnapshotController<TYPE extends WindowContainer, } abstract ActivityRecord getTopActivity(TYPE source); abstract ActivityRecord getTopFullscreenActivity(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 Loading Loading @@ -465,10 +465,7 @@ abstract class AbsAppSnapshotController<TYPE extends WindowContainer, */ @WindowInsetsController.Appearance private int getAppearance(TYPE source) { final ActivityRecord topFullscreenActivity = getTopFullscreenActivity(source); final WindowState topFullscreenWindow = topFullscreenActivity != null ? topFullscreenActivity.findMainWindow() : null; final WindowState topFullscreenWindow = getTopFullscreenWindow(source); if (topFullscreenWindow != null) { return topFullscreenWindow.mAttrs.insetsFlags.appearance; } Loading
services/core/java/com/android/server/wm/ActivitySnapshotController.java +2 −4 Original line number Diff line number Diff line Loading @@ -590,10 +590,8 @@ class ActivitySnapshotController extends AbsAppSnapshotController<ActivityRecord return activity; } @Override ActivityRecord getTopFullscreenActivity(ActivityRecord activity) { final WindowState win = activity.findMainWindow(); return (win != null && win.mAttrs.isFullscreen()) ? activity : null; WindowState getTopFullscreenWindow(ActivityRecord activity) { return activity.findMainWindow(); } @Override Loading
services/core/java/com/android/server/wm/StartingSurfaceController.java +4 −1 Original line number Diff line number Diff line Loading @@ -146,7 +146,10 @@ public class StartingSurfaceController { + activity); return null; } final WindowState mainWindow = activity.findMainWindow(false); // 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 */); if (mainWindow == null) { Slog.w(TAG, "TaskSnapshotSurface.create: no main window in " + activity); return null; Loading
services/core/java/com/android/server/wm/Task.java +16 −12 Original line number Diff line number Diff line Loading @@ -3007,11 +3007,17 @@ class Task extends TaskFragment { return r.getTask().mTaskId != taskId && r.token != notTop && r.canBeTopRunning(); } ActivityRecord getTopFullscreenActivity() { return getActivity((r) -> { final WindowState win = r.findMainWindow(); return (win != null && win.mAttrs.isFullscreen()); 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]; } /** Loading Loading @@ -3579,16 +3585,14 @@ class Task extends TaskFragment { // starting window because persisted configuration does not effect to Task. info.taskInfo.configuration.setTo(activity.getConfiguration()); if (!Flags.drawSnapshotAspectRatioMatch()) { final ActivityRecord topFullscreenActivity = getTopFullscreenActivity(); if (topFullscreenActivity != null) { final WindowState mainWindow = topFullscreenActivity.findMainWindow(false); final WindowState mainWindow = getTopFullscreenMainWindow(false /* includeStartingApp */); if (mainWindow != null) { info.topOpaqueWindowInsetsState = mainWindow.getInsetsStateWithVisibilityOverride(); info.topOpaqueWindowLayoutParams = mainWindow.getAttrs(); } } } return info; } Loading
services/core/java/com/android/server/wm/TaskSnapshotController.java +2 −2 Original line number Diff line number Diff line Loading @@ -261,8 +261,8 @@ class TaskSnapshotController extends AbsAppSnapshotController<Task, TaskSnapshot } @Override ActivityRecord getTopFullscreenActivity(Task source) { return source.getTopFullscreenActivity(); WindowState getTopFullscreenWindow(Task source) { return source.getTopFullscreenMainWindow(true /* includeStartingApp */); } @Override Loading