summaryrefslogtreecommitdiff
path: root/core/java/android/view/BatchedInputEventReceiver.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/view/BatchedInputEventReceiver.java')
-rw-r--r--core/java/android/view/BatchedInputEventReceiver.java23
1 files changed, 21 insertions, 2 deletions
diff --git a/core/java/android/view/BatchedInputEventReceiver.java b/core/java/android/view/BatchedInputEventReceiver.java
index 30e3ec135065..7023e4bd0134 100644
--- a/core/java/android/view/BatchedInputEventReceiver.java
+++ b/core/java/android/view/BatchedInputEventReceiver.java
@@ -24,7 +24,8 @@ import android.os.Looper;
* @hide
*/
public class BatchedInputEventReceiver extends InputEventReceiver {
- Choreographer mChoreographer;
+ private Choreographer mChoreographer;
+ private boolean mBatchingEnabled;
private boolean mBatchedInputScheduled;
@UnsupportedAppUsage
@@ -32,19 +33,37 @@ public class BatchedInputEventReceiver extends InputEventReceiver {
InputChannel inputChannel, Looper looper, Choreographer choreographer) {
super(inputChannel, looper);
mChoreographer = choreographer;
+ mBatchingEnabled = true;
}
@Override
public void onBatchedInputEventPending(int source) {
- scheduleBatchedInput();
+ if (mBatchingEnabled) {
+ scheduleBatchedInput();
+ } else {
+ consumeBatchedInputEvents(-1);
+ }
}
@Override
public void dispose() {
unscheduleBatchedInput();
+ consumeBatchedInputEvents(-1);
super.dispose();
}
+ /**
+ * Sets whether to enable batching on this input event receiver.
+ * @hide
+ */
+ public void setBatchingEnabled(boolean batchingEnabled) {
+ mBatchingEnabled = batchingEnabled;
+ if (!batchingEnabled) {
+ unscheduleBatchedInput();
+ consumeBatchedInputEvents(-1);
+ }
+ }
+
void doConsumeBatchedInput(long frameTimeNanos) {
if (mBatchedInputScheduled) {
mBatchedInputScheduled = false;