[MM-34594] Only show dock badge when the setting is enabled (#1538)
* [MM-34594] Only show dock badge when the setting is enabled * Fixed a potential crash
This commit is contained in:
@@ -32,7 +32,7 @@ const emitBadge = (expired, mentions, unreads) => {
|
||||
status.emitter.emit(UPDATE_BADGE, expired, mentions, unreads);
|
||||
};
|
||||
|
||||
const emitStatus = () => {
|
||||
export const emitStatus = () => {
|
||||
const expired = anyExpired();
|
||||
const mentions = totalMentions();
|
||||
const unreads = anyUnreads();
|
||||
|
@@ -10,6 +10,8 @@ import * as AppState from './appState';
|
||||
|
||||
const MAX_WIN_COUNT = 99;
|
||||
|
||||
let showUnreadBadgeSetting;
|
||||
|
||||
function showBadgeWindows(sessionExpired, showUnreadBadge, mentionCount) {
|
||||
let description = 'You have no unread messages';
|
||||
let text;
|
||||
@@ -19,7 +21,7 @@ function showBadgeWindows(sessionExpired, showUnreadBadge, mentionCount) {
|
||||
} else if (mentionCount > 0) {
|
||||
text = (mentionCount > MAX_WIN_COUNT) ? `${MAX_WIN_COUNT}+` : mentionCount.toString();
|
||||
description = `You have unread mentions (${mentionCount})`;
|
||||
} else if (showUnreadBadge) {
|
||||
} else if (showUnreadBadge && showUnreadBadgeSetting) {
|
||||
text = '•';
|
||||
description = 'You have unread channels';
|
||||
}
|
||||
@@ -32,7 +34,7 @@ function showBadgeOSX(sessionExpired, showUnreadBadge, mentionCount) {
|
||||
badge = '•';
|
||||
} else if (mentionCount > 0) {
|
||||
badge = mentionCount.toString();
|
||||
} else if (showUnreadBadge) {
|
||||
} else if (showUnreadBadge && showUnreadBadgeSetting) {
|
||||
badge = '•';
|
||||
}
|
||||
app.dock.setBadge(badge);
|
||||
@@ -59,6 +61,11 @@ function showBadge(sessionExpired, mentionCount, showUnreadBadge) {
|
||||
}
|
||||
}
|
||||
|
||||
export function setUnreadBadgeSetting(showUnreadBadge) {
|
||||
showUnreadBadgeSetting = showUnreadBadge;
|
||||
AppState.emitStatus();
|
||||
}
|
||||
|
||||
export function setupBadge() {
|
||||
AppState.on(UPDATE_BADGE, showBadge);
|
||||
}
|
||||
|
@@ -55,7 +55,7 @@ import {getLocalURLString, getLocalPreload} from './utils';
|
||||
import {destroyTray, refreshTrayImages, setTrayMenu, setupTray} from './tray/tray';
|
||||
import {AuthManager} from './authManager';
|
||||
import {CertificateManager} from './certificateManager';
|
||||
import {setupBadge} from './badge';
|
||||
import {setupBadge, setUnreadBadgeSetting} from './badge';
|
||||
|
||||
if (process.env.NODE_ENV !== 'production' && module.hot) {
|
||||
module.hot.accept();
|
||||
@@ -247,6 +247,7 @@ function handleConfigUpdate(newConfig) {
|
||||
log.error('error:', err);
|
||||
});
|
||||
WindowManager.setConfig(newConfig.data);
|
||||
setUnreadBadgeSetting(newConfig.data && newConfig.data.showUnreadBadge);
|
||||
}
|
||||
|
||||
ipcMain.emit('update-menu', true, config);
|
||||
@@ -255,6 +256,7 @@ function handleConfigUpdate(newConfig) {
|
||||
function handleConfigSynchronize() {
|
||||
// TODO: send this to server manager
|
||||
WindowManager.setConfig(config.data);
|
||||
setUnreadBadgeSetting(config.data.showUnreadBadge);
|
||||
if (app.isReady()) {
|
||||
WindowManager.sendToRenderer(RELOAD_CONFIGURATION);
|
||||
}
|
||||
@@ -514,7 +516,7 @@ function initializeAfterAppReady() {
|
||||
if (shouldShowTrayIcon()) {
|
||||
setupTray(config.trayIconTheme);
|
||||
}
|
||||
setupBadge();
|
||||
setupBadge(config.showUnreadBadge);
|
||||
|
||||
session.defaultSession.on('will-download', (event, item, webContents) => {
|
||||
const filename = item.getFilename();
|
||||
|
Reference in New Issue
Block a user