PointerLocation: move showing exclusion rects behind flag

Fixes: 131810593
Test: Enable "show pointer location" in developer setting, verify no pink overlays
Change-Id: I258466af07edfc5bc7f36b348564a81fed2cb2b4
This commit is contained in:
Adrian Roos
2019-05-09 17:41:01 -07:00
parent a8a18f6d32
commit a3341ae060

View File

@@ -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,11 +746,16 @@ public class PointerLocationView extends View implements InputDeviceListener,
super.onAttachedToWindow();
mIm.registerInputDeviceListener(this, getHandler());
try {
WindowManagerGlobal.getWindowManagerService().registerSystemGestureExclusionListener(
mSystemGestureExclusionListener, mContext.getDisplayId());
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
if (shouldShowSystemGestureExclusion()) {
try {
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(() -> {
mSystemGestureExclusion.set(exclusion);
exclusion.recycle();
invalidate();
});
Handler handler = getHandler();
if (handler != null) {
handler.post(() -> {
mSystemGestureExclusion.set(exclusion);
exclusion.recycle();
invalidate();
});
}
}
};
}