summaryrefslogtreecommitdiffstats
path: root/telephony/java/android/telephony/RadioAccessFamily.java
diff options
context:
space:
mode:
authorRobert Greenwalt <rgreenwalt@google.com>2015-05-11 17:54:13 -0700
committerRobert Greenwalt <rgreenwalt@google.com>2015-05-13 17:04:03 -0700
commit8c621ef54630e411d50e9ba1d8d8ed19ef93f9e1 (patch)
tree4096702d11b2766de4f7f212784cd85f127ff5d6 /telephony/java/android/telephony/RadioAccessFamily.java
parent67b7ec28872dcb0ba09ef01bb87f7d558cbd19fc (diff)
downloadframeworks_base-8c621ef54630e411d50e9ba1d8d8ed19ef93f9e1.zip
frameworks_base-8c621ef54630e411d50e9ba1d8d8ed19ef93f9e1.tar.gz
frameworks_base-8c621ef54630e411d50e9ba1d8d8ed19ef93f9e1.tar.bz2
Add support for static RadioCapabilities.
Some RILs don't support RIL_REQUEST_GET_RADIO_CAPABILITY. Add code to RIL.java to notice a REQUEST_NOT_SUPPORTED response and check config.xml (config_radio_access_family) for a static answer. Also catching GENERIC_FAILURE responses because Hammerhead modem returns that. B 21079604 created for this. If neither Modem nor config.xml provide data, uses RAF_UNKNOWN so we don't lie about capabilities and also so we fail fast (setPreferredNetwork won't work). bug:20561357 Change-Id: I49e4527fe94919a7094bc7c1e100d20e8f833865
Diffstat (limited to 'telephony/java/android/telephony/RadioAccessFamily.java')
-rw-r--r--telephony/java/android/telephony/RadioAccessFamily.java40
1 files changed, 39 insertions, 1 deletions
diff --git a/telephony/java/android/telephony/RadioAccessFamily.java b/telephony/java/android/telephony/RadioAccessFamily.java
index 9fea418..0c5c557 100644
--- a/telephony/java/android/telephony/RadioAccessFamily.java
+++ b/telephony/java/android/telephony/RadioAccessFamily.java
@@ -255,5 +255,43 @@ public class RadioAccessFamily implements Parcelable {
return type;
}
-}
+ public static int singleRafTypeFromString(String rafString) {
+ switch (rafString) {
+ case "GPRS": return RAF_GPRS;
+ case "EDGE": return RAF_EDGE;
+ case "UMTS": return RAF_UMTS;
+ case "IS95A": return RAF_IS95A;
+ case "IS95B": return RAF_IS95B;
+ case "1XRTT": return RAF_1xRTT;
+ case "EVDO_0": return RAF_EVDO_0;
+ case "EVDO_A": return RAF_EVDO_A;
+ case "HSDPA": return RAF_HSDPA;
+ case "HSUPA": return RAF_HSUPA;
+ case "HSPA": return RAF_HSPA;
+ case "EVDO_B": return RAF_EVDO_B;
+ case "EHRPD": return RAF_EHRPD;
+ case "LTE": return RAF_LTE;
+ case "HSPAP": return RAF_HSPAP;
+ case "GSM": return RAF_GSM;
+ case "TD_SCDMA":return RAF_TD_SCDMA;
+ case "HS": return HS;
+ case "CDMA": return CDMA;
+ case "EVDO": return EVDO;
+ case "WCDMA": return WCDMA;
+ default: return RAF_UNKNOWN;
+ }
+ }
+
+ public static int rafTypeFromString(String rafList) {
+ rafList = rafList.toUpperCase();
+ String[] rafs = rafList.split("\\|");
+ int result = 0;
+ for(String raf : rafs) {
+ int rafType = singleRafTypeFromString(raf.trim());
+ if (rafType == RAF_UNKNOWN) return rafType;
+ result |= rafType;
+ }
+ return result;
+ }
+}