diff options
author | Jordan Liu <jminjie@google.com> | 2021-03-02 20:44:26 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2021-03-02 20:44:26 +0000 |
commit | 93187c8a808fdca117da8507bd1d87c41063779f (patch) | |
tree | fd5cc4ac2cd7ba7bc3ad9d7b01d12f6a60d2d1fd | |
parent | 00aafe048b6a4bcbd35b2193b2378a4de4d6ba64 (diff) | |
parent | f595133d0bbf9e74c904f3b2b1441fff07d289c6 (diff) | |
download | cuttlefish-93187c8a808fdca117da8507bd1d87c41063779f.tar.gz |
Merge "Fix CF implementation of setSimPower"
-rw-r--r-- | guest/hals/ril/reference-libril/ril_service.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/guest/hals/ril/reference-libril/ril_service.cpp b/guest/hals/ril/reference-libril/ril_service.cpp index 2141bb954..2afa49840 100644 --- a/guest/hals/ril/reference-libril/ril_service.cpp +++ b/guest/hals/ril/reference-libril/ril_service.cpp @@ -146,6 +146,7 @@ void populateResponseInfo_1_6( struct RadioImpl_1_6 : public V1_6::IRadio { int32_t mSlotId; + V1_1::CardPowerState mSimCardPowerState; sp<IRadioResponse> mRadioResponse; sp<IRadioIndication> mRadioIndication; sp<V1_1::IRadioResponse> mRadioResponseV1_1; @@ -3244,6 +3245,7 @@ Return<void> RadioImpl_1_6::setSimCardPower_1_6(int32_t serial, const V1_1::Card RLOGD("setSimCardPower_1_6: serial %d state %d", serial, state); #endif dispatchInts(serial, mSlotId, RIL_REQUEST_SET_SIM_CARD_POWER, 1, state); + mSimCardPowerState = state; return Void(); } @@ -4878,6 +4880,11 @@ int radio_1_6::getIccCardStatusResponse(int slotId, cardStatusV1_5.applications[i].persoSubstate = (V1_5::PersoSubstate)rilAppStatus[i].perso_substate; } + // If POWER_DOWN then set applications to empty + if (radioService[slotId]->mSimCardPowerState == V1_1::CardPowerState::POWER_DOWN) { + RLOGD("getIccCardStatusResponse: state is POWER_DOWN so clearing apps"); + cardStatusV1_5.applications = {}; + } Return<void> retStatus = radioService[slotId]->mRadioResponseV1_5-> getIccCardStatusResponse_1_5(responseInfo, cardStatusV1_5); radioService[slotId]->checkReturnStatus(retStatus); @@ -12444,6 +12451,8 @@ void radio_1_6::registerService(RIL_RadioFunctions *callbacks, CommandInfo *comm radioService[i] = new RadioImpl_1_6; radioService[i]->mSlotId = i; + RLOGD("registerService: initializing power state to POWER_UP"); + radioService[i]->mSimCardPowerState = V1_1::CardPowerState::POWER_UP; RLOGD("registerService: starting android::hardware::radio::V1_6::IRadio %s for slot %d", serviceNames[i], i); android::status_t status = radioService[i]->registerAsService(serviceNames[i]); |