Merge "Fix the NPE crash when device reboot with hide cutout set" into tm-qpr-dev
This commit is contained in:
@@ -64,8 +64,8 @@ class HideDisplayCutoutOrganizer extends DisplayAreaOrganizer {
|
||||
@VisibleForTesting
|
||||
final Rect mCurrentDisplayBounds = new Rect();
|
||||
// The default display cutout in natural orientation.
|
||||
private Insets mDefaultCutoutInsets;
|
||||
private Insets mCurrentCutoutInsets;
|
||||
private Insets mDefaultCutoutInsets = Insets.NONE;
|
||||
private Insets mCurrentCutoutInsets = Insets.NONE;
|
||||
private boolean mIsDefaultPortrait;
|
||||
private int mStatusBarHeight;
|
||||
@VisibleForTesting
|
||||
@@ -77,28 +77,36 @@ class HideDisplayCutoutOrganizer extends DisplayAreaOrganizer {
|
||||
|
||||
private final DisplayController.OnDisplaysChangedListener mListener =
|
||||
new DisplayController.OnDisplaysChangedListener() {
|
||||
@Override
|
||||
public void onDisplayAdded(int displayId) {
|
||||
onDisplayChanged(displayId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisplayConfigurationChanged(int displayId, Configuration newConfig) {
|
||||
if (displayId != DEFAULT_DISPLAY) {
|
||||
return;
|
||||
}
|
||||
DisplayLayout displayLayout =
|
||||
mDisplayController.getDisplayLayout(DEFAULT_DISPLAY);
|
||||
if (displayLayout == null) {
|
||||
return;
|
||||
}
|
||||
final boolean rotationChanged = mRotation != displayLayout.rotation();
|
||||
mRotation = displayLayout.rotation();
|
||||
if (rotationChanged || isDisplayBoundsChanged()) {
|
||||
updateBoundsAndOffsets(true /* enabled */);
|
||||
final WindowContainerTransaction wct = new WindowContainerTransaction();
|
||||
final SurfaceControl.Transaction t = new SurfaceControl.Transaction();
|
||||
applyAllBoundsAndOffsets(wct, t);
|
||||
applyTransaction(wct, t);
|
||||
}
|
||||
onDisplayChanged(displayId);
|
||||
}
|
||||
};
|
||||
|
||||
private void onDisplayChanged(int displayId) {
|
||||
if (displayId != DEFAULT_DISPLAY) {
|
||||
return;
|
||||
}
|
||||
final DisplayLayout displayLayout = mDisplayController.getDisplayLayout(DEFAULT_DISPLAY);
|
||||
if (displayLayout == null) {
|
||||
return;
|
||||
}
|
||||
final boolean rotationChanged = mRotation != displayLayout.rotation();
|
||||
mRotation = displayLayout.rotation();
|
||||
if (rotationChanged || isDisplayBoundsChanged()) {
|
||||
updateBoundsAndOffsets(true /* enabled */);
|
||||
final WindowContainerTransaction wct = new WindowContainerTransaction();
|
||||
final SurfaceControl.Transaction t = new SurfaceControl.Transaction();
|
||||
applyAllBoundsAndOffsets(wct, t);
|
||||
applyTransaction(wct, t);
|
||||
}
|
||||
}
|
||||
|
||||
HideDisplayCutoutOrganizer(Context context, DisplayController displayController,
|
||||
ShellExecutor mainExecutor) {
|
||||
super(mainExecutor);
|
||||
|
||||
Reference in New Issue
Block a user