Merge "Add empty CdmaSmsSubaddress to CDMA PDU parsing"

am: 78a7b5d44a

Change-Id: If11be7e1ee331ca17ab4a18270faa47c0b7798a6
This commit is contained in:
Brad Ebinger
2018-03-19 22:33:01 +00:00
committed by android-build-merger

View File

@@ -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();
}