From f5b3eb394c9b0dcce9c86d316063f0d04d7be575 Mon Sep 17 00:00:00 2001 From: Audric Ackermann Date: Tue, 25 Feb 2020 16:08:56 +1100 Subject: [PATCH] enable notifications after 10seconds of start or reconnect --- js/background.js | 13 ++++++++++--- preload.js | 1 + 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/js/background.js b/js/background.js index 3ea8d48cc..910c4b1bd 100644 --- a/js/background.js +++ b/js/background.js @@ -1470,8 +1470,10 @@ serverTrustRoot: window.getServerTrustRoot(), }; - // Whisper.Notifications.disable(); // avoid notification flood until empty - Whisper.Notifications.enable(); + Whisper.Notifications.disable(); // avoid notification flood until empty + setTimeout(() => { + Whisper.Notifications.enable(); + }, window.CONSTANTS.NOTIFICATION_ENABLE_TIMEOUT_SECONDS * 1000); if (Whisper.Registration.ongoingSecondaryDeviceRegistration()) { const ourKey = textsecure.storage.user.getNumber(); @@ -1643,7 +1645,12 @@ // scenarios where we're coming back from sleep, we can get offline/online events // very fast, and it looks like a network blip. But we need to suppress // notifications in these scenarios too. So we listen for 'reconnect' events. - // Whisper.Notifications.disable(); + Whisper.Notifications.disable(); + + // Enable back notifications once most messages have been fetched + setTimeout(() => { + Whisper.Notifications.enable(); + }, window.CONSTANTS.NOTIFICATION_ENABLE_TIMEOUT_SECONDS * 1000); } function onProgress(ev) { const { count } = ev; diff --git a/preload.js b/preload.js index d701ff174..c9383e136 100644 --- a/preload.js +++ b/preload.js @@ -70,6 +70,7 @@ window.CONSTANTS = { MAX_MESSAGE_BODY_LENGTH: 64 * 1024, // Limited due to the proof-of-work requirement SMALL_GROUP_SIZE_LIMIT: 10, + NOTIFICATION_ENABLE_TIMEOUT_SECONDS: 10, // number of seconds to turn on notifications after reconnect/start of app }; window.versionInfo = {