From 848dff7863f359ca6605c6e87a4275edbf32faa3 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Tue, 14 Apr 2020 16:52:03 -0400 Subject: [PATCH] tweaks to minimize on copy feature (#432) --- jslib | 2 +- src/app/accounts/settings.component.html | 5 +++-- src/app/vault/vault.component.ts | 4 ++-- src/app/vault/view.component.ts | 12 +----------- src/locales/en/messages.json | 2 +- src/main.ts | 2 +- src/main/messaging.main.ts | 17 ++++++++++++----- 7 files changed, 21 insertions(+), 23 deletions(-) diff --git a/jslib b/jslib index 8438cafb..2de8c5ed 160000 --- a/jslib +++ b/jslib @@ -1 +1 @@ -Subproject commit 8438cafbd08c1c9b1440e0c5385e15e8fb5ac524 +Subproject commit 2de8c5ed165f00e5d3a2b1dd92763176d6150782 diff --git a/src/app/accounts/settings.component.html b/src/app/accounts/settings.component.html index 44f9a713..3056f02d 100644 --- a/src/app/accounts/settings.component.html +++ b/src/app/accounts/settings.component.html @@ -62,8 +62,9 @@
diff --git a/src/app/vault/vault.component.ts b/src/app/vault/vault.component.ts index 299abf0e..96532151 100644 --- a/src/app/vault/vault.component.ts +++ b/src/app/vault/vault.component.ts @@ -660,8 +660,8 @@ export class VaultComponent implements OnInit, OnDestroy { this.platformUtilsService.copyToClipboard(value); this.toasterService.popAsync('info', null, this.i18nService.t('valueCopied', this.i18nService.t(labelI18nKey))); - if (this.viewComponent != null && this.action === 'view') { - this.viewComponent.minimizeIfNeeded(); + if (this.action === 'view') { + this.messagingService.send('minimizeOnCopy'); } }); } diff --git a/src/app/vault/view.component.ts b/src/app/vault/view.component.ts index dc329d43..60c4c0db 100644 --- a/src/app/vault/view.component.ts +++ b/src/app/vault/view.component.ts @@ -25,8 +25,6 @@ import { ViewComponent as BaseViewComponent } from 'jslib/angular/components/vie import { CipherView } from 'jslib/models/view/cipherView'; -import { ElectronConstants } from 'jslib/electron/electronConstants'; - @Component({ selector: 'app-vault-view', templateUrl: 'view.component.html', @@ -56,14 +54,6 @@ export class ViewComponent extends BaseViewComponent implements OnChanges { copy(value: string, typeI18nKey: string, aType: string) { super.copy(value, typeI18nKey, aType); - this.minimizeIfNeeded(); - } - - async minimizeIfNeeded(): Promise { - const shouldMinimize = await this.storageService.get( - ElectronConstants.minimizeOnCopyToClipboardKey); - if (shouldMinimize) { - this.messagingService.send('minimize'); - } + this.messagingService.send('minimizeOnCopy'); } } diff --git a/src/locales/en/messages.json b/src/locales/en/messages.json index a1e3a319..4e35b856 100644 --- a/src/locales/en/messages.json +++ b/src/locales/en/messages.json @@ -116,7 +116,7 @@ "message": "Minimize when copying to clipboard" }, "minimizeOnCopyToClipboardDesc": { - "message": "Bitwarden will minimize when credentials are copied to clipboard." + "message": "Minimize when copying an item's data to the clipboard." }, "toggleVisibility": { "message": "Toggle Visibility" diff --git a/src/main.ts b/src/main.ts index 8bfd6b4b..ee5968bd 100644 --- a/src/main.ts +++ b/src/main.ts @@ -88,7 +88,7 @@ export class Main { this.storageService = new ElectronStorageService(app.getPath('userData'), storageDefaults); this.windowMain = new WindowMain(this.storageService, true); - this.messagingMain = new MessagingMain(this); + this.messagingMain = new MessagingMain(this, this.storageService); this.updaterMain = new UpdaterMain(this.i18nService, this.windowMain, 'desktop', () => { this.menuMain.updateMenuItem.enabled = false; }, () => { diff --git a/src/main/messaging.main.ts b/src/main/messaging.main.ts index cc9781a5..1e3af95e 100644 --- a/src/main/messaging.main.ts +++ b/src/main/messaging.main.ts @@ -2,12 +2,16 @@ import { ipcMain } from 'electron'; import { Main } from '../main'; +import { ElectronConstants } from 'jslib/electron/electronConstants'; + +import { StorageService } from 'jslib/abstractions/storage.service'; + const SyncInterval = 5 * 60 * 1000; // 5 minutes export class MessagingMain { private syncTimeout: NodeJS.Timer; - constructor(private main: Main) { } + constructor(private main: Main, private storageService: StorageService) { } init() { this.scheduleNextSync(); @@ -23,10 +27,13 @@ export class MessagingMain { this.main.menuMain.updateApplicationMenuState(message.isAuthenticated, message.isLocked); this.updateTrayMenu(message.isAuthenticated, message.isLocked); break; - case 'minimize': - if (this.main.windowMain.win != null) { - this.main.windowMain.win.minimize(); - } + case 'minimizeOnCopy': + this.storageService.get(ElectronConstants.minimizeOnCopyToClipboardKey).then( + (shouldMinimize) => { + if (shouldMinimize && this.main.windowMain.win != null) { + this.main.windowMain.win.minimize(); + } + }); break; case 'showTray': this.main.trayMain.showTray();