Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2a4ddb9c authored by Shawn Lin's avatar Shawn Lin
Browse files

Fix the NPE crash when device reboot with hide cutout set

1. Set initial values to the fields.
2. Also listen to onDisplayAdded for the case that only the
   onDisplayAdded is being called after reboot.

Bug: 220884764
Test: 1. Go Settings > System > Developer option > Display cutout
      2. Select Rednder apps below cutout area
      3. Reboot device
Change-Id: I35ba3dcebcded19373901b88f7bb208633587392
parent 1d7f570e
Loading
Loading
Loading
Loading
+27 −19
Original line number Diff line number Diff line
@@ -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,13 +77,22 @@ 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) {
                    onDisplayChanged(displayId);
                }
    };

    private void onDisplayChanged(int displayId) {
        if (displayId != DEFAULT_DISPLAY) {
            return;
        }
                    DisplayLayout displayLayout =
                            mDisplayController.getDisplayLayout(DEFAULT_DISPLAY);
        final DisplayLayout displayLayout = mDisplayController.getDisplayLayout(DEFAULT_DISPLAY);
        if (displayLayout == null) {
            return;
        }
@@ -97,7 +106,6 @@ class HideDisplayCutoutOrganizer extends DisplayAreaOrganizer {
            applyTransaction(wct, t);
        }
    }
    };

    HideDisplayCutoutOrganizer(Context context, DisplayController displayController,
            ShellExecutor mainExecutor) {