diff options
author | Utkarsh Gupta <utkarsh.eminem@gmail.com> | 2015-05-10 16:53:37 +0530 |
---|---|---|
committer | Ethan Chen <intervigil@gmail.com> | 2015-05-12 10:03:26 -0700 |
commit | f7a63e5be906f61073c2b142d5e927fd40aadb13 (patch) | |
tree | e01eb439e4d3487cd20732ffab1dd5de4a9e1f92 /ril | |
parent | 8ede9fa98b65d8873219b801565b4a1ccf2a6000 (diff) | |
download | android_hardware_samsung-f7a63e5be906f61073c2b142d5e927fd40aadb13.tar.gz android_hardware_samsung-f7a63e5be906f61073c2b142d5e927fd40aadb13.tar.bz2 android_hardware_samsung-f7a63e5be906f61073c2b142d5e927fd40aadb13.zip |
libril: Fix network operator search
Change-Id: Ib904875c403942ec96dfa229080d9543d7c9b8fa
Diffstat (limited to 'ril')
-rw-r--r-- | ril/libril/ril.cpp | 13 | ||||
-rw-r--r-- | ril/libril/ril_commands.h | 2 |
2 files changed, 13 insertions, 2 deletions
diff --git a/ril/libril/ril.cpp b/ril/libril/ril.cpp index 44e6b86..5b600fd 100644 --- a/ril/libril/ril.cpp +++ b/ril/libril/ril.cpp @@ -284,6 +284,7 @@ static void dispatchRadioCapability(Parcel &p, RequestInfo *pRI); static int responseInts(Parcel &p, void *response, size_t responselen); static int responseIntsGetPreferredNetworkType(Parcel &p, void *response, size_t responselen); static int responseStrings(Parcel &p, void *response, size_t responselen); +static int responseStringsNetworks(Parcel &p, void *response, size_t responselen); static int responseStrings(Parcel &p, void *response, size_t responselen, bool network_search); static int responseString(Parcel &p, void *response, size_t responselen); static int responseVoid(Parcel &p, void *response, size_t responselen); @@ -2271,6 +2272,10 @@ static int responseStrings(Parcel &p, void *response, size_t responselen) { return responseStrings(p, response, responselen, false); } +static int responseStringsNetworks(Parcel &p, void *response, size_t responselen) { + return responseStrings(p, response, responselen, true); +} + /** response is a char **, pointing to an array of char *'s */ static int responseStrings(Parcel &p, void *response, size_t responselen, bool network_search) { int numStrings; @@ -2291,11 +2296,17 @@ static int responseStrings(Parcel &p, void *response, size_t responselen, bool n char **p_cur = (char **) response; numStrings = responselen / sizeof(char *); - p.writeInt32 (numStrings); + if (network_search) { + p.writeInt32 ((numStrings / 5) * 4); + } else { + p.writeInt32 (numStrings); + } /* each string*/ startResponse; for (int i = 0 ; i < numStrings ; i++) { + if (network_search && (i % 5 == 0)) + continue; appendPrintBuf("%s%s,", printBuf, (char*)p_cur[i]); writeStringToParcel (p, p_cur[i]); } diff --git a/ril/libril/ril_commands.h b/ril/libril/ril_commands.h index 59b529e..a4f8447 100644 --- a/ril/libril/ril_commands.h +++ b/ril/libril/ril_commands.h @@ -62,7 +62,7 @@ {RIL_REQUEST_QUERY_NETWORK_SELECTION_MODE, dispatchVoid, responseInts}, {RIL_REQUEST_SET_NETWORK_SELECTION_AUTOMATIC, dispatchVoid, responseVoid}, {RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL, dispatchString, responseVoid}, - {RIL_REQUEST_QUERY_AVAILABLE_NETWORKS , dispatchVoid, responseStrings}, + {RIL_REQUEST_QUERY_AVAILABLE_NETWORKS , dispatchVoid, responseStringsNetworks}, {RIL_REQUEST_DTMF_START, dispatchString, responseVoid}, {RIL_REQUEST_DTMF_STOP, dispatchVoid, responseVoid}, {RIL_REQUEST_BASEBAND_VERSION, dispatchVoid, responseString}, |