diff options
| author | 2024-05-13 22:39:12 +0000 | |
|---|---|---|
| committer | 2024-05-13 22:39:12 +0000 | |
| commit | 278e699ba51bb8c2bcde28f9d83565d7bf85d6a5 (patch) | |
| tree | 89a2a2231c8be590c678e6f402bd3df394208b2f | |
| parent | 32f704f14c47fb1a63351f843d81deebd5c8e8c9 (diff) | |
| parent | b0b5b6c5727dff214964963b57a4338d799529c1 (diff) | |
Merge "Use libstatssocket_lazy to report stylus metrics" into main
| -rw-r--r-- | libs/input/Android.bp | 44 | ||||
| -rw-r--r-- | libs/input/MotionPredictorMetricsManager.cpp | 20 | ||||
| -rw-r--r-- | libs/input/tests/Android.bp | 6 |
3 files changed, 67 insertions, 3 deletions
diff --git a/libs/input/Android.bp b/libs/input/Android.bp index cc0649cc91..8f44b3a0e1 100644 --- a/libs/input/Android.bp +++ b/libs/input/Android.bp @@ -289,6 +289,10 @@ cc_library { "motion_predictor_model_prebuilt", "motion_predictor_model_config", ], + static_libs: [ + "libstatslog_libinput", + "libstatssocket_lazy", + ], }, host: { include_dirs: [ @@ -299,6 +303,46 @@ cc_library { }, } +cc_library_static { + name: "libstatslog_libinput", + generated_sources: ["statslog_libinput.cpp"], + generated_headers: ["statslog_libinput.h"], + cflags: [ + "-Wall", + "-Werror", + ], + export_generated_headers: ["statslog_libinput.h"], + shared_libs: [ + "libcutils", + "liblog", + "libutils", + ], + static_libs: [ + "libstatssocket_lazy", + ], +} + +genrule { + name: "statslog_libinput.h", + tools: ["stats-log-api-gen"], + cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_libinput.h " + + "--module libinput --namespace android,libinput", + out: [ + "statslog_libinput.h", + ], +} + +genrule { + name: "statslog_libinput.cpp", + tools: ["stats-log-api-gen"], + cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_libinput.cpp " + + "--module libinput --namespace android,libinput " + + "--importHeader statslog_libinput.h", + out: [ + "statslog_libinput.cpp", + ], +} + cc_defaults { name: "libinput_fuzz_defaults", cpp_std: "c++20", diff --git a/libs/input/MotionPredictorMetricsManager.cpp b/libs/input/MotionPredictorMetricsManager.cpp index cda39ce601..ccf018e56a 100644 --- a/libs/input/MotionPredictorMetricsManager.cpp +++ b/libs/input/MotionPredictorMetricsManager.cpp @@ -21,6 +21,9 @@ #include <algorithm> #include <android-base/logging.h> +#ifdef __ANDROID__ +#include <statslog_libinput.h> +#endif // __ANDROID__ #include "Eigen/Core" #include "Eigen/Geometry" @@ -44,9 +47,20 @@ inline constexpr float PATH_LENGTH_EPSILON = 0.001; void MotionPredictorMetricsManager::defaultReportAtomFunction( const MotionPredictorMetricsManager::AtomFields& atomFields) { - // TODO(b/338106546): Fix bootanimation build dependency issue, then re-add - // the stats_write function call here. - (void)atomFields; +#ifdef __ANDROID__ + android::libinput::stats_write(android::libinput::STYLUS_PREDICTION_METRICS_REPORTED, + /*stylus_vendor_id=*/0, + /*stylus_product_id=*/0, + atomFields.deltaTimeBucketMilliseconds, + atomFields.alongTrajectoryErrorMeanMillipixels, + atomFields.alongTrajectoryErrorStdMillipixels, + atomFields.offTrajectoryRmseMillipixels, + atomFields.pressureRmseMilliunits, + atomFields.highVelocityAlongTrajectoryRmse, + atomFields.highVelocityOffTrajectoryRmse, + atomFields.scaleInvariantAlongTrajectoryRmse, + atomFields.scaleInvariantOffTrajectoryRmse); +#endif // __ANDROID__ } MotionPredictorMetricsManager::MotionPredictorMetricsManager( diff --git a/libs/input/tests/Android.bp b/libs/input/tests/Android.bp index 6e724acc3c..e9d799ed3f 100644 --- a/libs/input/tests/Android.bp +++ b/libs/input/tests/Android.bp @@ -79,6 +79,12 @@ cc_test { }, test_suites: ["device-tests"], target: { + android: { + static_libs: [ + "libstatslog_libinput", + "libstatssocket_lazy", + ], + }, host: { sanitize: { address: true, |