From 443e98b12d829a83f25b845f31a7eccd71aa01db Mon Sep 17 00:00:00 2001 From: Siarhei Vishniakou Date: Thu, 7 Feb 2019 15:42:06 -0800 Subject: [PATCH] Remove impl from InputClassifier HAL Make the reference implementation for InputClassifier HAL do nothing. This is to allow cuttlefish to install this implementation. It is safe for any device to install this implementation, and is equivalent to not having the HAL running at all. Test: boot up cuttlefish, and interact with the virtual device to ensure that input works okay. Then 'ps -A | grep -i input' and ensure that the HAL is running on the device. Bug: 122600147 Change-Id: I841811bc0da3d78db8d7c1589cf1c59819d901a1 --- input/classifier/1.0/default/Android.bp | 4 +-- .../1.0/default/InputClassifier.cpp | 33 +++++-------------- ...e.input.classifier@1.0-service.default.rc} | 2 +- 3 files changed, 11 insertions(+), 28 deletions(-) rename input/classifier/1.0/default/{android.hardware.input.classifier@1.0-service-example.rc => android.hardware.input.classifier@1.0-service.default.rc} (91%) diff --git a/input/classifier/1.0/default/Android.bp b/input/classifier/1.0/default/Android.bp index ddd883ce38..ceb2aca9f8 100644 --- a/input/classifier/1.0/default/Android.bp +++ b/input/classifier/1.0/default/Android.bp @@ -1,6 +1,6 @@ cc_binary { - name: "android.hardware.input.classifier@1.0-service-example", - init_rc: ["android.hardware.input.classifier@1.0-service-example.rc"], + name: "android.hardware.input.classifier@1.0-service.default", + init_rc: ["android.hardware.input.classifier@1.0-service.default.rc"], relative_install_path: "hw", vendor: true, vintf_fragments: ["manifest_input.classifier.xml"], diff --git a/input/classifier/1.0/default/InputClassifier.cpp b/input/classifier/1.0/default/InputClassifier.cpp index a78bbc5c94..cce9190cc8 100644 --- a/input/classifier/1.0/default/InputClassifier.cpp +++ b/input/classifier/1.0/default/InputClassifier.cpp @@ -31,41 +31,24 @@ namespace V1_0 { namespace implementation { // Methods from ::android::hardware::input::classifier::V1_0::IInputClassifier follow. -Return InputClassifier::classify(const MotionEvent& event) { +Return InputClassifier::classify(const MotionEvent& /*event*/) { /** - * In this example implementation, we will see how many "pixels" inside the video frame - * exceed the value of 250. If more than 6 such pixels are present, then treat the event - * as a "DEEP_PRESS". + * The touchscreen data is highly device-dependent. + * As a result, the implementation of this method will likely be hardware-specific. + * Here we just report gesture as not having any classification, which means that the + * default action will be taken in the framework. + * This is equivalent to not having the InputClassifier HAL at all. */ - if (event.frames.size() == 0) { - return Classification::NONE; - } - ALOGI("Frame(O) timestamp = %" PRIu64 ", received %zu frame(s)", event.frames[0].timestamp, - event.frames.size()); - for (const VideoFrame& frame : event.frames) { - size_t count = 0; - for (size_t i = 0; i < frame.data.size(); i++) { - if (frame.data[i] > 250) { - count++; - } - } - if (count > 6) { - return Classification::DEEP_PRESS; - } - } - return Classification::NONE; } Return InputClassifier::reset() { - // We don't have any internal state in this example implementation, - // so no work needed here. + // We don't have any internal state, so no work needed here. return Void(); } Return InputClassifier::resetDevice(int32_t /*deviceId*/) { - // We don't have any internal per-device state in this example implementation, - // so no work needed here. + // We don't have any internal per-device state, so no work needed here. return Void(); } diff --git a/input/classifier/1.0/default/android.hardware.input.classifier@1.0-service-example.rc b/input/classifier/1.0/default/android.hardware.input.classifier@1.0-service.default.rc similarity index 91% rename from input/classifier/1.0/default/android.hardware.input.classifier@1.0-service-example.rc rename to input/classifier/1.0/default/android.hardware.input.classifier@1.0-service.default.rc index f799bf4359..e7d16ae05e 100644 --- a/input/classifier/1.0/default/android.hardware.input.classifier@1.0-service-example.rc +++ b/input/classifier/1.0/default/android.hardware.input.classifier@1.0-service.default.rc @@ -1,4 +1,4 @@ -service vendor.input.classifier-1-0 /vendor/bin/hw/android.hardware.input.classifier@1.0-service-example +service vendor.input.classifier-1-0 /vendor/bin/hw/android.hardware.input.classifier@1.0-service.default # Must be specified if "disabled" is set. This HAL will only start if requested via getService interface android.hardware.input.classifier@1.0::IInputClassifier default class hal