Merge "Add empty CdmaSmsSubaddress to CDMA PDU parsing"
am: 78a7b5d44a
Change-Id: If11be7e1ee331ca17ab4a18270faa47c0b7798a6
This commit is contained in:
@@ -470,6 +470,9 @@ public class SmsMessage extends SmsMessageBase {
|
||||
int bearerDataLength;
|
||||
SmsEnvelope env = new SmsEnvelope();
|
||||
CdmaSmsAddress addr = new CdmaSmsAddress();
|
||||
// We currently do not parse subaddress in PDU, but it is required when determining
|
||||
// fingerprint (see getIncomingSmsFingerprint()).
|
||||
CdmaSmsSubaddress subaddr = new CdmaSmsSubaddress();
|
||||
|
||||
try {
|
||||
env.messageType = dis.readInt();
|
||||
@@ -520,6 +523,7 @@ public class SmsMessage extends SmsMessageBase {
|
||||
// link the filled objects to this SMS
|
||||
mOriginatingAddress = addr;
|
||||
env.origAddress = addr;
|
||||
env.origSubaddress = subaddr;
|
||||
mEnvelope = env;
|
||||
mPdu = pdu;
|
||||
|
||||
@@ -1009,8 +1013,11 @@ public class SmsMessage extends SmsMessageBase {
|
||||
output.write(mEnvelope.teleService);
|
||||
output.write(mEnvelope.origAddress.origBytes, 0, mEnvelope.origAddress.origBytes.length);
|
||||
output.write(mEnvelope.bearerData, 0, mEnvelope.bearerData.length);
|
||||
output.write(mEnvelope.origSubaddress.origBytes, 0,
|
||||
mEnvelope.origSubaddress.origBytes.length);
|
||||
// subaddress is not set when parsing some MT SMS.
|
||||
if (mEnvelope.origSubaddress != null && mEnvelope.origSubaddress.origBytes != null) {
|
||||
output.write(mEnvelope.origSubaddress.origBytes, 0,
|
||||
mEnvelope.origSubaddress.origBytes.length);
|
||||
}
|
||||
|
||||
return output.toByteArray();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user