summaryrefslogtreecommitdiffstats
path: root/telephony
diff options
context:
space:
mode:
authorDavid Ferguson <ferguson.david@gmail.com>2012-05-26 23:03:06 -0400
committerDavid Ferguson <ferguson.david@gmail.com>2012-05-26 23:06:55 -0400
commitd11600e95b0e6b069dc49b3e2cdc1e9ccc6b6624 (patch)
tree6343314141dc76775c422d11108abcd69aea18a3 /telephony
parenta22d8b297b4388a73458a52ead76dfddc167e1e6 (diff)
downloadframeworks_base-d11600e95b0e6b069dc49b3e2cdc1e9ccc6b6624.zip
frameworks_base-d11600e95b0e6b069dc49b3e2cdc1e9ccc6b6624.tar.gz
frameworks_base-d11600e95b0e6b069dc49b3e2cdc1e9ccc6b6624.tar.bz2
telephony: fix Network Operators list on Samsung Qualcomm devices
setNetworkSelectionModeManual() and responseOperatorInfos() are overridden in QualcommSharedRIL with code that breaks Samsung Qualcomm RIL's. Override them, again, to put back the original functionality found in RIL.java. Change-Id: I7ac663a60edf62c80cdac831443ca6cddbe3702c
Diffstat (limited to 'telephony')
-rw-r--r--telephony/java/com/android/internal/telephony/SamsungQualcommUiccRIL.java43
1 files changed, 43 insertions, 0 deletions
diff --git a/telephony/java/com/android/internal/telephony/SamsungQualcommUiccRIL.java b/telephony/java/com/android/internal/telephony/SamsungQualcommUiccRIL.java
index d3ea252..c45ab19 100644
--- a/telephony/java/com/android/internal/telephony/SamsungQualcommUiccRIL.java
+++ b/telephony/java/com/android/internal/telephony/SamsungQualcommUiccRIL.java
@@ -27,6 +27,8 @@ import android.text.TextUtils;
import android.util.Log;
import com.android.internal.telephony.RILConstants;
+import java.util.ArrayList;
+
/**
* Custom RIL to handle unique behavior of Hercules/Skyrocket/Note radio
*
@@ -106,6 +108,47 @@ public class SamsungQualcommUiccRIL extends QualcommSharedRIL implements Command
}
@Override
+ public void
+ setNetworkSelectionModeManual(String operatorNumeric, Message response) {
+ RILRequest rr
+ = RILRequest.obtain(RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL,
+ response);
+
+ if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ + " " + operatorNumeric);
+
+ rr.mp.writeString(operatorNumeric);
+
+ send(rr);
+ }
+
+ @Override
+ protected Object
+ responseOperatorInfos(Parcel p) {
+ String strings[] = (String [])responseStrings(p);
+ ArrayList<OperatorInfo> ret;
+
+ if (strings.length % 4 != 0) {
+ throw new RuntimeException(
+ "RIL_REQUEST_QUERY_AVAILABLE_NETWORKS: invalid response. Got "
+ + strings.length + " strings, expected multible of 4");
+ }
+
+ ret = new ArrayList<OperatorInfo>(strings.length / 4);
+
+ for (int i = 0 ; i < strings.length ; i += 4) {
+ ret.add (
+ new OperatorInfo(
+ strings[i+0],
+ strings[i+1],
+ strings[i+2],
+ strings[i+3]));
+ }
+
+ return ret;
+ }
+
+ @Override
protected Object
responseIccCardStatus(Parcel p) {
IccCardApplication ca;