summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRicardo Cerqueira <cyanogenmod@cerqueira.org>2012-07-18 21:38:22 +0400
committerGerrit Code Review <gerrit@review.cyanogenmod.com>2012-07-18 21:38:22 +0400
commitace86d5ad0062ab5892451f10b69fa465c0b3f14 (patch)
treed83db5cb0e574337a2cb249e0f24425a1b3a2047
parent90c9446057f07d0b8065a4a44ed0bc6e1861fe2c (diff)
parent9525a5276517fcf3ccf7a23beb90311e43167124 (diff)
downloadframeworks_base-ace86d5ad0062ab5892451f10b69fa465c0b3f14.zip
frameworks_base-ace86d5ad0062ab5892451f10b69fa465c0b3f14.tar.gz
frameworks_base-ace86d5ad0062ab5892451f10b69fa465c0b3f14.tar.bz2
Merge "stk functionality for SamsungRIL" into ics
-rw-r--r--telephony/java/com/android/internal/telephony/SamsungRIL.java287
1 files changed, 8 insertions, 279 deletions
diff --git a/telephony/java/com/android/internal/telephony/SamsungRIL.java b/telephony/java/com/android/internal/telephony/SamsungRIL.java
index fca571c..fa19714 100644
--- a/telephony/java/com/android/internal/telephony/SamsungRIL.java
+++ b/telephony/java/com/android/internal/telephony/SamsungRIL.java
@@ -65,7 +65,6 @@ public class SamsungRIL extends RIL implements CommandsInterface {
}
// SAMSUNG SGS STATES
- static final int RIL_UNSOL_STK_SEND_SMS_RESULT = 11002;
static final int RIL_UNSOL_O2_HOME_ZONE_INFO = 11007;
static final int RIL_UNSOL_DEVICE_READY_NOTI = 11008;
static final int RIL_UNSOL_GPS_NOTI = 11009;
@@ -337,53 +336,26 @@ public class SamsungRIL extends RIL implements CommandsInterface {
processUnsolicited (Parcel p) {
int response;
Object ret;
+ int dataPosition = p.dataPosition();
response = p.readInt();
- try {switch(response) {
+ switch(response) {
/*
cat libs/telephony/ril_unsol_commands.h \
| egrep "^ *{RIL_" \
| sed -re 's/\{([^,]+),[^,]+,([^}]+).+/case \1: \2(rr, p); break;/'
*/
- case RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED: ret = responseVoid(p); break;
- case RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED: ret = responseVoid(p); break;
- case RIL_UNSOL_RESPONSE_VOICE_NETWORK_STATE_CHANGED: ret = responseVoid(p); break;
- case RIL_UNSOL_RESPONSE_NEW_SMS: ret = responseString(p); break;
- case RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT: ret = responseString(p); break;
- case RIL_UNSOL_RESPONSE_NEW_SMS_ON_SIM: ret = responseInts(p); break;
- case RIL_UNSOL_ON_USSD: ret = responseStrings(p); break;
case RIL_UNSOL_NITZ_TIME_RECEIVED: ret = responseString(p); break;
case RIL_UNSOL_SIGNAL_STRENGTH: ret = responseSignalStrength(p); break;
- case RIL_UNSOL_DATA_CALL_LIST_CHANGED: ret = responseDataCallList(p);break;
- case RIL_UNSOL_SUPP_SVC_NOTIFICATION: ret = responseSuppServiceNotification(p); break;
- case RIL_UNSOL_STK_SESSION_END: ret = responseVoid(p); break;
- case RIL_UNSOL_STK_PROACTIVE_COMMAND: ret = responseString(p); break;
- case RIL_UNSOL_STK_EVENT_NOTIFY: ret = responseString(p); break;
- case RIL_UNSOL_STK_CALL_SETUP: ret = responseInts(p); break;
- case RIL_UNSOL_SIM_SMS_STORAGE_FULL: ret = responseVoid(p); break;
- case RIL_UNSOL_SIM_REFRESH: ret = responseInts(p); break;
- case RIL_UNSOL_CALL_RING: ret = responseCallRing(p); break;
- case RIL_UNSOL_RESTRICTED_STATE_CHANGED: ret = responseInts(p); break;
- case RIL_UNSOL_RESPONSE_SIM_STATUS_CHANGED: ret = responseVoid(p); break;
- case RIL_UNSOL_RESPONSE_CDMA_NEW_SMS: ret = responseCdmaSms(p); break;
- case RIL_UNSOL_RESPONSE_NEW_BROADCAST_SMS: ret = responseString(p); break;
- case RIL_UNSOL_CDMA_RUIM_SMS_STORAGE_FULL: ret = responseVoid(p); break;
- case RIL_UNSOL_ENTER_EMERGENCY_CALLBACK_MODE: ret = responseVoid(p); break;
- case RIL_UNSOL_CDMA_CALL_WAITING: ret = responseCdmaCallWaiting(p); break;
- case RIL_UNSOL_CDMA_OTA_PROVISION_STATUS: ret = responseInts(p); break;
case RIL_UNSOL_CDMA_INFO_REC: ret = responseCdmaInformationRecord(p); break;
- case RIL_UNSOL_OEM_HOOK_RAW: ret = responseRaw(p); break;
- case RIL_UNSOL_RINGBACK_TONE: ret = responseInts(p); break;
- case RIL_UNSOL_RESEND_INCALL_MUTE: ret = responseVoid(p); break;
case RIL_UNSOL_HSDPA_STATE_CHANGED: ret = responseInts(p); break;
//fixing anoying Exceptions caused by the new Samsung states
//FIXME figure out what the states mean an what data is in the parcel
case RIL_UNSOL_O2_HOME_ZONE_INFO: ret = responseVoid(p); break;
- case RIL_UNSOL_STK_SEND_SMS_RESULT: ret = responseVoid(p); break;
case RIL_UNSOL_DEVICE_READY_NOTI: ret = responseVoid(p); break;
case RIL_UNSOL_GPS_NOTI: ret = responseVoid(p); break; // Ignored in TW RIL.
case RIL_UNSOL_SAMSUNG_UNKNOWN_MAGIC_REQUEST: ret = responseVoid(p); break;
@@ -391,28 +363,15 @@ public class SamsungRIL extends RIL implements CommandsInterface {
case RIL_UNSOL_AM: ret = responseString(p); break;
default:
- throw new RuntimeException("Unrecognized unsol response: " + response);
- //break; (implied)
- }} catch (Throwable tr) {
- Log.e(LOG_TAG, "Exception processing unsol response: " + response +
- "Exception:" + tr.toString());
+ // Rewind the Parcel
+ p.setDataPosition(dataPosition);
+
+ // Forward responses that we are not overriding to the super class
+ super.processUnsolicited(p);
return;
}
switch(response) {
- case RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED:
- /* has bonus radio state int */
- RadioState newState = getRadioStateFromInt(p.readInt());
- if (RILJ_LOGD) unsljLogMore(response, newState.toString());
-
- switchToRadioState(newState);
- break;
- case RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED:
- if (RILJ_LOGD) unsljLog(response);
-
- mCallStateRegistrants
- .notifyRegistrants(new AsyncResult(null, null, null));
- break;
case RIL_UNSOL_HSDPA_STATE_CHANGED:
if (RILJ_LOGD) unsljLog(response);
@@ -433,66 +392,6 @@ public class SamsungRIL extends RIL implements CommandsInterface {
}
break;
- case RIL_UNSOL_RESPONSE_VOICE_NETWORK_STATE_CHANGED:
- if (RILJ_LOGD) unsljLog(response);
-
- mVoiceNetworkStateRegistrants
- .notifyRegistrants(new AsyncResult(null, null, null));
- break;
- case RIL_UNSOL_RESPONSE_NEW_SMS: {
- if (RILJ_LOGD) unsljLog(response);
-
- // FIXME this should move up a layer
- String a[] = new String[2];
-
- a[1] = (String)ret;
-
- SmsMessage sms;
-
- sms = SmsMessage.newFromCMT(a);
- if (mGsmSmsRegistrant != null) {
- mGsmSmsRegistrant
- .notifyRegistrant(new AsyncResult(null, sms, null));
- }
- break;
- }
- case RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT:
- if (RILJ_LOGD) unsljLogRet(response, ret);
-
- if (mSmsStatusRegistrant != null) {
- mSmsStatusRegistrant.notifyRegistrant(
- new AsyncResult(null, ret, null));
- }
- break;
- case RIL_UNSOL_RESPONSE_NEW_SMS_ON_SIM:
- if (RILJ_LOGD) unsljLogRet(response, ret);
-
- int[] smsIndex = (int[])ret;
-
- if(smsIndex.length == 1) {
- if (mSmsOnSimRegistrant != null) {
- mSmsOnSimRegistrant.
- notifyRegistrant(new AsyncResult(null, smsIndex, null));
- }
- } else {
- if (RILJ_LOGD) riljLog(" NEW_SMS_ON_SIM ERROR with wrong length "
- + smsIndex.length);
- }
- break;
- case RIL_UNSOL_ON_USSD:
- String[] resp = (String[])ret;
-
- if (resp.length < 2) {
- resp = new String[2];
- resp[0] = ((String[])ret)[0];
- resp[1] = null;
- }
- if (RILJ_LOGD) unsljLogMore(response, resp[0]);
- if (mUSSDRegistrant != null) {
- mUSSDRegistrant.notifyRegistrant(
- new AsyncResult (null, resp, null));
- }
- break;
case RIL_UNSOL_NITZ_TIME_RECEIVED:
if (RILJ_LOGD) unsljLogRet(response, ret);
@@ -533,153 +432,7 @@ public class SamsungRIL extends RIL implements CommandsInterface {
if (mSignalStrengthRegistrant != null) {
mSignalStrengthRegistrant.notifyRegistrant(
- new AsyncResult (null, ret, null));
- }
- break;
- case RIL_UNSOL_DATA_CALL_LIST_CHANGED:
- if (RILJ_LOGD) unsljLogRet(response, ret);
-
- mDataNetworkStateRegistrants.notifyRegistrants(new AsyncResult(null, ret, null));
- break;
-
- case RIL_UNSOL_SUPP_SVC_NOTIFICATION:
- if (RILJ_LOGD) unsljLogRet(response, ret);
-
- if (mSsnRegistrant != null) {
- mSsnRegistrant.notifyRegistrant(
- new AsyncResult (null, ret, null));
- }
- break;
-
- case RIL_UNSOL_STK_SESSION_END:
- if (RILJ_LOGD) unsljLog(response);
-
- if (mCatSessionEndRegistrant != null) {
- mCatSessionEndRegistrant.notifyRegistrant(
- new AsyncResult (null, ret, null));
- }
- break;
-
- case RIL_UNSOL_STK_PROACTIVE_COMMAND:
- if (RILJ_LOGD) unsljLogRet(response, ret);
-
- if (mCatProCmdRegistrant != null) {
- mCatProCmdRegistrant.notifyRegistrant(
- new AsyncResult (null, ret, null));
- }
- break;
-
- case RIL_UNSOL_STK_EVENT_NOTIFY:
- if (RILJ_LOGD) unsljLogRet(response, ret);
-
- if (mCatEventRegistrant != null) {
- mCatEventRegistrant.notifyRegistrant(
- new AsyncResult (null, ret, null));
- }
- break;
-
- case RIL_UNSOL_STK_CALL_SETUP:
- if (RILJ_LOGD) unsljLogRet(response, ret);
-
- if (mCatCallSetUpRegistrant != null) {
- mCatCallSetUpRegistrant.notifyRegistrant(
- new AsyncResult (null, ret, null));
- }
- break;
-
- case RIL_UNSOL_SIM_SMS_STORAGE_FULL:
- if (RILJ_LOGD) unsljLog(response);
-
- if (mIccSmsFullRegistrant != null) {
- mIccSmsFullRegistrant.notifyRegistrant();
- }
- break;
-
- case RIL_UNSOL_SIM_REFRESH:
- if (RILJ_LOGD) unsljLogRet(response, ret);
-
- if (mIccRefreshRegistrants != null) {
- mIccRefreshRegistrants.notifyRegistrants(
- new AsyncResult (null, ret, null));
- }
- break;
-
- case RIL_UNSOL_CALL_RING:
- if (RILJ_LOGD) unsljLogRet(response, ret);
-
- if (mRingRegistrant != null) {
- mRingRegistrant.notifyRegistrant(
- new AsyncResult (null, ret, null));
- }
- break;
-
- case RIL_UNSOL_RESTRICTED_STATE_CHANGED:
- if (RILJ_LOGD) unsljLogvRet(response, ret);
- if (mRestrictedStateRegistrant != null) {
- mRestrictedStateRegistrant.notifyRegistrant(
- new AsyncResult (null, ret, null));
- }
- break;
-
- case RIL_UNSOL_RESPONSE_SIM_STATUS_CHANGED:
- if (RILJ_LOGD) unsljLog(response);
-
- if (mIccStatusChangedRegistrants != null) {
- mIccStatusChangedRegistrants.notifyRegistrants();
- }
- break;
-
- case RIL_UNSOL_RESPONSE_CDMA_NEW_SMS:
- if (RILJ_LOGD) unsljLog(response);
-
- SmsMessage sms = (SmsMessage) ret;
-
- if (mCdmaSmsRegistrant != null) {
- mCdmaSmsRegistrant
- .notifyRegistrant(new AsyncResult(null, sms, null));
- }
- break;
-
- case RIL_UNSOL_RESPONSE_NEW_BROADCAST_SMS:
- if (RILJ_LOGD) unsljLog(response);
-
- if (mGsmBroadcastSmsRegistrant != null) {
- mGsmBroadcastSmsRegistrant
- .notifyRegistrant(new AsyncResult(null, ret, null));
- }
- break;
-
- case RIL_UNSOL_CDMA_RUIM_SMS_STORAGE_FULL:
- if (RILJ_LOGD) unsljLog(response);
-
- if (mIccSmsFullRegistrant != null) {
- mIccSmsFullRegistrant.notifyRegistrant();
- }
- break;
-
- case RIL_UNSOL_ENTER_EMERGENCY_CALLBACK_MODE:
- if (RILJ_LOGD) unsljLog(response);
-
- if (mEmergencyCallbackModeRegistrant != null) {
- mEmergencyCallbackModeRegistrant.notifyRegistrant();
- }
- break;
-
- case RIL_UNSOL_CDMA_CALL_WAITING:
- if (RILJ_LOGD) unsljLogRet(response, ret);
-
- if (mCallWaitingInfoRegistrants != null) {
- mCallWaitingInfoRegistrants.notifyRegistrants(
- new AsyncResult (null, ret, null));
- }
- break;
-
- case RIL_UNSOL_CDMA_OTA_PROVISION_STATUS:
- if (RILJ_LOGD) unsljLogRet(response, ret);
-
- if (mOtaProvisionRegistrants != null) {
- mOtaProvisionRegistrants.notifyRegistrants(
- new AsyncResult (null, ret, null));
+ new AsyncResult (null, ret, null));
}
break;
@@ -699,30 +452,6 @@ public class SamsungRIL extends RIL implements CommandsInterface {
}
break;
- case RIL_UNSOL_OEM_HOOK_RAW:
- if (RILJ_LOGD) unsljLogvRet(response, IccUtils.bytesToHexString((byte[])ret));
- if (mUnsolOemHookRawRegistrant != null) {
- mUnsolOemHookRawRegistrant.notifyRegistrant(new AsyncResult(null, ret, null));
- }
- break;
-
- case RIL_UNSOL_RINGBACK_TONE:
- if (RILJ_LOGD) unsljLogvRet(response, ret);
- if (mRingbackToneRegistrants != null) {
- boolean playtone = (((int[])ret)[0] == 1);
- mRingbackToneRegistrants.notifyRegistrants(
- new AsyncResult (null, playtone, null));
- }
- break;
-
- case RIL_UNSOL_RESEND_INCALL_MUTE:
- if (RILJ_LOGD) unsljLogRet(response, ret);
-
- if (mResendIncallMuteRegistrants != null) {
- mResendIncallMuteRegistrants.notifyRegistrants(
- new AsyncResult (null, ret, null));
- }
- break;
case RIL_UNSOL_AM:
String amString = (String) ret;
Log.d(LOG_TAG, "Executing AM: " + amString);