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 <taesu82.lee@samsung.com>
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 @@
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 @@
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 @@
// 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);
}