aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/com/android/internal/telephony/RIL.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/com/android/internal/telephony/RIL.java')
-rw-r--r--src/java/com/android/internal/telephony/RIL.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/java/com/android/internal/telephony/RIL.java b/src/java/com/android/internal/telephony/RIL.java
index b7d576a4f..0bb3802cc 100644
--- a/src/java/com/android/internal/telephony/RIL.java
+++ b/src/java/com/android/internal/telephony/RIL.java
@@ -304,6 +304,11 @@ public final class RIL extends BaseCommands implements CommandsInterface {
private TelephonyMetrics mMetrics = TelephonyMetrics.getInstance();
+ // Number of per-network elements expected in QUERY_AVAILABLE_NETWORKS's response.
+ // 4 elements is default, but many RILs actually return 5, making it impossible to
+ // divide the response array without prior knowledge of the number of elements.
+ protected int mQANElements = SystemProperties.getInt("ro.ril.telephony.mqanelements", 4);
+
//***** Events
static final int EVENT_SEND = 1;
@@ -4109,15 +4114,15 @@ public final class RIL extends BaseCommands implements CommandsInterface {
String strings[] = (String [])responseStrings(p);
ArrayList<OperatorInfo> ret;
- if (strings.length % 4 != 0) {
+ if (strings.length % mQANElements != 0) {
throw new RuntimeException(
"RIL_REQUEST_QUERY_AVAILABLE_NETWORKS: invalid response. Got "
- + strings.length + " strings, expected multible of 4");
+ + strings.length + " strings, expected multiple of " + mQANElements);
}
- ret = new ArrayList<OperatorInfo>(strings.length / 4);
+ ret = new ArrayList<OperatorInfo>(strings.length / mQANElements);
- for (int i = 0 ; i < strings.length ; i += 4) {
+ for (int i = 0 ; i < strings.length ; i += mQANElements) {
ret.add (
new OperatorInfo(
strings[i+0],