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

Commit 0d363390 authored by Keun-young Park's avatar Keun-young Park Committed by Automerger Merge Worker
Browse files

Merge "Fix crash coming from accessing invalid display from GestureDetector"...

Merge "Fix crash coming from accessing invalid display from GestureDetector" into rvc-dev am: 0b4de9e6

Change-Id: I63458429c094471def78f986d5ce2b8af4c22e89
parents 84f68b3a 0b4de9e6
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.os.SystemClock;
import android.util.Slog;
import android.view.Display;
import android.view.DisplayCutout;
import android.view.DisplayInfo;
import android.view.GestureDetector;
import android.view.InputDevice;
import android.view.MotionEvent;
@@ -117,8 +118,17 @@ class SystemGesturesPointerEventListener implements PointerEventListener {
        // GestureDetector would get a ViewConfiguration instance by context, that may also
        // create a new WindowManagerImpl for the new display, and lock WindowManagerGlobal
        // temporarily in the constructor that would make a deadlock.
        mHandler.post(() -> mGestureDetector =
                new GestureDetector(mContext, new FlingGestureDetector(), mHandler) {});
        mHandler.post(() -> {
            final int displayId = mContext.getDisplayId();
            final DisplayInfo info = DisplayManagerGlobal.getInstance().getDisplayInfo(displayId);
            if (info == null) {
                // Display already removed, stop here.
                Slog.w(TAG, "Cannot create GestureDetector, display removed:" + displayId);
                return;
            }
            mGestureDetector = new GestureDetector(mContext, new FlingGestureDetector(), mHandler) {
            };
        });
    }

    @Override