summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakaoka G. Tadashi <takaoka@google.com>2009-11-04 14:36:21 +0900
committerTakaoka G. Tadashi <takaoka@google.com>2009-11-09 16:38:40 +0900
commitc06c1d2c5743b3a7ba0f763873eea78aa4a6f6ed (patch)
tree01ac4f285cb995f5347c82cc590808538eb1c4fa
parentfbf99506bed9f8d8c0d448dbbf7d14a7aff95a20 (diff)
downloadbase-c06c1d2c5743b3a7ba0f763873eea78aa4a6f6ed.tar.gz
Add WSP header to WAP_PUSH_RECEIVED intent in addition to data
Import CL 146651 from //branches/cupcake_dcm
-rw-r--r--core/java/android/provider/Telephony.java3
-rw-r--r--telephony/java/com/android/internal/telephony/WapPushOverSms.java34
2 files changed, 25 insertions, 12 deletions
diff --git a/core/java/android/provider/Telephony.java b/core/java/android/provider/Telephony.java
index c292c537e696..ff29a957e81c 100644
--- a/core/java/android/provider/Telephony.java
+++ b/core/java/android/provider/Telephony.java
@@ -532,7 +532,8 @@ public final class Telephony {
* <li><em>transactionId (Integer)</em> - The WAP transaction
* ID</li>
* <li><em>pduType (Integer)</em> - The WAP PDU type</li>
- * <li><em>data</em> - The data payload of the message</li>
+ * <li><em>header (byte[])</em> - The header of the message</li>
+ * <li><em>data (byte[])</em> - The data payload of the message</li>
* </ul>
*
* <p>If a BroadcastReceiver encounters an error while processing
diff --git a/telephony/java/com/android/internal/telephony/WapPushOverSms.java b/telephony/java/com/android/internal/telephony/WapPushOverSms.java
index 4deb29c6c633..a636a4b3b702 100644
--- a/telephony/java/com/android/internal/telephony/WapPushOverSms.java
+++ b/telephony/java/com/android/internal/telephony/WapPushOverSms.java
@@ -161,28 +161,31 @@ public class WapPushOverSms {
}
index += pduDecoder.getDecodedDataLength();
- int dataIndex = headerStartIndex + headerLength;
boolean dispatchedByApplication = false;
switch (binaryContentType) {
case WspTypeDecoder.CONTENT_TYPE_B_PUSH_CO:
- dispatchWapPdu_PushCO(pdu, transactionId, pduType);
+ dispatchWapPdu_PushCO(pdu, transactionId, pduType, headerStartIndex, headerLength);
dispatchedByApplication = true;
break;
case WspTypeDecoder.CONTENT_TYPE_B_MMS:
- dispatchWapPdu_MMS(pdu, transactionId, pduType, dataIndex);
+ dispatchWapPdu_MMS(pdu, transactionId, pduType, headerStartIndex, headerLength);
dispatchedByApplication = true;
break;
default:
break;
}
if (dispatchedByApplication == false) {
- dispatchWapPdu_default(pdu, transactionId, pduType, mimeType, dataIndex);
+ dispatchWapPdu_default(pdu, transactionId, pduType, mimeType,
+ headerStartIndex, headerLength);
}
return Activity.RESULT_OK;
}
- private void dispatchWapPdu_default(
- byte[] pdu, int transactionId, int pduType, String mimeType, int dataIndex) {
+ private void dispatchWapPdu_default(byte[] pdu, int transactionId, int pduType,
+ String mimeType, int headerStartIndex, int headerLength) {
+ byte[] header = new byte[headerLength];
+ System.arraycopy(pdu, headerStartIndex, header, 0, header.length);
+ int dataIndex = headerStartIndex + headerLength;
byte[] data;
data = new byte[pdu.length - dataIndex];
@@ -192,31 +195,40 @@ public class WapPushOverSms {
intent.setType(mimeType);
intent.putExtra("transactionId", transactionId);
intent.putExtra("pduType", pduType);
+ intent.putExtra("header", header);
intent.putExtra("data", data);
mSmsDispatcher.dispatch(intent, "android.permission.RECEIVE_WAP_PUSH");
}
- private void dispatchWapPdu_PushCO(byte[] pdu, int transactionId, int pduType) {
+ private void dispatchWapPdu_PushCO(byte[] pdu, int transactionId, int pduType,
+ int headerStartIndex, int headerLength) {
+ byte[] header = new byte[headerLength];
+ System.arraycopy(pdu, headerStartIndex, header, 0, header.length);
+
Intent intent = new Intent(Intents.WAP_PUSH_RECEIVED_ACTION);
intent.setType(WspTypeDecoder.CONTENT_MIME_TYPE_B_PUSH_CO);
intent.putExtra("transactionId", transactionId);
intent.putExtra("pduType", pduType);
+ intent.putExtra("header", header);
intent.putExtra("data", pdu);
mSmsDispatcher.dispatch(intent, "android.permission.RECEIVE_WAP_PUSH");
}
- private void dispatchWapPdu_MMS(byte[] pdu, int transactionId, int pduType, int dataIndex) {
- byte[] data;
-
- data = new byte[pdu.length - dataIndex];
+ private void dispatchWapPdu_MMS(byte[] pdu, int transactionId, int pduType,
+ int headerStartIndex, int headerLength) {
+ byte[] header = new byte[headerLength];
+ System.arraycopy(pdu, headerStartIndex, header, 0, header.length);
+ int dataIndex = headerStartIndex + headerLength;
+ byte[] data = new byte[pdu.length - dataIndex];
System.arraycopy(pdu, dataIndex, data, 0, data.length);
Intent intent = new Intent(Intents.WAP_PUSH_RECEIVED_ACTION);
intent.setType(WspTypeDecoder.CONTENT_MIME_TYPE_B_MMS);
intent.putExtra("transactionId", transactionId);
intent.putExtra("pduType", pduType);
+ intent.putExtra("header", header);
intent.putExtra("data", data);
mSmsDispatcher.dispatch(intent, "android.permission.RECEIVE_MMS");