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

Commit 0c603d91 authored by Chris Li's avatar Chris Li Committed by Priyank Singh
Browse files

Include whether in touch mode for WindowlessWindowManager

Fix: 179583920
Fix: 180530717
Test: manually with a windowless button
Change-Id: Ice37c3182a44c6284ffa8950996507025c59270b
Merged-In: Ice37c3182a44c6284ffa8950996507025c59270b
parent ed260d83
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -156,7 +156,10 @@ public class WindowlessWindowManager implements IWindowSession {
            mStateForWindow.put(window.asBinder(), state);
        }

        return WindowManagerGlobal.ADD_OKAY | WindowManagerGlobal.ADD_FLAG_APP_VISIBLE;
        final int res = WindowManagerGlobal.ADD_OKAY | WindowManagerGlobal.ADD_FLAG_APP_VISIBLE;

        // Include whether the window is in touch mode.
        return isInTouchMode() ? res | WindowManagerGlobal.ADD_FLAG_IN_TOUCH_MODE : res;
    }

    /**
@@ -207,6 +210,15 @@ public class WindowlessWindowManager implements IWindowSession {
        return !PixelFormat.formatHasAlpha(attrs.format);
    }

    private boolean isInTouchMode() {
        try {
            return WindowManagerGlobal.getWindowSession().getInTouchMode();
        } catch (RemoteException e) {
            Log.e(TAG, "Unable to check if the window is in touch mode", e);
        }
        return false;
    }

    /** @hide */
    protected SurfaceControl getSurfaceControl(View rootView) {
        final ViewRootImpl root = rootView.getViewRootImpl();
@@ -268,7 +280,8 @@ public class WindowlessWindowManager implements IWindowSession {
            }
        }

        return 0;
        // Include whether the window is in touch mode.
        return isInTouchMode() ? WindowManagerGlobal.RELAYOUT_RES_IN_TOUCH_MODE : 0;
    }

    @Override