diff --git a/ts/background.ts b/ts/background.ts index ecad84399..283626569 100644 --- a/ts/background.ts +++ b/ts/background.ts @@ -618,6 +618,9 @@ export async function startApp(): Promise { window.Events = createIPCEvents({ shutdown: async () => { window.log.info('background/shutdown'); + + window.Signal.Util.flushMessageCounter(); + // Stop background processing AttachmentDownloads.stop(); if (idleDetector) { diff --git a/ts/util/incrementMessageCounter.ts b/ts/util/incrementMessageCounter.ts index c6b4a1c8d..98c668d41 100644 --- a/ts/util/incrementMessageCounter.ts +++ b/ts/util/incrementMessageCounter.ts @@ -17,6 +17,16 @@ export function incrementMessageCounter(): number { return receivedAtCounter; } -const debouncedUpdateLastReceivedAt = debounce(() => { - localStorage.setItem('lastReceivedAtCounter', String(receivedAtCounter)); -}, 500); +export function flushMessageCounter(): void { + debouncedUpdateLastReceivedAt.flush(); +} + +const debouncedUpdateLastReceivedAt = debounce( + () => { + localStorage.setItem('lastReceivedAtCounter', String(receivedAtCounter)); + }, + 25, + { + maxWait: 25, + } +); diff --git a/ts/util/index.ts b/ts/util/index.ts index c1da90c93..9742ca5e3 100644 --- a/ts/util/index.ts +++ b/ts/util/index.ts @@ -14,7 +14,10 @@ import { getStringForProfileChange } from './getStringForProfileChange'; import { getTextWithMentions } from './getTextWithMentions'; import { getUserAgent } from './getUserAgent'; import { hasExpired } from './hasExpired'; -import { incrementMessageCounter } from './incrementMessageCounter'; +import { + incrementMessageCounter, + flushMessageCounter, +} from './incrementMessageCounter'; import { isFileDangerous } from './isFileDangerous'; import { makeLookup } from './makeLookup'; import { @@ -50,6 +53,7 @@ export { createWaitBatcher, deleteForEveryone, downloadAttachment, + flushMessageCounter, fromWebSafeBase64, generateSecurityNumber, getStringForProfileChange,