diff options
author | Brint E. Kriebel <bekit@cyngn.com> | 2014-04-14 13:37:43 -0700 |
---|---|---|
committer | Brint E. Kriebel <bekit@cyngn.com> | 2014-04-14 13:37:43 -0700 |
commit | 4908e67f0fa20d43f9872a59d3d78573cff7beee (patch) | |
tree | 2d5e6d1dd5bb6e7d400d50d943a8864001eb88d0 | |
parent | d1dc770bb0a1e33fd93c0741c0f45756d4536d11 (diff) | |
parent | 913bd2582073ec077c2282a2ec10f74b99aa40d7 (diff) | |
download | android_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.java | 69 |
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); + } + } |