Support keepMutedChatsArchived flag

This commit is contained in:
Fedor Indutny 2022-05-25 13:44:05 -07:00 committed by GitHub
parent e281fbe0e0
commit 7138daf5ef
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 4 deletions

View file

@ -145,4 +145,5 @@ message AccountRecord {
optional bytes subscriberId = 21;
optional string subscriberCurrencyCode = 22;
optional bool displayBadgesOnProfile = 23;
optional bool keepMutedChatsArchived = 25;
}

View file

@ -2883,6 +2883,11 @@ export class MessageModel extends window.Backbone.Model<MessageAttributesType> {
const isGroupStoryReply =
isGroup(conversation.attributes) && message.get('storyId');
const keepMutedChatsArchived =
window.storage.get('keepMutedChatsArchived') ?? false;
const keepThisConversationArchived =
keepMutedChatsArchived && conversation.isMuted();
if (readSyncs.length !== 0 || viewSyncs.length !== 0) {
const markReadAt = Math.min(
Date.now(),
@ -2922,7 +2927,11 @@ export class MessageModel extends window.Backbone.Model<MessageAttributesType> {
this.pendingMarkRead ?? Date.now(),
markReadAt
);
} else if (isFirstRun && !isGroupStoryReply) {
} else if (
isFirstRun &&
!isGroupStoryReply &&
!keepThisConversationArchived
) {
conversation.set({
isArchived: false,
});

View file

@ -315,9 +315,14 @@ export function toAccountRecord(
if (typeof subscriberCurrencyCode === 'string') {
accountRecord.subscriberCurrencyCode = subscriberCurrencyCode;
}
accountRecord.displayBadgesOnProfile = Boolean(
window.storage.get('displayBadgesOnProfile')
);
const displayBadgesOnProfile = window.storage.get('displayBadgesOnProfile');
if (displayBadgesOnProfile !== undefined) {
accountRecord.displayBadgesOnProfile = displayBadgesOnProfile;
}
const keepMutedChatsArchived = window.storage.get('keepMutedChatsArchived');
if (keepMutedChatsArchived !== undefined) {
accountRecord.keepMutedChatsArchived = keepMutedChatsArchived;
}
applyUnknownFields(accountRecord, conversation);
@ -933,6 +938,7 @@ export async function mergeAccountRecord(
subscriberId,
subscriberCurrencyCode,
displayBadgesOnProfile,
keepMutedChatsArchived,
} = accountRecord;
const updatedConversations = new Array<ConversationModel>();
@ -1124,6 +1130,7 @@ export async function mergeAccountRecord(
window.storage.put('subscriberCurrencyCode', subscriberCurrencyCode);
}
window.storage.put('displayBadgesOnProfile', Boolean(displayBadgesOnProfile));
window.storage.put('keepMutedChatsArchived', Boolean(keepMutedChatsArchived));
const ourID = window.ConversationController.getOurConversationId();

View file

@ -140,6 +140,7 @@ export type StorageAccessType = {
subscriberId: Uint8Array;
subscriberCurrencyCode: string;
displayBadgesOnProfile: boolean;
keepMutedChatsArchived: boolean;
hasAllStoriesMuted: boolean;
// Deprecated