Use AIDL callbacks directly.

Bug: 210498497
Test: build cuttlefish with ag/16322062, watch logs
Change-Id: I1e0cd95f5f9a911564d14be2d8bbb328572de8c8
Merged-In: I1e0cd95f5f9a911564d14be2d8bbb328572de8c8
This commit is contained in:
Tomasz Wasilczyk
2021-12-13 17:13:48 -08:00
parent 69e8cc44f4
commit 60638572b2
40 changed files with 528 additions and 591 deletions

View File

@@ -28,7 +28,6 @@ cc_library {
cflags: [
"-Wall",
"-Wextra",
//"-Wold-style-cast", // TODO(b/203699028) enable after aosp/1900880 gets merged
"-DANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION",
],
shared_libs: [

View File

@@ -28,9 +28,4 @@ RadioCompatBase::RadioCompatBase(std::shared_ptr<DriverContext> context, sp<V1_5
mRadioResponse(radioResponse),
mRadioIndication(radioInd) {}
V1_6::IRadioResponse& RadioCompatBase::respond() {
CHECK(mRadioResponse) << "This shouldn't happen (response functions are passed in constructor)";
return *mRadioResponse;
}
} // namespace android::hardware::radio::compat

View File

@@ -27,12 +27,12 @@ RadioResponse::RadioResponse(std::shared_ptr<DriverContext> context) : mContext(
Return<void> RadioResponse::acknowledgeRequest(int32_t serial) {
LOG_CALL << serial;
// TODO(b/203699028): send to correct requestor or confirm if spam is not a problem
if (mDataCb) mDataCb->acknowledgeRequest(serial);
if (mMessagingCb) mMessagingCb->acknowledgeRequest(serial);
if (mModemCb) mModemCb->acknowledgeRequest(serial);
if (mNetworkCb) mNetworkCb->acknowledgeRequest(serial);
if (mSimCb) mSimCb->acknowledgeRequest(serial);
if (mVoiceCb) mVoiceCb->acknowledgeRequest(serial);
if (mDataCb) mDataCb.get()->acknowledgeRequest(serial);
if (mMessagingCb) mMessagingCb.get()->acknowledgeRequest(serial);
if (mModemCb) mModemCb.get()->acknowledgeRequest(serial);
if (mNetworkCb) mNetworkCb.get()->acknowledgeRequest(serial);
if (mSimCb) mSimCb.get()->acknowledgeRequest(serial);
if (mVoiceCb) mVoiceCb.get()->acknowledgeRequest(serial);
return {};
}

View File

@@ -20,11 +20,11 @@ namespace android::hardware::radio::compat {
namespace aidl = ::aidl::android::hardware::radio;
V1_6::RadioResponseInfo notSupported(int32_t serial) {
aidl::RadioResponseInfo notSupported(int32_t serial) {
return {
.type = V1_0::RadioResponseType::SOLICITED,
.type = aidl::RadioResponseType::SOLICITED,
.serial = serial,
.error = V1_6::RadioError::REQUEST_NOT_SUPPORTED,
.error = aidl::RadioError::REQUEST_NOT_SUPPORTED,
};
}

View File

@@ -21,7 +21,7 @@
namespace android::hardware::radio::compat {
V1_6::RadioResponseInfo notSupported(int32_t serial);
aidl::android::hardware::radio::RadioResponseInfo notSupported(int32_t serial);
std::string toAidl(const hidl_string& str);
hidl_string toHidl(const std::string& str);

View File

@@ -16,8 +16,6 @@
#include <libradiocompat/RadioConfig.h>
#include "RadioConfigIndication.h"
#include "RadioConfigResponse.h"
#include "commonStructs.h"
#include "debug.h"
#include "structs.h"
@@ -31,11 +29,13 @@ namespace aidl = ::aidl::android::hardware::radio::config;
constexpr auto ok = &ScopedAStatus::ok;
RadioConfig::RadioConfig(sp<config::V1_1::IRadioConfig> hidlHal)
: mHal1_1(hidlHal), mHal1_3(config::V1_3::IRadioConfig::castFrom(hidlHal)) {}
: mHal1_1(hidlHal),
mHal1_3(config::V1_3::IRadioConfig::castFrom(hidlHal)),
mRadioConfigResponse(sp<RadioConfigResponse>::make()),
mRadioConfigIndication(sp<RadioConfigIndication>::make()) {}
config::V1_3::IRadioConfigResponse& RadioConfig::respond() {
CHECK(mRadioConfigResponse) << "setResponseFunctions was not called yet";
return *mRadioConfigResponse;
std::shared_ptr<aidl::IRadioConfigResponse> RadioConfig::respond() {
return mRadioConfigResponse->respond();
}
ScopedAStatus RadioConfig::getHalDeviceCapabilities(int32_t serial) {
@@ -43,7 +43,7 @@ ScopedAStatus RadioConfig::getHalDeviceCapabilities(int32_t serial) {
if (mHal1_3) {
mHal1_3->getHalDeviceCapabilities(serial);
} else {
respond().getHalDeviceCapabilitiesResponse(notSupported(serial), false);
respond()->getHalDeviceCapabilitiesResponse(notSupported(serial), false);
}
return ok();
}
@@ -86,8 +86,8 @@ ScopedAStatus RadioConfig::setResponseFunctions(
CHECK(radioConfigResponse);
CHECK(radioConfigIndication);
mRadioConfigResponse = sp<RadioConfigResponse>::make(radioConfigResponse);
mRadioConfigIndication = sp<RadioConfigIndication>::make(radioConfigIndication);
mRadioConfigResponse->setResponseFunction(radioConfigResponse);
mRadioConfigIndication->setResponseFunction(radioConfigIndication);
mHal1_1->setResponseFunctions(mRadioConfigResponse, mRadioConfigIndication);
return ok();

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
#include "RadioConfigIndication.h"
#include <libradiocompat/RadioConfigIndication.h>
#include "commonStructs.h"
#include "debug.h"
@@ -28,20 +28,26 @@ namespace android::hardware::radio::compat {
namespace aidl = ::aidl::android::hardware::radio::config;
RadioConfigIndication::RadioConfigIndication(std::shared_ptr<aidl::IRadioConfigIndication> callback)
: mCallback(callback) {}
void RadioConfigIndication::setResponseFunction(
std::shared_ptr<aidl::IRadioConfigIndication> callback) {
mCallback = callback;
}
std::shared_ptr<aidl::IRadioConfigIndication> RadioConfigIndication::indicate() {
return mCallback.get();
}
Return<void> RadioConfigIndication::simSlotsStatusChanged(
V1_0::RadioIndicationType type, const hidl_vec<config::V1_0::SimSlotStatus>& slotStatus) {
LOG_CALL << type;
mCallback->simSlotsStatusChanged(toAidl(type), toAidl(slotStatus));
indicate()->simSlotsStatusChanged(toAidl(type), toAidl(slotStatus));
return {};
}
Return<void> RadioConfigIndication::simSlotsStatusChanged_1_2(
V1_0::RadioIndicationType type, const hidl_vec<config::V1_2::SimSlotStatus>& slotStatus) {
LOG_CALL << type;
mCallback->simSlotsStatusChanged(toAidl(type), toAidl(slotStatus));
indicate()->simSlotsStatusChanged(toAidl(type), toAidl(slotStatus));
return {};
}

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
#include "RadioConfigResponse.h"
#include <libradiocompat/RadioConfigResponse.h>
#include "commonStructs.h"
#include "debug.h"
@@ -28,14 +28,20 @@ namespace android::hardware::radio::compat {
namespace aidl = ::aidl::android::hardware::radio::config;
RadioConfigResponse::RadioConfigResponse(std::shared_ptr<aidl::IRadioConfigResponse> callback)
: mCallback(callback) {}
void RadioConfigResponse::setResponseFunction(
std::shared_ptr<aidl::IRadioConfigResponse> callback) {
mCallback = callback;
}
std::shared_ptr<aidl::IRadioConfigResponse> RadioConfigResponse::respond() {
return mCallback.get();
}
Return<void> RadioConfigResponse::getSimSlotsStatusResponse(
const V1_0::RadioResponseInfo& info,
const hidl_vec<config::V1_0::SimSlotStatus>& slotStatus) {
LOG_CALL << info.serial;
mCallback->getSimSlotsStatusResponse(toAidl(info), toAidl(slotStatus));
respond()->getSimSlotsStatusResponse(toAidl(info), toAidl(slotStatus));
return {};
};
@@ -43,47 +49,47 @@ Return<void> RadioConfigResponse::getSimSlotsStatusResponse_1_2(
const V1_0::RadioResponseInfo& info,
const hidl_vec<config::V1_2::SimSlotStatus>& slotStatus) {
LOG_CALL << info.serial;
mCallback->getSimSlotsStatusResponse(toAidl(info), toAidl(slotStatus));
respond()->getSimSlotsStatusResponse(toAidl(info), toAidl(slotStatus));
return {};
};
Return<void> RadioConfigResponse::setSimSlotsMappingResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
mCallback->setSimSlotsMappingResponse(toAidl(info));
respond()->setSimSlotsMappingResponse(toAidl(info));
return {};
};
Return<void> RadioConfigResponse::getPhoneCapabilityResponse(
const V1_0::RadioResponseInfo& info, const config::V1_1::PhoneCapability& phoneCapability) {
LOG_CALL << info.serial;
mCallback->getPhoneCapabilityResponse(toAidl(info), toAidl(phoneCapability));
respond()->getPhoneCapabilityResponse(toAidl(info), toAidl(phoneCapability));
return {};
};
Return<void> RadioConfigResponse::setPreferredDataModemResponse(
const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
mCallback->setPreferredDataModemResponse(toAidl(info));
respond()->setPreferredDataModemResponse(toAidl(info));
return {};
};
Return<void> RadioConfigResponse::setModemsConfigResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
mCallback->setNumOfLiveModemsResponse(toAidl(info));
respond()->setNumOfLiveModemsResponse(toAidl(info));
return {};
};
Return<void> RadioConfigResponse::getModemsConfigResponse(
const V1_0::RadioResponseInfo& info, const config::V1_1::ModemsConfig& modemsConfig) {
LOG_CALL << info.serial;
mCallback->getNumOfLiveModemsResponse(toAidl(info), modemsConfig.numOfLiveModems);
respond()->getNumOfLiveModemsResponse(toAidl(info), modemsConfig.numOfLiveModems);
return {};
};
Return<void> RadioConfigResponse::getHalDeviceCapabilitiesResponse(
const V1_6::RadioResponseInfo& info, bool modemReducedFeatureSet1) {
LOG_CALL << info.serial;
mCallback->getHalDeviceCapabilitiesResponse(toAidl(info), modemReducedFeatureSet1);
respond()->getHalDeviceCapabilitiesResponse(toAidl(info), modemReducedFeatureSet1);
return {};
};

View File

@@ -31,12 +31,16 @@ namespace aidl = ::aidl::android::hardware::radio::data;
namespace aidlCommon = ::aidl::android::hardware::radio;
constexpr auto ok = &ScopedAStatus::ok;
std::shared_ptr<aidl::IRadioDataResponse> RadioData::respond() {
return mRadioResponse->dataCb();
}
ScopedAStatus RadioData::allocatePduSessionId(int32_t serial) {
LOG_CALL << serial;
if (mHal1_6) {
mHal1_6->allocatePduSessionId(serial);
} else {
respond().allocatePduSessionIdResponse(notSupported(serial), 0);
respond()->allocatePduSessionIdResponse(notSupported(serial), 0);
}
return ok();
}
@@ -46,7 +50,7 @@ ScopedAStatus RadioData::cancelHandover(int32_t serial, int32_t callId) {
if (mHal1_6) {
mHal1_6->cancelHandover(serial, callId);
} else {
respond().cancelHandoverResponse(notSupported(serial));
respond()->cancelHandoverResponse(notSupported(serial));
}
return ok();
}
@@ -69,7 +73,7 @@ ScopedAStatus RadioData::getSlicingConfig(int32_t serial) {
if (mHal1_6) {
mHal1_6->getSlicingConfig(serial);
} else {
respond().getSlicingConfigResponse(notSupported(serial), {});
respond()->getSlicingConfigResponse(notSupported(serial), {});
}
return ok();
}
@@ -79,7 +83,7 @@ ScopedAStatus RadioData::releasePduSessionId(int32_t serial, int32_t id) {
if (mHal1_6) {
mHal1_6->releasePduSessionId(serial, id);
} else {
respond().releasePduSessionIdResponse(notSupported(serial));
respond()->releasePduSessionIdResponse(notSupported(serial));
}
return ok();
}
@@ -109,7 +113,7 @@ ScopedAStatus RadioData::setDataThrottling(int32_t serial, aidl::DataThrottlingA
if (mHal1_6) {
mHal1_6->setDataThrottling(serial, V1_6::DataThrottlingAction(dta), completionDurationMs);
} else {
respond().setDataThrottlingResponse(notSupported(serial));
respond()->setDataThrottlingResponse(notSupported(serial));
}
return ok();
}
@@ -161,7 +165,7 @@ ScopedAStatus RadioData::startHandover(int32_t serial, int32_t callId) {
if (mHal1_6) {
mHal1_6->startHandover(serial, callId);
} else {
respond().startHandoverResponse(notSupported(serial));
respond()->startHandoverResponse(notSupported(serial));
}
return ok();
}

View File

@@ -29,10 +29,13 @@ namespace android::hardware::radio::compat {
namespace aidl = ::aidl::android::hardware::radio::data;
void RadioIndication::setResponseFunction(std::shared_ptr<aidl::IRadioDataIndication> dataCb) {
CHECK(dataCb);
mDataCb = dataCb;
}
std::shared_ptr<aidl::IRadioDataIndication> RadioIndication::dataCb() {
return mDataCb.get();
}
Return<void> RadioIndication::dataCallListChanged(V1_0::RadioIndicationType type,
const hidl_vec<V1_0::SetupDataCallResult>&) {
LOG_CALL << type;
@@ -50,40 +53,35 @@ Return<void> RadioIndication::dataCallListChanged_1_4(V1_0::RadioIndicationType
Return<void> RadioIndication::dataCallListChanged_1_5(
V1_0::RadioIndicationType type, const hidl_vec<V1_5::SetupDataCallResult>& dcList) {
LOG_CALL << type;
CHECK_CB(mDataCb);
mDataCb->dataCallListChanged(toAidl(type), toAidl(dcList));
dataCb()->dataCallListChanged(toAidl(type), toAidl(dcList));
return {};
}
Return<void> RadioIndication::dataCallListChanged_1_6(
V1_0::RadioIndicationType type, const hidl_vec<V1_6::SetupDataCallResult>& dcList) {
LOG_CALL << type;
CHECK_CB(mDataCb);
mDataCb->dataCallListChanged(toAidl(type), toAidl(dcList));
dataCb()->dataCallListChanged(toAidl(type), toAidl(dcList));
return {};
}
Return<void> RadioIndication::keepaliveStatus(V1_0::RadioIndicationType type,
const V1_1::KeepaliveStatus& status) {
LOG_CALL << type;
CHECK_CB(mDataCb);
mDataCb->keepaliveStatus(toAidl(type), toAidl(status));
dataCb()->keepaliveStatus(toAidl(type), toAidl(status));
return {};
}
Return<void> RadioIndication::pcoData(V1_0::RadioIndicationType type,
const V1_0::PcoDataInfo& pco) {
LOG_CALL << type;
CHECK_CB(mDataCb);
mDataCb->pcoData(toAidl(type), toAidl(pco));
dataCb()->pcoData(toAidl(type), toAidl(pco));
return {};
}
Return<void> RadioIndication::unthrottleApn(V1_0::RadioIndicationType type,
const hidl_string& apn) {
LOG_CALL << type;
CHECK_CB(mDataCb);
mDataCb->unthrottleApn(toAidl(type), mContext->getDataProfile(apn));
dataCb()->unthrottleApn(toAidl(type), mContext->getDataProfile(apn));
return {};
}

View File

@@ -29,29 +29,29 @@ namespace android::hardware::radio::compat {
namespace aidl = ::aidl::android::hardware::radio::data;
void RadioResponse::setResponseFunction(std::shared_ptr<aidl::IRadioDataResponse> dataCb) {
CHECK(dataCb);
mDataCb = dataCb;
}
std::shared_ptr<aidl::IRadioDataResponse> RadioResponse::dataCb() {
return mDataCb.get();
}
Return<void> RadioResponse::allocatePduSessionIdResponse(const V1_6::RadioResponseInfo& info,
int32_t id) {
LOG_CALL << info.serial;
CHECK_CB(mDataCb);
mDataCb->allocatePduSessionIdResponse(toAidl(info), id);
dataCb()->allocatePduSessionIdResponse(toAidl(info), id);
return {};
}
Return<void> RadioResponse::cancelHandoverResponse(const V1_6::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mDataCb);
mDataCb->cancelHandoverResponse(toAidl(info));
dataCb()->cancelHandoverResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::deactivateDataCallResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mDataCb);
mDataCb->deactivateDataCallResponse(toAidl(info));
dataCb()->deactivateDataCallResponse(toAidl(info));
return {};
}
@@ -73,8 +73,7 @@ Return<void> RadioResponse::getDataCallListResponse_1_5(
const V1_0::RadioResponseInfo& info,
const hidl_vec<V1_5::SetupDataCallResult>& dcResponse) {
LOG_CALL << info.serial;
CHECK_CB(mDataCb);
mDataCb->getDataCallListResponse(toAidl(info), toAidl(dcResponse));
dataCb()->getDataCallListResponse(toAidl(info), toAidl(dcResponse));
return {};
}
@@ -82,65 +81,56 @@ Return<void> RadioResponse::getDataCallListResponse_1_6(
const V1_6::RadioResponseInfo& info,
const hidl_vec<V1_6::SetupDataCallResult>& dcResponse) {
LOG_CALL << info.serial;
CHECK_CB(mDataCb);
mDataCb->getDataCallListResponse(toAidl(info), toAidl(dcResponse));
dataCb()->getDataCallListResponse(toAidl(info), toAidl(dcResponse));
return {};
}
Return<void> RadioResponse::getSlicingConfigResponse(const V1_6::RadioResponseInfo& info,
const V1_6::SlicingConfig& slicingConfig) {
LOG_CALL << info.serial;
CHECK_CB(mDataCb);
mDataCb->getSlicingConfigResponse(toAidl(info), toAidl(slicingConfig));
dataCb()->getSlicingConfigResponse(toAidl(info), toAidl(slicingConfig));
return {};
}
Return<void> RadioResponse::releasePduSessionIdResponse(const V1_6::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mDataCb);
mDataCb->releasePduSessionIdResponse(toAidl(info));
dataCb()->releasePduSessionIdResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setDataAllowedResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mDataCb);
mDataCb->setDataAllowedResponse(toAidl(info));
dataCb()->setDataAllowedResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setDataProfileResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mDataCb);
mDataCb->setDataProfileResponse(toAidl(info));
dataCb()->setDataProfileResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setDataProfileResponse_1_5(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mDataCb);
mDataCb->setDataProfileResponse(toAidl(info));
dataCb()->setDataProfileResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setDataThrottlingResponse(const V1_6::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mDataCb);
mDataCb->setDataThrottlingResponse(toAidl(info));
dataCb()->setDataThrottlingResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setInitialAttachApnResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mDataCb);
mDataCb->setInitialAttachApnResponse(toAidl(info));
dataCb()->setInitialAttachApnResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setInitialAttachApnResponse_1_5(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mDataCb);
mDataCb->setInitialAttachApnResponse(toAidl(info));
dataCb()->setInitialAttachApnResponse(toAidl(info));
return {};
}
@@ -161,38 +151,33 @@ Return<void> RadioResponse::setupDataCallResponse_1_4(const V1_0::RadioResponseI
Return<void> RadioResponse::setupDataCallResponse_1_5(const V1_0::RadioResponseInfo& info,
const V1_5::SetupDataCallResult& dcResponse) {
LOG_CALL << info.serial;
CHECK_CB(mDataCb);
mDataCb->setupDataCallResponse(toAidl(info), toAidl(dcResponse));
dataCb()->setupDataCallResponse(toAidl(info), toAidl(dcResponse));
return {};
}
Return<void> RadioResponse::setupDataCallResponse_1_6(const V1_6::RadioResponseInfo& info,
const V1_6::SetupDataCallResult& dcResponse) {
LOG_CALL << info.serial;
CHECK_CB(mDataCb);
mDataCb->setupDataCallResponse(toAidl(info), toAidl(dcResponse));
dataCb()->setupDataCallResponse(toAidl(info), toAidl(dcResponse));
return {};
}
Return<void> RadioResponse::startHandoverResponse(const V1_6::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mDataCb);
mDataCb->startHandoverResponse(toAidl(info));
dataCb()->startHandoverResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::startKeepaliveResponse(const V1_0::RadioResponseInfo& info,
const V1_1::KeepaliveStatus& status) {
LOG_CALL << info.serial;
CHECK_CB(mDataCb);
mDataCb->startKeepaliveResponse(toAidl(info), toAidl(status));
dataCb()->startKeepaliveResponse(toAidl(info), toAidl(status));
return {};
}
Return<void> RadioResponse::stopKeepaliveResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mDataCb);
mDataCb->stopKeepaliveResponse(toAidl(info));
dataCb()->stopKeepaliveResponse(toAidl(info));
return {};
}

View File

@@ -26,12 +26,6 @@ static constexpr bool kSuperVerbose = true;
#define LOG_CALL \
if constexpr (debug::kSuperVerbose) LOG(VERBOSE) << (RADIO_MODULE ".") << __func__ << ' '
#define CHECK_CB(field) \
if (!field) { \
LOG(WARNING) << "Callback not set"; \
return {}; \
}
} // namespace debug
inline std::ostream& operator<<(std::ostream& os, const V1_0::RadioIndicationType& type) {

View File

@@ -0,0 +1,50 @@
/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <android-base/logging.h>
#include <android/binder_interface_utils.h>
#include <utils/Mutex.h>
namespace android::hardware::radio::compat {
template <typename Interface, typename DefaultImplementation, bool isIndication = false>
class GuaranteedCallback {
mutable std::mutex mCallbackGuard;
std::shared_ptr<Interface> mCallback GUARDED_BY(mCallbackGuard);
public:
GuaranteedCallback<Interface, DefaultImplementation, isIndication>& operator=(
const std::shared_ptr<Interface>& callback) {
CHECK(callback);
const std::lock_guard<std::mutex> lock(mCallbackGuard);
mCallback = callback;
return *this;
}
std::shared_ptr<Interface> get() {
if (mCallback) return mCallback;
const std::lock_guard<std::mutex> lock(mCallbackGuard);
if (mCallback) return mCallback;
LOG(isIndication ? WARNING : ERROR) << "Callback is not set";
return mCallback = ndk::SharedRefBase::make<DefaultImplementation>();
}
operator bool() const { return mCallback != nullptr; }
};
} // namespace android::hardware::radio::compat

View File

@@ -33,8 +33,6 @@ class RadioCompatBase {
sp<RadioResponse> mRadioResponse;
sp<RadioIndication> mRadioIndication;
V1_6::IRadioResponse& respond();
public:
RadioCompatBase(std::shared_ptr<DriverContext> context, sp<V1_5::IRadio> hidlHal,
sp<RadioResponse> radioResponse, sp<RadioIndication> radioIndication);

View File

@@ -15,6 +15,9 @@
*/
#pragma once
#include "RadioConfigIndication.h"
#include "RadioConfigResponse.h"
#include <aidl/android/hardware/radio/config/BnRadioConfig.h>
#include <android/hardware/radio/config/1.2/IRadioConfigIndication.h>
#include <android/hardware/radio/config/1.3/IRadioConfig.h>
@@ -30,11 +33,13 @@ namespace android::hardware::radio::compat {
* fetch source implementation and publish resulting HAL instance.
*/
class RadioConfig : public aidl::android::hardware::radio::config::BnRadioConfig {
sp<config::V1_1::IRadioConfig> mHal1_1;
sp<config::V1_3::IRadioConfig> mHal1_3;
const sp<config::V1_1::IRadioConfig> mHal1_1;
const sp<config::V1_3::IRadioConfig> mHal1_3;
sp<config::V1_3::IRadioConfigResponse> mRadioConfigResponse;
sp<config::V1_2::IRadioConfigIndication> mRadioConfigIndication;
const sp<RadioConfigResponse> mRadioConfigResponse;
const sp<RadioConfigIndication> mRadioConfigIndication;
std::shared_ptr<::aidl::android::hardware::radio::config::IRadioConfigResponse> respond();
::ndk::ScopedAStatus getHalDeviceCapabilities(int32_t serial) override;
::ndk::ScopedAStatus getNumOfLiveModems(int32_t serial) override;
@@ -52,8 +57,6 @@ class RadioConfig : public aidl::android::hardware::radio::config::BnRadioConfig
const std::vector<aidl::android::hardware::radio::config::SlotPortMapping>& slotMap)
override;
config::V1_3::IRadioConfigResponse& respond();
public:
/**
* Constructs AIDL IRadioConfig instance wrapping existing HIDL IRadioConfig instance.

View File

@@ -15,13 +15,17 @@
*/
#pragma once
#include "GuaranteedCallback.h"
#include <aidl/android/hardware/radio/config/IRadioConfigIndication.h>
#include <android/hardware/radio/config/1.2/IRadioConfigIndication.h>
namespace android::hardware::radio::compat {
class RadioConfigIndication : public config::V1_2::IRadioConfigIndication {
std::shared_ptr<aidl::android::hardware::radio::config::IRadioConfigIndication> mCallback;
GuaranteedCallback<aidl::android::hardware::radio::config::IRadioConfigIndication,
aidl::android::hardware::radio::config::IRadioConfigIndicationDefault, true>
mCallback;
Return<void> simSlotsStatusChanged(
V1_0::RadioIndicationType type,
@@ -31,8 +35,10 @@ class RadioConfigIndication : public config::V1_2::IRadioConfigIndication {
const hidl_vec<config::V1_2::SimSlotStatus>& slotStatus) override;
public:
RadioConfigIndication(
void setResponseFunction(
std::shared_ptr<aidl::android::hardware::radio::config::IRadioConfigIndication> cb);
std::shared_ptr<aidl::android::hardware::radio::config::IRadioConfigIndication> indicate();
};
} // namespace android::hardware::radio::compat

View File

@@ -15,13 +15,17 @@
*/
#pragma once
#include "GuaranteedCallback.h"
#include <aidl/android/hardware/radio/config/IRadioConfigResponse.h>
#include <android/hardware/radio/config/1.3/IRadioConfigResponse.h>
namespace android::hardware::radio::compat {
class RadioConfigResponse : public config::V1_3::IRadioConfigResponse {
std::shared_ptr<aidl::android::hardware::radio::config::IRadioConfigResponse> mCallback;
GuaranteedCallback<aidl::android::hardware::radio::config::IRadioConfigResponse,
aidl::android::hardware::radio::config::IRadioConfigResponseDefault>
mCallback;
Return<void> getSimSlotsStatusResponse(
const V1_0::RadioResponseInfo& info,
@@ -41,8 +45,10 @@ class RadioConfigResponse : public config::V1_3::IRadioConfigResponse {
bool modemReducedFeatureSet1) override;
public:
RadioConfigResponse(
void setResponseFunction(
std::shared_ptr<aidl::android::hardware::radio::config::IRadioConfigResponse> callback);
std::shared_ptr<aidl::android::hardware::radio::config::IRadioConfigResponse> respond();
};
} // namespace android::hardware::radio::compat

View File

@@ -22,6 +22,8 @@
namespace android::hardware::radio::compat {
class RadioData : public RadioCompatBase, public aidl::android::hardware::radio::data::BnRadioData {
std::shared_ptr<::aidl::android::hardware::radio::data::IRadioDataResponse> respond();
::ndk::ScopedAStatus allocatePduSessionId(int32_t serial) override;
::ndk::ScopedAStatus cancelHandover(int32_t serial, int32_t callId) override;
::ndk::ScopedAStatus deactivateDataCall(

View File

@@ -16,6 +16,7 @@
#pragma once
#include "DriverContext.h"
#include "GuaranteedCallback.h"
#include <aidl/android/hardware/radio/data/IRadioDataIndication.h>
#include <aidl/android/hardware/radio/messaging/IRadioMessagingIndication.h>
@@ -30,13 +31,30 @@ namespace android::hardware::radio::compat {
class RadioIndication : public V1_6::IRadioIndication {
std::shared_ptr<DriverContext> mContext;
std::shared_ptr<::aidl::android::hardware::radio::data::IRadioDataIndication> mDataCb;
std::shared_ptr<::aidl::android::hardware::radio::messaging::IRadioMessagingIndication>
GuaranteedCallback< //
::aidl::android::hardware::radio::data::IRadioDataIndication,
::aidl::android::hardware::radio::data::IRadioDataIndicationDefault, true>
mDataCb;
GuaranteedCallback< //
::aidl::android::hardware::radio::messaging::IRadioMessagingIndication,
::aidl::android::hardware::radio::messaging::IRadioMessagingIndicationDefault, true>
mMessagingCb;
std::shared_ptr<::aidl::android::hardware::radio::modem::IRadioModemIndication> mModemCb;
std::shared_ptr<::aidl::android::hardware::radio::network::IRadioNetworkIndication> mNetworkCb;
std::shared_ptr<::aidl::android::hardware::radio::sim::IRadioSimIndication> mSimCb;
std::shared_ptr<::aidl::android::hardware::radio::voice::IRadioVoiceIndication> mVoiceCb;
GuaranteedCallback< //
::aidl::android::hardware::radio::modem::IRadioModemIndication,
::aidl::android::hardware::radio::modem::IRadioModemIndicationDefault, true>
mModemCb;
GuaranteedCallback< //
::aidl::android::hardware::radio::network::IRadioNetworkIndication,
::aidl::android::hardware::radio::network::IRadioNetworkIndicationDefault, true>
mNetworkCb;
GuaranteedCallback< //
::aidl::android::hardware::radio::sim::IRadioSimIndication,
::aidl::android::hardware::radio::sim::IRadioSimIndicationDefault, true>
mSimCb;
GuaranteedCallback< //
::aidl::android::hardware::radio::voice::IRadioVoiceIndication,
::aidl::android::hardware::radio::voice::IRadioVoiceIndicationDefault, true>
mVoiceCb;
// IRadioIndication @ 1.0
Return<void> radioStateChanged(V1_0::RadioIndicationType type,
@@ -200,6 +218,14 @@ class RadioIndication : public V1_6::IRadioIndication {
std::shared_ptr<::aidl::android::hardware::radio::sim::IRadioSimIndication> simCb);
void setResponseFunction(
std::shared_ptr<::aidl::android::hardware::radio::voice::IRadioVoiceIndication> voicCb);
std::shared_ptr<::aidl::android::hardware::radio::data::IRadioDataIndication> dataCb();
std::shared_ptr<::aidl::android::hardware::radio::messaging::IRadioMessagingIndication>
messagingCb();
std::shared_ptr<::aidl::android::hardware::radio::modem::IRadioModemIndication> modemCb();
std::shared_ptr<::aidl::android::hardware::radio::network::IRadioNetworkIndication> networkCb();
std::shared_ptr<::aidl::android::hardware::radio::sim::IRadioSimIndication> simCb();
std::shared_ptr<::aidl::android::hardware::radio::voice::IRadioVoiceIndication> voiceCb();
};
} // namespace android::hardware::radio::compat

View File

@@ -23,6 +23,8 @@ namespace android::hardware::radio::compat {
class RadioMessaging : public RadioCompatBase,
public aidl::android::hardware::radio::messaging::BnRadioMessaging {
std::shared_ptr<::aidl::android::hardware::radio::messaging::IRadioMessagingResponse> respond();
::ndk::ScopedAStatus acknowledgeIncomingGsmSmsWithPdu(int32_t serial, bool success,
const std::string& ackPdu) override;
::ndk::ScopedAStatus acknowledgeLastIncomingCdmaSms(

View File

@@ -23,6 +23,8 @@ namespace android::hardware::radio::compat {
class RadioModem : public RadioCompatBase,
public aidl::android::hardware::radio::modem::BnRadioModem {
std::shared_ptr<::aidl::android::hardware::radio::modem::IRadioModemResponse> respond();
::ndk::ScopedAStatus enableModem(int32_t serial, bool on) override;
::ndk::ScopedAStatus getBasebandVersion(int32_t serial) override;
::ndk::ScopedAStatus getDeviceIdentity(int32_t serial) override;

View File

@@ -23,6 +23,8 @@ namespace android::hardware::radio::compat {
class RadioNetwork : public RadioCompatBase,
public aidl::android::hardware::radio::network::BnRadioNetwork {
std::shared_ptr<::aidl::android::hardware::radio::network::IRadioNetworkResponse> respond();
::ndk::ScopedAStatus getAllowedNetworkTypesBitmap(int32_t serial) override;
::ndk::ScopedAStatus getAvailableBandModes(int32_t serial) override;
::ndk::ScopedAStatus getAvailableNetworks(int32_t serial) override;

View File

@@ -16,6 +16,7 @@
#pragma once
#include "DriverContext.h"
#include "GuaranteedCallback.h"
#include <aidl/android/hardware/radio/data/IRadioDataResponse.h>
#include <aidl/android/hardware/radio/messaging/IRadioMessagingResponse.h>
@@ -30,13 +31,24 @@ namespace android::hardware::radio::compat {
class RadioResponse : public V1_6::IRadioResponse {
std::shared_ptr<DriverContext> mContext;
std::shared_ptr<::aidl::android::hardware::radio::data::IRadioDataResponse> mDataCb;
std::shared_ptr<::aidl::android::hardware::radio::messaging::IRadioMessagingResponse>
GuaranteedCallback<::aidl::android::hardware::radio::data::IRadioDataResponse,
::aidl::android::hardware::radio::data::IRadioDataResponseDefault>
mDataCb;
GuaranteedCallback<::aidl::android::hardware::radio::messaging::IRadioMessagingResponse,
::aidl::android::hardware::radio::messaging::IRadioMessagingResponseDefault>
mMessagingCb;
std::shared_ptr<::aidl::android::hardware::radio::modem::IRadioModemResponse> mModemCb;
std::shared_ptr<::aidl::android::hardware::radio::network::IRadioNetworkResponse> mNetworkCb;
std::shared_ptr<::aidl::android::hardware::radio::sim::IRadioSimResponse> mSimCb;
std::shared_ptr<::aidl::android::hardware::radio::voice::IRadioVoiceResponse> mVoiceCb;
GuaranteedCallback<::aidl::android::hardware::radio::modem::IRadioModemResponse,
::aidl::android::hardware::radio::modem::IRadioModemResponseDefault>
mModemCb;
GuaranteedCallback<::aidl::android::hardware::radio::network::IRadioNetworkResponse,
::aidl::android::hardware::radio::network::IRadioNetworkResponseDefault>
mNetworkCb;
GuaranteedCallback<::aidl::android::hardware::radio::sim::IRadioSimResponse,
::aidl::android::hardware::radio::sim::IRadioSimResponseDefault>
mSimCb;
GuaranteedCallback<::aidl::android::hardware::radio::voice::IRadioVoiceResponse,
::aidl::android::hardware::radio::voice::IRadioVoiceResponseDefault>
mVoiceCb;
// IRadioResponse @ 1.0
Return<void> getIccCardStatusResponse(const V1_0::RadioResponseInfo& info,
@@ -428,6 +440,14 @@ class RadioResponse : public V1_6::IRadioResponse {
std::shared_ptr<::aidl::android::hardware::radio::sim::IRadioSimResponse> simCb);
void setResponseFunction(
std::shared_ptr<::aidl::android::hardware::radio::voice::IRadioVoiceResponse> voiceCb);
std::shared_ptr<::aidl::android::hardware::radio::data::IRadioDataResponse> dataCb();
std::shared_ptr<::aidl::android::hardware::radio::messaging::IRadioMessagingResponse>
messagingCb();
std::shared_ptr<::aidl::android::hardware::radio::modem::IRadioModemResponse> modemCb();
std::shared_ptr<::aidl::android::hardware::radio::network::IRadioNetworkResponse> networkCb();
std::shared_ptr<::aidl::android::hardware::radio::sim::IRadioSimResponse> simCb();
std::shared_ptr<::aidl::android::hardware::radio::voice::IRadioVoiceResponse> voiceCb();
};
} // namespace android::hardware::radio::compat

View File

@@ -22,6 +22,8 @@
namespace android::hardware::radio::compat {
class RadioSim : public RadioCompatBase, public aidl::android::hardware::radio::sim::BnRadioSim {
std::shared_ptr<::aidl::android::hardware::radio::sim::IRadioSimResponse> respond();
::ndk::ScopedAStatus areUiccApplicationsEnabled(int32_t serial) override;
::ndk::ScopedAStatus changeIccPin2ForApp(int32_t serial, const std::string& oldPin2,
const std::string& newPin2,

View File

@@ -23,6 +23,8 @@ namespace android::hardware::radio::compat {
class RadioVoice : public RadioCompatBase,
public aidl::android::hardware::radio::voice::BnRadioVoice {
std::shared_ptr<::aidl::android::hardware::radio::voice::IRadioVoiceResponse> respond();
::ndk::ScopedAStatus acceptCall(int32_t serial) override;
::ndk::ScopedAStatus conference(int32_t serial) override;
::ndk::ScopedAStatus dial(

View File

@@ -27,67 +27,62 @@ namespace android::hardware::radio::compat {
namespace aidl = ::aidl::android::hardware::radio::messaging;
void RadioIndication::setResponseFunction(std::shared_ptr<aidl::IRadioMessagingIndication> rmiCb) {
CHECK(rmiCb);
mMessagingCb = rmiCb;
}
std::shared_ptr<aidl::IRadioMessagingIndication> RadioIndication::messagingCb() {
return mMessagingCb.get();
}
Return<void> RadioIndication::cdmaNewSms(V1_0::RadioIndicationType type,
const V1_0::CdmaSmsMessage& msg) {
LOG_CALL << type;
CHECK_CB(mMessagingCb);
mMessagingCb->cdmaNewSms(toAidl(type), toAidl(msg));
messagingCb()->cdmaNewSms(toAidl(type), toAidl(msg));
return {};
}
Return<void> RadioIndication::cdmaRuimSmsStorageFull(V1_0::RadioIndicationType type) {
LOG_CALL << type;
CHECK_CB(mMessagingCb);
mMessagingCb->cdmaRuimSmsStorageFull(toAidl(type));
messagingCb()->cdmaRuimSmsStorageFull(toAidl(type));
return {};
}
Return<void> RadioIndication::newBroadcastSms(V1_0::RadioIndicationType type,
const hidl_vec<uint8_t>& data) {
LOG_CALL << type;
CHECK_CB(mMessagingCb);
mMessagingCb->newBroadcastSms(toAidl(type), data);
messagingCb()->newBroadcastSms(toAidl(type), data);
return {};
}
Return<void> RadioIndication::newSms(V1_0::RadioIndicationType type, const hidl_vec<uint8_t>& pdu) {
LOG_CALL << type;
CHECK_CB(mMessagingCb);
mMessagingCb->newSms(toAidl(type), pdu);
messagingCb()->newSms(toAidl(type), pdu);
return {};
}
Return<void> RadioIndication::newSmsOnSim(V1_0::RadioIndicationType type, int32_t recordNumber) {
LOG_CALL << type;
CHECK_CB(mMessagingCb);
mMessagingCb->newSmsOnSim(toAidl(type), recordNumber);
messagingCb()->newSmsOnSim(toAidl(type), recordNumber);
return {};
}
Return<void> RadioIndication::newSmsStatusReport(V1_0::RadioIndicationType type,
const hidl_vec<uint8_t>& pdu) {
LOG_CALL << type;
CHECK_CB(mMessagingCb);
mMessagingCb->newSmsStatusReport(toAidl(type), pdu);
messagingCb()->newSmsStatusReport(toAidl(type), pdu);
return {};
}
Return<void> RadioIndication::onUssd(V1_0::RadioIndicationType type, V1_0::UssdModeType modeType,
const hidl_string& msg) {
LOG_CALL << type;
CHECK_CB(mMessagingCb);
mMessagingCb->onUssd(toAidl(type), aidl::UssdModeType(modeType), msg);
messagingCb()->onUssd(toAidl(type), aidl::UssdModeType(modeType), msg);
return {};
}
Return<void> RadioIndication::simSmsStorageFull(V1_0::RadioIndicationType type) {
LOG_CALL << type;
CHECK_CB(mMessagingCb);
mMessagingCb->simSmsStorageFull(toAidl(type));
messagingCb()->simSmsStorageFull(toAidl(type));
return {};
}

View File

@@ -29,6 +29,10 @@ using ::ndk::ScopedAStatus;
namespace aidl = ::aidl::android::hardware::radio::messaging;
constexpr auto ok = &ScopedAStatus::ok;
std::shared_ptr<aidl::IRadioMessagingResponse> RadioMessaging::respond() {
return mRadioResponse->messagingCb();
}
ScopedAStatus RadioMessaging::acknowledgeIncomingGsmSmsWithPdu( //
int32_t serial, bool success, const std::string& ackPdu) {
LOG_CALL << serial << ' ' << success << ' ' << ackPdu;

View File

@@ -29,52 +29,49 @@ namespace android::hardware::radio::compat {
namespace aidl = ::aidl::android::hardware::radio::messaging;
void RadioResponse::setResponseFunction(std::shared_ptr<aidl::IRadioMessagingResponse> rmrCb) {
CHECK(rmrCb);
mMessagingCb = rmrCb;
}
std::shared_ptr<aidl::IRadioMessagingResponse> RadioResponse::messagingCb() {
return mMessagingCb.get();
}
Return<void> RadioResponse::acknowledgeIncomingGsmSmsWithPduResponse(
const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->acknowledgeIncomingGsmSmsWithPduResponse(toAidl(info));
messagingCb()->acknowledgeIncomingGsmSmsWithPduResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::acknowledgeLastIncomingCdmaSmsResponse(
const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->acknowledgeLastIncomingCdmaSmsResponse(toAidl(info));
messagingCb()->acknowledgeLastIncomingCdmaSmsResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::acknowledgeLastIncomingGsmSmsResponse(
const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->acknowledgeLastIncomingGsmSmsResponse(toAidl(info));
messagingCb()->acknowledgeLastIncomingGsmSmsResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::cancelPendingUssdResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->cancelPendingUssdResponse(toAidl(info));
messagingCb()->cancelPendingUssdResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::deleteSmsOnRuimResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->deleteSmsOnRuimResponse(toAidl(info));
messagingCb()->deleteSmsOnRuimResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::deleteSmsOnSimResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->deleteSmsOnSimResponse(toAidl(info));
messagingCb()->deleteSmsOnSimResponse(toAidl(info));
return {};
}
@@ -82,162 +79,141 @@ Return<void> RadioResponse::getCdmaBroadcastConfigResponse(
const V1_0::RadioResponseInfo& info,
const hidl_vec<V1_0::CdmaBroadcastSmsConfigInfo>& configs) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->getCdmaBroadcastConfigResponse(toAidl(info), toAidl(configs));
messagingCb()->getCdmaBroadcastConfigResponse(toAidl(info), toAidl(configs));
return {};
}
Return<void> RadioResponse::getGsmBroadcastConfigResponse(
const V1_0::RadioResponseInfo& info, const hidl_vec<V1_0::GsmBroadcastSmsConfigInfo>& cfg) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->getGsmBroadcastConfigResponse(toAidl(info), toAidl(cfg));
messagingCb()->getGsmBroadcastConfigResponse(toAidl(info), toAidl(cfg));
return {};
}
Return<void> RadioResponse::getSmscAddressResponse(const V1_0::RadioResponseInfo& info,
const hidl_string& smsc) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->getSmscAddressResponse(toAidl(info), smsc);
messagingCb()->getSmscAddressResponse(toAidl(info), smsc);
return {};
}
Return<void> RadioResponse::reportSmsMemoryStatusResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->reportSmsMemoryStatusResponse(toAidl(info));
messagingCb()->reportSmsMemoryStatusResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::sendCdmaSmsExpectMoreResponse(const V1_0::RadioResponseInfo& info,
const V1_0::SendSmsResult& sms) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->sendCdmaSmsExpectMoreResponse(toAidl(info), toAidl(sms));
messagingCb()->sendCdmaSmsExpectMoreResponse(toAidl(info), toAidl(sms));
return {};
}
Return<void> RadioResponse::sendCdmaSmsExpectMoreResponse_1_6(const V1_6::RadioResponseInfo& info,
const V1_0::SendSmsResult& sms) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->sendCdmaSmsExpectMoreResponse(toAidl(info), toAidl(sms));
messagingCb()->sendCdmaSmsExpectMoreResponse(toAidl(info), toAidl(sms));
return {};
}
Return<void> RadioResponse::sendCdmaSmsResponse(const V1_0::RadioResponseInfo& info,
const V1_0::SendSmsResult& sms) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->sendCdmaSmsResponse(toAidl(info), toAidl(sms));
messagingCb()->sendCdmaSmsResponse(toAidl(info), toAidl(sms));
return {};
}
Return<void> RadioResponse::sendCdmaSmsResponse_1_6(const V1_6::RadioResponseInfo& info,
const V1_0::SendSmsResult& sms) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->sendCdmaSmsResponse(toAidl(info), toAidl(sms));
messagingCb()->sendCdmaSmsResponse(toAidl(info), toAidl(sms));
return {};
}
Return<void> RadioResponse::sendImsSmsResponse(const V1_0::RadioResponseInfo& info,
const V1_0::SendSmsResult& sms) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->sendImsSmsResponse(toAidl(info), toAidl(sms));
messagingCb()->sendImsSmsResponse(toAidl(info), toAidl(sms));
return {};
}
Return<void> RadioResponse::sendSMSExpectMoreResponse(const V1_0::RadioResponseInfo& info,
const V1_0::SendSmsResult& sms) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->sendSmsExpectMoreResponse(toAidl(info), toAidl(sms));
messagingCb()->sendSmsExpectMoreResponse(toAidl(info), toAidl(sms));
return {};
}
Return<void> RadioResponse::sendSmsExpectMoreResponse_1_6(const V1_6::RadioResponseInfo& info,
const V1_0::SendSmsResult& sms) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->sendSmsExpectMoreResponse(toAidl(info), toAidl(sms));
messagingCb()->sendSmsExpectMoreResponse(toAidl(info), toAidl(sms));
return {};
}
Return<void> RadioResponse::sendSmsResponse(const V1_0::RadioResponseInfo& info,
const V1_0::SendSmsResult& sms) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->sendSmsResponse(toAidl(info), toAidl(sms));
messagingCb()->sendSmsResponse(toAidl(info), toAidl(sms));
return {};
}
Return<void> RadioResponse::sendSmsResponse_1_6(const V1_6::RadioResponseInfo& info,
const V1_0::SendSmsResult& sms) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->sendSmsResponse(toAidl(info), toAidl(sms));
messagingCb()->sendSmsResponse(toAidl(info), toAidl(sms));
return {};
}
Return<void> RadioResponse::sendUssdResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->sendUssdResponse(toAidl(info));
messagingCb()->sendUssdResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setCdmaBroadcastActivationResponse(
const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->setCdmaBroadcastActivationResponse(toAidl(info));
messagingCb()->setCdmaBroadcastActivationResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setCdmaBroadcastConfigResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->setCdmaBroadcastConfigResponse(toAidl(info));
messagingCb()->setCdmaBroadcastConfigResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setGsmBroadcastActivationResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->setGsmBroadcastActivationResponse(toAidl(info));
messagingCb()->setGsmBroadcastActivationResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setGsmBroadcastConfigResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->setGsmBroadcastConfigResponse(toAidl(info));
messagingCb()->setGsmBroadcastConfigResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setSmscAddressResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mMessagingCb);
mMessagingCb->setSmscAddressResponse(toAidl(info));
messagingCb()->setSmscAddressResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::writeSmsToRuimResponse(const V1_0::RadioResponseInfo& info,
uint32_t index) {
LOG_CALL << info.serial << ' ' << index;
CHECK_CB(mMessagingCb);
mMessagingCb->writeSmsToRuimResponse(toAidl(info), index);
messagingCb()->writeSmsToRuimResponse(toAidl(info), index);
return {};
}
Return<void> RadioResponse::writeSmsToSimResponse(const V1_0::RadioResponseInfo& info,
int32_t index) {
LOG_CALL << info.serial << ' ' << index;
CHECK_CB(mMessagingCb);
mMessagingCb->writeSmsToSimResponse(toAidl(info), index);
messagingCb()->writeSmsToSimResponse(toAidl(info), index);
return {};
}

View File

@@ -29,44 +29,42 @@ namespace android::hardware::radio::compat {
namespace aidl = ::aidl::android::hardware::radio::modem;
void RadioIndication::setResponseFunction(std::shared_ptr<aidl::IRadioModemIndication> modemCb) {
CHECK(modemCb);
mModemCb = modemCb;
}
std::shared_ptr<aidl::IRadioModemIndication> RadioIndication::modemCb() {
return mModemCb.get();
}
Return<void> RadioIndication::hardwareConfigChanged(V1_0::RadioIndicationType type,
const hidl_vec<V1_0::HardwareConfig>& configs) {
LOG_CALL << type;
CHECK_CB(mModemCb);
mModemCb->hardwareConfigChanged(toAidl(type), toAidl(configs));
modemCb()->hardwareConfigChanged(toAidl(type), toAidl(configs));
return {};
}
Return<void> RadioIndication::modemReset(V1_0::RadioIndicationType type, const hidl_string& reasn) {
LOG_CALL << type;
CHECK_CB(mModemCb);
mModemCb->modemReset(toAidl(type), reasn);
modemCb()->modemReset(toAidl(type), reasn);
return {};
}
Return<void> RadioIndication::radioCapabilityIndication(V1_0::RadioIndicationType type,
const V1_0::RadioCapability& rc) {
LOG_CALL << type;
CHECK_CB(mModemCb);
mModemCb->radioCapabilityIndication(toAidl(type), toAidl(rc));
modemCb()->radioCapabilityIndication(toAidl(type), toAidl(rc));
return {};
}
Return<void> RadioIndication::radioStateChanged(V1_0::RadioIndicationType t, V1_0::RadioState st) {
LOG_CALL << t;
CHECK_CB(mModemCb);
mModemCb->radioStateChanged(toAidl(t), aidl::RadioState(st));
modemCb()->radioStateChanged(toAidl(t), aidl::RadioState(st));
return {};
}
Return<void> RadioIndication::rilConnected(V1_0::RadioIndicationType type) {
LOG_CALL << type;
CHECK_CB(mModemCb);
mModemCb->rilConnected(toAidl(type));
modemCb()->rilConnected(toAidl(type));
return {};
}

View File

@@ -27,6 +27,10 @@ using ::ndk::ScopedAStatus;
namespace aidl = ::aidl::android::hardware::radio::modem;
constexpr auto ok = &ScopedAStatus::ok;
std::shared_ptr<aidl::IRadioModemResponse> RadioModem::respond() {
return mRadioResponse->modemCb();
}
ScopedAStatus RadioModem::enableModem(int32_t serial, bool on) {
LOG_CALL << serial;
mHal1_5->enableModem(serial, on);

View File

@@ -29,22 +29,23 @@ namespace android::hardware::radio::compat {
namespace aidl = ::aidl::android::hardware::radio::modem;
void RadioResponse::setResponseFunction(std::shared_ptr<aidl::IRadioModemResponse> modemCb) {
CHECK(modemCb);
mModemCb = modemCb;
}
std::shared_ptr<aidl::IRadioModemResponse> RadioResponse::modemCb() {
return mModemCb.get();
}
Return<void> RadioResponse::enableModemResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mModemCb);
mModemCb->enableModemResponse(toAidl(info));
modemCb()->enableModemResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::getBasebandVersionResponse(const V1_0::RadioResponseInfo& info,
const hidl_string& version) {
LOG_CALL << info.serial;
CHECK_CB(mModemCb);
mModemCb->getBasebandVersionResponse(toAidl(info), version);
modemCb()->getBasebandVersionResponse(toAidl(info), version);
return {};
}
@@ -52,112 +53,97 @@ Return<void> RadioResponse::getDeviceIdentityResponse( //
const V1_0::RadioResponseInfo& info, const hidl_string& imei, const hidl_string& imeisv,
const hidl_string& esn, const hidl_string& meid) {
LOG_CALL << info.serial;
CHECK_CB(mModemCb);
mModemCb->getDeviceIdentityResponse(toAidl(info), imei, imeisv, esn, meid);
modemCb()->getDeviceIdentityResponse(toAidl(info), imei, imeisv, esn, meid);
return {};
}
Return<void> RadioResponse::getHardwareConfigResponse(
const V1_0::RadioResponseInfo& info, const hidl_vec<V1_0::HardwareConfig>& config) {
LOG_CALL << info.serial;
CHECK_CB(mModemCb);
mModemCb->getHardwareConfigResponse(toAidl(info), toAidl(config));
modemCb()->getHardwareConfigResponse(toAidl(info), toAidl(config));
return {};
}
Return<void> RadioResponse::getModemActivityInfoResponse(
const V1_0::RadioResponseInfo& info, const V1_0::ActivityStatsInfo& activityInfo) {
LOG_CALL << info.serial;
CHECK_CB(mModemCb);
mModemCb->getModemActivityInfoResponse(toAidl(info), toAidl(activityInfo));
modemCb()->getModemActivityInfoResponse(toAidl(info), toAidl(activityInfo));
return {};
}
Return<void> RadioResponse::getModemStackStatusResponse(const V1_0::RadioResponseInfo& info,
bool isEnabled) {
LOG_CALL << info.serial;
CHECK_CB(mModemCb);
mModemCb->getModemStackStatusResponse(toAidl(info), isEnabled);
modemCb()->getModemStackStatusResponse(toAidl(info), isEnabled);
return {};
}
Return<void> RadioResponse::getRadioCapabilityResponse(const V1_0::RadioResponseInfo& info,
const V1_0::RadioCapability& rc) {
LOG_CALL << info.serial;
CHECK_CB(mModemCb);
mModemCb->getRadioCapabilityResponse(toAidl(info), toAidl(rc));
modemCb()->getRadioCapabilityResponse(toAidl(info), toAidl(rc));
return {};
}
Return<void> RadioResponse::nvReadItemResponse(const V1_0::RadioResponseInfo& info,
const hidl_string& result) {
LOG_CALL << info.serial;
CHECK_CB(mModemCb);
mModemCb->nvReadItemResponse(toAidl(info), result);
modemCb()->nvReadItemResponse(toAidl(info), result);
return {};
}
Return<void> RadioResponse::nvResetConfigResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mModemCb);
mModemCb->nvResetConfigResponse(toAidl(info));
modemCb()->nvResetConfigResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::nvWriteCdmaPrlResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mModemCb);
mModemCb->nvWriteCdmaPrlResponse(toAidl(info));
modemCb()->nvWriteCdmaPrlResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::nvWriteItemResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mModemCb);
mModemCb->nvWriteItemResponse(toAidl(info));
modemCb()->nvWriteItemResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::requestShutdownResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mModemCb);
mModemCb->requestShutdownResponse(toAidl(info));
modemCb()->requestShutdownResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::sendDeviceStateResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mModemCb);
mModemCb->sendDeviceStateResponse(toAidl(info));
modemCb()->sendDeviceStateResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setRadioCapabilityResponse(const V1_0::RadioResponseInfo& info,
const V1_0::RadioCapability& rc) {
LOG_CALL << info.serial;
CHECK_CB(mModemCb);
mModemCb->setRadioCapabilityResponse(toAidl(info), toAidl(rc));
modemCb()->setRadioCapabilityResponse(toAidl(info), toAidl(rc));
return {};
}
Return<void> RadioResponse::setRadioPowerResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mModemCb);
mModemCb->setRadioPowerResponse(toAidl(info));
modemCb()->setRadioPowerResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setRadioPowerResponse_1_5(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mModemCb);
mModemCb->setRadioPowerResponse(toAidl(info));
modemCb()->setRadioPowerResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setRadioPowerResponse_1_6(const V1_6::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mModemCb);
mModemCb->setRadioPowerResponse(toAidl(info));
modemCb()->setRadioPowerResponse(toAidl(info));
return {};
}

View File

@@ -30,23 +30,24 @@ using ::aidl::android::hardware::radio::RadioTechnology;
namespace aidl = ::aidl::android::hardware::radio::network;
void RadioIndication::setResponseFunction(std::shared_ptr<aidl::IRadioNetworkIndication> netCb) {
CHECK(netCb);
mNetworkCb = netCb;
}
std::shared_ptr<aidl::IRadioNetworkIndication> RadioIndication::networkCb() {
return mNetworkCb.get();
}
Return<void> RadioIndication::barringInfoChanged(V1_0::RadioIndicationType type,
const V1_5::CellIdentity& cellIdentity,
const hidl_vec<V1_5::BarringInfo>& barringInfos) {
LOG_CALL << type;
CHECK_CB(mNetworkCb);
mNetworkCb->barringInfoChanged(toAidl(type), toAidl(cellIdentity), toAidl(barringInfos));
networkCb()->barringInfoChanged(toAidl(type), toAidl(cellIdentity), toAidl(barringInfos));
return {};
}
Return<void> RadioIndication::cdmaPrlChanged(V1_0::RadioIndicationType type, int32_t version) {
LOG_CALL << type;
CHECK_CB(mNetworkCb);
mNetworkCb->cdmaPrlChanged(toAidl(type), version);
networkCb()->cdmaPrlChanged(toAidl(type), version);
return {};
}
@@ -74,32 +75,28 @@ Return<void> RadioIndication::cellInfoList_1_4(V1_0::RadioIndicationType type,
Return<void> RadioIndication::cellInfoList_1_5(V1_0::RadioIndicationType type,
const hidl_vec<V1_5::CellInfo>& records) {
LOG_CALL << type;
CHECK_CB(mNetworkCb);
mNetworkCb->cellInfoList(toAidl(type), toAidl(records));
networkCb()->cellInfoList(toAidl(type), toAidl(records));
return {};
}
Return<void> RadioIndication::cellInfoList_1_6(V1_0::RadioIndicationType type,
const hidl_vec<V1_6::CellInfo>& records) {
LOG_CALL << type;
CHECK_CB(mNetworkCb);
mNetworkCb->cellInfoList(toAidl(type), toAidl(records));
networkCb()->cellInfoList(toAidl(type), toAidl(records));
return {};
}
Return<void> RadioIndication::currentLinkCapacityEstimate(V1_0::RadioIndicationType type,
const V1_2::LinkCapacityEstimate& lce) {
LOG_CALL << type;
CHECK_CB(mNetworkCb);
mNetworkCb->currentLinkCapacityEstimate(toAidl(type), toAidl(lce));
networkCb()->currentLinkCapacityEstimate(toAidl(type), toAidl(lce));
return {};
}
Return<void> RadioIndication::currentLinkCapacityEstimate_1_6(
V1_0::RadioIndicationType type, const V1_6::LinkCapacityEstimate& lce) {
LOG_CALL << type;
CHECK_CB(mNetworkCb);
mNetworkCb->currentLinkCapacityEstimate(toAidl(type), toAidl(lce));
networkCb()->currentLinkCapacityEstimate(toAidl(type), toAidl(lce));
return {};
}
@@ -113,16 +110,14 @@ Return<void> RadioIndication::currentPhysicalChannelConfigs(
Return<void> RadioIndication::currentPhysicalChannelConfigs_1_4(
V1_0::RadioIndicationType type, const hidl_vec<V1_4::PhysicalChannelConfig>& configs) {
LOG_CALL << type;
CHECK_CB(mNetworkCb);
mNetworkCb->currentPhysicalChannelConfigs(toAidl(type), toAidl(configs));
networkCb()->currentPhysicalChannelConfigs(toAidl(type), toAidl(configs));
return {};
}
Return<void> RadioIndication::currentPhysicalChannelConfigs_1_6(
V1_0::RadioIndicationType type, const hidl_vec<V1_6::PhysicalChannelConfig>& configs) {
LOG_CALL << type;
CHECK_CB(mNetworkCb);
mNetworkCb->currentPhysicalChannelConfigs(toAidl(type), toAidl(configs));
networkCb()->currentPhysicalChannelConfigs(toAidl(type), toAidl(configs));
return {};
}
@@ -143,23 +138,20 @@ Return<void> RadioIndication::currentSignalStrength_1_2(V1_0::RadioIndicationTyp
Return<void> RadioIndication::currentSignalStrength_1_4(
V1_0::RadioIndicationType type, const V1_4::SignalStrength& signalStrength) {
LOG_CALL << type;
CHECK_CB(mNetworkCb);
mNetworkCb->currentSignalStrength(toAidl(type), toAidl(signalStrength));
networkCb()->currentSignalStrength(toAidl(type), toAidl(signalStrength));
return {};
}
Return<void> RadioIndication::currentSignalStrength_1_6(
V1_0::RadioIndicationType type, const V1_6::SignalStrength& signalStrength) {
LOG_CALL << type;
CHECK_CB(mNetworkCb);
mNetworkCb->currentSignalStrength(toAidl(type), toAidl(signalStrength));
networkCb()->currentSignalStrength(toAidl(type), toAidl(signalStrength));
return {};
}
Return<void> RadioIndication::imsNetworkStateChanged(V1_0::RadioIndicationType type) {
LOG_CALL << type;
CHECK_CB(mNetworkCb);
mNetworkCb->imsNetworkStateChanged(toAidl(type));
networkCb()->imsNetworkStateChanged(toAidl(type));
return {};
}
@@ -187,31 +179,27 @@ Return<void> RadioIndication::networkScanResult_1_4(V1_0::RadioIndicationType ty
Return<void> RadioIndication::networkScanResult_1_5(V1_0::RadioIndicationType type,
const V1_5::NetworkScanResult& result) {
LOG_CALL << type;
CHECK_CB(mNetworkCb);
mNetworkCb->networkScanResult(toAidl(type), toAidl(result));
networkCb()->networkScanResult(toAidl(type), toAidl(result));
return {};
}
Return<void> RadioIndication::networkScanResult_1_6(V1_0::RadioIndicationType type,
const V1_6::NetworkScanResult& result) {
LOG_CALL << type;
CHECK_CB(mNetworkCb);
mNetworkCb->networkScanResult(toAidl(type), toAidl(result));
networkCb()->networkScanResult(toAidl(type), toAidl(result));
return {};
}
Return<void> RadioIndication::networkStateChanged(V1_0::RadioIndicationType type) {
LOG_CALL << type;
CHECK_CB(mNetworkCb);
mNetworkCb->networkStateChanged(toAidl(type));
networkCb()->networkStateChanged(toAidl(type));
return {};
}
Return<void> RadioIndication::nitzTimeReceived(V1_0::RadioIndicationType type,
const hidl_string& nitzTime, uint64_t receivedTime) {
LOG_CALL << type;
CHECK_CB(mNetworkCb);
mNetworkCb->nitzTimeReceived(toAidl(type), nitzTime, receivedTime, 0);
networkCb()->nitzTimeReceived(toAidl(type), nitzTime, receivedTime, 0);
return {};
}
@@ -220,33 +208,29 @@ Return<void> RadioIndication::registrationFailed( //
const hidl_string& chosenPlmn, hidl_bitfield<V1_5::Domain> domain, int32_t causeCode,
int32_t additionalCauseCode) {
LOG_CALL << type;
CHECK_CB(mNetworkCb);
mNetworkCb->registrationFailed(toAidl(type), toAidl(cellIdentity), chosenPlmn,
aidl::Domain(domain), causeCode, additionalCauseCode);
networkCb()->registrationFailed(toAidl(type), toAidl(cellIdentity), chosenPlmn,
aidl::Domain(domain), causeCode, additionalCauseCode);
return {};
}
Return<void> RadioIndication::restrictedStateChanged(V1_0::RadioIndicationType type,
V1_0::PhoneRestrictedState state) {
LOG_CALL << type;
CHECK_CB(mNetworkCb);
mNetworkCb->restrictedStateChanged(toAidl(type), aidl::PhoneRestrictedState(state));
networkCb()->restrictedStateChanged(toAidl(type), aidl::PhoneRestrictedState(state));
return {};
}
Return<void> RadioIndication::suppSvcNotify(V1_0::RadioIndicationType type,
const V1_0::SuppSvcNotification& suppSvc) {
LOG_CALL << type;
CHECK_CB(mNetworkCb);
mNetworkCb->suppSvcNotify(toAidl(type), toAidl(suppSvc));
networkCb()->suppSvcNotify(toAidl(type), toAidl(suppSvc));
return {};
}
Return<void> RadioIndication::voiceRadioTechChanged(V1_0::RadioIndicationType type,
V1_0::RadioTechnology rat) {
LOG_CALL << type;
CHECK_CB(mNetworkCb);
mNetworkCb->voiceRadioTechChanged(toAidl(type), RadioTechnology(rat));
networkCb()->voiceRadioTechChanged(toAidl(type), RadioTechnology(rat));
return {};
}

View File

@@ -33,6 +33,10 @@ using ::ndk::ScopedAStatus;
namespace aidl = ::aidl::android::hardware::radio::network;
constexpr auto ok = &ScopedAStatus::ok;
std::shared_ptr<aidl::IRadioNetworkResponse> RadioNetwork::respond() {
return mRadioResponse->networkCb();
}
ScopedAStatus RadioNetwork::getAllowedNetworkTypesBitmap(int32_t serial) {
LOG_CALL << serial;
if (mHal1_6) {
@@ -108,7 +112,7 @@ ScopedAStatus RadioNetwork::getSystemSelectionChannels(int32_t serial) {
if (mHal1_6) {
mHal1_6->getSystemSelectionChannels(serial);
} else {
respond().getSystemSelectionChannelsResponse(notSupported(serial), {});
respond()->getSystemSelectionChannelsResponse(notSupported(serial), {});
}
return ok();
}
@@ -130,7 +134,7 @@ ScopedAStatus RadioNetwork::isNrDualConnectivityEnabled(int32_t serial) {
if (mHal1_6) {
mHal1_6->isNrDualConnectivityEnabled(serial);
} else {
respond().isNrDualConnectivityEnabledResponse(notSupported(serial), false);
respond()->isNrDualConnectivityEnabledResponse(notSupported(serial), false);
}
return ok();
}
@@ -219,7 +223,7 @@ ScopedAStatus RadioNetwork::setNrDualConnectivityState(int32_t serial,
if (mHal1_6) {
mHal1_6->setNrDualConnectivityState(serial, V1_6::NrDualConnectivityState(st));
} else {
respond().setNrDualConnectivityStateResponse(notSupported(serial));
respond()->setNrDualConnectivityStateResponse(notSupported(serial));
}
return ok();
}

View File

@@ -33,25 +33,26 @@ using ::aidl::android::hardware::radio::RadioTechnologyFamily;
namespace aidl = ::aidl::android::hardware::radio::network;
void RadioResponse::setResponseFunction(std::shared_ptr<aidl::IRadioNetworkResponse> netCb) {
CHECK(netCb);
mNetworkCb = netCb;
}
std::shared_ptr<aidl::IRadioNetworkResponse> RadioResponse::networkCb() {
return mNetworkCb.get();
}
Return<void> RadioResponse::getAllowedNetworkTypesBitmapResponse(
const V1_6::RadioResponseInfo& info,
hidl_bitfield<V1_4::RadioAccessFamily> networkTypeBitmap) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->getAllowedNetworkTypesBitmapResponse(toAidl(info),
RadioAccessFamily(networkTypeBitmap));
networkCb()->getAllowedNetworkTypesBitmapResponse(toAidl(info),
RadioAccessFamily(networkTypeBitmap));
return {};
}
Return<void> RadioResponse::getPreferredNetworkTypeResponse(const V1_0::RadioResponseInfo& info,
V1_0::PreferredNetworkType nwType) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->getAllowedNetworkTypesBitmapResponse( //
networkCb()->getAllowedNetworkTypesBitmapResponse( //
toAidl(info), RadioAccessFamily(getRafFromNetworkType(nwType)));
return {};
}
@@ -66,16 +67,14 @@ Return<void> RadioResponse::getPreferredNetworkTypeBitmapResponse(
Return<void> RadioResponse::getAvailableBandModesResponse(
const V1_0::RadioResponseInfo& info, const hidl_vec<V1_0::RadioBandMode>& bandModes) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->getAvailableBandModesResponse(toAidl(info), toAidl(bandModes));
networkCb()->getAvailableBandModesResponse(toAidl(info), toAidl(bandModes));
return {};
}
Return<void> RadioResponse::getAvailableNetworksResponse(
const V1_0::RadioResponseInfo& info, const hidl_vec<V1_0::OperatorInfo>& networkInfos) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->getAvailableNetworksResponse(toAidl(info), toAidl(networkInfos));
networkCb()->getAvailableNetworksResponse(toAidl(info), toAidl(networkInfos));
return {};
}
@@ -83,16 +82,14 @@ Return<void> RadioResponse::getBarringInfoResponse(
const V1_0::RadioResponseInfo& info, const V1_5::CellIdentity& cellIdentity,
const hidl_vec<V1_5::BarringInfo>& barringInfos) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->getBarringInfoResponse(toAidl(info), toAidl(cellIdentity), toAidl(barringInfos));
networkCb()->getBarringInfoResponse(toAidl(info), toAidl(cellIdentity), toAidl(barringInfos));
return {};
}
Return<void> RadioResponse::getCdmaRoamingPreferenceResponse(const V1_0::RadioResponseInfo& info,
V1_0::CdmaRoamingType type) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->getCdmaRoamingPreferenceResponse(toAidl(info), aidl::CdmaRoamingType(type));
networkCb()->getCdmaRoamingPreferenceResponse(toAidl(info), aidl::CdmaRoamingType(type));
return {};
}
@@ -120,16 +117,14 @@ Return<void> RadioResponse::getCellInfoListResponse_1_4(const V1_0::RadioRespons
Return<void> RadioResponse::getCellInfoListResponse_1_5(const V1_0::RadioResponseInfo& info,
const hidl_vec<V1_5::CellInfo>& cellInfo) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->getCellInfoListResponse(toAidl(info), toAidl(cellInfo));
networkCb()->getCellInfoListResponse(toAidl(info), toAidl(cellInfo));
return {};
}
Return<void> RadioResponse::getCellInfoListResponse_1_6(const V1_6::RadioResponseInfo& info,
const hidl_vec<V1_6::CellInfo>& cellInfo) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->getCellInfoListResponse(toAidl(info), toAidl(cellInfo));
networkCb()->getCellInfoListResponse(toAidl(info), toAidl(cellInfo));
return {};
}
@@ -157,25 +152,22 @@ Return<void> RadioResponse::getDataRegistrationStateResponse_1_4(
Return<void> RadioResponse::getDataRegistrationStateResponse_1_5(
const V1_0::RadioResponseInfo& info, const V1_5::RegStateResult& dataRegResponse) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->getDataRegistrationStateResponse(toAidl(info), toAidl(dataRegResponse));
networkCb()->getDataRegistrationStateResponse(toAidl(info), toAidl(dataRegResponse));
return {};
}
Return<void> RadioResponse::getDataRegistrationStateResponse_1_6(
const V1_6::RadioResponseInfo& info, const V1_6::RegStateResult& dataRegResponse) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->getDataRegistrationStateResponse(toAidl(info), toAidl(dataRegResponse));
networkCb()->getDataRegistrationStateResponse(toAidl(info), toAidl(dataRegResponse));
return {};
}
Return<void> RadioResponse::getImsRegistrationStateResponse( //
const V1_0::RadioResponseInfo& info, bool isRegd, V1_0::RadioTechnologyFamily ratFamily) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->getImsRegistrationStateResponse(toAidl(info), isRegd,
RadioTechnologyFamily(ratFamily));
networkCb()->getImsRegistrationStateResponse(toAidl(info), isRegd,
RadioTechnologyFamily(ratFamily));
return {};
}
@@ -189,8 +181,7 @@ Return<void> RadioResponse::getNeighboringCidsResponse(const V1_0::RadioResponse
Return<void> RadioResponse::getNetworkSelectionModeResponse(const V1_0::RadioResponseInfo& info,
bool manual) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->getNetworkSelectionModeResponse(toAidl(info), manual);
networkCb()->getNetworkSelectionModeResponse(toAidl(info), manual);
return {};
}
@@ -198,8 +189,7 @@ Return<void> RadioResponse::getOperatorResponse( //
const V1_0::RadioResponseInfo& info, const hidl_string& longName,
const hidl_string& shortName, const hidl_string& numeric) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->getOperatorResponse(toAidl(info), longName, shortName, numeric);
networkCb()->getOperatorResponse(toAidl(info), longName, shortName, numeric);
return {};
}
@@ -220,16 +210,14 @@ Return<void> RadioResponse::getSignalStrengthResponse_1_2(const V1_0::RadioRespo
Return<void> RadioResponse::getSignalStrengthResponse_1_4(
const V1_0::RadioResponseInfo& info, const V1_4::SignalStrength& signalStrength) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->getSignalStrengthResponse(toAidl(info), toAidl(signalStrength));
networkCb()->getSignalStrengthResponse(toAidl(info), toAidl(signalStrength));
return {};
}
Return<void> RadioResponse::getSignalStrengthResponse_1_6(
const V1_6::RadioResponseInfo& info, const V1_6::SignalStrength& signalStrength) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->getSignalStrengthResponse(toAidl(info), toAidl(signalStrength));
networkCb()->getSignalStrengthResponse(toAidl(info), toAidl(signalStrength));
return {};
}
@@ -237,16 +225,14 @@ Return<void> RadioResponse::getSystemSelectionChannelsResponse(
const V1_6::RadioResponseInfo& info,
const hidl_vec<V1_5::RadioAccessSpecifier>& specifiers) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->getSystemSelectionChannelsResponse(toAidl(info), toAidl(specifiers));
networkCb()->getSystemSelectionChannelsResponse(toAidl(info), toAidl(specifiers));
return {};
}
Return<void> RadioResponse::getVoiceRadioTechnologyResponse(const V1_0::RadioResponseInfo& info,
V1_0::RadioTechnology rat) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->getVoiceRadioTechnologyResponse(toAidl(info), RadioTechnology(rat));
networkCb()->getVoiceRadioTechnologyResponse(toAidl(info), RadioTechnology(rat));
return {};
}
@@ -267,24 +253,21 @@ Return<void> RadioResponse::getVoiceRegistrationStateResponse_1_2(
Return<void> RadioResponse::getVoiceRegistrationStateResponse_1_5(
const V1_0::RadioResponseInfo& info, const V1_5::RegStateResult& voiceRegResponse) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->getVoiceRegistrationStateResponse(toAidl(info), toAidl(voiceRegResponse));
networkCb()->getVoiceRegistrationStateResponse(toAidl(info), toAidl(voiceRegResponse));
return {};
}
Return<void> RadioResponse::getVoiceRegistrationStateResponse_1_6(
const V1_6::RadioResponseInfo& info, const V1_6::RegStateResult& voiceRegResponse) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->getVoiceRegistrationStateResponse(toAidl(info), toAidl(voiceRegResponse));
networkCb()->getVoiceRegistrationStateResponse(toAidl(info), toAidl(voiceRegResponse));
return {};
}
Return<void> RadioResponse::isNrDualConnectivityEnabledResponse(const V1_6::RadioResponseInfo& info,
bool isEnabled) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->isNrDualConnectivityEnabledResponse(toAidl(info), isEnabled);
networkCb()->isNrDualConnectivityEnabledResponse(toAidl(info), isEnabled);
return {};
}
@@ -297,15 +280,13 @@ Return<void> RadioResponse::pullLceDataResponse(const V1_0::RadioResponseInfo& i
Return<void> RadioResponse::setAllowedNetworkTypesBitmapResponse(const V1_6::RadioResponseInfo& i) {
LOG_CALL << i.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->setAllowedNetworkTypesBitmapResponse(toAidl(i));
networkCb()->setAllowedNetworkTypesBitmapResponse(toAidl(i));
return {};
}
Return<void> RadioResponse::setPreferredNetworkTypeResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->setAllowedNetworkTypesBitmapResponse(toAidl(info));
networkCb()->setAllowedNetworkTypesBitmapResponse(toAidl(info));
return {};
}
@@ -318,174 +299,151 @@ Return<void> RadioResponse::setPreferredNetworkTypeBitmapResponse(
Return<void> RadioResponse::setBandModeResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->setBandModeResponse(toAidl(info));
networkCb()->setBandModeResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setBarringPasswordResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->setBarringPasswordResponse(toAidl(info));
networkCb()->setBarringPasswordResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setCdmaRoamingPreferenceResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->setCdmaRoamingPreferenceResponse(toAidl(info));
networkCb()->setCdmaRoamingPreferenceResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setCellInfoListRateResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->setCellInfoListRateResponse(toAidl(info));
networkCb()->setCellInfoListRateResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setIndicationFilterResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->setIndicationFilterResponse(toAidl(info));
networkCb()->setIndicationFilterResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setIndicationFilterResponse_1_5(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->setIndicationFilterResponse(toAidl(info));
networkCb()->setIndicationFilterResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setLinkCapacityReportingCriteriaResponse(
const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->setLinkCapacityReportingCriteriaResponse(toAidl(info));
networkCb()->setLinkCapacityReportingCriteriaResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setLinkCapacityReportingCriteriaResponse_1_5(
const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->setLinkCapacityReportingCriteriaResponse(toAidl(info));
networkCb()->setLinkCapacityReportingCriteriaResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setLocationUpdatesResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->setLocationUpdatesResponse(toAidl(info));
networkCb()->setLocationUpdatesResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setNetworkSelectionModeAutomaticResponse(
const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->setNetworkSelectionModeAutomaticResponse(toAidl(info));
networkCb()->setNetworkSelectionModeAutomaticResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setNetworkSelectionModeManualResponse(
const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->setNetworkSelectionModeManualResponse(toAidl(info));
networkCb()->setNetworkSelectionModeManualResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setNetworkSelectionModeManualResponse_1_5(
const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->setNetworkSelectionModeManualResponse(toAidl(info));
networkCb()->setNetworkSelectionModeManualResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setNrDualConnectivityStateResponse(
const V1_6::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->setNrDualConnectivityStateResponse(toAidl(info));
networkCb()->setNrDualConnectivityStateResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setSignalStrengthReportingCriteriaResponse(
const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->setSignalStrengthReportingCriteriaResponse(toAidl(info));
networkCb()->setSignalStrengthReportingCriteriaResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setSignalStrengthReportingCriteriaResponse_1_5(
const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->setSignalStrengthReportingCriteriaResponse(toAidl(info));
networkCb()->setSignalStrengthReportingCriteriaResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setSuppServiceNotificationsResponse(
const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->setSuppServiceNotificationsResponse(toAidl(info));
networkCb()->setSuppServiceNotificationsResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setSystemSelectionChannelsResponse(
const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->setSystemSelectionChannelsResponse(toAidl(info));
networkCb()->setSystemSelectionChannelsResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setSystemSelectionChannelsResponse_1_5(
const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->setSystemSelectionChannelsResponse(toAidl(info));
networkCb()->setSystemSelectionChannelsResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::startNetworkScanResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->startNetworkScanResponse(toAidl(info));
networkCb()->startNetworkScanResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::startNetworkScanResponse_1_4(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->startNetworkScanResponse(toAidl(info));
networkCb()->startNetworkScanResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::startNetworkScanResponse_1_5(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->startNetworkScanResponse(toAidl(info));
networkCb()->startNetworkScanResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::stopNetworkScanResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->stopNetworkScanResponse(toAidl(info));
networkCb()->stopNetworkScanResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::supplyNetworkDepersonalizationResponse(
const V1_0::RadioResponseInfo& info, int32_t remainingRetries) {
LOG_CALL << info.serial;
CHECK_CB(mNetworkCb);
mNetworkCb->supplyNetworkDepersonalizationResponse(toAidl(info), remainingRetries);
networkCb()->supplyNetworkDepersonalizationResponse(toAidl(info), remainingRetries);
return {};
}

View File

@@ -29,29 +29,29 @@ namespace android::hardware::radio::compat {
namespace aidl = ::aidl::android::hardware::radio::sim;
void RadioIndication::setResponseFunction(std::shared_ptr<aidl::IRadioSimIndication> simCb) {
CHECK(simCb);
mSimCb = simCb;
}
std::shared_ptr<aidl::IRadioSimIndication> RadioIndication::simCb() {
return mSimCb.get();
}
Return<void> RadioIndication::carrierInfoForImsiEncryption(V1_0::RadioIndicationType type) {
LOG_CALL << type;
CHECK_CB(mSimCb);
mSimCb->carrierInfoForImsiEncryption(toAidl(type));
simCb()->carrierInfoForImsiEncryption(toAidl(type));
return {};
}
Return<void> RadioIndication::cdmaSubscriptionSourceChanged(
V1_0::RadioIndicationType type, V1_0::CdmaSubscriptionSource cdmaSource) {
LOG_CALL << type;
CHECK_CB(mSimCb);
mSimCb->cdmaSubscriptionSourceChanged(toAidl(type), aidl::CdmaSubscriptionSource(cdmaSource));
simCb()->cdmaSubscriptionSourceChanged(toAidl(type), aidl::CdmaSubscriptionSource(cdmaSource));
return {};
}
Return<void> RadioIndication::simPhonebookChanged(V1_0::RadioIndicationType type) {
LOG_CALL << type;
CHECK_CB(mSimCb);
mSimCb->simPhonebookChanged(toAidl(type));
simCb()->simPhonebookChanged(toAidl(type));
return {};
}
@@ -59,62 +59,54 @@ Return<void> RadioIndication::simPhonebookRecordsReceived(
V1_0::RadioIndicationType type, V1_6::PbReceivedStatus status,
const hidl_vec<V1_6::PhonebookRecordInfo>& rec) {
LOG_CALL << type;
CHECK_CB(mSimCb);
mSimCb->simPhonebookRecordsReceived(toAidl(type), aidl::PbReceivedStatus(status), toAidl(rec));
simCb()->simPhonebookRecordsReceived(toAidl(type), aidl::PbReceivedStatus(status), toAidl(rec));
return {};
}
Return<void> RadioIndication::simRefresh(V1_0::RadioIndicationType type,
const V1_0::SimRefreshResult& refreshResult) {
LOG_CALL << type;
CHECK_CB(mSimCb);
mSimCb->simRefresh(toAidl(type), toAidl(refreshResult));
simCb()->simRefresh(toAidl(type), toAidl(refreshResult));
return {};
}
Return<void> RadioIndication::simStatusChanged(V1_0::RadioIndicationType type) {
LOG_CALL << type;
CHECK_CB(mSimCb);
mSimCb->simStatusChanged(toAidl(type));
simCb()->simStatusChanged(toAidl(type));
return {};
}
Return<void> RadioIndication::stkEventNotify(V1_0::RadioIndicationType type,
const hidl_string& cmd) {
LOG_CALL << type;
CHECK_CB(mSimCb);
mSimCb->stkEventNotify(toAidl(type), cmd);
simCb()->stkEventNotify(toAidl(type), cmd);
return {};
}
Return<void> RadioIndication::stkProactiveCommand(V1_0::RadioIndicationType type,
const hidl_string& cmd) {
LOG_CALL << type;
CHECK_CB(mSimCb);
mSimCb->stkProactiveCommand(toAidl(type), cmd);
simCb()->stkProactiveCommand(toAidl(type), cmd);
return {};
}
Return<void> RadioIndication::stkSessionEnd(V1_0::RadioIndicationType type) {
LOG_CALL << type;
CHECK_CB(mSimCb);
mSimCb->stkSessionEnd(toAidl(type));
simCb()->stkSessionEnd(toAidl(type));
return {};
}
Return<void> RadioIndication::subscriptionStatusChanged(V1_0::RadioIndicationType type,
bool activate) {
LOG_CALL << type;
CHECK_CB(mSimCb);
mSimCb->subscriptionStatusChanged(toAidl(type), activate);
simCb()->subscriptionStatusChanged(toAidl(type), activate);
return {};
}
Return<void> RadioIndication::uiccApplicationsEnablementChanged(V1_0::RadioIndicationType type,
bool enabled) {
LOG_CALL << type;
CHECK_CB(mSimCb);
mSimCb->uiccApplicationsEnablementChanged(toAidl(type), enabled);
simCb()->uiccApplicationsEnablementChanged(toAidl(type), enabled);
return {};
}

View File

@@ -29,48 +29,46 @@ namespace android::hardware::radio::compat {
namespace aidl = ::aidl::android::hardware::radio::sim;
void RadioResponse::setResponseFunction(std::shared_ptr<aidl::IRadioSimResponse> simCb) {
CHECK(simCb);
mSimCb = simCb;
}
std::shared_ptr<aidl::IRadioSimResponse> RadioResponse::simCb() {
return mSimCb.get();
}
Return<void> RadioResponse::areUiccApplicationsEnabledResponse(const V1_0::RadioResponseInfo& info,
bool enabled) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->areUiccApplicationsEnabledResponse(toAidl(info), enabled);
simCb()->areUiccApplicationsEnabledResponse(toAidl(info), enabled);
return {};
}
Return<void> RadioResponse::changeIccPin2ForAppResponse(const V1_0::RadioResponseInfo& info,
int32_t remainingRetries) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->changeIccPin2ForAppResponse(toAidl(info), remainingRetries);
simCb()->changeIccPin2ForAppResponse(toAidl(info), remainingRetries);
return {};
}
Return<void> RadioResponse::changeIccPinForAppResponse(const V1_0::RadioResponseInfo& info,
int32_t remainingRetries) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->changeIccPinForAppResponse(toAidl(info), remainingRetries);
simCb()->changeIccPinForAppResponse(toAidl(info), remainingRetries);
return {};
}
Return<void> RadioResponse::enableUiccApplicationsResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->enableUiccApplicationsResponse(toAidl(info));
simCb()->enableUiccApplicationsResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::getAllowedCarriersResponse( //
const V1_0::RadioResponseInfo& info, bool allAllowed, const V1_0::CarrierRestrictions& cr) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
aidl::CarrierRestrictions aidlCr = toAidl(cr);
if (allAllowed) aidlCr = {};
mSimCb->getAllowedCarriersResponse(toAidl(info), aidlCr, {});
simCb()->getAllowedCarriersResponse(toAidl(info), aidlCr, {});
return {};
}
@@ -78,9 +76,8 @@ Return<void> RadioResponse::getAllowedCarriersResponse_1_4(
const V1_0::RadioResponseInfo& info, const V1_4::CarrierRestrictionsWithPriority& carriers,
V1_4::SimLockMultiSimPolicy multiSimPolicy) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->getAllowedCarriersResponse(toAidl(info), toAidl(carriers),
aidl::SimLockMultiSimPolicy(multiSimPolicy));
simCb()->getAllowedCarriersResponse(toAidl(info), toAidl(carriers),
aidl::SimLockMultiSimPolicy(multiSimPolicy));
return {};
}
@@ -88,133 +85,116 @@ Return<void> RadioResponse::getCDMASubscriptionResponse(
const V1_0::RadioResponseInfo& info, const hidl_string& mdn, const hidl_string& hSid,
const hidl_string& hNid, const hidl_string& min, const hidl_string& prl) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->getCdmaSubscriptionResponse(toAidl(info), mdn, hSid, hNid, min, prl);
simCb()->getCdmaSubscriptionResponse(toAidl(info), mdn, hSid, hNid, min, prl);
return {};
}
Return<void> RadioResponse::getCdmaSubscriptionSourceResponse(const V1_0::RadioResponseInfo& info,
V1_0::CdmaSubscriptionSource s) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->getCdmaSubscriptionSourceResponse(toAidl(info), aidl::CdmaSubscriptionSource(s));
simCb()->getCdmaSubscriptionSourceResponse(toAidl(info), aidl::CdmaSubscriptionSource(s));
return {};
}
Return<void> RadioResponse::getFacilityLockForAppResponse(const V1_0::RadioResponseInfo& info,
int32_t response) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->getFacilityLockForAppResponse(toAidl(info), response);
simCb()->getFacilityLockForAppResponse(toAidl(info), response);
return {};
}
Return<void> RadioResponse::getIccCardStatusResponse(const V1_0::RadioResponseInfo& info,
const V1_0::CardStatus& cardStatus) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->getIccCardStatusResponse(toAidl(info), toAidl(cardStatus));
simCb()->getIccCardStatusResponse(toAidl(info), toAidl(cardStatus));
return {};
}
Return<void> RadioResponse::getIccCardStatusResponse_1_2(const V1_0::RadioResponseInfo& info,
const V1_2::CardStatus& cardStatus) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->getIccCardStatusResponse(toAidl(info), toAidl(cardStatus));
simCb()->getIccCardStatusResponse(toAidl(info), toAidl(cardStatus));
return {};
}
Return<void> RadioResponse::getIccCardStatusResponse_1_4(const V1_0::RadioResponseInfo& info,
const V1_4::CardStatus& cardStatus) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->getIccCardStatusResponse(toAidl(info), toAidl(cardStatus));
simCb()->getIccCardStatusResponse(toAidl(info), toAidl(cardStatus));
return {};
}
Return<void> RadioResponse::getIccCardStatusResponse_1_5(const V1_0::RadioResponseInfo& info,
const V1_5::CardStatus& cardStatus) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->getIccCardStatusResponse(toAidl(info), toAidl(cardStatus));
simCb()->getIccCardStatusResponse(toAidl(info), toAidl(cardStatus));
return {};
}
Return<void> RadioResponse::getIMSIForAppResponse(const V1_0::RadioResponseInfo& info,
const hidl_string& imsi) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->getImsiForAppResponse(toAidl(info), imsi);
simCb()->getImsiForAppResponse(toAidl(info), imsi);
return {};
}
Return<void> RadioResponse::getSimPhonebookCapacityResponse(
const V1_6::RadioResponseInfo& info, const V1_6::PhonebookCapacity& capacity) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->getSimPhonebookCapacityResponse(toAidl(info), toAidl(capacity));
simCb()->getSimPhonebookCapacityResponse(toAidl(info), toAidl(capacity));
return {};
}
Return<void> RadioResponse::getSimPhonebookRecordsResponse(const V1_6::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->getSimPhonebookRecordsResponse(toAidl(info));
simCb()->getSimPhonebookRecordsResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::iccCloseLogicalChannelResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->iccCloseLogicalChannelResponse(toAidl(info));
simCb()->iccCloseLogicalChannelResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::iccIOForAppResponse(const V1_0::RadioResponseInfo& info,
const V1_0::IccIoResult& iccIo) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->iccIoForAppResponse(toAidl(info), toAidl(iccIo));
simCb()->iccIoForAppResponse(toAidl(info), toAidl(iccIo));
return {};
}
Return<void> RadioResponse::iccOpenLogicalChannelResponse( //
const V1_0::RadioResponseInfo& info, int32_t chanId, const hidl_vec<int8_t>& selectResp) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->iccOpenLogicalChannelResponse(toAidl(info), chanId, toAidl(selectResp));
simCb()->iccOpenLogicalChannelResponse(toAidl(info), chanId, toAidl(selectResp));
return {};
}
Return<void> RadioResponse::iccTransmitApduBasicChannelResponse(const V1_0::RadioResponseInfo& info,
const V1_0::IccIoResult& result) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->iccTransmitApduBasicChannelResponse(toAidl(info), toAidl(result));
simCb()->iccTransmitApduBasicChannelResponse(toAidl(info), toAidl(result));
return {};
}
Return<void> RadioResponse::iccTransmitApduLogicalChannelResponse(
const V1_0::RadioResponseInfo& info, const V1_0::IccIoResult& result) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->iccTransmitApduLogicalChannelResponse(toAidl(info), toAidl(result));
simCb()->iccTransmitApduLogicalChannelResponse(toAidl(info), toAidl(result));
return {};
}
Return<void> RadioResponse::reportStkServiceIsRunningResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->reportStkServiceIsRunningResponse(toAidl(info));
simCb()->reportStkServiceIsRunningResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::requestIccSimAuthenticationResponse(const V1_0::RadioResponseInfo& info,
const V1_0::IccIoResult& result) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->requestIccSimAuthenticationResponse(toAidl(info), toAidl(result));
simCb()->requestIccSimAuthenticationResponse(toAidl(info), toAidl(result));
return {};
}
@@ -228,121 +208,105 @@ Return<void> RadioResponse::requestIsimAuthenticationResponse(const V1_0::RadioR
Return<void> RadioResponse::sendEnvelopeResponse(const V1_0::RadioResponseInfo& info,
const hidl_string& commandResponse) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->sendEnvelopeResponse(toAidl(info), commandResponse);
simCb()->sendEnvelopeResponse(toAidl(info), commandResponse);
return {};
}
Return<void> RadioResponse::sendEnvelopeWithStatusResponse(const V1_0::RadioResponseInfo& info,
const V1_0::IccIoResult& iccIo) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->sendEnvelopeWithStatusResponse(toAidl(info), toAidl(iccIo));
simCb()->sendEnvelopeWithStatusResponse(toAidl(info), toAidl(iccIo));
return {};
}
Return<void> RadioResponse::sendTerminalResponseToSimResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->sendTerminalResponseToSimResponse(toAidl(info));
simCb()->sendTerminalResponseToSimResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setAllowedCarriersResponse(const V1_0::RadioResponseInfo& info,
int32_t numAllowed) {
LOG_CALL << info.serial << ' ' << numAllowed;
CHECK_CB(mSimCb);
mSimCb->setAllowedCarriersResponse(toAidl(info));
simCb()->setAllowedCarriersResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setAllowedCarriersResponse_1_4(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->setAllowedCarriersResponse(toAidl(info));
simCb()->setAllowedCarriersResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setCarrierInfoForImsiEncryptionResponse(
const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->setCarrierInfoForImsiEncryptionResponse(toAidl(info));
simCb()->setCarrierInfoForImsiEncryptionResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setCdmaSubscriptionSourceResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->setCdmaSubscriptionSourceResponse(toAidl(info));
simCb()->setCdmaSubscriptionSourceResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setFacilityLockForAppResponse(const V1_0::RadioResponseInfo& info,
int32_t retry) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->setFacilityLockForAppResponse(toAidl(info), retry);
simCb()->setFacilityLockForAppResponse(toAidl(info), retry);
return {};
}
Return<void> RadioResponse::setSimCardPowerResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->setSimCardPowerResponse(toAidl(info));
simCb()->setSimCardPowerResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setSimCardPowerResponse_1_1(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->setSimCardPowerResponse(toAidl(info));
simCb()->setSimCardPowerResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setSimCardPowerResponse_1_6(const V1_6::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->setSimCardPowerResponse(toAidl(info));
simCb()->setSimCardPowerResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setUiccSubscriptionResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->setUiccSubscriptionResponse(toAidl(info));
simCb()->setUiccSubscriptionResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::supplyIccPin2ForAppResponse(const V1_0::RadioResponseInfo& info,
int32_t remainingRetries) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->supplyIccPin2ForAppResponse(toAidl(info), remainingRetries);
simCb()->supplyIccPin2ForAppResponse(toAidl(info), remainingRetries);
return {};
}
Return<void> RadioResponse::supplyIccPinForAppResponse(const V1_0::RadioResponseInfo& info,
int32_t remainingRetries) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->supplyIccPinForAppResponse(toAidl(info), remainingRetries);
simCb()->supplyIccPinForAppResponse(toAidl(info), remainingRetries);
return {};
}
Return<void> RadioResponse::supplyIccPuk2ForAppResponse(const V1_0::RadioResponseInfo& info,
int32_t remainingRetries) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->supplyIccPuk2ForAppResponse(toAidl(info), remainingRetries);
simCb()->supplyIccPuk2ForAppResponse(toAidl(info), remainingRetries);
return {};
}
Return<void> RadioResponse::supplyIccPukForAppResponse(const V1_0::RadioResponseInfo& info,
int32_t remainingRetries) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->supplyIccPukForAppResponse(toAidl(info), remainingRetries);
simCb()->supplyIccPukForAppResponse(toAidl(info), remainingRetries);
return {};
}
@@ -350,16 +314,14 @@ Return<void> RadioResponse::supplySimDepersonalizationResponse(const V1_0::Radio
V1_5::PersoSubstate persoType,
int32_t rRet) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->supplySimDepersonalizationResponse(toAidl(info), aidl::PersoSubstate(persoType), rRet);
simCb()->supplySimDepersonalizationResponse(toAidl(info), aidl::PersoSubstate(persoType), rRet);
return {};
}
Return<void> RadioResponse::updateSimPhonebookRecordsResponse(const V1_6::RadioResponseInfo& info,
int32_t updatedRecordIndex) {
LOG_CALL << info.serial;
CHECK_CB(mSimCb);
mSimCb->updateSimPhonebookRecordsResponse(toAidl(info), updatedRecordIndex);
simCb()->updateSimPhonebookRecordsResponse(toAidl(info), updatedRecordIndex);
return {};
}

View File

@@ -30,6 +30,10 @@ using ::ndk::ScopedAStatus;
namespace aidl = ::aidl::android::hardware::radio::sim;
constexpr auto ok = &ScopedAStatus::ok;
std::shared_ptr<aidl::IRadioSimResponse> RadioSim::respond() {
return mRadioResponse->simCb();
}
ScopedAStatus RadioSim::areUiccApplicationsEnabled(int32_t serial) {
LOG_CALL << serial;
mHal1_5->areUiccApplicationsEnabled(serial);
@@ -99,7 +103,7 @@ ScopedAStatus RadioSim::getSimPhonebookCapacity(int32_t serial) {
if (mHal1_6) {
mHal1_6->getSimPhonebookCapacity(serial);
} else {
respond().getSimPhonebookCapacityResponse(notSupported(serial), {});
respond()->getSimPhonebookCapacityResponse(notSupported(serial), {});
}
return ok();
}
@@ -109,7 +113,7 @@ ScopedAStatus RadioSim::getSimPhonebookRecords(int32_t serial) {
if (mHal1_6) {
mHal1_6->getSimPhonebookRecords(serial);
} else {
respond().getSimPhonebookRecordsResponse(notSupported(serial));
respond()->getSimPhonebookRecordsResponse(notSupported(serial));
}
return ok();
}
@@ -287,7 +291,7 @@ ScopedAStatus RadioSim::updateSimPhonebookRecords(int32_t serial,
if (mHal1_6) {
mHal1_6->updateSimPhonebookRecords(serial, toHidl(recordInfo));
} else {
respond().updateSimPhonebookRecordsResponse(notSupported(serial), 0);
respond()->updateSimPhonebookRecordsResponse(notSupported(serial), 0);
}
return ok();
}

View File

@@ -29,113 +29,102 @@ namespace android::hardware::radio::compat {
namespace aidl = ::aidl::android::hardware::radio::voice;
void RadioIndication::setResponseFunction(std::shared_ptr<aidl::IRadioVoiceIndication> voiceCb) {
CHECK(voiceCb);
mVoiceCb = voiceCb;
}
std::shared_ptr<aidl::IRadioVoiceIndication> RadioIndication::voiceCb() {
return mVoiceCb.get();
}
Return<void> RadioIndication::callRing(V1_0::RadioIndicationType type, bool isGsm,
const V1_0::CdmaSignalInfoRecord& record) {
LOG_CALL << type;
CHECK_CB(mVoiceCb);
mVoiceCb->callRing(toAidl(type), isGsm, toAidl(record));
voiceCb()->callRing(toAidl(type), isGsm, toAidl(record));
return {};
}
Return<void> RadioIndication::callStateChanged(V1_0::RadioIndicationType type) {
LOG_CALL << type;
CHECK_CB(mVoiceCb);
mVoiceCb->callStateChanged(toAidl(type));
voiceCb()->callStateChanged(toAidl(type));
return {};
}
Return<void> RadioIndication::cdmaCallWaiting(V1_0::RadioIndicationType type,
const V1_0::CdmaCallWaiting& callWaitingRecord) {
LOG_CALL << type;
CHECK_CB(mVoiceCb);
mVoiceCb->cdmaCallWaiting(toAidl(type), toAidl(callWaitingRecord));
voiceCb()->cdmaCallWaiting(toAidl(type), toAidl(callWaitingRecord));
return {};
}
Return<void> RadioIndication::cdmaInfoRec(V1_0::RadioIndicationType type,
const V1_0::CdmaInformationRecords& records) {
LOG_CALL << type;
CHECK_CB(mVoiceCb);
mVoiceCb->cdmaInfoRec(toAidl(type), toAidl(records.infoRec));
voiceCb()->cdmaInfoRec(toAidl(type), toAidl(records.infoRec));
return {};
}
Return<void> RadioIndication::cdmaOtaProvisionStatus(V1_0::RadioIndicationType type,
V1_0::CdmaOtaProvisionStatus status) {
LOG_CALL << type;
CHECK_CB(mVoiceCb);
mVoiceCb->cdmaOtaProvisionStatus(toAidl(type), aidl::CdmaOtaProvisionStatus(status));
voiceCb()->cdmaOtaProvisionStatus(toAidl(type), aidl::CdmaOtaProvisionStatus(status));
return {};
}
Return<void> RadioIndication::currentEmergencyNumberList(
V1_0::RadioIndicationType type, const hidl_vec<V1_4::EmergencyNumber>& emergencyNumbers) {
LOG_CALL << type;
CHECK_CB(mVoiceCb);
mVoiceCb->currentEmergencyNumberList(toAidl(type), toAidl(emergencyNumbers));
voiceCb()->currentEmergencyNumberList(toAidl(type), toAidl(emergencyNumbers));
return {};
}
Return<void> RadioIndication::enterEmergencyCallbackMode(V1_0::RadioIndicationType type) {
LOG_CALL << type;
CHECK_CB(mVoiceCb);
mVoiceCb->enterEmergencyCallbackMode(toAidl(type));
voiceCb()->enterEmergencyCallbackMode(toAidl(type));
return {};
}
Return<void> RadioIndication::exitEmergencyCallbackMode(V1_0::RadioIndicationType type) {
LOG_CALL << type;
CHECK_CB(mVoiceCb);
mVoiceCb->exitEmergencyCallbackMode(toAidl(type));
voiceCb()->exitEmergencyCallbackMode(toAidl(type));
return {};
}
Return<void> RadioIndication::indicateRingbackTone(V1_0::RadioIndicationType type, bool start) {
LOG_CALL << type;
CHECK_CB(mVoiceCb);
mVoiceCb->indicateRingbackTone(toAidl(type), start);
voiceCb()->indicateRingbackTone(toAidl(type), start);
return {};
}
Return<void> RadioIndication::onSupplementaryServiceIndication(V1_0::RadioIndicationType type,
const V1_0::StkCcUnsolSsResult& ss) {
LOG_CALL << type;
CHECK_CB(mVoiceCb);
mVoiceCb->onSupplementaryServiceIndication(toAidl(type), toAidl(ss));
voiceCb()->onSupplementaryServiceIndication(toAidl(type), toAidl(ss));
return {};
}
Return<void> RadioIndication::resendIncallMute(V1_0::RadioIndicationType type) {
LOG_CALL << type;
CHECK_CB(mVoiceCb);
mVoiceCb->resendIncallMute(toAidl(type));
voiceCb()->resendIncallMute(toAidl(type));
return {};
}
Return<void> RadioIndication::srvccStateNotify(V1_0::RadioIndicationType type,
V1_0::SrvccState state) {
LOG_CALL << type;
CHECK_CB(mVoiceCb);
mVoiceCb->srvccStateNotify(toAidl(type), aidl::SrvccState(state));
voiceCb()->srvccStateNotify(toAidl(type), aidl::SrvccState(state));
return {};
}
Return<void> RadioIndication::stkCallControlAlphaNotify(V1_0::RadioIndicationType type,
const hidl_string& alpha) {
LOG_CALL << type;
CHECK_CB(mVoiceCb);
mVoiceCb->stkCallControlAlphaNotify(toAidl(type), alpha);
voiceCb()->stkCallControlAlphaNotify(toAidl(type), alpha);
return {};
}
Return<void> RadioIndication::stkCallSetup(V1_0::RadioIndicationType type, int64_t timeout) {
LOG_CALL << type;
CHECK_CB(mVoiceCb);
mVoiceCb->stkCallSetup(toAidl(type), timeout);
voiceCb()->stkCallSetup(toAidl(type), timeout);
return {};
}

View File

@@ -29,265 +29,233 @@ namespace android::hardware::radio::compat {
namespace aidl = ::aidl::android::hardware::radio::voice;
void RadioResponse::setResponseFunction(std::shared_ptr<aidl::IRadioVoiceResponse> voiceCb) {
CHECK(voiceCb);
mVoiceCb = voiceCb;
}
std::shared_ptr<aidl::IRadioVoiceResponse> RadioResponse::voiceCb() {
return mVoiceCb.get();
}
Return<void> RadioResponse::acceptCallResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->acceptCallResponse(toAidl(info));
voiceCb()->acceptCallResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::conferenceResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->conferenceResponse(toAidl(info));
voiceCb()->conferenceResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::dialResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->dialResponse(toAidl(info));
voiceCb()->dialResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::emergencyDialResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->emergencyDialResponse(toAidl(info));
voiceCb()->emergencyDialResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::exitEmergencyCallbackModeResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->exitEmergencyCallbackModeResponse(toAidl(info));
voiceCb()->exitEmergencyCallbackModeResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::explicitCallTransferResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->explicitCallTransferResponse(toAidl(info));
voiceCb()->explicitCallTransferResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::getCallForwardStatusResponse(
const V1_0::RadioResponseInfo& info, const hidl_vec<V1_0::CallForwardInfo>& callFwdInfos) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->getCallForwardStatusResponse(toAidl(info), toAidl(callFwdInfos));
voiceCb()->getCallForwardStatusResponse(toAidl(info), toAidl(callFwdInfos));
return {};
}
Return<void> RadioResponse::getCallWaitingResponse(const V1_0::RadioResponseInfo& info, bool enable,
int32_t serviceClass) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->getCallWaitingResponse(toAidl(info), enable, serviceClass);
voiceCb()->getCallWaitingResponse(toAidl(info), enable, serviceClass);
return {};
}
Return<void> RadioResponse::getClipResponse(const V1_0::RadioResponseInfo& info,
V1_0::ClipStatus status) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->getClipResponse(toAidl(info), aidl::ClipStatus(status));
voiceCb()->getClipResponse(toAidl(info), aidl::ClipStatus(status));
return {};
}
Return<void> RadioResponse::getClirResponse(const V1_0::RadioResponseInfo& info, int32_t n,
int32_t m) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->getClirResponse(toAidl(info), n, m);
voiceCb()->getClirResponse(toAidl(info), n, m);
return {};
}
Return<void> RadioResponse::getCurrentCallsResponse(const V1_0::RadioResponseInfo& info,
const hidl_vec<V1_0::Call>& calls) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->getCurrentCallsResponse(toAidl(info), toAidl(calls));
voiceCb()->getCurrentCallsResponse(toAidl(info), toAidl(calls));
return {};
}
Return<void> RadioResponse::getCurrentCallsResponse_1_2(const V1_0::RadioResponseInfo& info,
const hidl_vec<V1_2::Call>& calls) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->getCurrentCallsResponse(toAidl(info), toAidl(calls));
voiceCb()->getCurrentCallsResponse(toAidl(info), toAidl(calls));
return {};
}
Return<void> RadioResponse::getCurrentCallsResponse_1_6(const V1_6::RadioResponseInfo& info,
const hidl_vec<V1_6::Call>& calls) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->getCurrentCallsResponse(toAidl(info), toAidl(calls));
voiceCb()->getCurrentCallsResponse(toAidl(info), toAidl(calls));
return {};
}
Return<void> RadioResponse::getLastCallFailCauseResponse(
const V1_0::RadioResponseInfo& info, const V1_0::LastCallFailCauseInfo& failCauseinfo) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->getLastCallFailCauseResponse(toAidl(info), toAidl(failCauseinfo));
voiceCb()->getLastCallFailCauseResponse(toAidl(info), toAidl(failCauseinfo));
return {};
}
Return<void> RadioResponse::getMuteResponse(const V1_0::RadioResponseInfo& info, bool enable) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->getMuteResponse(toAidl(info), enable);
voiceCb()->getMuteResponse(toAidl(info), enable);
return {};
}
Return<void> RadioResponse::getPreferredVoicePrivacyResponse(const V1_0::RadioResponseInfo& info,
bool enable) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->getPreferredVoicePrivacyResponse(toAidl(info), enable);
voiceCb()->getPreferredVoicePrivacyResponse(toAidl(info), enable);
return {};
}
Return<void> RadioResponse::getTTYModeResponse(const V1_0::RadioResponseInfo& info,
V1_0::TtyMode mode) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->getTtyModeResponse(toAidl(info), aidl::TtyMode(mode));
voiceCb()->getTtyModeResponse(toAidl(info), aidl::TtyMode(mode));
return {};
}
Return<void> RadioResponse::handleStkCallSetupRequestFromSimResponse(
const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->handleStkCallSetupRequestFromSimResponse(toAidl(info));
voiceCb()->handleStkCallSetupRequestFromSimResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::hangupConnectionResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->hangupConnectionResponse(toAidl(info));
voiceCb()->hangupConnectionResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::hangupForegroundResumeBackgroundResponse(
const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->hangupForegroundResumeBackgroundResponse(toAidl(info));
voiceCb()->hangupForegroundResumeBackgroundResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::hangupWaitingOrBackgroundResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->hangupWaitingOrBackgroundResponse(toAidl(info));
voiceCb()->hangupWaitingOrBackgroundResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::rejectCallResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->rejectCallResponse(toAidl(info));
voiceCb()->rejectCallResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::sendBurstDtmfResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->sendBurstDtmfResponse(toAidl(info));
voiceCb()->sendBurstDtmfResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::sendCDMAFeatureCodeResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->sendCdmaFeatureCodeResponse(toAidl(info));
voiceCb()->sendCdmaFeatureCodeResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::sendDtmfResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->sendDtmfResponse(toAidl(info));
voiceCb()->sendDtmfResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::separateConnectionResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->separateConnectionResponse(toAidl(info));
voiceCb()->separateConnectionResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setCallForwardResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->setCallForwardResponse(toAidl(info));
voiceCb()->setCallForwardResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setCallWaitingResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->setCallWaitingResponse(toAidl(info));
voiceCb()->setCallWaitingResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setClirResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->setClirResponse(toAidl(info));
voiceCb()->setClirResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setMuteResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->setMuteResponse(toAidl(info));
voiceCb()->setMuteResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setPreferredVoicePrivacyResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->setPreferredVoicePrivacyResponse(toAidl(info));
voiceCb()->setPreferredVoicePrivacyResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::setTTYModeResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->setTtyModeResponse(toAidl(info));
voiceCb()->setTtyModeResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::startDtmfResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->startDtmfResponse(toAidl(info));
voiceCb()->startDtmfResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::stopDtmfResponse(const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->stopDtmfResponse(toAidl(info));
voiceCb()->stopDtmfResponse(toAidl(info));
return {};
}
Return<void> RadioResponse::switchWaitingOrHoldingAndActiveResponse(
const V1_0::RadioResponseInfo& info) {
LOG_CALL << info.serial;
CHECK_CB(mVoiceCb);
mVoiceCb->switchWaitingOrHoldingAndActiveResponse(toAidl(info));
voiceCb()->switchWaitingOrHoldingAndActiveResponse(toAidl(info));
return {};
}

View File

@@ -30,6 +30,10 @@ using ::ndk::ScopedAStatus;
namespace aidl = ::aidl::android::hardware::radio::voice;
constexpr auto ok = &ScopedAStatus::ok;
std::shared_ptr<aidl::IRadioVoiceResponse> RadioVoice::respond() {
return mRadioResponse->voiceCb();
}
ScopedAStatus RadioVoice::acceptCall(int32_t serial) {
LOG_CALL << serial;
mHal1_5->acceptCall(serial);
@@ -152,7 +156,7 @@ ScopedAStatus RadioVoice::hangupWaitingOrBackground(int32_t serial) {
ScopedAStatus RadioVoice::isVoNrEnabled(int32_t serial) {
LOG_CALL << serial;
// TODO(b/203699028): can't call isVoNrEnabledResponse with 1.6 callback
respond()->isVoNrEnabledResponse(notSupported(serial), false);
return ok();
}
@@ -245,7 +249,8 @@ ScopedAStatus RadioVoice::setTtyMode(int32_t serial, aidl::TtyMode mode) {
ndk::ScopedAStatus RadioVoice::setVoNrEnabled(int32_t serial, [[maybe_unused]] bool enable) {
LOG_CALL << serial;
// TODO(b/203699028): should set `persist.radio.is_vonr_enabled_` property instead
// Note: a workaround for older HALs could also be setting persist.radio.is_vonr_enabled_
respond()->setVoNrEnabledResponse(notSupported(serial));
return ok();
}