aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTaesu Lee <taesu82.lee@samsung.com>2020-10-07 19:15:33 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-10-07 19:15:33 +0000
commitb84d8bddf2caaf8808bde3a59eec226a4d11594f (patch)
tree046ced3b0d0a2c8b39f2f7c19e42a370fc49484c
parentbd2a71280d3a1cdb307107994bc4871322f817ff (diff)
parentc4339a83a9a48bcca790fb224aa28e32c4e0bd99 (diff)
downloadMessaging-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.java51
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();