Merge "PointerLocation: move showing exclusion rects behind flag" into qt-dev

This commit is contained in:
Wale Ogunwale
2019-05-10 15:19:04 +00:00
committed by Android (Google) Code Review

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();
});
}
}
};
}