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

Commit 1d5e29ab authored by Lucas Silva's avatar Lucas Silva
Browse files

Catch error thrown by WindowManager if window has already been detached

If the window is already detached, calling `removeView` will throw an
error.

Bug: 230499241
Test: flashed device and verified systemui no longer crashes
Change-Id: I5028744fbb4e701e298b2c9e7d0cf403fead5df9
parent e04adb10
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -229,6 +229,7 @@ public class DreamOverlayService extends android.service.dreams.DreamOverlayServ
     * Inserts {@link Window} to host the dream overlay into the dream's parent window. Must be
     * called from the main executing thread. The window attributes closely mirror those that are
     * set by the {@link android.service.dreams.DreamService} on the dream Window.
     *
     * @param layoutParams The {@link android.view.WindowManager.LayoutParams} which allow inserting
     *                     into the dream window.
     */
@@ -275,7 +276,11 @@ public class DreamOverlayService extends android.service.dreams.DreamOverlayServ

    private void resetCurrentDreamOverlayLocked() {
        if (mStarted && mWindow != null) {
            try {
                mWindowManager.removeView(mWindow.getDecorView());
            } catch (IllegalArgumentException e) {
                Log.e(TAG, "Error removing decor view when resetting overlay", e);
            }
        }

        mStateController.setOverlayActive(false);