From 10e57b682d5c88ce36dbe2e03e2775dc999489ac Mon Sep 17 00:00:00 2001 From: Taesu Lee Date: Tue, 17 Jan 2017 12:17:54 +0900 Subject: Fix X-Mms-Transaction-ID of M-Acknowledge.ind X-Mms-Transaction-ID of M-Acknowledge.ind should be set as the corresponding M-Retrieve.conf's transaction ID instead of M-Notification.ind's one. (OMA-TS-MMS_ENC-V1_3-20110913-A) Test: Manual Change-Id: I250f32b93cdfbed815206543df5486efa4df18eb Signed-off-by: Taesu Lee --- src/com/android/messaging/sms/MmsUtils.java | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/com/android/messaging/sms/MmsUtils.java b/src/com/android/messaging/sms/MmsUtils.java index 9c4c2d5..2de6678 100644 --- a/src/com/android/messaging/sms/MmsUtils.java +++ b/src/com/android/messaging/sms/MmsUtils.java @@ -1915,7 +1915,7 @@ public class MmsUtils { final String transactionId, final String contentLocation, final boolean autoDownload, final long receivedTimestampInSeconds, final RetrieveConf retrieveConf) { - final byte[] transactionIdBytes = stringToBytes(transactionId, "UTF-8"); + final byte[] notificationTransactionId = stringToBytes(transactionId, "UTF-8"); Uri messageUri = null; int status = MMS_REQUEST_MANUAL_RETRY; int retrieveStatus = PDU_HEADER_VALUE_UNDEFINED; @@ -1940,10 +1940,15 @@ public class MmsUtils { if (status == MMS_REQUEST_SUCCEEDED) { // Send response of the notification if (autoDownload) { - sendNotifyResponseForMmsDownload(context, subId, transactionIdBytes, - contentLocation, PduHeaders.STATUS_RETRIEVED); + sendNotifyResponseForMmsDownload( + context, + subId, + notificationTransactionId, + contentLocation, + PduHeaders.STATUS_RETRIEVED); } else { - sendAcknowledgeForMmsDownload(context, subId, transactionIdBytes, contentLocation); + sendAcknowledgeForMmsDownload( + context, subId, retrieveConf.getTransactionId(), contentLocation); } // Insert downloaded message into telephony @@ -1954,8 +1959,12 @@ public class MmsUtils { // For a retry do nothing } else if (status == MMS_REQUEST_MANUAL_RETRY && autoDownload) { // Failure from autodownload - just treat like manual download - sendNotifyResponseForMmsDownload(context, subId, transactionIdBytes, - contentLocation, PduHeaders.STATUS_DEFERRED); + sendNotifyResponseForMmsDownload( + context, + subId, + notificationTransactionId, + contentLocation, + PduHeaders.STATUS_DEFERRED); } return new StatusPlusUri(status, retrieveStatus, messageUri); } -- cgit v1.2.3