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

Commit 9a1b6b0e authored by Felipe Leme's avatar Felipe Leme Committed by android-build-merger
Browse files

Merge "Catch WindowManager exceptions so they don't crash the system." into oc-dev

am: 301fc823

Change-Id: Ib28ae2a7b3614fa73fa4e1b08e5607f7d6011891
parents 7e05bb77 301fc823
Loading
Loading
Loading
Loading
+18 −4
Original line number Diff line number Diff line
@@ -398,6 +398,12 @@ final class FillUi {
            } catch (WindowManager.BadTokenException e) {
                if (sDebug) Slog.d(TAG, "Filed with with token " + params.token + " gone.");
                mCallback.onDestroy();
            } catch (IllegalStateException e) {
                // WM throws an ISE if mContentView was added twice; this should never happen -
                // since show() and hide() are always called in the UIThread - but when it does,
                // it should not crash the system.
                Slog.e(TAG, "Exception showing window " + params, e);
                mCallback.onDestroy();
            }
        }

@@ -405,11 +411,19 @@ final class FillUi {
         * Hides the window.
         */
        void hide() {
            try {
                if (mShowing) {
                    mContentView.setOnTouchListener(null);
                    mWm.removeView(mContentView);
                    mShowing = false;
                }
            } catch (IllegalStateException e) {
                // WM might thrown an ISE when removing the mContentView; this should never
                // happen - since show() and hide() are always called in the UIThread - but if it
                // does, it should not crash the system.
                Slog.e(TAG, "Exception hiding window ", e);
                mCallback.onDestroy();
            }
        }

        @Override