Methods Summary |
---|
public final boolean | consumeBatchedInputEvents(long frameTimeNanos)Consumes all pending batched input events.
Must be called on the same Looper thread to which the receiver is attached.
This method forces all batched input events to be delivered immediately.
Should be called just before animating or drawing a new frame in the UI.
if (mReceiverPtr == 0) {
Log.w(TAG, "Attempted to consume batched input events but the input event "
+ "receiver has already been disposed.");
} else {
return nativeConsumeBatchedInputEvents(mReceiverPtr, frameTimeNanos);
}
return false;
|
private void | dispatchBatchedInputEventPending()
onBatchedInputEventPending();
|
private void | dispatchInputEvent(int seq, InputEvent event)
mSeqMap.put(event.getSequenceNumber(), seq);
onInputEvent(event);
|
public void | dispose()Disposes the receiver.
dispose(false);
|
private void | dispose(boolean finalized)
if (mCloseGuard != null) {
if (finalized) {
mCloseGuard.warnIfOpen();
}
mCloseGuard.close();
}
if (mReceiverPtr != 0) {
nativeDispose(mReceiverPtr);
mReceiverPtr = 0;
}
mInputChannel = null;
mMessageQueue = null;
|
protected void | finalize()
try {
dispose(true);
} finally {
super.finalize();
}
|
public final void | finishInputEvent(InputEvent event, boolean handled)Finishes an input event and indicates whether it was handled.
Must be called on the same Looper thread to which the receiver is attached.
if (event == null) {
throw new IllegalArgumentException("event must not be null");
}
if (mReceiverPtr == 0) {
Log.w(TAG, "Attempted to finish an input event but the input event "
+ "receiver has already been disposed.");
} else {
int index = mSeqMap.indexOfKey(event.getSequenceNumber());
if (index < 0) {
Log.w(TAG, "Attempted to finish an input event that is not in progress.");
} else {
int seq = mSeqMap.valueAt(index);
mSeqMap.removeAt(index);
nativeFinishInputEvent(mReceiverPtr, seq, handled);
}
}
event.recycleIfNeededAfterDispatch();
|
private static native boolean | nativeConsumeBatchedInputEvents(long receiverPtr, long frameTimeNanos)
|
private static native void | nativeDispose(long receiverPtr)
|
private static native void | nativeFinishInputEvent(long receiverPtr, int seq, boolean handled)
|
private static native long | nativeInit(java.lang.ref.WeakReference receiver, InputChannel inputChannel, android.os.MessageQueue messageQueue)
|
public void | onBatchedInputEventPending()Called when a batched input event is pending.
The batched input event will continue to accumulate additional movement
samples until the recipient calls {@link #consumeBatchedInputEvents} or
an event is received that ends the batch and causes it to be consumed
immediately (such as a pointer up event).
consumeBatchedInputEvents(-1);
|
public void | onInputEvent(InputEvent event)Called when an input event is received.
The recipient should process the input event and then call {@link #finishInputEvent}
to indicate whether the event was handled. No new input events will be received
until {@link #finishInputEvent} is called.
finishInputEvent(event, false);
|