Expire Timer: If we generated change, don't mark unread
This commit is contained in:
parent
6a1b6f2e44
commit
56ffd7bc3f
|
@ -2778,9 +2778,11 @@ export async function startApp(): Promise<void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
await conversation.updateExpirationTimer(expireTimer, {
|
await conversation.updateExpirationTimer(expireTimer, {
|
||||||
|
// Note: because it's our conversationId, this notification will be marked read. But
|
||||||
|
// setting this will make 'isSetByOther' check true.
|
||||||
|
source: window.ConversationController.getOurConversationId(),
|
||||||
fromSync: true,
|
fromSync: true,
|
||||||
receivedAt: ev.receivedAtCounter,
|
receivedAt: ev.receivedAtCounter,
|
||||||
source: window.ConversationController.getOurConversationId(),
|
|
||||||
reason: 'group sync',
|
reason: 'group sync',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -4428,7 +4428,9 @@ export class ConversationModel extends window.Backbone
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
source = source || window.ConversationController.getOurConversationId();
|
const ourConversationId =
|
||||||
|
window.ConversationController.getOurConversationId();
|
||||||
|
source = source || ourConversationId;
|
||||||
|
|
||||||
this.set({ expireTimer });
|
this.set({ expireTimer });
|
||||||
|
|
||||||
|
@ -4442,8 +4444,13 @@ export class ConversationModel extends window.Backbone
|
||||||
// to be above the message that initiated that change, hence the subtraction.
|
// to be above the message that initiated that change, hence the subtraction.
|
||||||
const sentAt = (providedSentAt || receivedAtMS) - 1;
|
const sentAt = (providedSentAt || receivedAtMS) - 1;
|
||||||
|
|
||||||
|
const isFromSyncOperation =
|
||||||
|
reason === 'group sync' || reason === 'contact sync';
|
||||||
|
const isFromMe =
|
||||||
|
window.ConversationController.get(source)?.id === ourConversationId;
|
||||||
const isNoteToSelf = isMe(this.attributes);
|
const isNoteToSelf = isMe(this.attributes);
|
||||||
const shouldBeRead = isNoteToSelf || isInitialSync;
|
const shouldBeRead =
|
||||||
|
(isInitialSync && isFromSyncOperation) || isFromMe || isNoteToSelf;
|
||||||
|
|
||||||
const model = new window.Whisper.Message({
|
const model = new window.Whisper.Message({
|
||||||
conversationId: this.id,
|
conversationId: this.id,
|
||||||
|
|
|
@ -2663,7 +2663,7 @@ export class MessageModel extends window.Backbone.Model<MessageAttributesType> {
|
||||||
// point and these calls will return early.
|
// point and these calls will return early.
|
||||||
if (dataMessage.expireTimer) {
|
if (dataMessage.expireTimer) {
|
||||||
conversation.updateExpirationTimer(dataMessage.expireTimer, {
|
conversation.updateExpirationTimer(dataMessage.expireTimer, {
|
||||||
source,
|
source: sourceUuid || source,
|
||||||
receivedAt: message.get('received_at'),
|
receivedAt: message.get('received_at'),
|
||||||
receivedAtMS: message.get('received_at_ms'),
|
receivedAtMS: message.get('received_at_ms'),
|
||||||
sentAt: message.get('sent_at'),
|
sentAt: message.get('sent_at'),
|
||||||
|
@ -2676,7 +2676,7 @@ export class MessageModel extends window.Backbone.Model<MessageAttributesType> {
|
||||||
!isEndSession(message.attributes)
|
!isEndSession(message.attributes)
|
||||||
) {
|
) {
|
||||||
conversation.updateExpirationTimer(undefined, {
|
conversation.updateExpirationTimer(undefined, {
|
||||||
source,
|
source: sourceUuid || source,
|
||||||
receivedAt: message.get('received_at'),
|
receivedAt: message.get('received_at'),
|
||||||
receivedAtMS: message.get('received_at_ms'),
|
receivedAtMS: message.get('received_at_ms'),
|
||||||
sentAt: message.get('sent_at'),
|
sentAt: message.get('sent_at'),
|
||||||
|
|
|
@ -61,6 +61,8 @@ async function updateConversationFromContactSync(
|
||||||
|
|
||||||
// expireTimer isn't in Storage Service so we have to rely on contact sync.
|
// expireTimer isn't in Storage Service so we have to rely on contact sync.
|
||||||
await conversation.updateExpirationTimer(details.expireTimer, {
|
await conversation.updateExpirationTimer(details.expireTimer, {
|
||||||
|
// Note: because it's our conversationId, this notification will be marked read. But
|
||||||
|
// setting this will make 'isSetByOther' check true.
|
||||||
source: window.ConversationController.getOurConversationId(),
|
source: window.ConversationController.getOurConversationId(),
|
||||||
receivedAt: receivedAtCounter,
|
receivedAt: receivedAtCounter,
|
||||||
fromSync: true,
|
fromSync: true,
|
||||||
|
|
Loading…
Reference in New Issue