diff --git a/services/core/jni/com_android_server_input_InputManagerService.cpp b/services/core/jni/com_android_server_input_InputManagerService.cpp index 8587270dd1870..52615295f38a6 100644 --- a/services/core/jni/com_android_server_input_InputManagerService.cpp +++ b/services/core/jni/com_android_server_input_InputManagerService.cpp @@ -355,6 +355,8 @@ public: void onPointerDownOutsideFocus(const sp& touchedToken) override; void setPointerCapture(const PointerCaptureRequest& request) override; void notifyDropWindow(const sp& token, float x, float y) override; + void notifyDeviceInteraction(int32_t deviceId, nsecs_t timestamp, + const std::set& uids) override; /* --- PointerControllerPolicyInterface implementation --- */ @@ -966,6 +968,15 @@ void NativeInputManager::notifyDropWindow(const sp& token, float x, flo checkAndClearExceptionFromCallback(env, "notifyDropWindow"); } +void NativeInputManager::notifyDeviceInteraction(int32_t deviceId, nsecs_t timestamp, + const std::set& uids) { + static const bool ENABLE_INPUT_DEVICE_USAGE_METRICS = + sysprop::InputProperties::enable_input_device_usage_metrics().value_or(false); + if (!ENABLE_INPUT_DEVICE_USAGE_METRICS) return; + + mInputManager->getMetricsCollector().notifyDeviceInteraction(deviceId, timestamp, uids); +} + void NativeInputManager::notifySensorEvent(int32_t deviceId, InputDeviceSensorType sensorType, InputDeviceSensorAccuracy accuracy, nsecs_t timestamp, const std::vector& values) {