am 5c7d9e81: CDMA incoming MMS fixes
Merge commit '5c7d9e8194900a2b1699cd57f95b22ca5f7b9be2' * commit '5c7d9e8194900a2b1699cd57f95b22ca5f7b9be2': CDMA incoming MMS fixes
This commit is contained in:
committed by
The Android Open Source Project
commit
aec9632db0
@@ -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;
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user