mirror of
				https://github.com/zulip/zulip-desktop.git
				synced 2025-11-04 14:03:27 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			64 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
const electron = require('electron');
 | 
						|
const { app } = require('electron');
 | 
						|
 | 
						|
const ConfigUtil = require(__dirname + '/../../utils/config-util.js');
 | 
						|
 | 
						|
let instance = null;
 | 
						|
 | 
						|
class BadgeSettings {
 | 
						|
	constructor() {
 | 
						|
		if (instance) {
 | 
						|
			return instance;
 | 
						|
		} else {
 | 
						|
			instance = this;
 | 
						|
		}
 | 
						|
 | 
						|
		return instance;
 | 
						|
	}
 | 
						|
 | 
						|
	showBadgeCount(messageCount, mainWindow) {
 | 
						|
		if (process.platform === 'darwin') {
 | 
						|
			app.setBadgeCount(messageCount);
 | 
						|
		}
 | 
						|
		if (process.platform === 'win32') {
 | 
						|
			this.updateOverlayIcon(messageCount, mainWindow);
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	hideBadgeCount(mainWindow) {
 | 
						|
		if (process.platform === 'darwin') {
 | 
						|
			app.setBadgeCount(0);
 | 
						|
		}
 | 
						|
		if (process.platform === 'win32') {
 | 
						|
			mainWindow.setOverlayIcon(null, '');
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	updateBadge(badgeCount, mainWindow) {
 | 
						|
		if (ConfigUtil.getConfigItem('badgeOption', true)) {
 | 
						|
			this.showBadgeCount(badgeCount, mainWindow);
 | 
						|
		} else {
 | 
						|
			this.hideBadgeCount(mainWindow);
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	updateOverlayIcon(messageCount, mainWindow) {
 | 
						|
		if (!mainWindow.isFocused()) {
 | 
						|
			mainWindow.flashFrame(ConfigUtil.getConfigItem('flashTaskbarOnMessage'));
 | 
						|
		}
 | 
						|
		if (messageCount === 0) {
 | 
						|
			mainWindow.setOverlayIcon(null, '');
 | 
						|
		} else {
 | 
						|
			mainWindow.webContents.send('render-taskbar-icon', messageCount);
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	updateTaskbarIcon(data, text, mainWindow) {
 | 
						|
		const img = electron.nativeImage.createFromDataURL(data);
 | 
						|
		mainWindow.setOverlayIcon(img, text);
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
module.exports = new BadgeSettings();
 |