From 4e1fc89de9ce3bf00f7387f39062d1b4878ecd16 Mon Sep 17 00:00:00 2001 From: vantezzen Date: Sat, 21 Sep 2019 11:37:30 +0200 Subject: Add scheduled Do-not-Disturb feature --- src/stores/ServicesStore.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/stores') diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index f88b14983..45350d8f5 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js @@ -11,6 +11,7 @@ import Store from './lib/Store'; import Request from './lib/Request'; import CachedRequest from './lib/CachedRequest'; import { matchRoute } from '../helpers/routing-helpers'; +import { isInTimeframe } from '../helpers/schedule-helpers'; import { workspaceStore } from '../features/workspaces'; import { serviceLimitStore } from '../features/serviceLimit'; import { RESTRICTION_TYPES } from '../models/Service'; @@ -422,6 +423,18 @@ export default class ServicesStore extends Store { }); } else if (channel === 'notification') { const { options } = args[0]; + + // Check if we are in scheduled Do-not-Disturb time + const { + scheduledDNDEnabled, + scheduledDNDStart, + scheduledDNDEnd, + } = this.stores.settings.all.app; + + if (scheduledDNDEnabled && isInTimeframe(scheduledDNDStart, scheduledDNDEnd)) { + return; + } + if (service.recipe.hasNotificationSound || service.isMuted || this.stores.settings.all.app.isAppMuted) { Object.assign(options, { silent: true, -- cgit v1.2.3-54-g00ecf