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

Commit a3341ae0 authored by Adrian Roos's avatar Adrian Roos
Browse files

PointerLocation: move showing exclusion rects behind flag

Fixes: 131810593
Test: Enable "show pointer location" in developer setting, verify no pink overlays
Change-Id: I258466af07edfc5bc7f36b348564a81fed2cb2b4
parent a8a18f6d
Loading
Loading
Loading
Loading
+23 −10
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.graphics.RectF;
import android.graphics.Region;
import android.hardware.input.InputManager;
import android.hardware.input.InputManager.InputDeviceListener;
import android.os.Handler;
import android.os.RemoteException;
import android.os.SystemProperties;
import android.util.Log;
@@ -745,12 +746,17 @@ public class PointerLocationView extends View implements InputDeviceListener,
        super.onAttachedToWindow();

        mIm.registerInputDeviceListener(this, getHandler());
        if (shouldShowSystemGestureExclusion()) {
            try {
            WindowManagerGlobal.getWindowManagerService().registerSystemGestureExclusionListener(
                    mSystemGestureExclusionListener, mContext.getDisplayId());
                WindowManagerGlobal.getWindowManagerService()
                        .registerSystemGestureExclusionListener(mSystemGestureExclusionListener,
                                mContext.getDisplayId());
            } catch (RemoteException e) {
                throw e.rethrowFromSystemServer();
            }
        } else {
            mSystemGestureExclusion.setEmpty();
        }
        logInputDevices();
    }

@@ -798,6 +804,10 @@ public class PointerLocationView extends View implements InputDeviceListener,
        }
    }

    private static boolean shouldShowSystemGestureExclusion() {
        return SystemProperties.getBoolean("debug.pointerlocation.showexclusion", false);
    }

    // HACK
    // A quick and dirty string builder implementation optimized for GC.
    // Using String.format causes the application grind to a halt when
@@ -920,11 +930,14 @@ public class PointerLocationView extends View implements InputDeviceListener,
        @Override
        public void onSystemGestureExclusionChanged(int displayId, Region systemGestureExclusion) {
            Region exclusion = Region.obtain(systemGestureExclusion);
            getHandler().post(() -> {
            Handler handler = getHandler();
            if (handler != null) {
                handler.post(() -> {
                    mSystemGestureExclusion.set(exclusion);
                    exclusion.recycle();
                    invalidate();
                });
            }
        }
    };
}