Fix wrong sync message issue for pending outgoing messages am: bccecb6393
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Messaging/+/1547734 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: Id836b2cb21964189880a56c4747b1903907631b6
This commit is contained in:
@@ -80,8 +80,6 @@ public class ResendMessageAction extends Action implements Parcelable {
|
|||||||
|
|
||||||
final ContentValues values = new ContentValues();
|
final ContentValues values = new ContentValues();
|
||||||
values.put(MessageColumns.STATUS, MessageData.BUGLE_STATUS_OUTGOING_YET_TO_SEND);
|
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);
|
values.put(MessageColumns.RETRY_START_TIMESTAMP, timestamp);
|
||||||
|
|
||||||
// Row must exist as was just loaded above (on ActionService thread)
|
// Row must exist as was just loaded above (on ActionService thread)
|
||||||
|
|||||||
@@ -95,13 +95,17 @@ public class SendMessageAction extends Action implements Parcelable {
|
|||||||
private boolean queueAction(final String messageId, final Action processingAction) {
|
private boolean queueAction(final String messageId, final Action processingAction) {
|
||||||
actionParameters.putString(KEY_MESSAGE_ID, messageId);
|
actionParameters.putString(KEY_MESSAGE_ID, messageId);
|
||||||
|
|
||||||
final long timestamp = System.currentTimeMillis();
|
|
||||||
final DatabaseWrapper db = DataModel.get().getDatabase();
|
final DatabaseWrapper db = DataModel.get().getDatabase();
|
||||||
|
|
||||||
final MessageData message = BugleDatabaseOperations.readMessage(db, messageId);
|
final MessageData message = BugleDatabaseOperations.readMessage(db, messageId);
|
||||||
// Check message can be resent
|
// Check message can be resent
|
||||||
if (message != null && message.canSendMessage()) {
|
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(
|
final ParticipantData self = BugleDatabaseOperations.getExistingParticipant(
|
||||||
db, message.getSelfId());
|
db, message.getSelfId());
|
||||||
@@ -110,8 +114,13 @@ public class SendMessageAction extends Action implements Parcelable {
|
|||||||
|
|
||||||
// Update message status
|
// Update message status
|
||||||
if (message.getYetToSend()) {
|
if (message.getYetToSend()) {
|
||||||
// Initial sending of message
|
if (message.getReceivedTimeStamp() == message.getRetryStartTimestamp()) {
|
||||||
message.markMessageSending(timestamp);
|
// Initial sending of message
|
||||||
|
message.markMessageSending(timestamp);
|
||||||
|
} else {
|
||||||
|
// Manual resend of message
|
||||||
|
message.markMessageManualResend(timestamp);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// Automatic resend of message
|
// Automatic resend of message
|
||||||
message.markMessageResending(timestamp);
|
message.markMessageResending(timestamp);
|
||||||
|
|||||||
Reference in New Issue
Block a user