diff options
author | Taesu Lee <taesu82.lee@samsung.com> | 2020-10-07 19:15:33 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-10-07 19:15:33 +0000 |
commit | b84d8bddf2caaf8808bde3a59eec226a4d11594f (patch) | |
tree | 046ced3b0d0a2c8b39f2f7c19e42a370fc49484c | |
parent | bd2a71280d3a1cdb307107994bc4871322f817ff (diff) | |
parent | c4339a83a9a48bcca790fb224aa28e32c4e0bd99 (diff) | |
download | Messaging-b84d8bddf2caaf8808bde3a59eec226a4d11594f.tar.gz |
Mark messages as failed if SIM is inactive am: 8c08a3f419 am: 947784d4f3 am: 5b6d2cb110 am: c4339a83a9
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Messaging/+/1449316
Change-Id: I75c3cb226b5265f685a0aeba416edf88bc8b86ef
-rw-r--r-- | src/com/android/messaging/datamodel/action/ProcessPendingMessagesAction.java | 51 |
1 files changed, 21 insertions, 30 deletions
diff --git a/src/com/android/messaging/datamodel/action/ProcessPendingMessagesAction.java b/src/com/android/messaging/datamodel/action/ProcessPendingMessagesAction.java index 1a3eb63..a897ce0 100644 --- a/src/com/android/messaging/datamodel/action/ProcessPendingMessagesAction.java +++ b/src/com/android/messaging/datamodel/action/ProcessPendingMessagesAction.java @@ -335,7 +335,7 @@ public class ProcessPendingMessagesAction extends Action implements Parcelable { selfId} ); - // Look for messages we cound send + // Look for messages we could send cursor = db.query(DatabaseHelper.MESSAGES_TABLE, MessageData.getProjection(), DatabaseHelper.MessageColumns.STATUS + " IN (?, ?) AND " @@ -354,43 +354,34 @@ public class ProcessPendingMessagesAction extends Action implements Parcelable { values.put(DatabaseHelper.MessageColumns.STATUS, MessageData.BUGLE_STATUS_OUTGOING_FAILED); + // Prior to L_MR1, isActiveSubscription is true always + boolean isActiveSubscription = true; + if (OsUtil.isAtLeastL_MR1()) { + final ParticipantData messageSelf = + BugleDatabaseOperations.getExistingParticipant(db, selfId); + if (messageSelf == null || !messageSelf.isActiveSubscription()) { + isActiveSubscription = false; + } + } while (cursor.moveToNext()) { final MessageData message = new MessageData(); message.bind(cursor); - if (message.getInResendWindow(now)) { - // If no messages currently sending - if (sendingCnt == 0) { - // Resend this message - toSendMessageId = message.getMessageId(); - // Before queuing the message for resending, check if the message's self is - // active. If not, switch back to the system's default subscription. - if (OsUtil.isAtLeastL_MR1()) { - final ParticipantData messageSelf = BugleDatabaseOperations - .getExistingParticipant(db, selfId); - if (messageSelf == null || !messageSelf.isActiveSubscription()) { - final ParticipantData defaultSelf = BugleDatabaseOperations - .getOrCreateSelf(db, PhoneUtils.getDefault() - .getDefaultSmsSubscriptionId()); - if (defaultSelf != null) { - message.bindSelfId(defaultSelf.getId()); - final ContentValues selfValues = new ContentValues(); - selfValues.put(MessageColumns.SELF_PARTICIPANT_ID, - defaultSelf.getId()); - BugleDatabaseOperations.updateMessageRow(db, - message.getMessageId(), selfValues); - MessagingContentProvider.notifyMessagesChanged( - message.getConversationId()); - } - } - } - } - break; - } else { + + // Mark this message as failed if the message's self is inactive or the message is + // outside of resend window + if (!isActiveSubscription || !message.getInResendWindow(now)) { failedCnt++; // Mark message as failed BugleDatabaseOperations.updateMessageRow(db, message.getMessageId(), values); MessagingContentProvider.notifyMessagesChanged(message.getConversationId()); + } else { + // If no messages currently sending + if (sendingCnt == 0) { + // Send this message + toSendMessageId = message.getMessageId(); + } + break; } } db.setTransactionSuccessful(); |