diff options
Diffstat (limited to 'src/com/android/messaging/datamodel')
4 files changed, 14 insertions, 1 deletions
diff --git a/src/com/android/messaging/datamodel/action/MarkAsReadAction.java b/src/com/android/messaging/datamodel/action/MarkAsReadAction.java index 31bc59d..2e45fb5 100644 --- a/src/com/android/messaging/datamodel/action/MarkAsReadAction.java +++ b/src/com/android/messaging/datamodel/action/MarkAsReadAction.java @@ -28,6 +28,7 @@ import com.android.messaging.datamodel.DatabaseHelper.MessageColumns; import com.android.messaging.datamodel.DatabaseWrapper; import com.android.messaging.datamodel.MessagingContentProvider; import com.android.messaging.sms.MmsUtils; +import com.android.messaging.mmslib.pdu.PduHeaders; import com.android.messaging.util.LogUtil; /** @@ -60,9 +61,9 @@ public class MarkAsReadAction extends Action implements Parcelable { // Mark all messages in thread as read in telephony final long threadId = BugleDatabaseOperations.getThreadId(db, conversationId); if (threadId != -1) { + MmsUtils.sendMmsReadReport(threadId, PduHeaders.READ_STATUS_READ); MmsUtils.updateSmsReadStatus(threadId, Long.MAX_VALUE); } - // Update local db db.beginTransaction(); try { diff --git a/src/com/android/messaging/datamodel/action/ProcessDownloadedMmsAction.java b/src/com/android/messaging/datamodel/action/ProcessDownloadedMmsAction.java index 93f738f..7332153 100644 --- a/src/com/android/messaging/datamodel/action/ProcessDownloadedMmsAction.java +++ b/src/com/android/messaging/datamodel/action/ProcessDownloadedMmsAction.java @@ -464,6 +464,9 @@ public class ProcessDownloadedMmsAction extends Action { // TODO: Also write these values to the telephony provider mms.mRead = messageInFocusedConversation; mms.mSeen = messageInObservableConversation; + if (messageInFocusedConversation) { + MmsUtils.sendMmsReadReport(mms.mThreadId, PduHeaders.READ_STATUS_READ); + } // Translate to our format message = MmsUtils.createMmsMessage(mms, conversationId, senderParticipantId, @@ -534,6 +537,9 @@ public class ProcessDownloadedMmsAction extends Action { values.put(Mms.READ, messageInFocusedConversation); SqliteWrapper.update(context, context.getContentResolver(), mmsUri, values, null, null); + if (messageInFocusedConversation) { + MmsUtils.sendMmsReadReport(mms.mThreadId, PduHeaders.READ_STATUS_READ); + } } // Show a notification to let the user know a new message has arrived diff --git a/src/com/android/messaging/datamodel/action/ReceiveMmsMessageAction.java b/src/com/android/messaging/datamodel/action/ReceiveMmsMessageAction.java index 4ebc8b4..f21e062 100644 --- a/src/com/android/messaging/datamodel/action/ReceiveMmsMessageAction.java +++ b/src/com/android/messaging/datamodel/action/ReceiveMmsMessageAction.java @@ -101,6 +101,9 @@ public class ReceiveMmsMessageAction extends Action implements Parcelable { // TODO: Also write these values to the telephony provider mms.mRead = messageInFocusedConversation; mms.mSeen = messageInObservableConversation || blocked; + if (messageInFocusedConversation) { + MmsUtils.sendMmsReadReport(mms.mThreadId, PduHeaders.READ_STATUS_READ); + } // Write received placeholder message to our DB db.beginTransaction(); diff --git a/src/com/android/messaging/datamodel/data/MessageData.java b/src/com/android/messaging/datamodel/data/MessageData.java index a3698a9..01bb382 100644 --- a/src/com/android/messaging/datamodel/data/MessageData.java +++ b/src/com/android/messaging/datamodel/data/MessageData.java @@ -130,6 +130,7 @@ public class MessageData implements Parcelable { public static final int BUGLE_STATUS_OUTGOING_AWAITING_RETRY = 7; public static final int BUGLE_STATUS_OUTGOING_FAILED = 8; public static final int BUGLE_STATUS_OUTGOING_FAILED_EMERGENCY_NUMBER = 9; + public static final int BUGLE_STATUS_OUTGOING_COMPLETE_AND_READ = 10; // Incoming public static final int BUGLE_STATUS_INCOMING_COMPLETE = 100; @@ -179,6 +180,8 @@ public class MessageData implements Parcelable { return "INCOMING_DOWNLOAD_FAILED"; case BUGLE_STATUS_INCOMING_EXPIRED_OR_NOT_AVAILABLE: return "INCOMING_EXPIRED_OR_NOT_AVAILABLE"; + case BUGLE_STATUS_OUTGOING_COMPLETE_AND_READ: + return "OUTGOING_COMPLETE_AND_READ"; default: return String.valueOf(status) + " (check MessageData)"; } |