1 /*
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 #pragma once
17 
18 #include "DriverContext.h"
19 #include "GuaranteedCallback.h"
20 
21 #include <aidl/android/hardware/radio/data/IRadioDataResponse.h>
22 #include <aidl/android/hardware/radio/ims/IRadioImsResponse.h>
23 #include <aidl/android/hardware/radio/ims/media/IImsMediaListener.h>
24 #include <aidl/android/hardware/radio/messaging/IRadioMessagingResponse.h>
25 #include <aidl/android/hardware/radio/modem/IRadioModemResponse.h>
26 #include <aidl/android/hardware/radio/network/IRadioNetworkResponse.h>
27 #include <aidl/android/hardware/radio/sim/IRadioSimResponse.h>
28 #include <aidl/android/hardware/radio/voice/IRadioVoiceResponse.h>
29 #include <android/hardware/radio/1.6/IRadioResponse.h>
30 
31 namespace android::hardware::radio::compat {
32 
33 class RadioResponse : public V1_6::IRadioResponse {
34     std::shared_ptr<DriverContext> mContext;
35 
36     GuaranteedCallback<::aidl::android::hardware::radio::data::IRadioDataResponse,
37                        ::aidl::android::hardware::radio::data::IRadioDataResponseDefault>
38             mDataCb;
39     GuaranteedCallback<::aidl::android::hardware::radio::messaging::IRadioMessagingResponse,
40                        ::aidl::android::hardware::radio::messaging::IRadioMessagingResponseDefault>
41             mMessagingCb;
42     GuaranteedCallback<::aidl::android::hardware::radio::modem::IRadioModemResponse,
43                        ::aidl::android::hardware::radio::modem::IRadioModemResponseDefault>
44             mModemCb;
45     GuaranteedCallback<::aidl::android::hardware::radio::network::IRadioNetworkResponse,
46                        ::aidl::android::hardware::radio::network::IRadioNetworkResponseDefault>
47             mNetworkCb;
48     GuaranteedCallback<::aidl::android::hardware::radio::sim::IRadioSimResponse,
49                        ::aidl::android::hardware::radio::sim::IRadioSimResponseDefault>
50             mSimCb;
51     GuaranteedCallback<::aidl::android::hardware::radio::voice::IRadioVoiceResponse,
52                        ::aidl::android::hardware::radio::voice::IRadioVoiceResponseDefault>
53             mVoiceCb;
54     GuaranteedCallback<::aidl::android::hardware::radio::ims::IRadioImsResponse,
55                        ::aidl::android::hardware::radio::ims::IRadioImsResponseDefault>
56             mImsCb;
57 
58     // IRadioResponse @ 1.0
59     Return<void> getIccCardStatusResponse(const V1_0::RadioResponseInfo& info,
60                                           const V1_0::CardStatus& cardStatus) override;
61     Return<void> supplyIccPinForAppResponse(const V1_0::RadioResponseInfo& info,
62                                             int32_t remainingRetries) override;
63     Return<void> supplyIccPukForAppResponse(const V1_0::RadioResponseInfo& info,
64                                             int32_t remainingRetries) override;
65     Return<void> supplyIccPin2ForAppResponse(const V1_0::RadioResponseInfo& info,
66                                              int32_t remainingRetries) override;
67     Return<void> supplyIccPuk2ForAppResponse(const V1_0::RadioResponseInfo& info,
68                                              int32_t remainingRetries) override;
69     Return<void> changeIccPinForAppResponse(const V1_0::RadioResponseInfo& info,
70                                             int32_t remainingRetries) override;
71     Return<void> changeIccPin2ForAppResponse(const V1_0::RadioResponseInfo& info,
72                                              int32_t remainingRetries) override;
73     Return<void> supplyNetworkDepersonalizationResponse(const V1_0::RadioResponseInfo& info,
74                                                         int32_t remainingRetries) override;
75     Return<void> getCurrentCallsResponse(const V1_0::RadioResponseInfo& info,
76                                          const hidl_vec<V1_0::Call>& calls) override;
77     Return<void> dialResponse(const V1_0::RadioResponseInfo& info) override;
78     Return<void> getIMSIForAppResponse(const V1_0::RadioResponseInfo& info,
79                                        const hidl_string& imsi) override;
80     Return<void> hangupConnectionResponse(const V1_0::RadioResponseInfo& info) override;
81     Return<void> hangupWaitingOrBackgroundResponse(const V1_0::RadioResponseInfo& info) override;
82     Return<void> hangupForegroundResumeBackgroundResponse(
83             const V1_0::RadioResponseInfo& info) override;
84     Return<void> switchWaitingOrHoldingAndActiveResponse(
85             const V1_0::RadioResponseInfo& info) override;
86     Return<void> conferenceResponse(const V1_0::RadioResponseInfo& info) override;
87     Return<void> rejectCallResponse(const V1_0::RadioResponseInfo& info) override;
88     Return<void> getLastCallFailCauseResponse(
89             const V1_0::RadioResponseInfo& info,
90             const V1_0::LastCallFailCauseInfo& failCauseinfo) override;
91     Return<void> getSignalStrengthResponse(const V1_0::RadioResponseInfo& info,
92                                            const V1_0::SignalStrength& sigStrength) override;
93     Return<void> getVoiceRegistrationStateResponse(
94             const V1_0::RadioResponseInfo& info,
95             const V1_0::VoiceRegStateResult& voiceRegResponse) override;
96     Return<void> getDataRegistrationStateResponse(
97             const V1_0::RadioResponseInfo& info,
98             const V1_0::DataRegStateResult& dataRegResponse) override;
99     Return<void> getOperatorResponse(const V1_0::RadioResponseInfo& info,
100                                      const hidl_string& longName, const hidl_string& shortName,
101                                      const hidl_string& numeric) override;
102     Return<void> setRadioPowerResponse(const V1_0::RadioResponseInfo& info) override;
103     Return<void> sendDtmfResponse(const V1_0::RadioResponseInfo& info) override;
104     Return<void> sendSmsResponse(const V1_0::RadioResponseInfo& info,
105                                  const V1_0::SendSmsResult& sms) override;
106     Return<void> sendSMSExpectMoreResponse(const V1_0::RadioResponseInfo& info,
107                                            const V1_0::SendSmsResult& sms) override;
108     Return<void> setupDataCallResponse(const V1_0::RadioResponseInfo& info,
109                                        const V1_0::SetupDataCallResult& dcResponse) override;
110     Return<void> iccIOForAppResponse(const V1_0::RadioResponseInfo& info,
111                                      const V1_0::IccIoResult& iccIo) override;
112     Return<void> sendUssdResponse(const V1_0::RadioResponseInfo& info) override;
113     Return<void> cancelPendingUssdResponse(const V1_0::RadioResponseInfo& info) override;
114     Return<void> getClirResponse(const V1_0::RadioResponseInfo& info, int32_t n,
115                                  int32_t m) override;
116     Return<void> setClirResponse(const V1_0::RadioResponseInfo& info) override;
117     Return<void> getCallForwardStatusResponse(
118             const V1_0::RadioResponseInfo& info,
119             const hidl_vec<V1_0::CallForwardInfo>& callForwardInfos) override;
120     Return<void> setCallForwardResponse(const V1_0::RadioResponseInfo& info) override;
121     Return<void> getCallWaitingResponse(const V1_0::RadioResponseInfo& info, bool enable,
122                                         int32_t serviceClass) override;
123     Return<void> setCallWaitingResponse(const V1_0::RadioResponseInfo& info) override;
124     Return<void> acknowledgeLastIncomingGsmSmsResponse(
125             const V1_0::RadioResponseInfo& info) override;
126     Return<void> acceptCallResponse(const V1_0::RadioResponseInfo& info) override;
127     Return<void> deactivateDataCallResponse(const V1_0::RadioResponseInfo& info) override;
128     Return<void> getFacilityLockForAppResponse(const V1_0::RadioResponseInfo& info,
129                                                int32_t response) override;
130     Return<void> setFacilityLockForAppResponse(const V1_0::RadioResponseInfo& info,
131                                                int32_t retry) override;
132     Return<void> setBarringPasswordResponse(const V1_0::RadioResponseInfo& info) override;
133     Return<void> getNetworkSelectionModeResponse(const V1_0::RadioResponseInfo& info,
134                                                  bool manual) override;
135     Return<void> setNetworkSelectionModeAutomaticResponse(
136             const V1_0::RadioResponseInfo& info) override;
137     Return<void> setNetworkSelectionModeManualResponse(
138             const V1_0::RadioResponseInfo& info) override;
139     Return<void> getAvailableNetworksResponse(
140             const V1_0::RadioResponseInfo& info,
141             const hidl_vec<V1_0::OperatorInfo>& networkInfos) override;
142     Return<void> startDtmfResponse(const V1_0::RadioResponseInfo& info) override;
143     Return<void> stopDtmfResponse(const V1_0::RadioResponseInfo& info) override;
144     Return<void> getBasebandVersionResponse(const V1_0::RadioResponseInfo& info,
145                                             const hidl_string& version) override;
146     Return<void> separateConnectionResponse(const V1_0::RadioResponseInfo& info) override;
147     Return<void> setMuteResponse(const V1_0::RadioResponseInfo& info) override;
148     Return<void> getMuteResponse(const V1_0::RadioResponseInfo& info, bool enable) override;
149     Return<void> getClipResponse(const V1_0::RadioResponseInfo& info,
150                                  V1_0::ClipStatus status) override;
151     Return<void> getDataCallListResponse(
152             const V1_0::RadioResponseInfo& info,
153             const hidl_vec<V1_0::SetupDataCallResult>& dcResponse) override;
154     Return<void> setSuppServiceNotificationsResponse(const V1_0::RadioResponseInfo& info) override;
155     Return<void> writeSmsToSimResponse(const V1_0::RadioResponseInfo& info, int32_t index) override;
156     Return<void> deleteSmsOnSimResponse(const V1_0::RadioResponseInfo& info) override;
157     Return<void> setBandModeResponse(const V1_0::RadioResponseInfo& info) override;
158     Return<void> getAvailableBandModesResponse(
159             const V1_0::RadioResponseInfo& info,
160             const hidl_vec<V1_0::RadioBandMode>& bandModes) override;
161     Return<void> sendEnvelopeResponse(const V1_0::RadioResponseInfo& info,
162                                       const hidl_string& commandResponse) override;
163     Return<void> sendTerminalResponseToSimResponse(const V1_0::RadioResponseInfo& info) override;
164     Return<void> handleStkCallSetupRequestFromSimResponse(
165             const V1_0::RadioResponseInfo& info) override;
166     Return<void> explicitCallTransferResponse(const V1_0::RadioResponseInfo& info) override;
167     Return<void> setPreferredNetworkTypeResponse(const V1_0::RadioResponseInfo& info) override;
168     Return<void> getPreferredNetworkTypeResponse(const V1_0::RadioResponseInfo& info,
169                                                  V1_0::PreferredNetworkType nwType) override;
170     Return<void> getNeighboringCidsResponse(const V1_0::RadioResponseInfo& info,
171                                             const hidl_vec<V1_0::NeighboringCell>& cells) override;
172     Return<void> setLocationUpdatesResponse(const V1_0::RadioResponseInfo& info) override;
173     Return<void> setCdmaSubscriptionSourceResponse(const V1_0::RadioResponseInfo& info) override;
174     Return<void> setCdmaRoamingPreferenceResponse(const V1_0::RadioResponseInfo& info) override;
175     Return<void> getCdmaRoamingPreferenceResponse(const V1_0::RadioResponseInfo& info,
176                                                   V1_0::CdmaRoamingType type) override;
177     Return<void> setTTYModeResponse(const V1_0::RadioResponseInfo& info) override;
178     Return<void> getTTYModeResponse(const V1_0::RadioResponseInfo& info,
179                                     V1_0::TtyMode mode) override;
180     Return<void> setPreferredVoicePrivacyResponse(const V1_0::RadioResponseInfo& info) override;
181     Return<void> getPreferredVoicePrivacyResponse(const V1_0::RadioResponseInfo& info,
182                                                   bool enable) override;
183     Return<void> sendCDMAFeatureCodeResponse(const V1_0::RadioResponseInfo& info) override;
184     Return<void> sendBurstDtmfResponse(const V1_0::RadioResponseInfo& info) override;
185     Return<void> sendCdmaSmsResponse(const V1_0::RadioResponseInfo& info,
186                                      const V1_0::SendSmsResult& sms) override;
187     Return<void> acknowledgeLastIncomingCdmaSmsResponse(
188             const V1_0::RadioResponseInfo& info) override;
189     Return<void> getGsmBroadcastConfigResponse(
190             const V1_0::RadioResponseInfo& info,
191             const hidl_vec<V1_0::GsmBroadcastSmsConfigInfo>& configs) override;
192     Return<void> setGsmBroadcastConfigResponse(const V1_0::RadioResponseInfo& info) override;
193     Return<void> setGsmBroadcastActivationResponse(const V1_0::RadioResponseInfo& info) override;
194     Return<void> getCdmaBroadcastConfigResponse(
195             const V1_0::RadioResponseInfo& info,
196             const hidl_vec<V1_0::CdmaBroadcastSmsConfigInfo>& configs) override;
197     Return<void> setCdmaBroadcastConfigResponse(const V1_0::RadioResponseInfo& info) override;
198     Return<void> setCdmaBroadcastActivationResponse(const V1_0::RadioResponseInfo& info) override;
199     Return<void> getCDMASubscriptionResponse(  //
200             const V1_0::RadioResponseInfo& info, const hidl_string& mdn, const hidl_string& hSid,
201             const hidl_string& hNid, const hidl_string& min, const hidl_string& prl) override;
202     Return<void> writeSmsToRuimResponse(const V1_0::RadioResponseInfo& info,
203                                         uint32_t index) override;
204     Return<void> deleteSmsOnRuimResponse(const V1_0::RadioResponseInfo& info) override;
205     Return<void> getDeviceIdentityResponse(  //
206             const V1_0::RadioResponseInfo& info, const hidl_string& imei, const hidl_string& imeisv,
207             const hidl_string& esn, const hidl_string& meid) override;
208     Return<void> exitEmergencyCallbackModeResponse(const V1_0::RadioResponseInfo& info) override;
209     Return<void> getSmscAddressResponse(const V1_0::RadioResponseInfo& info,
210                                         const hidl_string& smsc) override;
211     Return<void> setSmscAddressResponse(const V1_0::RadioResponseInfo& info) override;
212     Return<void> reportSmsMemoryStatusResponse(const V1_0::RadioResponseInfo& info) override;
213     Return<void> reportStkServiceIsRunningResponse(const V1_0::RadioResponseInfo& info) override;
214     Return<void> getCdmaSubscriptionSourceResponse(const V1_0::RadioResponseInfo& info,
215                                                    V1_0::CdmaSubscriptionSource source) override;
216     Return<void> requestIsimAuthenticationResponse(const V1_0::RadioResponseInfo& info,
217                                                    const hidl_string& response) override;
218     Return<void> acknowledgeIncomingGsmSmsWithPduResponse(
219             const V1_0::RadioResponseInfo& info) override;
220     Return<void> sendEnvelopeWithStatusResponse(const V1_0::RadioResponseInfo& info,
221                                                 const V1_0::IccIoResult& iccIo) override;
222     Return<void> getVoiceRadioTechnologyResponse(const V1_0::RadioResponseInfo& info,
223                                                  V1_0::RadioTechnology rat) override;
224     Return<void> getCellInfoListResponse(const V1_0::RadioResponseInfo& info,
225                                          const hidl_vec<V1_0::CellInfo>& cellInfo) override;
226     Return<void> setCellInfoListRateResponse(const V1_0::RadioResponseInfo& info) override;
227     Return<void> setInitialAttachApnResponse(const V1_0::RadioResponseInfo& info) override;
228     Return<void> getImsRegistrationStateResponse(const V1_0::RadioResponseInfo& info,
229                                                  bool isRegistered,
230                                                  V1_0::RadioTechnologyFamily ratFamily) override;
231     Return<void> sendImsSmsResponse(const V1_0::RadioResponseInfo& info,
232                                     const V1_0::SendSmsResult& sms) override;
233     Return<void> iccTransmitApduBasicChannelResponse(const V1_0::RadioResponseInfo& info,
234                                                      const V1_0::IccIoResult& result) override;
235     Return<void> iccOpenLogicalChannelResponse(const V1_0::RadioResponseInfo& info,
236                                                int32_t channelId,
237                                                const hidl_vec<int8_t>& selectResponse) override;
238     Return<void> iccCloseLogicalChannelResponse(const V1_0::RadioResponseInfo& info) override;
239     Return<void> iccTransmitApduLogicalChannelResponse(const V1_0::RadioResponseInfo& info,
240                                                        const V1_0::IccIoResult& result) override;
241     Return<void> nvReadItemResponse(const V1_0::RadioResponseInfo& info,
242                                     const hidl_string& result) override;
243     Return<void> nvWriteItemResponse(const V1_0::RadioResponseInfo& info) override;
244     Return<void> nvWriteCdmaPrlResponse(const V1_0::RadioResponseInfo& info) override;
245     Return<void> nvResetConfigResponse(const V1_0::RadioResponseInfo& info) override;
246     Return<void> setUiccSubscriptionResponse(const V1_0::RadioResponseInfo& info) override;
247     Return<void> setDataAllowedResponse(const V1_0::RadioResponseInfo& info) override;
248     Return<void> getHardwareConfigResponse(const V1_0::RadioResponseInfo& info,
249                                            const hidl_vec<V1_0::HardwareConfig>& config) override;
250     Return<void> requestIccSimAuthenticationResponse(const V1_0::RadioResponseInfo& info,
251                                                      const V1_0::IccIoResult& result) override;
252     Return<void> setDataProfileResponse(const V1_0::RadioResponseInfo& info) override;
253     Return<void> requestShutdownResponse(const V1_0::RadioResponseInfo& info) override;
254     Return<void> getRadioCapabilityResponse(const V1_0::RadioResponseInfo& info,
255                                             const V1_0::RadioCapability& rc) override;
256     Return<void> setRadioCapabilityResponse(const V1_0::RadioResponseInfo& info,
257                                             const V1_0::RadioCapability& rc) override;
258     Return<void> startLceServiceResponse(const V1_0::RadioResponseInfo& info,
259                                          const V1_0::LceStatusInfo& statusInfo) override;
260     Return<void> stopLceServiceResponse(const V1_0::RadioResponseInfo& info,
261                                         const V1_0::LceStatusInfo& statusInfo) override;
262     Return<void> pullLceDataResponse(const V1_0::RadioResponseInfo& info,
263                                      const V1_0::LceDataInfo& lceInfo) override;
264     Return<void> getModemActivityInfoResponse(const V1_0::RadioResponseInfo& info,
265                                               const V1_0::ActivityStatsInfo& activityInfo) override;
266     Return<void> setAllowedCarriersResponse(const V1_0::RadioResponseInfo& info,
267                                             int32_t numAllowed) override;
268     Return<void> getAllowedCarriersResponse(const V1_0::RadioResponseInfo& info, bool allAllowed,
269                                             const V1_0::CarrierRestrictions& carriers) override;
270     Return<void> sendDeviceStateResponse(const V1_0::RadioResponseInfo& info) override;
271     Return<void> setIndicationFilterResponse(const V1_0::RadioResponseInfo& info) override;
272     Return<void> setSimCardPowerResponse(const V1_0::RadioResponseInfo& info) override;
273     Return<void> acknowledgeRequest(int32_t serial) override;
274 
275     // IRadioResponse @ 1.1
276     Return<void> setCarrierInfoForImsiEncryptionResponse(
277             const V1_0::RadioResponseInfo& info) override;
278     Return<void> setSimCardPowerResponse_1_1(const V1_0::RadioResponseInfo& info) override;
279     Return<void> startNetworkScanResponse(const V1_0::RadioResponseInfo& info) override;
280     Return<void> stopNetworkScanResponse(const V1_0::RadioResponseInfo& info) override;
281     Return<void> startKeepaliveResponse(const V1_0::RadioResponseInfo& info,
282                                         const V1_1::KeepaliveStatus& status) override;
283     Return<void> stopKeepaliveResponse(const V1_0::RadioResponseInfo& info) override;
284 
285     // IRadioResponse @ 1.2
286     Return<void> getCellInfoListResponse_1_2(const V1_0::RadioResponseInfo& info,
287                                              const hidl_vec<V1_2::CellInfo>& cellInfo) override;
288     Return<void> getIccCardStatusResponse_1_2(const V1_0::RadioResponseInfo& info,
289                                               const V1_2::CardStatus& cardStatus) override;
290     Return<void> setSignalStrengthReportingCriteriaResponse(
291             const V1_0::RadioResponseInfo& info) override;
292     Return<void> setLinkCapacityReportingCriteriaResponse(
293             const V1_0::RadioResponseInfo& info) override;
294     Return<void> getCurrentCallsResponse_1_2(const V1_0::RadioResponseInfo& info,
295                                              const hidl_vec<V1_2::Call>& calls) override;
296     Return<void> getSignalStrengthResponse_1_2(const V1_0::RadioResponseInfo& info,
297                                                const V1_2::SignalStrength& signalStrength) override;
298     Return<void> getVoiceRegistrationStateResponse_1_2(
299             const V1_0::RadioResponseInfo& info,
300             const V1_2::VoiceRegStateResult& voiceRegResponse) override;
301     Return<void> getDataRegistrationStateResponse_1_2(
302             const V1_0::RadioResponseInfo& info,
303             const V1_2::DataRegStateResult& dataRegResponse) override;
304 
305     // IRadioResponse @ 1.3
306     Return<void> setSystemSelectionChannelsResponse(const V1_0::RadioResponseInfo& info) override;
307     Return<void> enableModemResponse(const V1_0::RadioResponseInfo& info) override;
308     Return<void> getModemStackStatusResponse(const V1_0::RadioResponseInfo& info,
309                                              bool isEnabled) override;
310 
311     // IRadioResponse @ 1.4
312     Return<void> emergencyDialResponse(const V1_0::RadioResponseInfo& info) override;
313     Return<void> startNetworkScanResponse_1_4(const V1_0::RadioResponseInfo& info) override;
314     Return<void> getCellInfoListResponse_1_4(const V1_0::RadioResponseInfo& info,
315                                              const hidl_vec<V1_4::CellInfo>& cellInfo) override;
316     Return<void> getDataRegistrationStateResponse_1_4(
317             const V1_0::RadioResponseInfo& info,
318             const V1_4::DataRegStateResult& dataRegResponse) override;
319     Return<void> getIccCardStatusResponse_1_4(const V1_0::RadioResponseInfo& info,
320                                               const V1_4::CardStatus& cardStatus) override;
321     Return<void> getPreferredNetworkTypeBitmapResponse(
322             const V1_0::RadioResponseInfo& info,
323             hidl_bitfield<V1_4::RadioAccessFamily> networkTypeBitmap) override;
324     Return<void> setPreferredNetworkTypeBitmapResponse(
325             const V1_0::RadioResponseInfo& info) override;
326     Return<void> getDataCallListResponse_1_4(
327             const V1_0::RadioResponseInfo& info,
328             const hidl_vec<V1_4::SetupDataCallResult>& dcResponse) override;
329     Return<void> setupDataCallResponse_1_4(const V1_0::RadioResponseInfo& info,
330                                            const V1_4::SetupDataCallResult& dcResponse) override;
331     Return<void> setAllowedCarriersResponse_1_4(const V1_0::RadioResponseInfo& info) override;
332     Return<void> getAllowedCarriersResponse_1_4(
333             const V1_0::RadioResponseInfo& info,
334             const V1_4::CarrierRestrictionsWithPriority& carriers,
335             V1_4::SimLockMultiSimPolicy multiSimPolicy) override;
336     Return<void> getSignalStrengthResponse_1_4(const V1_0::RadioResponseInfo& info,
337                                                const V1_4::SignalStrength& signalStrength) override;
338 
339     // IRadioResponse @ 1.5
340     Return<void> setSignalStrengthReportingCriteriaResponse_1_5(
341             const V1_0::RadioResponseInfo& info) override;
342     Return<void> setLinkCapacityReportingCriteriaResponse_1_5(
343             const V1_0::RadioResponseInfo& info) override;
344     Return<void> enableUiccApplicationsResponse(const V1_0::RadioResponseInfo& info) override;
345     Return<void> areUiccApplicationsEnabledResponse(const V1_0::RadioResponseInfo& info,
346                                                     bool enabled) override;
347     Return<void> setSystemSelectionChannelsResponse_1_5(
348             const V1_0::RadioResponseInfo& info) override;
349     Return<void> startNetworkScanResponse_1_5(const V1_0::RadioResponseInfo& info) override;
350     Return<void> setupDataCallResponse_1_5(const V1_0::RadioResponseInfo& info,
351                                            const V1_5::SetupDataCallResult& dcResponse) override;
352     Return<void> getDataCallListResponse_1_5(
353             const V1_0::RadioResponseInfo& info,
354             const hidl_vec<V1_5::SetupDataCallResult>& dcResponse) override;
355     Return<void> setInitialAttachApnResponse_1_5(const V1_0::RadioResponseInfo& info) override;
356     Return<void> setDataProfileResponse_1_5(const V1_0::RadioResponseInfo& info) override;
357     Return<void> setRadioPowerResponse_1_5(const V1_0::RadioResponseInfo& info) override;
358     Return<void> setIndicationFilterResponse_1_5(const V1_0::RadioResponseInfo& info) override;
359     Return<void> getBarringInfoResponse(const V1_0::RadioResponseInfo& info,
360                                         const V1_5::CellIdentity& cellIdentity,
361                                         const hidl_vec<V1_5::BarringInfo>& barringInfos) override;
362     Return<void> getVoiceRegistrationStateResponse_1_5(
363             const V1_0::RadioResponseInfo& info,
364             const V1_5::RegStateResult& voiceRegResponse) override;
365     Return<void> getDataRegistrationStateResponse_1_5(
366             const V1_0::RadioResponseInfo& info,
367             const V1_5::RegStateResult& dataRegResponse) override;
368     Return<void> getCellInfoListResponse_1_5(const V1_0::RadioResponseInfo& info,
369                                              const hidl_vec<V1_5::CellInfo>& cellInfo) override;
370     Return<void> setNetworkSelectionModeManualResponse_1_5(
371             const V1_0::RadioResponseInfo& info) override;
372     Return<void> sendCdmaSmsExpectMoreResponse(const V1_0::RadioResponseInfo& info,
373                                                const V1_0::SendSmsResult& sms) override;
374     Return<void> supplySimDepersonalizationResponse(const V1_0::RadioResponseInfo& info,
375                                                     V1_5::PersoSubstate persoType,
376                                                     int32_t remainingRetries) override;
377     Return<void> getIccCardStatusResponse_1_5(const V1_0::RadioResponseInfo& info,
378                                               const V1_5::CardStatus& cardStatus) override;
379 
380     // IRadioResponse @ 1.6
381     Return<void> setRadioPowerResponse_1_6(const V1_6::RadioResponseInfo& info) override;
382     Return<void> setupDataCallResponse_1_6(const V1_6::RadioResponseInfo& info,
383                                            const V1_6::SetupDataCallResult& dcResponse) override;
384     Return<void> getDataCallListResponse_1_6(
385             const V1_6::RadioResponseInfo& info,
386             const hidl_vec<V1_6::SetupDataCallResult>& dcResponse) override;
387     Return<void> sendSmsResponse_1_6(const V1_6::RadioResponseInfo& info,
388                                      const V1_0::SendSmsResult& sms) override;
389     Return<void> sendSmsExpectMoreResponse_1_6(const V1_6::RadioResponseInfo& info,
390                                                const V1_0::SendSmsResult& sms) override;
391     Return<void> sendCdmaSmsResponse_1_6(const V1_6::RadioResponseInfo& info,
392                                          const V1_0::SendSmsResult& sms) override;
393     Return<void> sendCdmaSmsExpectMoreResponse_1_6(const V1_6::RadioResponseInfo& info,
394                                                    const V1_0::SendSmsResult& sms) override;
395     Return<void> setSimCardPowerResponse_1_6(const V1_6::RadioResponseInfo& info) override;
396     Return<void> setNrDualConnectivityStateResponse(const V1_6::RadioResponseInfo& info) override;
397     Return<void> isNrDualConnectivityEnabledResponse(const V1_6::RadioResponseInfo& info,
398                                                      bool isEnabled) override;
399     Return<void> allocatePduSessionIdResponse(const V1_6::RadioResponseInfo& info,
400                                               int32_t id) override;
401     Return<void> releasePduSessionIdResponse(const V1_6::RadioResponseInfo& info) override;
402     Return<void> startHandoverResponse(const V1_6::RadioResponseInfo& info) override;
403     Return<void> cancelHandoverResponse(const V1_6::RadioResponseInfo& info) override;
404     Return<void> setAllowedNetworkTypesBitmapResponse(const V1_6::RadioResponseInfo& info) override;
405     Return<void> getAllowedNetworkTypesBitmapResponse(
406             const V1_6::RadioResponseInfo& info,
407             hidl_bitfield<V1_4::RadioAccessFamily> networkTypeBitmap) override;
408     Return<void> setDataThrottlingResponse(const V1_6::RadioResponseInfo& info) override;
409     Return<void> getSystemSelectionChannelsResponse(
410             const V1_6::RadioResponseInfo& info,
411             const hidl_vec<V1_5::RadioAccessSpecifier>& specifiers) override;
412     Return<void> getCellInfoListResponse_1_6(const V1_6::RadioResponseInfo& info,
413                                              const hidl_vec<V1_6::CellInfo>& cellInfo) override;
414     Return<void> getSignalStrengthResponse_1_6(const V1_6::RadioResponseInfo& info,
415                                                const V1_6::SignalStrength& signalStrength) override;
416     Return<void> getVoiceRegistrationStateResponse_1_6(
417             const V1_6::RadioResponseInfo& info,
418             const V1_6::RegStateResult& voiceRegResponse) override;
419     Return<void> getDataRegistrationStateResponse_1_6(
420             const V1_6::RadioResponseInfo& info,
421             const V1_6::RegStateResult& dataRegResponse) override;
422     Return<void> getCurrentCallsResponse_1_6(const V1_6::RadioResponseInfo& info,
423                                              const hidl_vec<V1_6::Call>& calls) override;
424     Return<void> getSlicingConfigResponse(const V1_6::RadioResponseInfo& info,
425                                           const V1_6::SlicingConfig& slicingConfig) override;
426     Return<void> getSimPhonebookRecordsResponse(const V1_6::RadioResponseInfo& info) override;
427     Return<void> getSimPhonebookCapacityResponse(const V1_6::RadioResponseInfo& info,
428                                                  const V1_6::PhonebookCapacity& capacity) override;
429     Return<void> updateSimPhonebookRecordsResponse(const V1_6::RadioResponseInfo& info,
430                                                    int32_t updatedRecordIndex) override;
431 
432   public:
433     RadioResponse(std::shared_ptr<DriverContext> context);
434 
435     void setResponseFunction(
436             std::shared_ptr<::aidl::android::hardware::radio::data::IRadioDataResponse> dataCb);
437     void setResponseFunction(
438             std::shared_ptr<::aidl::android::hardware::radio::messaging::IRadioMessagingResponse>
439                     radioMessagingResponse);
440     void setResponseFunction(
441             std::shared_ptr<::aidl::android::hardware::radio::modem::IRadioModemResponse> modemCb);
442     void setResponseFunction(
443             std::shared_ptr<::aidl::android::hardware::radio::network::IRadioNetworkResponse> nwCb);
444     void setResponseFunction(
445             std::shared_ptr<::aidl::android::hardware::radio::sim::IRadioSimResponse> simCb);
446     void setResponseFunction(
447             std::shared_ptr<::aidl::android::hardware::radio::voice::IRadioVoiceResponse> voiceCb);
448     void setResponseFunction(
449             std::shared_ptr<::aidl::android::hardware::radio::ims::IRadioImsResponse> imsCb);
450 
451     std::shared_ptr<::aidl::android::hardware::radio::data::IRadioDataResponse> dataCb();
452     std::shared_ptr<::aidl::android::hardware::radio::messaging::IRadioMessagingResponse>
453     messagingCb();
454     std::shared_ptr<::aidl::android::hardware::radio::modem::IRadioModemResponse> modemCb();
455     std::shared_ptr<::aidl::android::hardware::radio::network::IRadioNetworkResponse> networkCb();
456     std::shared_ptr<::aidl::android::hardware::radio::sim::IRadioSimResponse> simCb();
457     std::shared_ptr<::aidl::android::hardware::radio::voice::IRadioVoiceResponse> voiceCb();
458     std::shared_ptr<::aidl::android::hardware::radio::ims::IRadioImsResponse> imsCb();
459 };
460 
461 }  // namespace android::hardware::radio::compat
462