diff --git a/jslib b/jslib index fc2f64ee36..9a4611ec5a 160000 --- a/jslib +++ b/jslib @@ -1 +1 @@ -Subproject commit fc2f64ee367b65e35e683ece0c91c05b5fb83bc5 +Subproject commit 9a4611ec5a650362abc7f5616fd7006f950c5b3d diff --git a/src/app/accounts/lock.component.ts b/src/app/accounts/lock.component.ts index 98ff800e04..42448205aa 100644 --- a/src/app/accounts/lock.component.ts +++ b/src/app/accounts/lock.component.ts @@ -1,12 +1,5 @@ -import { - Component, - NgZone, - OnDestroy, -} from '@angular/core'; -import { - ActivatedRoute, - Router, -} from '@angular/router'; +import { Component } from '@angular/core'; +import { Router } from '@angular/router'; import { CryptoService } from 'jslib/abstractions/crypto.service'; import { I18nService } from 'jslib/abstractions/i18n.service'; @@ -16,59 +9,18 @@ import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service'; import { StorageService } from 'jslib/abstractions/storage.service'; import { UserService } from 'jslib/abstractions/user.service'; -import { ConstantsService } from 'jslib/services/constants.service'; - import { LockComponent as BaseLockComponent } from 'jslib/angular/components/lock.component'; @Component({ selector: 'app-lock', templateUrl: 'lock.component.html', }) -export class LockComponent extends BaseLockComponent implements OnDestroy { - private reloadInterval: number = null; - +export class LockComponent extends BaseLockComponent { constructor(router: Router, i18nService: I18nService, platformUtilsService: PlatformUtilsService, messagingService: MessagingService, userService: UserService, cryptoService: CryptoService, - private ngZone: NgZone, private route: ActivatedRoute, storageService: StorageService, lockService: LockService) { super(router, i18nService, platformUtilsService, messagingService, userService, cryptoService, storageService, lockService); } - - async ngOnInit() { - await super.ngOnInit(); - this.route.queryParams.subscribe((params) => { - if (params.refresh === 'true' && !this.lockService.pinLocked) { - // Refresh the renderer window when locked to enure that all purged memory is cleaned up - this.ngZone.runOutsideAngular(() => { - this.reloadInterval = window.setInterval(async () => { - let doRefresh = false; - const lastActive = await this.storageService.get(ConstantsService.lastActiveKey); - if (lastActive != null) { - const diffSeconds = (new Date()).getTime() - lastActive; - // Don't refresh if they are still active in the window - doRefresh = diffSeconds >= 5000; - } - if (doRefresh) { - window.clearInterval(this.reloadInterval); - this.reloadInterval = null; - window.location.reload(true); - } - }, 10000); - }); - this.router.navigate([], { - relativeTo: this.route, - queryParams: {}, - replaceUrl: true, - }); - } - }); - } - - ngOnDestroy() { - if (this.reloadInterval != null) { - window.clearInterval(this.reloadInterval); - } - } } diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 8e0a817ade..b4825b7edb 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -111,10 +111,15 @@ export class AppComponent implements OnInit { this.ngZone.run(async () => { switch (message.command) { case 'loggedIn': - case 'loggedOut': case 'unlocked': this.notificationsService.updateConnection(); this.updateAppMenu(); + this.lockService.cancelLockReload(); + break; + case 'loggedOut': + this.notificationsService.updateConnection(); + this.updateAppMenu(); + this.lockService.startLockReload(); break; case 'logout': this.logOut(!!message.expired); @@ -123,9 +128,13 @@ export class AppComponent implements OnInit { await this.lockService.lock(true); break; case 'locked': - this.router.navigate(['lock'], { queryParams: { refresh: true } }); + this.router.navigate(['lock']); this.notificationsService.updateConnection(); this.updateAppMenu(); + this.lockService.startLockReload(); + break; + case 'reloadProcess': + window.location.reload(true); break; case 'syncStarted': break;