Loading services/core/java/com/android/server/wm/DisplayContent.java +0 −94 Original line number Diff line number Diff line Loading @@ -152,10 +152,8 @@ import static com.android.server.wm.WindowManagerService.H.WINDOW_HIDE_TIMEOUT; import static com.android.server.wm.WindowManagerService.UPDATE_FOCUS_PLACING_SURFACES; import static com.android.server.wm.WindowManagerService.UPDATE_FOCUS_WILL_ASSIGN_LAYERS; import static com.android.server.wm.WindowManagerService.UPDATE_FOCUS_WILL_PLACE_SURFACES; import static com.android.server.wm.WindowManagerService.dipToPixel; import static com.android.server.wm.WindowState.EXCLUSION_LEFT; import static com.android.server.wm.WindowState.EXCLUSION_RIGHT; import static com.android.server.wm.WindowState.RESIZE_HANDLE_WIDTH_IN_DP; import static com.android.server.wm.WindowStateAnimator.READY_TO_SHOW; import static com.android.server.wm.utils.DisplayInfoOverrides.WM_OVERRIDE_FIELDS; import static com.android.server.wm.utils.DisplayInfoOverrides.copyDisplayInfoFields; Loading Loading @@ -277,7 +275,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Objects; import java.util.Set; import java.util.function.Consumer; Loading Loading @@ -579,8 +576,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp private final LinkedList<ActivityRecord> mTmpUpdateAllDrawn = new LinkedList(); private final TaskForResizePointSearchResult mTmpTaskForResizePointSearchResult = new TaskForResizePointSearchResult(); private final ApplySurfaceChangesTransactionState mTmpApplySurfaceChangesTransactionState = new ApplySurfaceChangesTransactionState(); Loading Loading @@ -723,9 +718,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp private final InsetsStateController mInsetsStateController; private final InsetsPolicy mInsetsPolicy; /** Corner radius that windows should have in order to match the display. */ private final float mWindowCornerRadius; final SparseArray<ShellRoot> mShellRoots = new SparseArray<>(); RemoteInsetsControlTarget mRemoteInsetsControlTarget = null; private final IBinder.DeathRecipient mRemoteInsetsDeath = Loading Loading @@ -1224,7 +1216,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp if (mWmService.mSystemReady) { mDisplayPolicy.systemReady(); } mWindowCornerRadius = mDisplayPolicy.getWindowCornerRadius(); mPinnedTaskController = new PinnedTaskController(mWmService, this); // Set up the policy and build the display area hierarchy. Loading Loading @@ -1413,10 +1404,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp return mDisplayId; } float getWindowCornerRadius() { return mWindowCornerRadius; } WindowToken getWindowToken(IBinder binder) { return mTokenMap.get(binder); } Loading Loading @@ -3437,17 +3424,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp }); } /** * Find the task whose outside touch area (for resizing) (x, y) falls within. * Returns null if the touch doesn't fall into a resizing area. */ @Nullable Task findTaskForResizePoint(int x, int y) { final int delta = dipToPixel(RESIZE_HANDLE_WIDTH_IN_DP, mDisplayMetrics); return getItemFromTaskDisplayAreas(taskDisplayArea -> mTmpTaskForResizePointSearchResult.process(taskDisplayArea, x, y, delta)); } @Override void switchUser(int userId) { super.switchUser(userId); Loading Loading @@ -5145,11 +5121,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp return imeLayeringTarget.mSession.mUid == uid && imeLayeringTarget.mSession.mPid == pid; } boolean hasSecureWindowOnScreen() { final WindowState win = getWindow(w -> w.isOnScreen() && w.isSecureLocked()); return win != null; } // TODO: Super unexpected long method that should be broken down... void applySurfaceChangesTransaction() { final WindowSurfacePlacer surfacePlacer = mWmService.mWindowPlacerLocked; Loading Loading @@ -5371,61 +5342,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp && (ignoreFrozen || mDisplayPolicy.isScreenOnFully()); } static final class TaskForResizePointSearchResult implements Predicate<Task> { private Task taskForResize; private int x; private int y; private int delta; private Rect mTmpRect = new Rect(); Task process(WindowContainer root, int x, int y, int delta) { taskForResize = null; this.x = x; this.y = y; this.delta = delta; mTmpRect.setEmpty(); root.forAllTasks(this); return taskForResize; } @Override public boolean test(Task task) { if (!task.getRootTask().getWindowConfiguration().canResizeTask()) { return true; } if (task.getWindowingMode() == WINDOWING_MODE_FULLSCREEN) { return true; } if (task.isOrganized()) { return true; } // We need to use the task's dim bounds (which is derived from the visible bounds of // its apps windows) for any touch-related tests. Can't use the task's original // bounds because it might be adjusted to fit the content frame. One example is when // the task is put to top-left quadrant, the actual visible area would not start at // (0,0) after it's adjusted for the status bar. task.getDimBounds(mTmpRect); mTmpRect.inset(-delta, -delta); if (mTmpRect.contains(x, y)) { mTmpRect.inset(delta, delta); if (!mTmpRect.contains(x, y)) { taskForResize = task; return true; } // User touched inside the task. No need to look further, // focus transfer will be handled in ACTION_UP. return true; } return false; } } private static final class ApplySurfaceChangesTransactionState { public boolean displayHasContent; public boolean obscured; Loading Loading @@ -5919,16 +5835,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp return mA11yOverlayLayer; } SurfaceControl[] findRoundedCornerOverlays() { List<SurfaceControl> roundedCornerOverlays = new ArrayList<>(); for (WindowToken token : mTokenMap.values()) { if (token.mRoundedCornerOverlay && token.isVisible()) { roundedCornerOverlays.add(token.mSurfaceControl); } } return roundedCornerOverlays.toArray(new SurfaceControl[0]); } /** * Updates the display's system gesture exclusion. * Loading services/core/java/com/android/server/wm/DisplayPolicy.java +0 −13 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.server.wm; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.view.Display.TYPE_INTERNAL; import static android.view.InsetsFrameProvider.SOURCE_ARBITRARY_RECTANGLE; import static android.view.InsetsFrameProvider.SOURCE_CONTAINER_BOUNDS; import static android.view.InsetsFrameProvider.SOURCE_DISPLAY; Loading Loading @@ -134,7 +133,6 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.internal.os.BackgroundThread; import com.android.internal.policy.ForceShowNavBarSettingsObserver; import com.android.internal.policy.GestureNavigationSettingsObserver; import com.android.internal.policy.ScreenDecorationsUtils; import com.android.internal.protolog.ProtoLog; import com.android.internal.statusbar.LetterboxDetails; import com.android.internal.util.function.TriFunction; Loading Loading @@ -2018,17 +2016,6 @@ public class DisplayPolicy { }); } /** * Return corner radius in pixels that should be used on windows in order to cover the display. * * <p>The radius is only valid for internal displays, since the corner radius of external * displays is not known at build time when window corners are configured. */ float getWindowCornerRadius() { return mDisplayContent.getDisplay().getType() == TYPE_INTERNAL ? ScreenDecorationsUtils.getWindowCornerRadius(mContext) : 0f; } boolean isShowingDreamLw() { return mShowingDream; } Loading Loading
services/core/java/com/android/server/wm/DisplayContent.java +0 −94 Original line number Diff line number Diff line Loading @@ -152,10 +152,8 @@ import static com.android.server.wm.WindowManagerService.H.WINDOW_HIDE_TIMEOUT; import static com.android.server.wm.WindowManagerService.UPDATE_FOCUS_PLACING_SURFACES; import static com.android.server.wm.WindowManagerService.UPDATE_FOCUS_WILL_ASSIGN_LAYERS; import static com.android.server.wm.WindowManagerService.UPDATE_FOCUS_WILL_PLACE_SURFACES; import static com.android.server.wm.WindowManagerService.dipToPixel; import static com.android.server.wm.WindowState.EXCLUSION_LEFT; import static com.android.server.wm.WindowState.EXCLUSION_RIGHT; import static com.android.server.wm.WindowState.RESIZE_HANDLE_WIDTH_IN_DP; import static com.android.server.wm.WindowStateAnimator.READY_TO_SHOW; import static com.android.server.wm.utils.DisplayInfoOverrides.WM_OVERRIDE_FIELDS; import static com.android.server.wm.utils.DisplayInfoOverrides.copyDisplayInfoFields; Loading Loading @@ -277,7 +275,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Objects; import java.util.Set; import java.util.function.Consumer; Loading Loading @@ -579,8 +576,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp private final LinkedList<ActivityRecord> mTmpUpdateAllDrawn = new LinkedList(); private final TaskForResizePointSearchResult mTmpTaskForResizePointSearchResult = new TaskForResizePointSearchResult(); private final ApplySurfaceChangesTransactionState mTmpApplySurfaceChangesTransactionState = new ApplySurfaceChangesTransactionState(); Loading Loading @@ -723,9 +718,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp private final InsetsStateController mInsetsStateController; private final InsetsPolicy mInsetsPolicy; /** Corner radius that windows should have in order to match the display. */ private final float mWindowCornerRadius; final SparseArray<ShellRoot> mShellRoots = new SparseArray<>(); RemoteInsetsControlTarget mRemoteInsetsControlTarget = null; private final IBinder.DeathRecipient mRemoteInsetsDeath = Loading Loading @@ -1224,7 +1216,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp if (mWmService.mSystemReady) { mDisplayPolicy.systemReady(); } mWindowCornerRadius = mDisplayPolicy.getWindowCornerRadius(); mPinnedTaskController = new PinnedTaskController(mWmService, this); // Set up the policy and build the display area hierarchy. Loading Loading @@ -1413,10 +1404,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp return mDisplayId; } float getWindowCornerRadius() { return mWindowCornerRadius; } WindowToken getWindowToken(IBinder binder) { return mTokenMap.get(binder); } Loading Loading @@ -3437,17 +3424,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp }); } /** * Find the task whose outside touch area (for resizing) (x, y) falls within. * Returns null if the touch doesn't fall into a resizing area. */ @Nullable Task findTaskForResizePoint(int x, int y) { final int delta = dipToPixel(RESIZE_HANDLE_WIDTH_IN_DP, mDisplayMetrics); return getItemFromTaskDisplayAreas(taskDisplayArea -> mTmpTaskForResizePointSearchResult.process(taskDisplayArea, x, y, delta)); } @Override void switchUser(int userId) { super.switchUser(userId); Loading Loading @@ -5145,11 +5121,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp return imeLayeringTarget.mSession.mUid == uid && imeLayeringTarget.mSession.mPid == pid; } boolean hasSecureWindowOnScreen() { final WindowState win = getWindow(w -> w.isOnScreen() && w.isSecureLocked()); return win != null; } // TODO: Super unexpected long method that should be broken down... void applySurfaceChangesTransaction() { final WindowSurfacePlacer surfacePlacer = mWmService.mWindowPlacerLocked; Loading Loading @@ -5371,61 +5342,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp && (ignoreFrozen || mDisplayPolicy.isScreenOnFully()); } static final class TaskForResizePointSearchResult implements Predicate<Task> { private Task taskForResize; private int x; private int y; private int delta; private Rect mTmpRect = new Rect(); Task process(WindowContainer root, int x, int y, int delta) { taskForResize = null; this.x = x; this.y = y; this.delta = delta; mTmpRect.setEmpty(); root.forAllTasks(this); return taskForResize; } @Override public boolean test(Task task) { if (!task.getRootTask().getWindowConfiguration().canResizeTask()) { return true; } if (task.getWindowingMode() == WINDOWING_MODE_FULLSCREEN) { return true; } if (task.isOrganized()) { return true; } // We need to use the task's dim bounds (which is derived from the visible bounds of // its apps windows) for any touch-related tests. Can't use the task's original // bounds because it might be adjusted to fit the content frame. One example is when // the task is put to top-left quadrant, the actual visible area would not start at // (0,0) after it's adjusted for the status bar. task.getDimBounds(mTmpRect); mTmpRect.inset(-delta, -delta); if (mTmpRect.contains(x, y)) { mTmpRect.inset(delta, delta); if (!mTmpRect.contains(x, y)) { taskForResize = task; return true; } // User touched inside the task. No need to look further, // focus transfer will be handled in ACTION_UP. return true; } return false; } } private static final class ApplySurfaceChangesTransactionState { public boolean displayHasContent; public boolean obscured; Loading Loading @@ -5919,16 +5835,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp return mA11yOverlayLayer; } SurfaceControl[] findRoundedCornerOverlays() { List<SurfaceControl> roundedCornerOverlays = new ArrayList<>(); for (WindowToken token : mTokenMap.values()) { if (token.mRoundedCornerOverlay && token.isVisible()) { roundedCornerOverlays.add(token.mSurfaceControl); } } return roundedCornerOverlays.toArray(new SurfaceControl[0]); } /** * Updates the display's system gesture exclusion. * Loading
services/core/java/com/android/server/wm/DisplayPolicy.java +0 −13 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.server.wm; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.view.Display.TYPE_INTERNAL; import static android.view.InsetsFrameProvider.SOURCE_ARBITRARY_RECTANGLE; import static android.view.InsetsFrameProvider.SOURCE_CONTAINER_BOUNDS; import static android.view.InsetsFrameProvider.SOURCE_DISPLAY; Loading Loading @@ -134,7 +133,6 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.internal.os.BackgroundThread; import com.android.internal.policy.ForceShowNavBarSettingsObserver; import com.android.internal.policy.GestureNavigationSettingsObserver; import com.android.internal.policy.ScreenDecorationsUtils; import com.android.internal.protolog.ProtoLog; import com.android.internal.statusbar.LetterboxDetails; import com.android.internal.util.function.TriFunction; Loading Loading @@ -2018,17 +2016,6 @@ public class DisplayPolicy { }); } /** * Return corner radius in pixels that should be used on windows in order to cover the display. * * <p>The radius is only valid for internal displays, since the corner radius of external * displays is not known at build time when window corners are configured. */ float getWindowCornerRadius() { return mDisplayContent.getDisplay().getType() == TYPE_INTERNAL ? ScreenDecorationsUtils.getWindowCornerRadius(mContext) : 0f; } boolean isShowingDreamLw() { return mShowingDream; } Loading