summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/widget/PointerLocationView.java33
1 files changed, 23 insertions, 10 deletions
diff --git a/core/java/com/android/internal/widget/PointerLocationView.java b/core/java/com/android/internal/widget/PointerLocationView.java
index 3881093f5540..9084f625f9cb 100644
--- a/core/java/com/android/internal/widget/PointerLocationView.java
+++ b/core/java/com/android/internal/widget/PointerLocationView.java
@@ -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();
+ });
+ }
}
};
}