mirror of
https://github.com/oxen-io/session-android.git
synced 2024-12-24 16:57:50 +00:00
Slight optimization for message status updates
// FREEBIE
This commit is contained in:
parent
7c95adc7e6
commit
8fb73a092d
@ -333,43 +333,50 @@ public class MmsDatabase extends MessagingDatabase {
|
|||||||
return readerFor(masterSecret, rawQuery(where, null));
|
return readerFor(masterSecret, rawQuery(where, null));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateMailboxBitmask(long id, long maskOff, long maskOn) {
|
private void updateMailboxBitmask(long id, long maskOff, long maskOn, Optional<Long> threadId) {
|
||||||
SQLiteDatabase db = databaseHelper.getWritableDatabase();
|
SQLiteDatabase db = databaseHelper.getWritableDatabase();
|
||||||
db.execSQL("UPDATE " + TABLE_NAME +
|
db.execSQL("UPDATE " + TABLE_NAME +
|
||||||
" SET " + MESSAGE_BOX + " = (" + MESSAGE_BOX + " & " + (Types.TOTAL_MASK - maskOff) + " | " + maskOn + " )" +
|
" SET " + MESSAGE_BOX + " = (" + MESSAGE_BOX + " & " + (Types.TOTAL_MASK - maskOff) + " | " + maskOn + " )" +
|
||||||
" WHERE " + ID + " = ?", new String[] {id + ""});
|
" WHERE " + ID + " = ?", new String[] {id + ""});
|
||||||
|
|
||||||
DatabaseFactory.getThreadDatabase(context).update(getThreadIdForMessage(id), false);
|
if (threadId.isPresent()) {
|
||||||
|
DatabaseFactory.getThreadDatabase(context).update(threadId.get(), false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void markAsOutbox(long messageId) {
|
public void markAsOutbox(long messageId) {
|
||||||
updateMailboxBitmask(messageId, Types.BASE_TYPE_MASK, Types.BASE_OUTBOX_TYPE);
|
long threadId = getThreadIdForMessage(messageId);
|
||||||
notifyConversationListeners(getThreadIdForMessage(messageId));
|
updateMailboxBitmask(messageId, Types.BASE_TYPE_MASK, Types.BASE_OUTBOX_TYPE, Optional.of(threadId));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void markAsForcedSms(long messageId) {
|
public void markAsForcedSms(long messageId) {
|
||||||
updateMailboxBitmask(messageId, Types.PUSH_MESSAGE_BIT, Types.MESSAGE_FORCE_SMS_BIT);
|
long threadId = getThreadIdForMessage(messageId);
|
||||||
notifyConversationListeners(getThreadIdForMessage(messageId));
|
updateMailboxBitmask(messageId, Types.PUSH_MESSAGE_BIT, Types.MESSAGE_FORCE_SMS_BIT, Optional.of(threadId));
|
||||||
|
notifyConversationListeners(threadId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void markAsPendingInsecureSmsFallback(long messageId) {
|
public void markAsPendingInsecureSmsFallback(long messageId) {
|
||||||
updateMailboxBitmask(messageId, Types.BASE_TYPE_MASK, Types.BASE_PENDING_INSECURE_SMS_FALLBACK);
|
long threadId = getThreadIdForMessage(messageId);
|
||||||
notifyConversationListeners(getThreadIdForMessage(messageId));
|
updateMailboxBitmask(messageId, Types.BASE_TYPE_MASK, Types.BASE_PENDING_INSECURE_SMS_FALLBACK, Optional.of(threadId));
|
||||||
|
notifyConversationListeners(threadId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void markAsSending(long messageId) {
|
public void markAsSending(long messageId) {
|
||||||
updateMailboxBitmask(messageId, Types.BASE_TYPE_MASK, Types.BASE_SENDING_TYPE);
|
long threadId = getThreadIdForMessage(messageId);
|
||||||
notifyConversationListeners(getThreadIdForMessage(messageId));
|
updateMailboxBitmask(messageId, Types.BASE_TYPE_MASK, Types.BASE_SENDING_TYPE, Optional.of(threadId));
|
||||||
|
notifyConversationListeners(threadId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void markAsSentFailed(long messageId) {
|
public void markAsSentFailed(long messageId) {
|
||||||
updateMailboxBitmask(messageId, Types.BASE_TYPE_MASK, Types.BASE_SENT_FAILED_TYPE);
|
long threadId = getThreadIdForMessage(messageId);
|
||||||
notifyConversationListeners(getThreadIdForMessage(messageId));
|
updateMailboxBitmask(messageId, Types.BASE_TYPE_MASK, Types.BASE_SENT_FAILED_TYPE, Optional.of(threadId));
|
||||||
|
notifyConversationListeners(threadId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void markAsSent(long messageId) {
|
public void markAsSent(long messageId) {
|
||||||
updateMailboxBitmask(messageId, Types.BASE_TYPE_MASK, Types.BASE_SENT_TYPE);
|
long threadId = getThreadIdForMessage(messageId);
|
||||||
notifyConversationListeners(getThreadIdForMessage(messageId));
|
updateMailboxBitmask(messageId, Types.BASE_TYPE_MASK, Types.BASE_SENT_TYPE, Optional.of(threadId));
|
||||||
|
notifyConversationListeners(threadId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void markDownloadState(long messageId, long state) {
|
public void markDownloadState(long messageId, long state) {
|
||||||
@ -382,34 +389,34 @@ public class MmsDatabase extends MessagingDatabase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void markAsNoSession(long messageId, long threadId) {
|
public void markAsNoSession(long messageId, long threadId) {
|
||||||
updateMailboxBitmask(messageId, Types.ENCRYPTION_MASK, Types.ENCRYPTION_REMOTE_NO_SESSION_BIT);
|
updateMailboxBitmask(messageId, Types.ENCRYPTION_MASK, Types.ENCRYPTION_REMOTE_NO_SESSION_BIT, Optional.of(threadId));
|
||||||
notifyConversationListeners(threadId);
|
notifyConversationListeners(threadId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void markAsSecure(long messageId) {
|
public void markAsSecure(long messageId) {
|
||||||
updateMailboxBitmask(messageId, 0, Types.SECURE_MESSAGE_BIT);
|
updateMailboxBitmask(messageId, 0, Types.SECURE_MESSAGE_BIT, Optional.<Long>absent());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void markAsInsecure(long messageId) {
|
public void markAsInsecure(long messageId) {
|
||||||
updateMailboxBitmask(messageId, Types.SECURE_MESSAGE_BIT, 0);
|
updateMailboxBitmask(messageId, Types.SECURE_MESSAGE_BIT, 0, Optional.<Long>absent());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void markAsPush(long messageId) {
|
public void markAsPush(long messageId) {
|
||||||
updateMailboxBitmask(messageId, 0, Types.PUSH_MESSAGE_BIT);
|
updateMailboxBitmask(messageId, 0, Types.PUSH_MESSAGE_BIT, Optional.<Long>absent());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void markAsDecryptFailed(long messageId, long threadId) {
|
public void markAsDecryptFailed(long messageId, long threadId) {
|
||||||
updateMailboxBitmask(messageId, Types.ENCRYPTION_MASK, Types.ENCRYPTION_REMOTE_FAILED_BIT);
|
updateMailboxBitmask(messageId, Types.ENCRYPTION_MASK, Types.ENCRYPTION_REMOTE_FAILED_BIT, Optional.of(threadId));
|
||||||
notifyConversationListeners(threadId);
|
notifyConversationListeners(threadId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void markAsDecryptDuplicate(long messageId, long threadId) {
|
public void markAsDecryptDuplicate(long messageId, long threadId) {
|
||||||
updateMailboxBitmask(messageId, Types.ENCRYPTION_MASK, Types.ENCRYPTION_REMOTE_DUPLICATE_BIT);
|
updateMailboxBitmask(messageId, Types.ENCRYPTION_MASK, Types.ENCRYPTION_REMOTE_DUPLICATE_BIT, Optional.of(threadId));
|
||||||
notifyConversationListeners(threadId);
|
notifyConversationListeners(threadId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void markAsLegacyVersion(long messageId, long threadId) {
|
public void markAsLegacyVersion(long messageId, long threadId) {
|
||||||
updateMailboxBitmask(messageId, Types.ENCRYPTION_MASK, Types.ENCRYPTION_REMOTE_LEGACY_BIT);
|
updateMailboxBitmask(messageId, Types.ENCRYPTION_MASK, Types.ENCRYPTION_REMOTE_LEGACY_BIT, Optional.of(threadId));
|
||||||
notifyConversationListeners(threadId);
|
notifyConversationListeners(threadId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user