am 5c7d9e81: CDMA incoming MMS fixes

Merge commit '5c7d9e8194900a2b1699cd57f95b22ca5f7b9be2'

* commit '5c7d9e8194900a2b1699cd57f95b22ca5f7b9be2':
  CDMA incoming MMS fixes
This commit is contained in:
David Krause
2009-06-25 22:01:20 -07:00
committed by The Android Open Source Project
2 changed files with 16 additions and 7 deletions

View File

@@ -78,6 +78,7 @@ public abstract class SMSDispatcher extends Handler {
protected static final String[] RAW_PROJECTION = new String[] {
"pdu",
"sequence",
"destination_port",
};
static final int MAIL_SEND_SMS = 1;

View File

@@ -168,8 +168,8 @@ final class CdmaSMSDispatcher extends SMSDispatcher {
int index = 0;
int msgType;
int sourcePort;
int destinationPort;
int sourcePort = 0;
int destinationPort = 0;
msgType = pdu[index++];
if (msgType != 0){
@@ -179,11 +179,14 @@ final class CdmaSMSDispatcher extends SMSDispatcher {
totalSegments = pdu[index++]; // >=1
segment = pdu[index++]; // >=0
//process WDP segment
sourcePort = (0xFF & pdu[index++]) << 8;
sourcePort |= 0xFF & pdu[index++];
destinationPort = (0xFF & pdu[index++]) << 8;
destinationPort |= 0xFF & pdu[index++];
// Only the first segment contains sourcePort and destination Port
if (segment == 0) {
//process WDP segment
sourcePort = (0xFF & pdu[index++]) << 8;
sourcePort |= 0xFF & pdu[index++];
destinationPort = (0xFF & pdu[index++]) << 8;
destinationPort |= 0xFF & pdu[index++];
}
// Lookup all other related parts
StringBuilder where = new StringBuilder("reference_number =");
@@ -224,6 +227,11 @@ final class CdmaSMSDispatcher extends SMSDispatcher {
for (int i = 0; i < cursorCount; i++) {
cursor.moveToNext();
int cursorSequence = (int)cursor.getLong(sequenceColumn);
// Read the destination port from the first segment
if (cursorSequence == 0) {
int destinationPortColumn = cursor.getColumnIndex("destination_port");
destinationPort = (int)cursor.getLong(destinationPortColumn);
}
pdus[cursorSequence] = HexDump.hexStringToByteArray(
cursor.getString(pduColumn));
}