mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-22 01:40:07 +01:00
Keep muted chats archived option.
This commit is contained in:
@@ -1979,24 +1979,26 @@ public class MmsDatabase extends MessageDatabase {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
boolean updateThread = retrieved.getStoryType() == StoryType.NONE;
|
||||
long messageId = insertMediaMessage(threadId,
|
||||
retrieved.getBody(),
|
||||
retrieved.getAttachments(),
|
||||
quoteAttachments,
|
||||
retrieved.getSharedContacts(),
|
||||
retrieved.getLinkPreviews(),
|
||||
retrieved.getMentions(),
|
||||
retrieved.getMessageRanges(),
|
||||
contentValues,
|
||||
null,
|
||||
updateThread);
|
||||
boolean updateThread = retrieved.getStoryType() == StoryType.NONE;
|
||||
boolean keepThreadArchived = SignalStore.settings().shouldKeepMutedChatsArchived() && Recipient.resolved(retrieved.getFrom()).isMuted();
|
||||
long messageId = insertMediaMessage(threadId,
|
||||
retrieved.getBody(),
|
||||
retrieved.getAttachments(),
|
||||
quoteAttachments,
|
||||
retrieved.getSharedContacts(),
|
||||
retrieved.getLinkPreviews(),
|
||||
retrieved.getMentions(),
|
||||
retrieved.getMessageRanges(),
|
||||
contentValues,
|
||||
null,
|
||||
updateThread,
|
||||
!keepThreadArchived);
|
||||
|
||||
boolean isNotStoryGroupReply = retrieved.getParentStoryId() == null || !retrieved.getParentStoryId().isGroupReply();
|
||||
if (!Types.isPaymentsActivated(mailbox) && !Types.isRequestToActivatePayments(mailbox) && !Types.isExpirationTimerUpdate(mailbox) && !retrieved.getStoryType().isStory() && isNotStoryGroupReply) {
|
||||
boolean incrementUnreadMentions = !retrieved.getMentions().isEmpty() && retrieved.getMentions().stream().anyMatch(m -> m.getRecipientId().equals(Recipient.self().getId()));
|
||||
SignalDatabase.threads().incrementUnread(threadId, 1, incrementUnreadMentions ? 1 : 0);
|
||||
SignalDatabase.threads().update(threadId, true);
|
||||
SignalDatabase.threads().update(threadId, !keepThreadArchived);
|
||||
}
|
||||
|
||||
notifyConversationListeners(threadId);
|
||||
@@ -2297,7 +2299,7 @@ public class MmsDatabase extends MessageDatabase {
|
||||
|
||||
MentionUtil.UpdatedBodyAndMentions updatedBodyAndMentions = MentionUtil.updateBodyAndMentionsWithPlaceholders(message.getBody(), message.getMentions());
|
||||
|
||||
long messageId = insertMediaMessage(threadId, updatedBodyAndMentions.getBodyAsString(), message.getAttachments(), quoteAttachments, message.getSharedContacts(), message.getLinkPreviews(), updatedBodyAndMentions.getMentions(), null, contentValues, insertListener, false);
|
||||
long messageId = insertMediaMessage(threadId, updatedBodyAndMentions.getBodyAsString(), message.getAttachments(), quoteAttachments, message.getSharedContacts(), message.getLinkPreviews(), updatedBodyAndMentions.getMentions(), null, contentValues, insertListener, false, false);
|
||||
|
||||
if (message.getRecipient().isGroup()) {
|
||||
OutgoingGroupUpdateMessage outgoingGroupUpdateMessage = (message instanceof OutgoingGroupUpdateMessage) ? (OutgoingGroupUpdateMessage) message : null;
|
||||
@@ -2371,7 +2373,8 @@ public class MmsDatabase extends MessageDatabase {
|
||||
@Nullable BodyRangeList messageRanges,
|
||||
@NonNull ContentValues contentValues,
|
||||
@Nullable InsertListener insertListener,
|
||||
boolean updateThread)
|
||||
boolean updateThread,
|
||||
boolean unarchive)
|
||||
throws MmsException
|
||||
{
|
||||
SQLiteDatabase db = databaseHelper.getSignalWritableDatabase();
|
||||
@@ -2443,7 +2446,7 @@ public class MmsDatabase extends MessageDatabase {
|
||||
|
||||
if (updateThread) {
|
||||
SignalDatabase.threads().setLastScrolled(contentValuesThreadId, 0);
|
||||
SignalDatabase.threads().update(threadId, true);
|
||||
SignalDatabase.threads().update(threadId, unarchive);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -742,8 +742,8 @@ public class SmsDatabase extends MessageDatabase {
|
||||
|
||||
SignalDatabase.threads().incrementUnread(threadId, 1, 0);
|
||||
}
|
||||
|
||||
SignalDatabase.threads().update(threadId, true);
|
||||
boolean keepThreadArchived = SignalStore.settings().shouldKeepMutedChatsArchived() && recipient.isMuted();
|
||||
SignalDatabase.threads().update(threadId, !keepThreadArchived);
|
||||
|
||||
db.setTransactionSuccessful();
|
||||
} finally {
|
||||
@@ -820,7 +820,8 @@ public class SmsDatabase extends MessageDatabase {
|
||||
SignalDatabase.threads().incrementUnread(threadId, 1, 0);
|
||||
}
|
||||
|
||||
SignalDatabase.threads().update(threadId, true);
|
||||
final boolean keepThreadArchived = SignalStore.settings().shouldKeepMutedChatsArchived() && recipient.isMuted();
|
||||
SignalDatabase.threads().update(threadId, !keepThreadArchived);
|
||||
|
||||
db.setTransactionSuccessful();
|
||||
} finally {
|
||||
@@ -891,8 +892,8 @@ public class SmsDatabase extends MessageDatabase {
|
||||
if (unread) {
|
||||
SignalDatabase.threads().incrementUnread(threadId, 1, 0);
|
||||
}
|
||||
|
||||
SignalDatabase.threads().update(threadId, true);
|
||||
boolean keepThreadArchived = SignalStore.settings().shouldKeepMutedChatsArchived() && Recipient.resolved(recipientId).isMuted();
|
||||
SignalDatabase.threads().update(threadId, !keepThreadArchived);
|
||||
|
||||
notifyConversationListeners(threadId);
|
||||
TrimThreadJob.enqueueAsync(threadId);
|
||||
@@ -1281,7 +1282,8 @@ public class SmsDatabase extends MessageDatabase {
|
||||
}
|
||||
|
||||
if (!silent) {
|
||||
SignalDatabase.threads().update(threadId, true);
|
||||
final boolean keepThreadArchived = SignalStore.settings().shouldKeepMutedChatsArchived() && recipient.isMuted();
|
||||
SignalDatabase.threads().update(threadId, !keepThreadArchived);
|
||||
}
|
||||
|
||||
if (message.getSubscriptionId() != -1) {
|
||||
@@ -1324,7 +1326,8 @@ public class SmsDatabase extends MessageDatabase {
|
||||
long messageId = db.insert(TABLE_NAME, null, values);
|
||||
|
||||
SignalDatabase.threads().incrementUnread(threadId, 1, 0);
|
||||
SignalDatabase.threads().update(threadId, true);
|
||||
boolean keepThreadArchived = SignalStore.settings().shouldKeepMutedChatsArchived() && Recipient.resolved(recipientId).isMuted();
|
||||
SignalDatabase.threads().update(threadId, !keepThreadArchived);
|
||||
|
||||
notifyConversationListeners(threadId);
|
||||
|
||||
@@ -1348,7 +1351,8 @@ public class SmsDatabase extends MessageDatabase {
|
||||
databaseHelper.getSignalWritableDatabase().insert(TABLE_NAME, null, values);
|
||||
|
||||
SignalDatabase.threads().incrementUnread(threadId, 1, 0);
|
||||
SignalDatabase.threads().update(threadId, true);
|
||||
boolean keepThreadArchived = SignalStore.settings().shouldKeepMutedChatsArchived() && Recipient.resolved(recipientId).isMuted();
|
||||
SignalDatabase.threads().update(threadId, !keepThreadArchived);
|
||||
|
||||
notifyConversationListeners(threadId);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user