Loading libs/input/Android.bp +5 −1 Original line number Diff line number Diff line Loading @@ -17,9 +17,11 @@ filegroup { name: "inputconstants_aidl", srcs: [ "android/os/BlockUntrustedTouchesMode.aidl", "android/os/IInputConstants.aidl", "android/os/InputEventInjectionResult.aidl", "android/os/InputEventInjectionSync.aidl", "android/os/TouchOcclusionMode.aidl", "android/os/BlockUntrustedTouchesMode.aidl", ], } Loading Loading @@ -73,6 +75,8 @@ cc_library { "android/FocusRequest.aidl", "android/InputApplicationInfo.aidl", "android/os/IInputConstants.aidl", "android/os/InputEventInjectionResult.aidl", "android/os/InputEventInjectionSync.aidl", "android/os/TouchOcclusionMode.aidl", "android/os/BlockUntrustedTouchesMode.aidl", "android/os/IInputFlinger.aidl", Loading libs/input/android/os/InputEventInjectionResult.aidl 0 → 100644 +41 −0 Original line number Diff line number Diff line /** * Copyright (c) 2020, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.os; /** * Constants used to report the outcome of input event injection. * * @hide */ @Backing(type="int") enum InputEventInjectionResult { /* (INTERNAL USE ONLY) Specifies that injection is pending and its outcome is unknown. */ PENDING = -1, /* Injection succeeded. */ SUCCEEDED = 0, /* Injection failed because the injector did not have permission to inject * into the application with input focus. */ PERMISSION_DENIED = 1, /* Injection failed because there were no available input targets. */ FAILED = 2, /* Injection failed due to a timeout. */ TIMED_OUT = 3, } libs/input/android/os/InputEventInjectionSync.aidl 0 → 100644 +36 −0 Original line number Diff line number Diff line /** * Copyright (c) 2020, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.os; /** * Constants used to specify the input event injection synchronization mode. * * @hide */ @Backing(type="int") enum InputEventInjectionSync { /* Injection is asynchronous and is assumed always to be successful. */ NONE = 0, /* Waits for previous events to be dispatched so that the input dispatcher can determine * whether input event injection willbe permitted based on the current input focus. * Does not wait for the input event to finish processing. */ WAIT_FOR_RESULT = 1, /* Waits for the input event to be completely processed. */ WAIT_FOR_FINISHED = 2, } services/inputflinger/benchmarks/InputDispatcher_benchmarks.cpp +5 −2 Original line number Diff line number Diff line Loading @@ -19,6 +19,9 @@ #include <binder/Binder.h> #include "../dispatcher/InputDispatcher.h" using android::os::InputEventInjectionResult; using android::os::InputEventInjectionSync; namespace android::inputdispatcher { // An arbitrary device id. Loading Loading @@ -286,13 +289,13 @@ static void benchmarkInjectMotion(benchmark::State& state) { MotionEvent event = generateMotionEvent(); // Send ACTION_DOWN dispatcher->injectInputEvent(&event, INJECTOR_PID, INJECTOR_UID, INPUT_EVENT_INJECTION_SYNC_NONE, INJECT_EVENT_TIMEOUT, InputEventInjectionSync::NONE, INJECT_EVENT_TIMEOUT, POLICY_FLAG_FILTERED | POLICY_FLAG_PASS_TO_USER); // Send ACTION_UP event.setAction(AMOTION_EVENT_ACTION_UP); dispatcher->injectInputEvent(&event, INJECTOR_PID, INJECTOR_UID, INPUT_EVENT_INJECTION_SYNC_NONE, INJECT_EVENT_TIMEOUT, InputEventInjectionSync::NONE, INJECT_EVENT_TIMEOUT, POLICY_FLAG_FILTERED | POLICY_FLAG_PASS_TO_USER); window->consumeEvent(); Loading services/inputflinger/dispatcher/InjectionState.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ InjectionState::InjectionState(int32_t injectorPid, int32_t injectorUid) : refCount(1), injectorPid(injectorPid), injectorUid(injectorUid), injectionResult(INPUT_EVENT_INJECTION_PENDING), injectionResult(android::os::InputEventInjectionResult::PENDING), injectionIsAsync(false), pendingForegroundDispatches(0) {} Loading Loading
libs/input/Android.bp +5 −1 Original line number Diff line number Diff line Loading @@ -17,9 +17,11 @@ filegroup { name: "inputconstants_aidl", srcs: [ "android/os/BlockUntrustedTouchesMode.aidl", "android/os/IInputConstants.aidl", "android/os/InputEventInjectionResult.aidl", "android/os/InputEventInjectionSync.aidl", "android/os/TouchOcclusionMode.aidl", "android/os/BlockUntrustedTouchesMode.aidl", ], } Loading Loading @@ -73,6 +75,8 @@ cc_library { "android/FocusRequest.aidl", "android/InputApplicationInfo.aidl", "android/os/IInputConstants.aidl", "android/os/InputEventInjectionResult.aidl", "android/os/InputEventInjectionSync.aidl", "android/os/TouchOcclusionMode.aidl", "android/os/BlockUntrustedTouchesMode.aidl", "android/os/IInputFlinger.aidl", Loading
libs/input/android/os/InputEventInjectionResult.aidl 0 → 100644 +41 −0 Original line number Diff line number Diff line /** * Copyright (c) 2020, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.os; /** * Constants used to report the outcome of input event injection. * * @hide */ @Backing(type="int") enum InputEventInjectionResult { /* (INTERNAL USE ONLY) Specifies that injection is pending and its outcome is unknown. */ PENDING = -1, /* Injection succeeded. */ SUCCEEDED = 0, /* Injection failed because the injector did not have permission to inject * into the application with input focus. */ PERMISSION_DENIED = 1, /* Injection failed because there were no available input targets. */ FAILED = 2, /* Injection failed due to a timeout. */ TIMED_OUT = 3, }
libs/input/android/os/InputEventInjectionSync.aidl 0 → 100644 +36 −0 Original line number Diff line number Diff line /** * Copyright (c) 2020, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.os; /** * Constants used to specify the input event injection synchronization mode. * * @hide */ @Backing(type="int") enum InputEventInjectionSync { /* Injection is asynchronous and is assumed always to be successful. */ NONE = 0, /* Waits for previous events to be dispatched so that the input dispatcher can determine * whether input event injection willbe permitted based on the current input focus. * Does not wait for the input event to finish processing. */ WAIT_FOR_RESULT = 1, /* Waits for the input event to be completely processed. */ WAIT_FOR_FINISHED = 2, }
services/inputflinger/benchmarks/InputDispatcher_benchmarks.cpp +5 −2 Original line number Diff line number Diff line Loading @@ -19,6 +19,9 @@ #include <binder/Binder.h> #include "../dispatcher/InputDispatcher.h" using android::os::InputEventInjectionResult; using android::os::InputEventInjectionSync; namespace android::inputdispatcher { // An arbitrary device id. Loading Loading @@ -286,13 +289,13 @@ static void benchmarkInjectMotion(benchmark::State& state) { MotionEvent event = generateMotionEvent(); // Send ACTION_DOWN dispatcher->injectInputEvent(&event, INJECTOR_PID, INJECTOR_UID, INPUT_EVENT_INJECTION_SYNC_NONE, INJECT_EVENT_TIMEOUT, InputEventInjectionSync::NONE, INJECT_EVENT_TIMEOUT, POLICY_FLAG_FILTERED | POLICY_FLAG_PASS_TO_USER); // Send ACTION_UP event.setAction(AMOTION_EVENT_ACTION_UP); dispatcher->injectInputEvent(&event, INJECTOR_PID, INJECTOR_UID, INPUT_EVENT_INJECTION_SYNC_NONE, INJECT_EVENT_TIMEOUT, InputEventInjectionSync::NONE, INJECT_EVENT_TIMEOUT, POLICY_FLAG_FILTERED | POLICY_FLAG_PASS_TO_USER); window->consumeEvent(); Loading
services/inputflinger/dispatcher/InjectionState.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ InjectionState::InjectionState(int32_t injectorPid, int32_t injectorUid) : refCount(1), injectorPid(injectorPid), injectorUid(injectorUid), injectionResult(INPUT_EVENT_INJECTION_PENDING), injectionResult(android::os::InputEventInjectionResult::PENDING), injectionIsAsync(false), pendingForegroundDispatches(0) {} Loading