From 9c922979d28d8e0d58d2537c9551b1346b0a27a1 Mon Sep 17 00:00:00 2001 From: Tomasz Wasilczyk Date: Wed, 5 Jan 2022 13:05:41 -0800 Subject: [PATCH] Fix minor TODOs in HIDL-AIDL translation shim Bug: 203699028 Bug: 210498497 Test: build and boot Cuttlefish Change-Id: I82dd52f313b5768cfccf0d6a7705b28dfcff24fa --- .../compat/libradiocompat/RadioResponse.cpp | 5 ++++- .../libradiocompat/network/RadioNetwork.cpp | 21 ++++++++++++------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/radio/aidl/compat/libradiocompat/RadioResponse.cpp b/radio/aidl/compat/libradiocompat/RadioResponse.cpp index dbeb68a482..dab70cc222 100644 --- a/radio/aidl/compat/libradiocompat/RadioResponse.cpp +++ b/radio/aidl/compat/libradiocompat/RadioResponse.cpp @@ -26,7 +26,10 @@ RadioResponse::RadioResponse(std::shared_ptr context) : mContext( Return RadioResponse::acknowledgeRequest(int32_t serial) { LOG_CALL << serial; - // TODO(b/203699028): send to correct requestor or confirm if spam is not a problem + /* We send ACKs to all callbacks instead of the one requested it to make implementation simpler. + * If it turns out to be a problem, we would have to track where serials come from and make sure + * this tracking data (e.g. a map) doesn't grow indefinitely. + */ if (mDataCb) mDataCb.get()->acknowledgeRequest(serial); if (mMessagingCb) mMessagingCb.get()->acknowledgeRequest(serial); if (mModemCb) mModemCb.get()->acknowledgeRequest(serial); diff --git a/radio/aidl/compat/libradiocompat/network/RadioNetwork.cpp b/radio/aidl/compat/libradiocompat/network/RadioNetwork.cpp index 8bfa0bbbb2..156fdd28ea 100644 --- a/radio/aidl/compat/libradiocompat/network/RadioNetwork.cpp +++ b/radio/aidl/compat/libradiocompat/network/RadioNetwork.cpp @@ -255,7 +255,13 @@ ScopedAStatus RadioNetwork::setResponseFunctions( ScopedAStatus RadioNetwork::setSignalStrengthReportingCriteria( int32_t serial, const std::vector& infos) { LOG_CALL << serial; - // TODO(b/203699028): how about other infos? + if (infos.size() == 0) { + LOG(ERROR) << "Threshold info array is empty - dropping setSignalStrengthReportingCriteria"; + return ok(); + } + if (infos.size() > 1) { + LOG(WARNING) << "Multi-element reporting criteria are not supported with HIDL HAL"; + } mHal1_5->setSignalStrengthReportingCriteria_1_5(serial, toHidl(infos[0]), V1_5::AccessNetwork(infos[0].ran)); return ok(); @@ -292,18 +298,17 @@ ScopedAStatus RadioNetwork::supplyNetworkDepersonalization(int32_t ser, const st return ok(); } -// TODO(b/210498497): is there a cleaner way to send a response back to Android, even though these -// methods must never be called? -ScopedAStatus RadioNetwork::setUsageSetting( - int32_t ser, ::aidl::android::hardware::radio::network::UsageSetting) { - LOG_CALL << ser; +ScopedAStatus RadioNetwork::setUsageSetting(int32_t serial, aidl::UsageSetting) { + LOG_CALL << serial; LOG(ERROR) << "setUsageSetting is unsupported by HIDL HALs"; + respond()->setUsageSettingResponse(notSupported(serial)); return ok(); } -ScopedAStatus RadioNetwork::getUsageSetting(int32_t ser) { - LOG_CALL << ser; +ScopedAStatus RadioNetwork::getUsageSetting(int32_t serial) { + LOG_CALL << serial; LOG(ERROR) << "getUsageSetting is unsupported by HIDL HALs"; + respond()->getUsageSettingResponse(notSupported(serial), {}); // {} = neither voice nor data return ok(); }