Fix issue with windows-focus-assist returning truthy value on older windows versions (#2385)

This commit is contained in:
Tasos Boulis
2022-11-16 11:50:53 +02:00
committed by GitHub
parent 71f53a477a
commit 216674a673
3 changed files with 38 additions and 8 deletions

View File

@@ -9,6 +9,9 @@ const GNOME_READ_DND = 'gsettings get org.gnome.desktop.notifications show-banne
function getLinuxDoNotDisturb() {
try {
if (process.platform !== 'linux') {
return false;
}
const showNotifications = execSync(GNOME_READ_DND).toString().replace('\n', '');
log.debug('getLinuxDoNotDisturb', {showNotifications});

View File

@@ -0,0 +1,33 @@
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {getFocusAssist, isPriority} from 'windows-focus-assist';
/**
-2: NOT_SUPPORTED,
-1: FAILED,
0: Off,
1: PRIORITY_ONLY,
2: ALARMS_ONLY
*/
function getWindowsDoNotDisturb() {
if (process.platform !== 'win32') {
return false;
}
const focusAssistValue = getFocusAssist().value;
switch (focusAssistValue) {
case 2:
return true;
case 1:
return !isPriority('Mattermost.Desktop');
case 0:
case -1:
case -2:
return false;
default:
return focusAssistValue;
}
}
export default getWindowsDoNotDisturb;

View File

@@ -4,7 +4,6 @@
import {shell, Notification} from 'electron';
import log from 'electron-log';
import {getFocusAssist, isPriority} from 'windows-focus-assist';
import {getDoNotDisturb as getDarwinDoNotDisturb} from 'macos-notification-state';
import {MentionData} from 'types/notification';
@@ -18,6 +17,7 @@ import {Mention} from './Mention';
import {DownloadNotification} from './Download';
import {NewVersionNotification, UpgradeNotification} from './Upgrade';
import getLinuxDoNotDisturb from './dnd-linux';
import getWindowsDoNotDisturb from './dnd-windows';
export const currentNotifications = new Map();
@@ -140,13 +140,7 @@ export function displayRestartToUpgrade(version: string, handleUpgrade: () => vo
function getDoNotDisturb() {
if (process.platform === 'win32') {
const focusAssistValue = getFocusAssist().value;
switch (focusAssistValue) {
case 1:
return !isPriority('Mattermost.Desktop');
default:
return focusAssistValue;
}
return getWindowsDoNotDisturb();
}
if (process.platform === 'darwin') {