Merge "Strip hinge angle sensor when running a 2.1 HAL as 2.0"

This commit is contained in:
Karthik Bharadwaj
2020-11-17 19:28:36 +00:00
committed by Gerrit Code Review
5 changed files with 34 additions and 15 deletions

View File

@@ -28,6 +28,19 @@ namespace V2_0 {
namespace implementation { namespace implementation {
struct SensorsV2_0 : public ::android::hardware::sensors::V2_X::implementation::Sensors<ISensors> { struct SensorsV2_0 : public ::android::hardware::sensors::V2_X::implementation::Sensors<ISensors> {
Return<void>
getSensorsList(V2_0::ISensors::getSensorsList_cb _hidl_cb) override {
std::vector<V1_0::SensorInfo> sensors;
for (const auto &sensor : mSensors) {
sensors.push_back(V2_1::implementation::convertToOldSensorInfo(
sensor.second->getSensorInfo()));
}
// Call the HIDL callback with the SensorInfo
_hidl_cb(sensors);
return Void();
}
}; };
} // namespace implementation } // namespace implementation

View File

@@ -54,6 +54,23 @@ struct SensorsV2_1 : public Sensors {
// Methods from ::android::hardware::sensors::V2_1::ISensors follow. // Methods from ::android::hardware::sensors::V2_1::ISensors follow.
Return<void> getSensorsList_2_1(ISensors::getSensorsList_2_1_cb _hidl_cb) override; Return<void> getSensorsList_2_1(ISensors::getSensorsList_2_1_cb _hidl_cb) override;
Return<void>
getSensorsList(V2_0::ISensors::getSensorsList_cb _hidl_cb) override {
std::vector<V1_0::SensorInfo> sensors;
for (const auto &sensor : mSensors) {
auto &info = sensor.second->getSensorInfo();
if (info.type != SensorType::HINGE_ANGLE) {
sensors.push_back(V2_1::implementation::convertToOldSensorInfo(
sensor.second->getSensorInfo()));
}
}
// Call the HIDL callback with the SensorInfo
_hidl_cb(sensors);
return Void();
}
Return<Result> initialize_2_1( Return<Result> initialize_2_1(
const ::android::hardware::MQDescriptorSync<V2_1::Event>& eventQueueDescriptor, const ::android::hardware::MQDescriptorSync<V2_1::Event>& eventQueueDescriptor,
const ::android::hardware::MQDescriptorSync<uint32_t>& wakeLockDescriptor, const ::android::hardware::MQDescriptorSync<uint32_t>& wakeLockDescriptor,
@@ -71,4 +88,4 @@ struct SensorsV2_1 : public Sensors {
} // namespace hardware } // namespace hardware
} // namespace android } // namespace android
#endif // ANDROID_HARDWARE_SENSORS_V2_1_H #endif // ANDROID_HARDWARE_SENSORS_V2_1_H

View File

@@ -78,19 +78,6 @@ struct Sensors : public ISensorsInterface, public ISensorsEventCallback {
} }
// Methods from ::android::hardware::sensors::V2_0::ISensors follow. // Methods from ::android::hardware::sensors::V2_0::ISensors follow.
Return<void> getSensorsList(V2_0::ISensors::getSensorsList_cb _hidl_cb) override {
std::vector<V1_0::SensorInfo> sensors;
for (const auto& sensor : mSensors) {
sensors.push_back(
V2_1::implementation::convertToOldSensorInfo(sensor.second->getSensorInfo()));
}
// Call the HIDL callback with the SensorInfo
_hidl_cb(sensors);
return Void();
}
Return<Result> setOperationMode(OperationMode mode) override { Return<Result> setOperationMode(OperationMode mode) override {
for (auto sensor : mSensors) { for (auto sensor : mSensors) {
sensor.second->setOperationMode(mode); sensor.second->setOperationMode(mode);

View File

@@ -124,7 +124,9 @@ Return<void> HalProxy::getSensorsList_2_1(ISensorsV2_1::getSensorsList_2_1_cb _h
Return<void> HalProxy::getSensorsList(ISensorsV2_0::getSensorsList_cb _hidl_cb) { Return<void> HalProxy::getSensorsList(ISensorsV2_0::getSensorsList_cb _hidl_cb) {
std::vector<V1_0::SensorInfo> sensors; std::vector<V1_0::SensorInfo> sensors;
for (const auto& iter : mSensors) { for (const auto& iter : mSensors) {
if (iter.second.type != SensorType::HINGE_ANGLE) {
sensors.push_back(convertToOldSensorInfo(iter.second)); sensors.push_back(convertToOldSensorInfo(iter.second));
}
} }
_hidl_cb(sensors); _hidl_cb(sensors);
return Void(); return Void();

View File

@@ -366,7 +366,7 @@ int32_t SensorsHidlTest::getInvalidSensorHandle() {
for (const SensorInfoType& sensor : getSensorsList()) { for (const SensorInfoType& sensor : getSensorsList()) {
maxHandle = std::max(maxHandle, sensor.sensorHandle); maxHandle = std::max(maxHandle, sensor.sensorHandle);
} }
return maxHandle + 1; return maxHandle + 42;
} }
// Test if sensor list returned is valid // Test if sensor list returned is valid