1 /*
2  * Copyright (C) 2018 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.1 (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.1
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 #include "Radio.h"
17 
18 namespace android {
19 namespace hardware {
20 namespace radio {
21 namespace V1_2 {
22 namespace implementation {
23 
24 // Methods from ::android::hardware::radio::V1_0::IRadio follow.
25 Return<void> Radio::setResponseFunctions(
26     const sp<::android::hardware::radio::V1_0::IRadioResponse>& radioResponse,
27     const sp<::android::hardware::radio::V1_0::IRadioIndication>& radioIndication) {
28     mRadioResponse = radioResponse;
29     mRadioIndication = radioIndication;
30     mRadioResponseV1_1 = ::android::hardware::radio::V1_1::IRadioResponse::castFrom(mRadioResponse)
31                              .withDefault(nullptr);
32     mRadioIndicationV1_1 =
33         ::android::hardware::radio::V1_1::IRadioIndication::castFrom(mRadioIndication)
34             .withDefault(nullptr);
35     if (mRadioResponseV1_1 == nullptr || mRadioIndicationV1_1 == nullptr) {
36         mRadioResponseV1_1 = nullptr;
37         mRadioIndicationV1_1 = nullptr;
38     }
39     mRadioResponseV1_2 = ::android::hardware::radio::V1_2::IRadioResponse::castFrom(mRadioResponse)
40                              .withDefault(nullptr);
41     mRadioIndicationV1_2 =
42         ::android::hardware::radio::V1_2::IRadioIndication::castFrom(mRadioIndication)
43             .withDefault(nullptr);
44     if (mRadioResponseV1_2 == nullptr || mRadioIndicationV1_2 == nullptr) {
45         mRadioResponseV1_2 = nullptr;
46         mRadioIndicationV1_2 = nullptr;
47     }
48     return Void();
49 }
50 
51 Return<void> Radio::getIccCardStatus(int32_t serial) {
52     /**
53      * IRadio-defined request is called from the client and talk to the radio to get
54      * IRadioResponse-defined response or/and IRadioIndication-defined indication back to the
55      * client. This implementation omits and replaces the design and implementation of vendor
56      * codes that needs to handle the receipt of the request and the return of the response from the
57      * radio; this just directly returns a fake response back to the client.
58      */
59 
60     ALOGD("Radio Request: getIccCardStatus is entering");
61 
62     if (mRadioResponse != nullptr || mRadioResponseV1_1 != nullptr ||
63         mRadioResponseV1_2 != nullptr) {
64         // Fake RadioResponseInfo as part of response to return in 1.0, 1.1 and 1.2
65         ::android::hardware::radio::V1_0::RadioResponseInfo info;
66         info.serial = serial;
67         info.type = ::android::hardware::radio::V1_0::RadioResponseType::SOLICITED;
68         info.error = ::android::hardware::radio::V1_0::RadioError::NONE;
69         /**
70          * In IRadio and IRadioResponse 1.2, getIccCardStatus can trigger radio to return
71          * getIccCardStatusResponse_1_2. In their 1.0 and 1.1, getIccCardStatus can trigger radio to
72          * return getIccCardStatusResponse.
73          */
74         if (mRadioResponseV1_2 != nullptr) {
75             // Fake CardStatus as part of getIccCardStatusResponse_1_2 response to return
76             ::android::hardware::radio::V1_2::CardStatus card_status;
77             card_status.base.cardState = ::android::hardware::radio::V1_0::CardState::ABSENT;
78             card_status.base.gsmUmtsSubscriptionAppIndex = 0;
79             card_status.base.cdmaSubscriptionAppIndex = 0;
80             mRadioResponseV1_2->getIccCardStatusResponse_1_2(info, card_status);
81             ALOGD("Radio Response: getIccCardStatusResponse_1_2 is sent");
82         } else if (mRadioResponseV1_1 != nullptr) {
83             // Fake CardStatus as part of getIccCardStatusResponse response to return
84             ::android::hardware::radio::V1_0::CardStatus card_status_V1_0;
85             card_status_V1_0.cardState = ::android::hardware::radio::V1_0::CardState::ABSENT;
86             card_status_V1_0.gsmUmtsSubscriptionAppIndex = 0;
87             card_status_V1_0.cdmaSubscriptionAppIndex = 0;
88             mRadioResponseV1_1->getIccCardStatusResponse(info, card_status_V1_0);
89             ALOGD("Radio Response: getIccCardStatusResponse is sent");
90         } else {
91             // Fake CardStatus as part of getIccCardStatusResponse response to return
92             ::android::hardware::radio::V1_0::CardStatus card_status_V1_0;
93             card_status_V1_0.cardState = ::android::hardware::radio::V1_0::CardState::ABSENT;
94             card_status_V1_0.gsmUmtsSubscriptionAppIndex = 0;
95             card_status_V1_0.cdmaSubscriptionAppIndex = 0;
96             mRadioResponse->getIccCardStatusResponse(info, card_status_V1_0);
97             ALOGD("Radio Response: getIccCardStatusResponse is sent");
98         }
99     } else {
100         ALOGD("mRadioResponse, mRadioResponseV1_1, and mRadioResponseV1_2 are NULL");
101     }
102     return Void();
103 }
104 
105 Return<void> Radio::supplyIccPinForApp(int32_t /* serial */, const hidl_string& /* pin */,
106                                        const hidl_string& /* aid */) {
107     // TODO implement
108     return Void();
109 }
110 
111 Return<void> Radio::supplyIccPukForApp(int32_t /* serial */, const hidl_string& /* puk */,
112                                        const hidl_string& /* pin */, const hidl_string& /* aid */) {
113     // TODO implement
114     return Void();
115 }
116 
117 Return<void> Radio::supplyIccPin2ForApp(int32_t /* serial */, const hidl_string& /* pin2 */,
118                                         const hidl_string& /* aid */) {
119     // TODO implement
120     return Void();
121 }
122 
123 Return<void> Radio::supplyIccPuk2ForApp(int32_t /* serial */, const hidl_string& /* puk2 */,
124                                         const hidl_string& /* pin2 */,
125                                         const hidl_string& /* aid */) {
126     // TODO implement
127     return Void();
128 }
129 
130 Return<void> Radio::changeIccPinForApp(int32_t /* serial */, const hidl_string& /* oldPin */,
131                                        const hidl_string& /* newPin */,
132                                        const hidl_string& /* aid */) {
133     // TODO implement
134     return Void();
135 }
136 
137 Return<void> Radio::changeIccPin2ForApp(int32_t /* serial */, const hidl_string& /* oldPin2 */,
138                                         const hidl_string& /* newPin2 */,
139                                         const hidl_string& /* aid */) {
140     // TODO implement
141     return Void();
142 }
143 
144 Return<void> Radio::supplyNetworkDepersonalization(int32_t /* serial */,
145                                                    const hidl_string& /* netPin */) {
146     // TODO implement
147     return Void();
148 }
149 
150 Return<void> Radio::getCurrentCalls(int32_t /* serial */) {
151     // TODO implement
152     return Void();
153 }
154 
155 Return<void> Radio::dial(int32_t /* serial */,
156                          const ::android::hardware::radio::V1_0::Dial& /* dialInfo */) {
157     // TODO implement
158     return Void();
159 }
160 
161 Return<void> Radio::getImsiForApp(int32_t /* serial */, const hidl_string& /* aid */) {
162     // TODO implement
163     return Void();
164 }
165 
166 Return<void> Radio::hangup(int32_t /* serial */, int32_t /* gsmIndex */) {
167     // TODO implement
168     return Void();
169 }
170 
171 Return<void> Radio::hangupWaitingOrBackground(int32_t /* serial */) {
172     // TODO implement
173     return Void();
174 }
175 
176 Return<void> Radio::hangupForegroundResumeBackground(int32_t /* serial */) {
177     // TODO implement
178     return Void();
179 }
180 
181 Return<void> Radio::switchWaitingOrHoldingAndActive(int32_t /* serial */) {
182     // TODO implement
183     return Void();
184 }
185 
186 Return<void> Radio::conference(int32_t /* serial */) {
187     // TODO implement
188     return Void();
189 }
190 
191 Return<void> Radio::rejectCall(int32_t /* serial */) {
192     // TODO implement
193     return Void();
194 }
195 
196 Return<void> Radio::getLastCallFailCause(int32_t /* serial */) {
197     // TODO implement
198     return Void();
199 }
200 
201 Return<void> Radio::getSignalStrength(int32_t /* serial */) {
202     // TODO implement
203     return Void();
204 }
205 
206 Return<void> Radio::getVoiceRegistrationState(int32_t /* serial */) {
207     // TODO implement
208     return Void();
209 }
210 
211 Return<void> Radio::getDataRegistrationState(int32_t /* serial */) {
212     // TODO implement
213     return Void();
214 }
215 
216 Return<void> Radio::getOperator(int32_t /* serial */) {
217     // TODO implement
218     return Void();
219 }
220 
221 Return<void> Radio::setRadioPower(int32_t /* serial */, bool /* on */) {
222     // TODO implement
223     return Void();
224 }
225 
226 Return<void> Radio::sendDtmf(int32_t /* serial */, const hidl_string& /* s */) {
227     // TODO implement
228     return Void();
229 }
230 
231 Return<void> Radio::sendSms(int32_t /* serial */,
232                             const ::android::hardware::radio::V1_0::GsmSmsMessage& /* message */) {
233     // TODO implement
234     return Void();
235 }
236 
237 Return<void> Radio::sendSMSExpectMore(
238     int32_t /* serial */, const ::android::hardware::radio::V1_0::GsmSmsMessage& /* message */) {
239     // TODO implement
240     return Void();
241 }
242 
243 Return<void> Radio::setupDataCall(
244     int32_t /* serial */, ::android::hardware::radio::V1_0::RadioTechnology /* radioTechnology */,
245     const ::android::hardware::radio::V1_0::DataProfileInfo& /* dataProfileInfo */,
246     bool /* modemCognitive */, bool /* roamingAllowed */, bool /* isRoaming */) {
247     // TODO implement
248     return Void();
249 }
250 
251 Return<void> Radio::iccIOForApp(int32_t /* serial */,
252                                 const ::android::hardware::radio::V1_0::IccIo& /* iccIo */) {
253     // TODO implement
254     return Void();
255 }
256 
257 Return<void> Radio::sendUssd(int32_t /* serial */, const hidl_string& /* ussd */) {
258     // TODO implement
259     return Void();
260 }
261 
262 Return<void> Radio::cancelPendingUssd(int32_t /* serial */) {
263     // TODO implement
264     return Void();
265 }
266 
267 Return<void> Radio::getClir(int32_t /* serial */) {
268     // TODO implement
269     return Void();
270 }
271 
272 Return<void> Radio::setClir(int32_t /* serial */, int32_t /* status */) {
273     // TODO implement
274     return Void();
275 }
276 
277 Return<void> Radio::getCallForwardStatus(
278     int32_t /* serial */, const ::android::hardware::radio::V1_0::CallForwardInfo& /* callInfo */) {
279     // TODO implement
280     return Void();
281 }
282 
283 Return<void> Radio::setCallForward(
284     int32_t /* serial */, const ::android::hardware::radio::V1_0::CallForwardInfo& /* callInfo */) {
285     // TODO implement
286     return Void();
287 }
288 
289 Return<void> Radio::getCallWaiting(int32_t /* serial */, int32_t /* serviceClass */) {
290     // TODO implement
291     return Void();
292 }
293 
294 Return<void> Radio::setCallWaiting(int32_t /* serial */, bool /* enable */,
295                                    int32_t /* serviceClass */) {
296     // TODO implement
297     return Void();
298 }
299 
300 Return<void> Radio::acknowledgeLastIncomingGsmSms(
301     int32_t /* serial */, bool /* success */,
302     ::android::hardware::radio::V1_0::SmsAcknowledgeFailCause /* cause */) {
303     // TODO implement
304     return Void();
305 }
306 
307 Return<void> Radio::acceptCall(int32_t /* serial */) {
308     // TODO implement
309     return Void();
310 }
311 
312 Return<void> Radio::deactivateDataCall(int32_t /* serial */, int32_t /* cid */,
313                                        bool /* reasonRadioShutDown */) {
314     // TODO implement
315     return Void();
316 }
317 
318 Return<void> Radio::getFacilityLockForApp(int32_t /* serial */, const hidl_string& /* facility */,
319                                           const hidl_string& /* password */,
320                                           int32_t /* serviceClass */,
321                                           const hidl_string& /* appId */) {
322     // TODO implement
323     return Void();
324 }
325 
326 Return<void> Radio::setFacilityLockForApp(int32_t /* serial */, const hidl_string& /* facility */,
327                                           bool /* lockState */, const hidl_string& /* password */,
328                                           int32_t /* serviceClass */,
329                                           const hidl_string& /* appId */) {
330     // TODO implement
331     return Void();
332 }
333 
334 Return<void> Radio::setBarringPassword(int32_t /* serial */, const hidl_string& /* facility */,
335                                        const hidl_string& /* oldPassword */,
336                                        const hidl_string& /* newPassword */) {
337     // TODO implement
338     return Void();
339 }
340 
341 Return<void> Radio::getNetworkSelectionMode(int32_t /* serial */) {
342     // TODO implement
343     return Void();
344 }
345 
346 Return<void> Radio::setNetworkSelectionModeAutomatic(int32_t /* serial */) {
347     // TODO implement
348     return Void();
349 }
350 
351 Return<void> Radio::setNetworkSelectionModeManual(int32_t /* serial */,
352                                                   const hidl_string& /* operatorNumeric */) {
353     // TODO implement
354     return Void();
355 }
356 
357 Return<void> Radio::getAvailableNetworks(int32_t /* serial */) {
358     // TODO implement
359     return Void();
360 }
361 
362 Return<void> Radio::startDtmf(int32_t /* serial */, const hidl_string& /* s */) {
363     // TODO implement
364     return Void();
365 }
366 
367 Return<void> Radio::stopDtmf(int32_t /* serial */) {
368     // TODO implement
369     return Void();
370 }
371 
372 Return<void> Radio::getBasebandVersion(int32_t /* serial */) {
373     // TODO implement
374     return Void();
375 }
376 
377 Return<void> Radio::separateConnection(int32_t /* serial */, int32_t /* gsmIndex */) {
378     // TODO implement
379     return Void();
380 }
381 
382 Return<void> Radio::setMute(int32_t /* serial */, bool /* enable */) {
383     // TODO implement
384     return Void();
385 }
386 
387 Return<void> Radio::getMute(int32_t /* serial */) {
388     // TODO implement
389     return Void();
390 }
391 
392 Return<void> Radio::getClip(int32_t /* serial */) {
393     // TODO implement
394     return Void();
395 }
396 
397 Return<void> Radio::getDataCallList(int32_t /* serial */) {
398     // TODO implement
399     return Void();
400 }
401 
402 Return<void> Radio::setSuppServiceNotifications(int32_t /* serial */, bool /* enable */) {
403     // TODO implement
404     return Void();
405 }
406 
407 Return<void> Radio::writeSmsToSim(
408     int32_t /* serial */,
409     const ::android::hardware::radio::V1_0::SmsWriteArgs& /* smsWriteArgs */) {
410     // TODO implement
411     return Void();
412 }
413 
414 Return<void> Radio::deleteSmsOnSim(int32_t /* serial */, int32_t /* index */) {
415     // TODO implement
416     return Void();
417 }
418 
419 Return<void> Radio::setBandMode(int32_t /* serial */,
420                                 ::android::hardware::radio::V1_0::RadioBandMode /* mode */) {
421     // TODO implement
422     return Void();
423 }
424 
425 Return<void> Radio::getAvailableBandModes(int32_t /* serial */) {
426     // TODO implement
427     return Void();
428 }
429 
430 Return<void> Radio::sendEnvelope(int32_t /* serial */, const hidl_string& /* command */) {
431     // TODO implement
432     return Void();
433 }
434 
435 Return<void> Radio::sendTerminalResponseToSim(int32_t /* serial */,
436                                               const hidl_string& /* commandResponse */) {
437     // TODO implement
438     return Void();
439 }
440 
441 Return<void> Radio::handleStkCallSetupRequestFromSim(int32_t /* serial */, bool /* accept */) {
442     // TODO implement
443     return Void();
444 }
445 
446 Return<void> Radio::explicitCallTransfer(int32_t /* serial */) {
447     // TODO implement
448     return Void();
449 }
450 
451 Return<void> Radio::setPreferredNetworkType(
452     int32_t /* serial */, ::android::hardware::radio::V1_0::PreferredNetworkType /* nwType */) {
453     // TODO implement
454     return Void();
455 }
456 
457 Return<void> Radio::getPreferredNetworkType(int32_t /* serial */) {
458     // TODO implement
459     return Void();
460 }
461 
462 Return<void> Radio::getNeighboringCids(int32_t /* serial */) {
463     // TODO implement
464     return Void();
465 }
466 
467 Return<void> Radio::setLocationUpdates(int32_t /* serial */, bool /* enable */) {
468     // TODO implement
469     return Void();
470 }
471 
472 Return<void> Radio::setCdmaSubscriptionSource(
473     int32_t /* serial */, ::android::hardware::radio::V1_0::CdmaSubscriptionSource /* cdmaSub */) {
474     // TODO implement
475     return Void();
476 }
477 
478 Return<void> Radio::setCdmaRoamingPreference(
479     int32_t /* serial */, ::android::hardware::radio::V1_0::CdmaRoamingType /* type */) {
480     // TODO implement
481     return Void();
482 }
483 
484 Return<void> Radio::getCdmaRoamingPreference(int32_t /* serial */) {
485     // TODO implement
486     return Void();
487 }
488 
489 Return<void> Radio::setTTYMode(int32_t /* serial */,
490                                ::android::hardware::radio::V1_0::TtyMode /* mode */) {
491     // TODO implement
492     return Void();
493 }
494 
495 Return<void> Radio::getTTYMode(int32_t /* serial */) {
496     // TODO implement
497     return Void();
498 }
499 
500 Return<void> Radio::setPreferredVoicePrivacy(int32_t /* serial */, bool /* enable */) {
501     // TODO implement
502     return Void();
503 }
504 
505 Return<void> Radio::getPreferredVoicePrivacy(int32_t /* serial */) {
506     // TODO implement
507     return Void();
508 }
509 
510 Return<void> Radio::sendCDMAFeatureCode(int32_t /* serial */,
511                                         const hidl_string& /* featureCode */) {
512     // TODO implement
513     return Void();
514 }
515 
516 Return<void> Radio::sendBurstDtmf(int32_t /* serial */, const hidl_string& /* dtmf*/,
517                                   int32_t /*on*/, int32_t /*off */) {
518     // TODO implement
519     return Void();
520 }
521 
522 Return<void> Radio::sendCdmaSms(int32_t /* serial */,
523                                 const ::android::hardware::radio::V1_0::CdmaSmsMessage& /* sms */) {
524     // TODO implement
525     return Void();
526 }
527 
528 Return<void> Radio::acknowledgeLastIncomingCdmaSms(
529     int32_t /* serial */, const ::android::hardware::radio::V1_0::CdmaSmsAck& /* smsAck */) {
530     // TODO implement
531     return Void();
532 }
533 
534 Return<void> Radio::getGsmBroadcastConfig(int32_t /* serial */) {
535     // TODO implement
536     return Void();
537 }
538 
539 Return<void> Radio::setGsmBroadcastConfig(
540     int32_t /* serial */,
541     const hidl_vec<::android::hardware::radio::V1_0::GsmBroadcastSmsConfigInfo>& /* configInfo */) {
542     // TODO implement
543     return Void();
544 }
545 
546 Return<void> Radio::setGsmBroadcastActivation(int32_t /* serial */, bool /* activate */) {
547     // TODO implement
548     return Void();
549 }
550 
551 Return<void> Radio::getCdmaBroadcastConfig(int32_t /* serial */) {
552     // TODO implement
553     return Void();
554 }
555 
556 Return<void> Radio::setCdmaBroadcastConfig(
557     int32_t /* serial */,
558     const hidl_vec<
559         ::android::hardware::radio::V1_0::CdmaBroadcastSmsConfigInfo>& /* configInfo */) {
560     // TODO implement
561     return Void();
562 }
563 
564 Return<void> Radio::setCdmaBroadcastActivation(int32_t /* serial */, bool /* activate */) {
565     // TODO implement
566     return Void();
567 }
568 
569 Return<void> Radio::getCDMASubscription(int32_t /* serial */) {
570     // TODO implement
571     return Void();
572 }
573 
574 Return<void> Radio::writeSmsToRuim(
575     int32_t /* serial */, const ::android::hardware::radio::V1_0::CdmaSmsWriteArgs& /* cdmaSms */) {
576     // TODO implement
577     return Void();
578 }
579 
580 Return<void> Radio::deleteSmsOnRuim(int32_t /* serial */, int32_t /* index */) {
581     // TODO implement
582     return Void();
583 }
584 
585 Return<void> Radio::getDeviceIdentity(int32_t /* serial */) {
586     // TODO implement
587     return Void();
588 }
589 
590 Return<void> Radio::exitEmergencyCallbackMode(int32_t /* serial */) {
591     // TODO implement
592     return Void();
593 }
594 
595 Return<void> Radio::getSmscAddress(int32_t /* serial */) {
596     // TODO implement
597     return Void();
598 }
599 
600 Return<void> Radio::setSmscAddress(int32_t /* serial */, const hidl_string& /* smsc */) {
601     // TODO implement
602     return Void();
603 }
604 
605 Return<void> Radio::reportSmsMemoryStatus(int32_t /* serial */, bool /* available */) {
606     // TODO implement
607     return Void();
608 }
609 
610 Return<void> Radio::reportStkServiceIsRunning(int32_t /* serial */) {
611     // TODO implement
612     return Void();
613 }
614 
615 Return<void> Radio::getCdmaSubscriptionSource(int32_t /* serial */) {
616     // TODO implement
617     return Void();
618 }
619 
620 Return<void> Radio::requestIsimAuthentication(int32_t /* serial */,
621                                               const hidl_string& /* challenge */) {
622     // TODO implement
623     return Void();
624 }
625 
626 Return<void> Radio::acknowledgeIncomingGsmSmsWithPdu(int32_t /* serial */, bool /* success */,
627                                                      const hidl_string& /* ackPdu */) {
628     // TODO implement
629     return Void();
630 }
631 
632 Return<void> Radio::sendEnvelopeWithStatus(int32_t /* serial */,
633                                            const hidl_string& /* contents */) {
634     // TODO implement
635     return Void();
636 }
637 
638 Return<void> Radio::getVoiceRadioTechnology(int32_t /* serial */) {
639     // TODO implement
640     return Void();
641 }
642 
643 Return<void> Radio::getCellInfoList(int32_t /* serial */) {
644     // TODO implement
645     return Void();
646 }
647 
648 Return<void> Radio::setCellInfoListRate(int32_t /* serial */, int32_t /*rate */) {
649     // TODO implement
650     return Void();
651 }
652 
653 Return<void> Radio::setInitialAttachApn(
654     int32_t /* serial */,
655     const ::android::hardware::radio::V1_0::DataProfileInfo& /* dataProfileInfo */,
656     bool /* modemCognitive */, bool /* isRoaming */) {
657     // TODO implement
658     return Void();
659 }
660 
661 Return<void> Radio::getImsRegistrationState(int32_t /* serial */) {
662     // TODO implement
663     return Void();
664 }
665 
666 Return<void> Radio::sendImsSms(
667     int32_t /* serial */, const ::android::hardware::radio::V1_0::ImsSmsMessage& /* message */) {
668     // TODO implement
669     return Void();
670 }
671 
672 Return<void> Radio::iccTransmitApduBasicChannel(
673     int32_t /* serial */, const ::android::hardware::radio::V1_0::SimApdu& /* message */) {
674     // TODO implement
675     return Void();
676 }
677 
678 Return<void> Radio::iccOpenLogicalChannel(int32_t /* serial */, const hidl_string& /* aid*/,
679                                           int32_t /*p2 */) {
680     // TODO implement
681     return Void();
682 }
683 
684 Return<void> Radio::iccCloseLogicalChannel(int32_t /* serial */, int32_t /* channelId */) {
685     // TODO implement
686     return Void();
687 }
688 
689 Return<void> Radio::iccTransmitApduLogicalChannel(
690     int32_t /* serial */, const ::android::hardware::radio::V1_0::SimApdu& /* message */) {
691     // TODO implement
692     return Void();
693 }
694 
695 Return<void> Radio::nvReadItem(int32_t /* serial */,
696                                ::android::hardware::radio::V1_0::NvItem /* itemId */) {
697     // TODO implement
698     return Void();
699 }
700 
701 Return<void> Radio::nvWriteItem(int32_t /* serial */,
702                                 const ::android::hardware::radio::V1_0::NvWriteItem& /* item */) {
703     // TODO implement
704     return Void();
705 }
706 
707 Return<void> Radio::nvWriteCdmaPrl(int32_t /* serial */, const hidl_vec<uint8_t>& /* prl */) {
708     // TODO implement
709     return Void();
710 }
711 
712 Return<void> Radio::nvResetConfig(int32_t /* serial */,
713                                   ::android::hardware::radio::V1_0::ResetNvType /* resetType */) {
714     // TODO implement
715     return Void();
716 }
717 
718 Return<void> Radio::setUiccSubscription(
719     int32_t /* serial */, const ::android::hardware::radio::V1_0::SelectUiccSub& /* uiccSub */) {
720     // TODO implement
721     return Void();
722 }
723 
724 Return<void> Radio::setDataAllowed(int32_t /* serial */, bool /* allow */) {
725     // TODO implement
726     return Void();
727 }
728 
729 Return<void> Radio::getHardwareConfig(int32_t /* serial */) {
730     // TODO implement
731     return Void();
732 }
733 
734 Return<void> Radio::requestIccSimAuthentication(int32_t /* serial */, int32_t /* authContext */,
735                                                 const hidl_string& /* authData */,
736                                                 const hidl_string& /* aid */) {
737     // TODO implement
738     return Void();
739 }
740 
741 Return<void> Radio::setDataProfile(
742     int32_t /* serial */,
743     const hidl_vec<::android::hardware::radio::V1_0::DataProfileInfo>& /* profiles */,
744     bool /* isRoaming */) {
745     // TODO implement
746     return Void();
747 }
748 
749 Return<void> Radio::requestShutdown(int32_t /* serial */) {
750     // TODO implement
751     return Void();
752 }
753 
754 Return<void> Radio::getRadioCapability(int32_t /* serial */) {
755     // TODO implement
756     return Void();
757 }
758 
759 Return<void> Radio::setRadioCapability(
760     int32_t /* serial */, const ::android::hardware::radio::V1_0::RadioCapability& /* rc */) {
761     // TODO implement
762     return Void();
763 }
764 
765 Return<void> Radio::startLceService(int32_t /* serial */, int32_t /* reportInterval */,
766                                     bool /* pullMode */) {
767     // TODO implement
768     return Void();
769 }
770 
771 Return<void> Radio::stopLceService(int32_t /* serial */) {
772     // TODO implement
773     return Void();
774 }
775 
776 Return<void> Radio::pullLceData(int32_t /* serial */) {
777     // TODO implement
778     return Void();
779 }
780 
781 Return<void> Radio::getModemActivityInfo(int32_t /* serial */) {
782     // TODO implement
783     return Void();
784 }
785 
786 Return<void> Radio::setAllowedCarriers(
787     int32_t /* serial */, bool /* allAllowed */,
788     const ::android::hardware::radio::V1_0::CarrierRestrictions& /* carriers */) {
789     // TODO implement
790     return Void();
791 }
792 
793 Return<void> Radio::getAllowedCarriers(int32_t /* serial */) {
794     // TODO implement
795     return Void();
796 }
797 
798 Return<void> Radio::sendDeviceState(
799     int32_t /* serial */, ::android::hardware::radio::V1_0::DeviceStateType /* deviceStateType */,
800     bool /* state */) {
801     // TODO implement
802     return Void();
803 }
804 
805 Return<void> Radio::setIndicationFilter(int32_t /* serial */,
806                                         hidl_bitfield<IndicationFilter> /* indicationFilter */) {
807     // TODO implement
808     return Void();
809 }
810 
811 Return<void> Radio::setSimCardPower(int32_t /* serial */, bool /* powerUp */) {
812     // TODO implement
813     return Void();
814 }
815 
816 Return<void> Radio::responseAcknowledgement() {
817     // TODO implement
818     return Void();
819 }
820 
821 // Methods from ::android::hardware::radio::V1_1::IRadio follow.
822 Return<void> Radio::setCarrierInfoForImsiEncryption(
823     int32_t /* serial */,
824     const ::android::hardware::radio::V1_1::ImsiEncryptionInfo& /* imsiEncryptionInfo */) {
825     // TODO implement
826     return Void();
827 }
828 
829 Return<void> Radio::setSimCardPower_1_1(
830     int32_t /* serial */, ::android::hardware::radio::V1_1::CardPowerState /* powerUp */) {
831     // TODO implement
832     return Void();
833 }
834 
835 Return<void> Radio::startNetworkScan(
836     int32_t /* serial */,
837     const ::android::hardware::radio::V1_1::NetworkScanRequest& /* request */) {
838     // TODO implement
839     return Void();
840 }
841 
842 Return<void> Radio::stopNetworkScan(int32_t /* serial */) {
843     // TODO implement
844     return Void();
845 }
846 
847 Return<void> Radio::startKeepalive(
848     int32_t /* serial */,
849     const ::android::hardware::radio::V1_1::KeepaliveRequest& /* keepalive */) {
850     // TODO implement
851     return Void();
852 }
853 
854 Return<void> Radio::stopKeepalive(int32_t /* serial */, int32_t /* sessionHandle */) {
855     // TODO implement
856     return Void();
857 }
858 
859 // Methods from ::android::hardware::radio::V1_2::IRadio follow.
860 Return<void> Radio::startNetworkScan_1_2(
861     int32_t /* serial */,
862     const ::android::hardware::radio::V1_2::NetworkScanRequest& /* request */) {
863     // TODO implement
864     return Void();
865 }
866 
867 Return<void> Radio::setIndicationFilter_1_2(
868     int32_t /* serial */, hidl_bitfield<IndicationFilter> /* indicationFilter */) {
869     // TODO implement
870     return Void();
871 }
872 
873 Return<void> Radio::setSignalStrengthReportingCriteria(
874     int32_t /* serial */, int32_t /*hysteresisMs*/, int32_t /*hysteresisDb */,
875     const hidl_vec<int32_t>& /* thresholdsDbm */,
876     ::android::hardware::radio::V1_2::AccessNetwork /* accessNetwork */) {
877     // TODO implement
878     return Void();
879 }
880 
881 Return<void> Radio::setLinkCapacityReportingCriteria(
882     int32_t /* serial */, int32_t /*hysteresisMs*/, int32_t /*hysteresisDlKbps*/,
883     int32_t /*hysteresisUlKbps */, const hidl_vec<int32_t>& /* thresholdsDownlinkKbps */,
884     const hidl_vec<int32_t>& /* thresholdsUplinkKbps */,
885     ::android::hardware::radio::V1_2::AccessNetwork /* accessNetwork */) {
886     // TODO implement
887     return Void();
888 }
889 
890 Return<void> Radio::setupDataCall_1_2(
891     int32_t /* serial */, ::android::hardware::radio::V1_2::AccessNetwork /* accessNetwork */,
892     const ::android::hardware::radio::V1_0::DataProfileInfo& /* dataProfileInfo */,
893     bool /* modemCognitive */, bool /* roamingAllowed */, bool /* isRoaming */,
894     ::android::hardware::radio::V1_2::DataRequestReason /* reason */,
895     const hidl_vec<hidl_string>& /* addresses */, const hidl_vec<hidl_string>& /* dnses */) {
896     // TODO implement
897     return Void();
898 }
899 
900 Return<void> Radio::deactivateDataCall_1_2(
901     int32_t /* serial */, int32_t /* cid */,
902     ::android::hardware::radio::V1_2::DataRequestReason /* reason */) {
903     // TODO implement
904     return Void();
905 }
906 
907 }  // namespace implementation
908 }  // namespace V1_2
909 }  // namespace radio
910 }  // namespace hardware
911 }  // namespace android
912