mirror of
https://github.com/bitwarden/browser
synced 2025-12-23 11:43:46 +00:00
[PM-5540] DesktopSettingsService (#8369)
* WIP: First Try at making DesktopSettingsService Does not work, migrations are ran in renderer but the values are read in main. * Update window$ retrieval * Fix DesktopSettings * Rename Migration * Add Migration to Builder * Cleanup * Update Comments * Update `migrate.ts` * Catch Unawaited Promises * Remove Comments * Update Tests * Rename Migration * Add `alwaysOnTop` * Make `init` async * Fix Desktop Build
This commit is contained in:
@@ -120,8 +120,8 @@ export class SettingsComponent implements OnInit {
|
||||
private domainSettingsService: DomainSettingsService,
|
||||
private dialogService: DialogService,
|
||||
private userVerificationService: UserVerificationServiceAbstraction,
|
||||
private biometricStateService: BiometricStateService,
|
||||
private desktopSettingsService: DesktopSettingsService,
|
||||
private biometricStateService: BiometricStateService,
|
||||
) {
|
||||
const isMac = this.platformUtilsService.getDevice() === DeviceType.MacOsDesktop;
|
||||
|
||||
@@ -253,12 +253,12 @@ export class SettingsComponent implements OnInit {
|
||||
clearClipboard: await firstValueFrom(this.autofillSettingsService.clearClipboardDelay$),
|
||||
minimizeOnCopyToClipboard: await this.stateService.getMinimizeOnCopyToClipboard(),
|
||||
enableFavicons: await firstValueFrom(this.domainSettingsService.showFavicons$),
|
||||
enableTray: await this.stateService.getEnableTray(),
|
||||
enableMinToTray: await this.stateService.getEnableMinimizeToTray(),
|
||||
enableCloseToTray: await this.stateService.getEnableCloseToTray(),
|
||||
startToTray: await this.stateService.getEnableStartToTray(),
|
||||
openAtLogin: await this.stateService.getOpenAtLogin(),
|
||||
alwaysShowDock: await this.stateService.getAlwaysShowDock(),
|
||||
enableTray: await firstValueFrom(this.desktopSettingsService.trayEnabled$),
|
||||
enableMinToTray: await firstValueFrom(this.desktopSettingsService.minimizeToTray$),
|
||||
enableCloseToTray: await firstValueFrom(this.desktopSettingsService.closeToTray$),
|
||||
startToTray: await firstValueFrom(this.desktopSettingsService.startToTray$),
|
||||
openAtLogin: await firstValueFrom(this.desktopSettingsService.openAtLogin$),
|
||||
alwaysShowDock: await firstValueFrom(this.desktopSettingsService.alwaysShowDock$),
|
||||
enableBrowserIntegration: await this.stateService.getEnableBrowserIntegration(),
|
||||
enableBrowserIntegrationFingerprint:
|
||||
await this.stateService.getEnableBrowserIntegrationFingerprint(),
|
||||
@@ -507,16 +507,16 @@ export class SettingsComponent implements OnInit {
|
||||
}
|
||||
|
||||
async saveMinToTray() {
|
||||
await this.stateService.setEnableMinimizeToTray(this.form.value.enableMinToTray);
|
||||
await this.desktopSettingsService.setMinimizeToTray(this.form.value.enableMinToTray);
|
||||
}
|
||||
|
||||
async saveCloseToTray() {
|
||||
if (this.requireEnableTray) {
|
||||
this.form.controls.enableTray.setValue(true);
|
||||
await this.stateService.setEnableTray(this.form.value.enableTray);
|
||||
await this.desktopSettingsService.setTrayEnabled(this.form.value.enableTray);
|
||||
}
|
||||
|
||||
await this.stateService.setEnableCloseToTray(this.form.value.enableCloseToTray);
|
||||
await this.desktopSettingsService.setCloseToTray(this.form.value.enableCloseToTray);
|
||||
}
|
||||
|
||||
async saveTray() {
|
||||
@@ -533,9 +533,9 @@ export class SettingsComponent implements OnInit {
|
||||
|
||||
if (confirm) {
|
||||
this.form.controls.startToTray.setValue(false, { emitEvent: false });
|
||||
await this.stateService.setEnableStartToTray(this.form.value.startToTray);
|
||||
await this.desktopSettingsService.setStartToTray(this.form.value.startToTray);
|
||||
this.form.controls.enableCloseToTray.setValue(false, { emitEvent: false });
|
||||
await this.stateService.setEnableCloseToTray(this.form.value.enableCloseToTray);
|
||||
await this.desktopSettingsService.setCloseToTray(this.form.value.enableCloseToTray);
|
||||
} else {
|
||||
this.form.controls.enableTray.setValue(true);
|
||||
}
|
||||
@@ -543,17 +543,18 @@ export class SettingsComponent implements OnInit {
|
||||
return;
|
||||
}
|
||||
|
||||
await this.stateService.setEnableTray(this.form.value.enableTray);
|
||||
await this.desktopSettingsService.setTrayEnabled(this.form.value.enableTray);
|
||||
// TODO: Ideally the DesktopSettingsService.trayEnabled$ could be subscribed to instead of using messaging.
|
||||
this.messagingService.send(this.form.value.enableTray ? "showTray" : "removeTray");
|
||||
}
|
||||
|
||||
async saveStartToTray() {
|
||||
if (this.requireEnableTray) {
|
||||
this.form.controls.enableTray.setValue(true);
|
||||
await this.stateService.setEnableTray(this.form.value.enableTray);
|
||||
await this.desktopSettingsService.setTrayEnabled(this.form.value.enableTray);
|
||||
}
|
||||
|
||||
await this.stateService.setEnableStartToTray(this.form.value.startToTray);
|
||||
await this.desktopSettingsService.setStartToTray(this.form.value.startToTray);
|
||||
}
|
||||
|
||||
async saveLocale() {
|
||||
@@ -573,13 +574,12 @@ export class SettingsComponent implements OnInit {
|
||||
}
|
||||
|
||||
async saveAlwaysShowDock() {
|
||||
await this.stateService.setAlwaysShowDock(this.form.value.alwaysShowDock);
|
||||
await this.desktopSettingsService.setAlwaysShowDock(this.form.value.alwaysShowDock);
|
||||
}
|
||||
|
||||
async saveOpenAtLogin() {
|
||||
// FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.
|
||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||
this.stateService.setOpenAtLogin(this.form.value.openAtLogin);
|
||||
await this.desktopSettingsService.setOpenAtLogin(this.form.value.openAtLogin);
|
||||
// TODO: Ideally DesktopSettingsService.openAtLogin$ could be subscribed to directly rather than sending a message
|
||||
this.messagingService.send(
|
||||
this.form.value.openAtLogin ? "addOpenAtLogin" : "removeOpenAtLogin",
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user