Loading core/java/android/view/WindowManager.java +12 −0 Original line number Diff line number Diff line Loading @@ -3744,6 +3744,18 @@ public interface WindowManager extends ViewManager { } } /** * @see #paramsForRotation * @hide */ public LayoutParams forRotation(int rotation) { if (paramsForRotation == null || paramsForRotation.length <= rotation || paramsForRotation[rotation] == null) { return this; } return paramsForRotation[rotation]; } public LayoutParams() { super(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); type = TYPE_APPLICATION; Loading services/core/java/com/android/server/wm/DisplayPolicy.java +9 −11 Original line number Diff line number Diff line Loading @@ -1158,11 +1158,9 @@ public class DisplayPolicy { (displayFrames, windowContainer, inOutFrame) -> { if (!mNavButtonForcedVisible) { final LayoutParams lp = win.getLayoutingAttrs(displayFrames.mRotation); win.mAttrs.forRotation(displayFrames.mRotation); if (lp.providedInsets != null) { for (InsetsFrameProvider provider : win.getLayoutingAttrs(displayFrames.mRotation) .providedInsets) { for (InsetsFrameProvider provider : lp.providedInsets) { if (provider.type != ITYPE_NAVIGATION_BAR) { continue; } Loading Loading @@ -1371,7 +1369,7 @@ public class DisplayPolicy { private int getStatusBarHeight(DisplayFrames displayFrames) { int statusBarHeight; if (mStatusBar != null) { statusBarHeight = mStatusBar.getLayoutingAttrs(displayFrames.mRotation).height; statusBarHeight = mStatusBar.mAttrs.forRotation(displayFrames.mRotation).height; } else { statusBarHeight = 0; } Loading Loading @@ -1527,7 +1525,7 @@ public class DisplayPolicy { final InsetsStateController controller = mDisplayContent.getInsetsStateController(); for (int i = mInsetsSourceWindowsExceptIme.size() - 1; i >= 0; i--) { final WindowState win = mInsetsSourceWindowsExceptIme.valueAt(i); mWindowLayout.computeFrames(win.getLayoutingAttrs(displayFrames.mRotation), mWindowLayout.computeFrames(win.mAttrs.forRotation(displayFrames.mRotation), displayFrames.mInsetsState, displayFrames.mDisplayCutoutSafe, displayFrames.mUnrestricted, win.getWindowingMode(), UNSPECIFIED_LENGTH, UNSPECIFIED_LENGTH, win.getRequestedVisibilities(), Loading @@ -1545,7 +1543,7 @@ public class DisplayPolicy { void updateInsetsSourceFramesExceptIme(DisplayFrames displayFrames) { for (int i = mInsetsSourceWindowsExceptIme.size() - 1; i >= 0; i--) { final WindowState win = mInsetsSourceWindowsExceptIme.valueAt(i); mWindowLayout.computeFrames(win.getLayoutingAttrs(displayFrames.mRotation), mWindowLayout.computeFrames(win.mAttrs.forRotation(displayFrames.mRotation), displayFrames.mInsetsState, displayFrames.mDisplayCutoutSafe, displayFrames.mUnrestricted, win.getWindowingMode(), UNSPECIFIED_LENGTH, UNSPECIFIED_LENGTH, win.getRequestedVisibilities(), Loading Loading @@ -1578,7 +1576,7 @@ public class DisplayPolicy { // We invoke this to get the proper DisplayFrames. displayFrames = win.getDisplayFrames(displayFrames); final WindowManager.LayoutParams attrs = win.getLayoutingAttrs(displayFrames.mRotation); final WindowManager.LayoutParams attrs = win.mAttrs.forRotation(displayFrames.mRotation); final Rect attachedWindowFrame = attached != null ? attached.getFrame() : null; // If this window has different LayoutParams for rotations, we cannot trust its requested Loading Loading @@ -2041,7 +2039,7 @@ public class DisplayPolicy { if (mNavigationBar == null) { return 0; } LayoutParams lp = mNavigationBar.getLayoutingAttrs(rotation); LayoutParams lp = mNavigationBar.mAttrs.forRotation(rotation); Insets providedInsetsSize = null; if (lp.providedInsets != null) { for (InsetsFrameProvider provider : lp.providedInsets) { Loading Loading @@ -2073,7 +2071,7 @@ public class DisplayPolicy { if (mNavigationBar == null) { return 0; } return mNavigationBar.getLayoutingAttrs(rotation).height; return mNavigationBar.mAttrs.forRotation(rotation).height; } /** Loading Loading @@ -2202,7 +2200,7 @@ public class DisplayPolicy { @NavigationBarPosition int navigationBarPosition(int displayRotation) { if (mNavigationBar != null) { final int gravity = mNavigationBar.getLayoutingAttrs(displayRotation).gravity; final int gravity = mNavigationBar.mAttrs.forRotation(displayRotation).gravity; switch (gravity) { case Gravity.LEFT: return NAV_BAR_LEFT; Loading services/core/java/com/android/server/wm/WindowState.java +0 −9 Original line number Diff line number Diff line Loading @@ -1474,15 +1474,6 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP return mAttrs; } WindowManager.LayoutParams getLayoutingAttrs(int rotation) { final WindowManager.LayoutParams[] paramsForRotation = mAttrs.paramsForRotation; if (paramsForRotation == null || paramsForRotation.length != 4 || paramsForRotation[rotation] == null) { return mAttrs; } return paramsForRotation[rotation]; } /** Retrieves the flags used to disable system UI functions. */ int getDisableFlags() { return mDisableFlags; Loading Loading
core/java/android/view/WindowManager.java +12 −0 Original line number Diff line number Diff line Loading @@ -3744,6 +3744,18 @@ public interface WindowManager extends ViewManager { } } /** * @see #paramsForRotation * @hide */ public LayoutParams forRotation(int rotation) { if (paramsForRotation == null || paramsForRotation.length <= rotation || paramsForRotation[rotation] == null) { return this; } return paramsForRotation[rotation]; } public LayoutParams() { super(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); type = TYPE_APPLICATION; Loading
services/core/java/com/android/server/wm/DisplayPolicy.java +9 −11 Original line number Diff line number Diff line Loading @@ -1158,11 +1158,9 @@ public class DisplayPolicy { (displayFrames, windowContainer, inOutFrame) -> { if (!mNavButtonForcedVisible) { final LayoutParams lp = win.getLayoutingAttrs(displayFrames.mRotation); win.mAttrs.forRotation(displayFrames.mRotation); if (lp.providedInsets != null) { for (InsetsFrameProvider provider : win.getLayoutingAttrs(displayFrames.mRotation) .providedInsets) { for (InsetsFrameProvider provider : lp.providedInsets) { if (provider.type != ITYPE_NAVIGATION_BAR) { continue; } Loading Loading @@ -1371,7 +1369,7 @@ public class DisplayPolicy { private int getStatusBarHeight(DisplayFrames displayFrames) { int statusBarHeight; if (mStatusBar != null) { statusBarHeight = mStatusBar.getLayoutingAttrs(displayFrames.mRotation).height; statusBarHeight = mStatusBar.mAttrs.forRotation(displayFrames.mRotation).height; } else { statusBarHeight = 0; } Loading Loading @@ -1527,7 +1525,7 @@ public class DisplayPolicy { final InsetsStateController controller = mDisplayContent.getInsetsStateController(); for (int i = mInsetsSourceWindowsExceptIme.size() - 1; i >= 0; i--) { final WindowState win = mInsetsSourceWindowsExceptIme.valueAt(i); mWindowLayout.computeFrames(win.getLayoutingAttrs(displayFrames.mRotation), mWindowLayout.computeFrames(win.mAttrs.forRotation(displayFrames.mRotation), displayFrames.mInsetsState, displayFrames.mDisplayCutoutSafe, displayFrames.mUnrestricted, win.getWindowingMode(), UNSPECIFIED_LENGTH, UNSPECIFIED_LENGTH, win.getRequestedVisibilities(), Loading @@ -1545,7 +1543,7 @@ public class DisplayPolicy { void updateInsetsSourceFramesExceptIme(DisplayFrames displayFrames) { for (int i = mInsetsSourceWindowsExceptIme.size() - 1; i >= 0; i--) { final WindowState win = mInsetsSourceWindowsExceptIme.valueAt(i); mWindowLayout.computeFrames(win.getLayoutingAttrs(displayFrames.mRotation), mWindowLayout.computeFrames(win.mAttrs.forRotation(displayFrames.mRotation), displayFrames.mInsetsState, displayFrames.mDisplayCutoutSafe, displayFrames.mUnrestricted, win.getWindowingMode(), UNSPECIFIED_LENGTH, UNSPECIFIED_LENGTH, win.getRequestedVisibilities(), Loading Loading @@ -1578,7 +1576,7 @@ public class DisplayPolicy { // We invoke this to get the proper DisplayFrames. displayFrames = win.getDisplayFrames(displayFrames); final WindowManager.LayoutParams attrs = win.getLayoutingAttrs(displayFrames.mRotation); final WindowManager.LayoutParams attrs = win.mAttrs.forRotation(displayFrames.mRotation); final Rect attachedWindowFrame = attached != null ? attached.getFrame() : null; // If this window has different LayoutParams for rotations, we cannot trust its requested Loading Loading @@ -2041,7 +2039,7 @@ public class DisplayPolicy { if (mNavigationBar == null) { return 0; } LayoutParams lp = mNavigationBar.getLayoutingAttrs(rotation); LayoutParams lp = mNavigationBar.mAttrs.forRotation(rotation); Insets providedInsetsSize = null; if (lp.providedInsets != null) { for (InsetsFrameProvider provider : lp.providedInsets) { Loading Loading @@ -2073,7 +2071,7 @@ public class DisplayPolicy { if (mNavigationBar == null) { return 0; } return mNavigationBar.getLayoutingAttrs(rotation).height; return mNavigationBar.mAttrs.forRotation(rotation).height; } /** Loading Loading @@ -2202,7 +2200,7 @@ public class DisplayPolicy { @NavigationBarPosition int navigationBarPosition(int displayRotation) { if (mNavigationBar != null) { final int gravity = mNavigationBar.getLayoutingAttrs(displayRotation).gravity; final int gravity = mNavigationBar.mAttrs.forRotation(displayRotation).gravity; switch (gravity) { case Gravity.LEFT: return NAV_BAR_LEFT; Loading
services/core/java/com/android/server/wm/WindowState.java +0 −9 Original line number Diff line number Diff line Loading @@ -1474,15 +1474,6 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP return mAttrs; } WindowManager.LayoutParams getLayoutingAttrs(int rotation) { final WindowManager.LayoutParams[] paramsForRotation = mAttrs.paramsForRotation; if (paramsForRotation == null || paramsForRotation.length != 4 || paramsForRotation[rotation] == null) { return mAttrs; } return paramsForRotation[rotation]; } /** Retrieves the flags used to disable system UI functions. */ int getDisableFlags() { return mDisableFlags; Loading