diff options
| -rw-r--r-- | core/jni/android_view_InputEventSender.cpp | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/core/jni/android_view_InputEventSender.cpp b/core/jni/android_view_InputEventSender.cpp index 96326f591998..9746a07a1b77 100644 --- a/core/jni/android_view_InputEventSender.cpp +++ b/core/jni/android_view_InputEventSender.cpp @@ -34,8 +34,6 @@ #include "core_jni_helpers.h" -using android::base::Result; - namespace android { // Log debug messages about the dispatch cycle. @@ -199,9 +197,16 @@ status_t NativeInputEventSender::receiveFinishedSignals(JNIEnv* env) { ScopedLocalRef<jobject> senderObj(env, NULL); bool skipCallbacks = false; for (;;) { - Result<InputPublisher::Finished> result = mInputPublisher.receiveFinishedSignal(); - if (!result.ok()) { - const status_t status = result.error().code(); + uint32_t publishedSeq; + bool handled; + std::function<void(uint32_t seq, bool handled, nsecs_t consumeTime)> callback = + [&publishedSeq, &handled](uint32_t inSeq, bool inHandled, + nsecs_t inConsumeTime) -> void { + publishedSeq = inSeq; + handled = inHandled; + }; + status_t status = mInputPublisher.receiveFinishedSignal(callback); + if (status) { if (status == WOULD_BLOCK) { return OK; } @@ -210,7 +215,7 @@ status_t NativeInputEventSender::receiveFinishedSignals(JNIEnv* env) { return status; } - auto it = mPublishedSeqMap.find(result->seq); + auto it = mPublishedSeqMap.find(publishedSeq); if (it == mPublishedSeqMap.end()) { continue; } @@ -220,9 +225,9 @@ status_t NativeInputEventSender::receiveFinishedSignals(JNIEnv* env) { if (kDebugDispatchCycle) { ALOGD("channel '%s' ~ Received finished signal, seq=%u, handled=%s, " - "pendingEvents=%zu.", - getInputChannelName().c_str(), seq, result->handled ? "true" : "false", - mPublishedSeqMap.size()); + "pendingEvents=%zu.", + getInputChannelName().c_str(), seq, handled ? "true" : "false", + mPublishedSeqMap.size()); } if (!skipCallbacks) { @@ -236,9 +241,8 @@ status_t NativeInputEventSender::receiveFinishedSignals(JNIEnv* env) { } env->CallVoidMethod(senderObj.get(), - gInputEventSenderClassInfo.dispatchInputEventFinished, - static_cast<jint>(result->seq), - static_cast<jboolean>(result->handled)); + gInputEventSenderClassInfo.dispatchInputEventFinished, + jint(seq), jboolean(handled)); if (env->ExceptionCheck()) { ALOGE("Exception dispatching finished signal."); skipCallbacks = true; |