summaryrefslogtreecommitdiffstats
path: root/libril/ril_service.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libril/ril_service.cpp')
-rw-r--r--libril/ril_service.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/libril/ril_service.cpp b/libril/ril_service.cpp
index dc2a4ce..5fe4153 100644
--- a/libril/ril_service.cpp
+++ b/libril/ril_service.cpp
@@ -1355,8 +1355,15 @@ Return<void> RadioImpl::setNetworkSelectionModeManual(int32_t serial,
#if VDBG
RLOGD("setNetworkSelectionModeManual: serial %d", serial);
#endif
+#ifndef OLD_MNC_FORMAT
dispatchString(serial, mSlotId, RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL,
operatorNumeric.c_str());
+#else
+ std::string opNum = operatorNumeric;
+ opNum.append("+");
+ dispatchString(serial, mSlotId, RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL,
+ opNum.c_str());
+#endif
return Void();
}
@@ -4573,7 +4580,12 @@ int radio::getAvailableNetworksResponse(int slotId,
for (int i = 0, j = 0; i < numStrings; i = i + 4, j++) {
networks[j].alphaLong = convertCharPtrToHidlString(resp[i]);
networks[j].alphaShort = convertCharPtrToHidlString(resp[i + 1]);
+#ifndef OLD_MNC_FORMAT
networks[j].operatorNumeric = convertCharPtrToHidlString(resp[i + 2]);
+#else
+ const char *mccmncIdx = strrchr(resp[i + 2], '+');
+ networks[j].operatorNumeric = hidl_string(resp[i + 2], mccmncIdx - resp[i + 2]);
+#endif
int status = convertOperatorStatusToInt(resp[i + 3]);
if (status == -1) {
if (e == RIL_E_SUCCESS) responseInfo.error = RadioError::INVALID_RESPONSE;