aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrint E. Kriebel <bekit@cyngn.com>2014-04-14 13:37:43 -0700
committerBrint E. Kriebel <bekit@cyngn.com>2014-04-14 13:37:43 -0700
commit4908e67f0fa20d43f9872a59d3d78573cff7beee (patch)
tree2d5e6d1dd5bb6e7d400d50d943a8864001eb88d0
parentd1dc770bb0a1e33fd93c0741c0f45756d4536d11 (diff)
parent913bd2582073ec077c2282a2ec10f74b99aa40d7 (diff)
downloadandroid_frameworks_opt_telephony-stable/cm-10.2.tar.gz
android_frameworks_opt_telephony-stable/cm-10.2.tar.bz2
android_frameworks_opt_telephony-stable/cm-10.2.zip
Merge remote-tracking branch 'github/cm-10.2' into HEADcm-10.2.1.1stable/cm-10.2
-rw-r--r--src/java/com/android/internal/telephony/SamsungQualcommRIL.java69
1 files changed, 68 insertions, 1 deletions
diff --git a/src/java/com/android/internal/telephony/SamsungQualcommRIL.java b/src/java/com/android/internal/telephony/SamsungQualcommRIL.java
index c107e66c4..46d899aa0 100644
--- a/src/java/com/android/internal/telephony/SamsungQualcommRIL.java
+++ b/src/java/com/android/internal/telephony/SamsungQualcommRIL.java
@@ -71,6 +71,8 @@ public class SamsungQualcommRIL extends QualcommMSIM42RIL implements CommandsInt
private boolean oldRilState = needsOldRilFeature("exynos4RadioState");
private boolean googleEditionSS = needsOldRilFeature("googleEditionSS");
private boolean driverCall = needsOldRilFeature("newDriverCall");
+ private boolean dialCode = needsOldRilFeature("newDialCode");
+ private boolean samsungEmergency = needsOldRilFeature("samsungEMSReq");
private boolean hasTdScdmaSignalStrength = needsOldRilFeature("TdScdmaSignalStrength");
private String[] lastKnownOfGood = {null, null, null};
public SamsungQualcommRIL(Context context, int networkMode,
@@ -292,7 +294,8 @@ public class SamsungQualcommRIL extends QualcommMSIM42RIL implements CommandsInt
if(cdmaSubscription != -1) {
setCdmaSubscriptionSource(mCdmaSubscription, null);
}
- setCellInfoListRate(Integer.MAX_VALUE, null);
+ if(mRilVersion >= 8)
+ setCellInfoListRate(Integer.MAX_VALUE, null);
notifyRegistrantsRilConnectionChanged(((int[])ret)[0]);
break;
case RIL_UNSOL_NITZ_TIME_RECEIVED:
@@ -750,4 +753,68 @@ public class SamsungQualcommRIL extends QualcommMSIM42RIL implements CommandsInt
return super.responseSMS(p);
}
+
+ @Override
+ public void
+ dial(String address, int clirMode, UUSInfo uusInfo, Message result) {
+ if (samsungEmergency && PhoneNumberUtils.isEmergencyNumber(address)) {
+ dialEmergencyCall(address, clirMode, result);
+ return;
+ }
+ if(!dialCode){
+ super.dial(address, clirMode, uusInfo, result);
+ return;
+ }
+ RILRequest rr = RILRequest.obtain(RIL_REQUEST_DIAL, result);
+
+ rr.mParcel.writeString(address);
+ rr.mParcel.writeInt(clirMode);
+ rr.mParcel.writeInt(0);
+ rr.mParcel.writeInt(1);
+ rr.mParcel.writeString("");
+
+ if (uusInfo == null) {
+ rr.mParcel.writeInt(0); // UUS information is absent
+ } else {
+ rr.mParcel.writeInt(1); // UUS information is present
+ rr.mParcel.writeInt(uusInfo.getType());
+ rr.mParcel.writeInt(uusInfo.getDcs());
+ rr.mParcel.writeByteArray(uusInfo.getUserData());
+ }
+
+ if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+
+ send(rr);
+ }
+
+ @Override
+ public void getImsRegistrationState(Message result) {
+ if(mRilVersion >= 8)
+ super.getImsRegistrationState(result);
+ else {
+ if (result != null) {
+ CommandException ex = new CommandException(
+ CommandException.Error.REQUEST_NOT_SUPPORTED);
+ AsyncResult.forMessage(result, null, ex);
+ result.sendToTarget();
+ }
+ }
+ }
+
+ static final int RIL_REQUEST_DIAL_EMERGENCY = 10016;
+ public void
+ dialEmergencyCall(String address, int clirMode, Message result) {
+ RILRequest rr;
+ Rlog.v(RILJ_LOG_TAG, "Emergency dial: " + address);
+
+ rr = RILRequest.obtain(RIL_REQUEST_DIAL_EMERGENCY, result);
+ rr.mParcel.writeString(address + "/");
+ rr.mParcel.writeInt(clirMode);
+ rr.mParcel.writeInt(0); // UUS information is absent
+
+ if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+
+ send(rr);
+ }
+
}