summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ril/libril/ril.cpp13
-rw-r--r--ril/libril/ril_commands.h2
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},