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.graphics.Region;
import android.hardware.input.InputManager; import android.hardware.input.InputManager;
import android.hardware.input.InputManager.InputDeviceListener; import android.hardware.input.InputManager.InputDeviceListener;
import android.os.Handler;
import android.os.RemoteException; import android.os.RemoteException;
import android.os.SystemProperties; import android.os.SystemProperties;
import android.util.Log; import android.util.Log;
@@ -745,12 +746,17 @@ public class PointerLocationView extends View implements InputDeviceListener,
super.onAttachedToWindow(); super.onAttachedToWindow();
mIm.registerInputDeviceListener(this, getHandler()); mIm.registerInputDeviceListener(this, getHandler());
if (shouldShowSystemGestureExclusion()) {
try { try {
WindowManagerGlobal.getWindowManagerService().registerSystemGestureExclusionListener( WindowManagerGlobal.getWindowManagerService()
mSystemGestureExclusionListener, mContext.getDisplayId()); .registerSystemGestureExclusionListener(mSystemGestureExclusionListener,
mContext.getDisplayId());
} catch (RemoteException e) { } catch (RemoteException e) {
throw e.rethrowFromSystemServer(); throw e.rethrowFromSystemServer();
} }
} else {
mSystemGestureExclusion.setEmpty();
}
logInputDevices(); logInputDevices();
} }
@@ -798,6 +804,10 @@ public class PointerLocationView extends View implements InputDeviceListener,
} }
} }
private static boolean shouldShowSystemGestureExclusion() {
return SystemProperties.getBoolean("debug.pointerlocation.showexclusion", false);
}
// HACK // HACK
// A quick and dirty string builder implementation optimized for GC. // A quick and dirty string builder implementation optimized for GC.
// Using String.format causes the application grind to a halt when // Using String.format causes the application grind to a halt when
@@ -920,11 +930,14 @@ public class PointerLocationView extends View implements InputDeviceListener,
@Override @Override
public void onSystemGestureExclusionChanged(int displayId, Region systemGestureExclusion) { public void onSystemGestureExclusionChanged(int displayId, Region systemGestureExclusion) {
Region exclusion = Region.obtain(systemGestureExclusion); Region exclusion = Region.obtain(systemGestureExclusion);
getHandler().post(() -> { Handler handler = getHandler();
if (handler != null) {
handler.post(() -> {
mSystemGestureExclusion.set(exclusion); mSystemGestureExclusion.set(exclusion);
exclusion.recycle(); exclusion.recycle();
invalidate(); invalidate();
}); });
} }
}
}; };
} }