From eed1810f7c844bdb8ddc06934bd03683f797a23a Mon Sep 17 00:00:00 2001 From: Vladimir Y Date: Tue, 16 Jun 2020 00:20:00 +0300 Subject: [PATCH] linux gets back "close to tray" and "start hidden" defaults = true * @electron recently got back the "GTK / Appindicator"-based tray icons, see #254 for details * reverts 929122a710086fe7e192459da4d1637ab2c731dc and 01a9731907597a0909d4585d3e1893301e52284a --- src/electron-main/api/index.ts | 3 +- src/electron-main/constants.ts | 7 -- src/electron-main/storage-upgrade.ts | 70 ++----------------- src/electron-main/util.ts | 5 -- src/shared/api/main.ts | 1 - .../app/_options/base-settings.component.html | 2 - .../app/_options/base-settings.component.ts | 2 - 7 files changed, 8 insertions(+), 82 deletions(-) diff --git a/src/electron-main/api/index.ts b/src/electron-main/api/index.ts index 9a01893a4..ecb898c1f 100644 --- a/src/electron-main/api/index.ts +++ b/src/electron-main/api/index.ts @@ -9,7 +9,7 @@ import {IPC_MAIN_API, IPC_MAIN_API_NOTIFICATION_ACTIONS, IpcMainApiEndpoints} fr import {IPC_MAIN_API_NOTIFICATION$} from "src/electron-main/api/constants"; import {PACKAGE_NAME, PRODUCT_NAME} from "src/shared/constants"; import {attachFullTextIndexWindow, detachFullTextIndexWindow} from "src/electron-main/window/full-text-search"; -import {buildSettingsAdapter, linuxLikePlatform} from "src/electron-main/util"; +import {buildSettingsAdapter} from "src/electron-main/util"; import {clearIdleTimeLogOut, setupIdleTimeLogOut} from "src/electron-main/power-monitor"; import {curryFunctionMembers} from "src/shared/util"; import {deletePassword, getPassword, setPassword} from "src/electron-main/keytar"; @@ -53,7 +53,6 @@ export const initApi = async (ctx: Context): Promise => { async staticInit() { return { electronLocations: ctx.locations, - linuxLikePlatform: linuxLikePlatform(), }; }, diff --git a/src/electron-main/constants.ts b/src/electron-main/constants.ts index 243a601d9..c1d240acc 100644 --- a/src/electron-main/constants.ts +++ b/src/electron-main/constants.ts @@ -6,7 +6,6 @@ import {randomBytes} from "crypto"; import {BaseConfig, Config, ENCRYPTION_DERIVATION_PRESETS, KEY_DERIVATION_PRESETS, Settings} from "src/shared/model/options"; import {PACKAGE_NAME} from "src/shared/constants"; import {initialConfig} from "src/shared/util"; -import {linuxLikePlatform} from "src/electron-main/util"; export const PLATFORM = platform(); @@ -25,12 +24,6 @@ export const INITIAL_STORES: Readonly<{ return { ...config, checkUpdateAndNotify: !SNAP_CONTAINER, // update check is disabled by default for the Snap package type - startHidden: linuxLikePlatform() - ? false - : config.startHidden, - hideOnClose: linuxLikePlatform() - ? false - : config.hideOnClose, }; }, settings: () => { diff --git a/src/electron-main/storage-upgrade.ts b/src/electron-main/storage-upgrade.ts index eaf266c6e..7047be682 100644 --- a/src/electron-main/storage-upgrade.ts +++ b/src/electron-main/storage-upgrade.ts @@ -4,8 +4,6 @@ import _logger from "electron-log"; import compareVersions from "compare-versions"; import path from "path"; -import {delay, filter, take} from "rxjs/operators"; -import {merge} from "rxjs"; import {AccountConfig} from "src/shared/model/account"; import {BaseConfig, Config, Settings} from "src/shared/model/options"; @@ -18,7 +16,6 @@ import {IPC_MAIN_API_NOTIFICATION$} from "src/electron-main/api/constants"; import {IPC_MAIN_API_NOTIFICATION_ACTIONS} from "src/shared/api/main"; import { LAYOUT_MODES, - ONE_SECOND_MS, PACKAGE_VERSION, PROTON_API_ENTRY_PRIMARY_VALUE, PROTON_API_ENTRY_URLS, @@ -26,7 +23,6 @@ import { ZOOM_FACTORS, } from "src/shared/constants"; import {curryFunctionMembers, pickBaseConfigProperties} from "src/shared/util"; -import {linuxLikePlatform} from "src/electron-main/util"; const logger = curryFunctionMembers(_logger, "[src/electron-main/storage-upgrade]"); @@ -238,9 +234,9 @@ const CONFIG_UPGRADES: Record void> = { logger.info(loggerPrefix); function trayIconRelatedUpdate( - {prevKey, key, keyTitle}: - | Readonly<{ prevKey: "startMinimized"; key: keyof Pick; keyTitle: string }> - | Readonly<{ prevKey: "closeToTray"; key: keyof Pick; keyTitle: string }>, + {prevKey, key}: + | Readonly<{ prevKey: "startMinimized"; key: keyof Pick }> + | Readonly<{ prevKey: "closeToTray"; key: keyof Pick }>, ): void { if (typeof config[key] === "boolean") { return; @@ -248,67 +244,15 @@ const CONFIG_UPGRADES: Record void> = { type PrevConfig = { [k in typeof prevKey]?: boolean }; const {[prevKey]: prevValue} = config as PrevConfig; - delete (config as PrevConfig).startMinimized; + delete (config as PrevConfig)[prevKey]; - config[key] = linuxLikePlatform() || typeof prevValue !== "boolean" - // set the default value if any conditions met: - // - Linux system - // - no saved before v4.2.3 value detected + config[key] = typeof prevValue !== "boolean" ? INITIAL_STORES.config()[key] - // otherwise just rename "startMinimized => startHidden" : prevValue; - - setTimeout((): void => { - const showValueResetNotification = ( - linuxLikePlatform() - && - // value existed and has been changed/reset - typeof prevValue === "boolean" && config[key] !== prevValue - ); - - logger.info( - loggerPrefix, - JSON.stringify({ - linuxLikePlatform: linuxLikePlatform(), - prevKey, - key, - prevValue, - value: config[key], - showValueResetNotification - }), - ); - - if (!showValueResetNotification) { - return; - } - - merge( - IPC_MAIN_API_NOTIFICATION$.pipe(filter(IPC_MAIN_API_NOTIFICATION_ACTIONS.is.Bootstrap)), - IPC_MAIN_API_NOTIFICATION$.pipe(filter(IPC_MAIN_API_NOTIFICATION_ACTIONS.is.ActivateBrowserWindow)), - ).pipe( - take(1), - delay(ONE_SECOND_MS * 3), - ).subscribe((notification) => { - logger.info( - loggerPrefix, - "Showing message", - JSON.stringify({notification}), - ); - - IPC_MAIN_API_NOTIFICATION$.next( - IPC_MAIN_API_NOTIFICATION_ACTIONS.InfoMessage({ - message: [ - `The "${keyTitle}" flag has been reset. `, - `See https://github.com/vladimiry/ElectronMail/issues/254 for details.`, - ].join(""), - }), - ); - }); - }); } - trayIconRelatedUpdate({prevKey: "startMinimized", key: "startHidden", keyTitle: "Start minimized to tray"}); - trayIconRelatedUpdate({prevKey: "closeToTray", key: "hideOnClose", keyTitle: "Close to tray"}); + trayIconRelatedUpdate({prevKey: "startMinimized", key: "startHidden"}); + trayIconRelatedUpdate({prevKey: "closeToTray", key: "hideOnClose"}); ((): void => { const key: keyof Pick = "layoutMode"; diff --git a/src/electron-main/util.ts b/src/electron-main/util.ts index 2d6ca2c53..149d93ef4 100644 --- a/src/electron-main/util.ts +++ b/src/electron-main/util.ts @@ -6,15 +6,10 @@ import {EncryptionAdapter} from "fs-json-store-encryption-adapter"; import {Model as StoreModel} from "fs-json-store"; import {Context} from "./model"; -import {PLATFORM} from "src/electron-main/constants"; import {curryFunctionMembers} from "src/shared/util"; const logger = curryFunctionMembers(_logger, "[src/electron-main/util]"); -export function linuxLikePlatform(): boolean { - return PLATFORM !== "win32" && PLATFORM !== "darwin"; -} - export function formatFileUrl(pathname: string): string { return url.format({pathname, protocol: "file:", slashes: true}); } diff --git a/src/shared/api/main.ts b/src/shared/api/main.ts index 39a848782..89449afc8 100644 --- a/src/shared/api/main.ts +++ b/src/shared/api/main.ts @@ -158,7 +158,6 @@ export const ENDPOINTS_DEFINITION = { staticInit: ActionType.Promise>(), init: ActionType.Promise(), diff --git a/src/web/browser-window/app/_options/base-settings.component.html b/src/web/browser-window/app/_options/base-settings.component.html index 69aee8225..2cace718e 100644 --- a/src/web/browser-window/app/_options/base-settings.component.html +++ b/src/web/browser-window/app/_options/base-settings.component.html @@ -86,7 +86,6 @@ >
@@ -98,7 +97,6 @@ >
diff --git a/src/web/browser-window/app/_options/base-settings.component.ts b/src/web/browser-window/app/_options/base-settings.component.ts index 4ec3bd27e..7f12814ae 100644 --- a/src/web/browser-window/app/_options/base-settings.component.ts +++ b/src/web/browser-window/app/_options/base-settings.component.ts @@ -18,8 +18,6 @@ import {getZoneNameBoundWebLogger} from "src/web/browser-window/util"; preserveWhitespaces: true, }) export class BaseSettingsComponent implements OnInit, OnDestroy { - readonly linuxLikePlatform = __METADATA__.linuxLikePlatform; - readonly processing$: Observable = this.store.pipe( select(OptionsSelectors.FEATURED.progress), map((progress) => Boolean(progress.updatingBaseSettings)),