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

Commit 4685e537 authored by Chris Li's avatar Chris Li Committed by Android (Google) Code Review
Browse files

Merge "Catch exception when add immersive confirmation"

parents 68f254af 8013720a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2851,6 +2851,7 @@ public class DisplayPolicy {

    void release() {
        mHandler.post(mGestureNavigationSettingsObserver::unregister);
        mImmersiveModeConfirmation.release();
    }

    @VisibleForTesting
+16 −2
Original line number Diff line number Diff line
@@ -149,6 +149,11 @@ public class ImmersiveModeConfirmation {
        }
    }

    void release() {
        mHandler.removeMessages(H.SHOW);
        mHandler.removeMessages(H.HIDE);
    }

    boolean onSettingChanged(int currentUserId) {
        final boolean changed = loadSetting(currentUserId, mContext);
        // Remove the window if the setting changes to be confirmed.
@@ -204,7 +209,12 @@ public class ImmersiveModeConfirmation {
        if (mClingWindow != null) {
            if (DEBUG) Slog.d(TAG, "Hiding immersive mode confirmation");
            // We don't care which root display area the window manager is specifying for removal.
            try {
                getWindowManager(FEATURE_UNDEFINED).removeView(mClingWindow);
            } catch (WindowManager.InvalidDisplayException e) {
                Slog.w(TAG, "Fail to hide the immersive confirmation window because of " + e);
                return;
            }
            mClingWindow = null;
        }
    }
@@ -432,7 +442,11 @@ public class ImmersiveModeConfirmation {

        // show the confirmation
        WindowManager.LayoutParams lp = getClingWindowLayoutParams();
        try {
            getWindowManager(rootDisplayAreaId).addView(mClingWindow, lp);
        } catch (WindowManager.InvalidDisplayException e) {
            Slog.w(TAG, "Fail to show the immersive confirmation window because of " + e);
        }
    }

    private final Runnable mConfirm = new Runnable() {