aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Liu <jminjie@google.com>2021-03-02 20:44:26 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2021-03-02 20:44:26 +0000
commit93187c8a808fdca117da8507bd1d87c41063779f (patch)
treefd5cc4ac2cd7ba7bc3ad9d7b01d12f6a60d2d1fd
parent00aafe048b6a4bcbd35b2193b2378a4de4d6ba64 (diff)
parentf595133d0bbf9e74c904f3b2b1441fff07d289c6 (diff)
downloadcuttlefish-93187c8a808fdca117da8507bd1d87c41063779f.tar.gz
Merge "Fix CF implementation of setSimPower"
-rw-r--r--guest/hals/ril/reference-libril/ril_service.cpp9
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]);