Mark ab/7061308 as merged in stage.

Bug: 180401296
Merged-In: I26b0f374e227cba084ab4c794253a3d5347be363
Change-Id: I2eee925bb5b7e55544ade75469e3c5865cc4b5e3
diff --git a/jni/Android.mk b/jni/Android.mk
index 6b349a8..36edaec 100644
--- a/jni/Android.mk
+++ b/jni/Android.mk
@@ -25,6 +25,8 @@
 	external/giflib
 
 LOCAL_MODULE    := libgiftranscode
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
 LOCAL_SRC_FILES := GifTranscoder.cpp
 
 LOCAL_CFLAGS += -Wall -Werror -Wno-unused-parameter -Wno-switch
diff --git a/src/com/android/messaging/datamodel/action/ResendMessageAction.java b/src/com/android/messaging/datamodel/action/ResendMessageAction.java
index 0943f72..b442ae6 100644
--- a/src/com/android/messaging/datamodel/action/ResendMessageAction.java
+++ b/src/com/android/messaging/datamodel/action/ResendMessageAction.java
@@ -80,8 +80,6 @@
 
             final ContentValues values = new ContentValues();
             values.put(MessageColumns.STATUS, MessageData.BUGLE_STATUS_OUTGOING_YET_TO_SEND);
-            values.put(MessageColumns.RECEIVED_TIMESTAMP, timestamp);
-            values.put(MessageColumns.SENT_TIMESTAMP, timestamp);
             values.put(MessageColumns.RETRY_START_TIMESTAMP, timestamp);
 
             // Row must exist as was just loaded above (on ActionService thread)
diff --git a/src/com/android/messaging/datamodel/action/SendMessageAction.java b/src/com/android/messaging/datamodel/action/SendMessageAction.java
index 35e6280..44c661d 100644
--- a/src/com/android/messaging/datamodel/action/SendMessageAction.java
+++ b/src/com/android/messaging/datamodel/action/SendMessageAction.java
@@ -95,13 +95,17 @@
     private boolean queueAction(final String messageId, final Action processingAction) {
         actionParameters.putString(KEY_MESSAGE_ID, messageId);
 
-        final long timestamp = System.currentTimeMillis();
         final DatabaseWrapper db = DataModel.get().getDatabase();
 
         final MessageData message = BugleDatabaseOperations.readMessage(db, messageId);
         // Check message can be resent
         if (message != null && message.canSendMessage()) {
-            final boolean isSms = (message.getProtocol() == MessageData.PROTOCOL_SMS);
+            final boolean isSms = message.getIsSms();
+            long timestamp = System.currentTimeMillis();
+            if (!isSms) {
+                // MMS expects timestamp rounded to nearest second
+                timestamp = 1000 * ((timestamp + 500) / 1000);
+            }
 
             final ParticipantData self = BugleDatabaseOperations.getExistingParticipant(
                     db, message.getSelfId());
@@ -110,8 +114,13 @@
 
             // Update message status
             if (message.getYetToSend()) {
-                // Initial sending of message
-                message.markMessageSending(timestamp);
+                if (message.getReceivedTimeStamp() == message.getRetryStartTimestamp()) {
+                    // Initial sending of message
+                    message.markMessageSending(timestamp);
+                } else {
+                    // Manual resend of message
+                    message.markMessageManualResend(timestamp);
+                }
             } else {
                 // Automatic resend of message
                 message.markMessageResending(timestamp);