blob: 3ad9130314b697b078d3dea733a953a7d25c045a [file] [log] [blame]
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -07001/*
2 * Copyright (C) 2021 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#include <libradiocompat/RadioResponse.h>
18
19#include "commonStructs.h"
20#include "debug.h"
21#include "structs.h"
22
23#include "collections.h"
24
25#define RADIO_MODULE "SimResponse"
26
27namespace android::hardware::radio::compat {
28
29namespace aidl = ::aidl::android::hardware::radio::sim;
30
31void RadioResponse::setResponseFunction(std::shared_ptr<aidl::IRadioSimResponse> simCb) {
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -070032 mSimCb = simCb;
33}
34
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080035std::shared_ptr<aidl::IRadioSimResponse> RadioResponse::simCb() {
36 return mSimCb.get();
37}
38
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -070039Return<void> RadioResponse::areUiccApplicationsEnabledResponse(const V1_0::RadioResponseInfo& info,
40 bool enabled) {
41 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080042 simCb()->areUiccApplicationsEnabledResponse(toAidl(info), enabled);
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -070043 return {};
44}
45
46Return<void> RadioResponse::changeIccPin2ForAppResponse(const V1_0::RadioResponseInfo& info,
47 int32_t remainingRetries) {
48 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080049 simCb()->changeIccPin2ForAppResponse(toAidl(info), remainingRetries);
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -070050 return {};
51}
52
53Return<void> RadioResponse::changeIccPinForAppResponse(const V1_0::RadioResponseInfo& info,
54 int32_t remainingRetries) {
55 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080056 simCb()->changeIccPinForAppResponse(toAidl(info), remainingRetries);
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -070057 return {};
58}
59
60Return<void> RadioResponse::enableUiccApplicationsResponse(const V1_0::RadioResponseInfo& info) {
61 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080062 simCb()->enableUiccApplicationsResponse(toAidl(info));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -070063 return {};
64}
65
66Return<void> RadioResponse::getAllowedCarriersResponse( //
67 const V1_0::RadioResponseInfo& info, bool allAllowed, const V1_0::CarrierRestrictions& cr) {
68 LOG_CALL << info.serial;
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -070069 aidl::CarrierRestrictions aidlCr = toAidl(cr);
70 if (allAllowed) aidlCr = {};
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080071 simCb()->getAllowedCarriersResponse(toAidl(info), aidlCr, {});
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -070072 return {};
73}
74
75Return<void> RadioResponse::getAllowedCarriersResponse_1_4(
76 const V1_0::RadioResponseInfo& info, const V1_4::CarrierRestrictionsWithPriority& carriers,
77 V1_4::SimLockMultiSimPolicy multiSimPolicy) {
78 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080079 simCb()->getAllowedCarriersResponse(toAidl(info), toAidl(carriers),
80 aidl::SimLockMultiSimPolicy(multiSimPolicy));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -070081 return {};
82}
83
84Return<void> RadioResponse::getCDMASubscriptionResponse(
85 const V1_0::RadioResponseInfo& info, const hidl_string& mdn, const hidl_string& hSid,
86 const hidl_string& hNid, const hidl_string& min, const hidl_string& prl) {
87 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080088 simCb()->getCdmaSubscriptionResponse(toAidl(info), mdn, hSid, hNid, min, prl);
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -070089 return {};
90}
91
92Return<void> RadioResponse::getCdmaSubscriptionSourceResponse(const V1_0::RadioResponseInfo& info,
93 V1_0::CdmaSubscriptionSource s) {
94 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -080095 simCb()->getCdmaSubscriptionSourceResponse(toAidl(info), aidl::CdmaSubscriptionSource(s));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -070096 return {};
97}
98
99Return<void> RadioResponse::getFacilityLockForAppResponse(const V1_0::RadioResponseInfo& info,
100 int32_t response) {
101 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800102 simCb()->getFacilityLockForAppResponse(toAidl(info), response);
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700103 return {};
104}
105
106Return<void> RadioResponse::getIccCardStatusResponse(const V1_0::RadioResponseInfo& info,
107 const V1_0::CardStatus& cardStatus) {
108 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800109 simCb()->getIccCardStatusResponse(toAidl(info), toAidl(cardStatus));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700110 return {};
111}
112
113Return<void> RadioResponse::getIccCardStatusResponse_1_2(const V1_0::RadioResponseInfo& info,
114 const V1_2::CardStatus& cardStatus) {
115 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800116 simCb()->getIccCardStatusResponse(toAidl(info), toAidl(cardStatus));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700117 return {};
118}
119
120Return<void> RadioResponse::getIccCardStatusResponse_1_4(const V1_0::RadioResponseInfo& info,
121 const V1_4::CardStatus& cardStatus) {
122 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800123 simCb()->getIccCardStatusResponse(toAidl(info), toAidl(cardStatus));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700124 return {};
125}
126
127Return<void> RadioResponse::getIccCardStatusResponse_1_5(const V1_0::RadioResponseInfo& info,
128 const V1_5::CardStatus& cardStatus) {
129 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800130 simCb()->getIccCardStatusResponse(toAidl(info), toAidl(cardStatus));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700131 return {};
132}
133
134Return<void> RadioResponse::getIMSIForAppResponse(const V1_0::RadioResponseInfo& info,
135 const hidl_string& imsi) {
136 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800137 simCb()->getImsiForAppResponse(toAidl(info), imsi);
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700138 return {};
139}
140
141Return<void> RadioResponse::getSimPhonebookCapacityResponse(
142 const V1_6::RadioResponseInfo& info, const V1_6::PhonebookCapacity& capacity) {
143 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800144 simCb()->getSimPhonebookCapacityResponse(toAidl(info), toAidl(capacity));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700145 return {};
146}
147
148Return<void> RadioResponse::getSimPhonebookRecordsResponse(const V1_6::RadioResponseInfo& info) {
149 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800150 simCb()->getSimPhonebookRecordsResponse(toAidl(info));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700151 return {};
152}
153
154Return<void> RadioResponse::iccCloseLogicalChannelResponse(const V1_0::RadioResponseInfo& info) {
155 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800156 simCb()->iccCloseLogicalChannelResponse(toAidl(info));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700157 return {};
158}
159
160Return<void> RadioResponse::iccIOForAppResponse(const V1_0::RadioResponseInfo& info,
161 const V1_0::IccIoResult& iccIo) {
162 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800163 simCb()->iccIoForAppResponse(toAidl(info), toAidl(iccIo));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700164 return {};
165}
166
167Return<void> RadioResponse::iccOpenLogicalChannelResponse( //
168 const V1_0::RadioResponseInfo& info, int32_t chanId, const hidl_vec<int8_t>& selectResp) {
169 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800170 simCb()->iccOpenLogicalChannelResponse(toAidl(info), chanId, toAidl(selectResp));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700171 return {};
172}
173
174Return<void> RadioResponse::iccTransmitApduBasicChannelResponse(const V1_0::RadioResponseInfo& info,
175 const V1_0::IccIoResult& result) {
176 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800177 simCb()->iccTransmitApduBasicChannelResponse(toAidl(info), toAidl(result));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700178 return {};
179}
180
181Return<void> RadioResponse::iccTransmitApduLogicalChannelResponse(
182 const V1_0::RadioResponseInfo& info, const V1_0::IccIoResult& result) {
183 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800184 simCb()->iccTransmitApduLogicalChannelResponse(toAidl(info), toAidl(result));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700185 return {};
186}
187
188Return<void> RadioResponse::reportStkServiceIsRunningResponse(const V1_0::RadioResponseInfo& info) {
189 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800190 simCb()->reportStkServiceIsRunningResponse(toAidl(info));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700191 return {};
192}
193
194Return<void> RadioResponse::requestIccSimAuthenticationResponse(const V1_0::RadioResponseInfo& info,
195 const V1_0::IccIoResult& result) {
196 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800197 simCb()->requestIccSimAuthenticationResponse(toAidl(info), toAidl(result));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700198 return {};
199}
200
201Return<void> RadioResponse::requestIsimAuthenticationResponse(const V1_0::RadioResponseInfo& info,
202 const hidl_string&) {
203 LOG_CALL << info.serial;
204 LOG(ERROR) << "requestIsimAuthenticationResponse is not supposed to be called";
205 return {};
206}
207
208Return<void> RadioResponse::sendEnvelopeResponse(const V1_0::RadioResponseInfo& info,
209 const hidl_string& commandResponse) {
210 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800211 simCb()->sendEnvelopeResponse(toAidl(info), commandResponse);
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700212 return {};
213}
214
215Return<void> RadioResponse::sendEnvelopeWithStatusResponse(const V1_0::RadioResponseInfo& info,
216 const V1_0::IccIoResult& iccIo) {
217 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800218 simCb()->sendEnvelopeWithStatusResponse(toAidl(info), toAidl(iccIo));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700219 return {};
220}
221
222Return<void> RadioResponse::sendTerminalResponseToSimResponse(const V1_0::RadioResponseInfo& info) {
223 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800224 simCb()->sendTerminalResponseToSimResponse(toAidl(info));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700225 return {};
226}
227
228Return<void> RadioResponse::setAllowedCarriersResponse(const V1_0::RadioResponseInfo& info,
229 int32_t numAllowed) {
230 LOG_CALL << info.serial << ' ' << numAllowed;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800231 simCb()->setAllowedCarriersResponse(toAidl(info));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700232 return {};
233}
234
235Return<void> RadioResponse::setAllowedCarriersResponse_1_4(const V1_0::RadioResponseInfo& info) {
236 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800237 simCb()->setAllowedCarriersResponse(toAidl(info));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700238 return {};
239}
240
241Return<void> RadioResponse::setCarrierInfoForImsiEncryptionResponse(
242 const V1_0::RadioResponseInfo& info) {
243 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800244 simCb()->setCarrierInfoForImsiEncryptionResponse(toAidl(info));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700245 return {};
246}
247
248Return<void> RadioResponse::setCdmaSubscriptionSourceResponse(const V1_0::RadioResponseInfo& info) {
249 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800250 simCb()->setCdmaSubscriptionSourceResponse(toAidl(info));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700251 return {};
252}
253
254Return<void> RadioResponse::setFacilityLockForAppResponse(const V1_0::RadioResponseInfo& info,
255 int32_t retry) {
256 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800257 simCb()->setFacilityLockForAppResponse(toAidl(info), retry);
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700258 return {};
259}
260
261Return<void> RadioResponse::setSimCardPowerResponse(const V1_0::RadioResponseInfo& info) {
262 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800263 simCb()->setSimCardPowerResponse(toAidl(info));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700264 return {};
265}
266
267Return<void> RadioResponse::setSimCardPowerResponse_1_1(const V1_0::RadioResponseInfo& info) {
268 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800269 simCb()->setSimCardPowerResponse(toAidl(info));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700270 return {};
271}
272
273Return<void> RadioResponse::setSimCardPowerResponse_1_6(const V1_6::RadioResponseInfo& info) {
274 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800275 simCb()->setSimCardPowerResponse(toAidl(info));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700276 return {};
277}
278
279Return<void> RadioResponse::setUiccSubscriptionResponse(const V1_0::RadioResponseInfo& info) {
280 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800281 simCb()->setUiccSubscriptionResponse(toAidl(info));
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700282 return {};
283}
284
285Return<void> RadioResponse::supplyIccPin2ForAppResponse(const V1_0::RadioResponseInfo& info,
286 int32_t remainingRetries) {
287 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800288 simCb()->supplyIccPin2ForAppResponse(toAidl(info), remainingRetries);
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700289 return {};
290}
291
292Return<void> RadioResponse::supplyIccPinForAppResponse(const V1_0::RadioResponseInfo& info,
293 int32_t remainingRetries) {
294 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800295 simCb()->supplyIccPinForAppResponse(toAidl(info), remainingRetries);
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700296 return {};
297}
298
299Return<void> RadioResponse::supplyIccPuk2ForAppResponse(const V1_0::RadioResponseInfo& info,
300 int32_t remainingRetries) {
301 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800302 simCb()->supplyIccPuk2ForAppResponse(toAidl(info), remainingRetries);
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700303 return {};
304}
305
306Return<void> RadioResponse::supplyIccPukForAppResponse(const V1_0::RadioResponseInfo& info,
307 int32_t remainingRetries) {
308 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800309 simCb()->supplyIccPukForAppResponse(toAidl(info), remainingRetries);
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700310 return {};
311}
312
313Return<void> RadioResponse::supplySimDepersonalizationResponse(const V1_0::RadioResponseInfo& info,
314 V1_5::PersoSubstate persoType,
315 int32_t rRet) {
316 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800317 simCb()->supplySimDepersonalizationResponse(toAidl(info), aidl::PersoSubstate(persoType), rRet);
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700318 return {};
319}
320
321Return<void> RadioResponse::updateSimPhonebookRecordsResponse(const V1_6::RadioResponseInfo& info,
322 int32_t updatedRecordIndex) {
323 LOG_CALL << info.serial;
Tomasz Wasilczyk60638572021-12-13 17:13:48 -0800324 simCb()->updateSimPhonebookRecordsResponse(toAidl(info), updatedRecordIndex);
Tomasz Wasilczyk7f51a9a2021-10-28 13:22:47 -0700325 return {};
326}
327
328} // namespace android::hardware::radio::compat