Merge "Replace WindowState#getLayoutingAttrs with LayoutParams#forRotation" into tm-qpr-dev

This commit is contained in:
Tiger Huang
2022-06-14 12:36:25 +00:00
committed by Android (Google) Code Review
3 changed files with 21 additions and 20 deletions

View File

@@ -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;

View File

@@ -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;
}
@@ -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;
}
@@ -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(),
@@ -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(),
@@ -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
@@ -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) {
@@ -2073,7 +2071,7 @@ public class DisplayPolicy {
if (mNavigationBar == null) {
return 0;
}
return mNavigationBar.getLayoutingAttrs(rotation).height;
return mNavigationBar.mAttrs.forRotation(rotation).height;
}
/**
@@ -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;

View File

@@ -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;