From 2e644eb3f0f0d87a177cb2db090f25e1d2a60d74 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Thu, 16 Apr 2020 20:15:33 +0200 Subject: [PATCH] update account status. - remove inactive state - use available and unavailable states --- .../userDataSync/browser/userDataSync.ts | 36 ++----------------- .../browser/userDataSyncAccount.ts | 18 +++++----- 2 files changed, 12 insertions(+), 42 deletions(-) diff --git a/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts b/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts index 3c03f349446..bcc844e6987 100644 --- a/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts +++ b/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts @@ -90,7 +90,6 @@ const getIdentityTitle = (label: string, userDataSyncAccountService: UserDataSyn return account ? `${label} (${authenticationService.getDisplayName(account.providerId)}:${account.accountName})` : label; }; const turnOnSyncCommand = { id: 'workbench.userData.actions.syncStart', title: localize('turn on sync with category', "Preferences Sync: Turn on...") }; -const signInCommand = { id: 'workbench.userData.actions.signin', title: localize('sign in', "Preferences Sync: Sign in to sync") }; const stopSyncCommand = { id: 'workbench.userData.actions.stopSync', title(userDataSyncAccountService: UserDataSyncAccounts, authenticationService: IAuthenticationService) { return getIdentityTitle(localize('stop sync', "Preferences Sync: Turn Off"), userDataSyncAccountService, authenticationService); } }; const resolveSettingsConflictsCommand = { id: 'workbench.userData.actions.resolveSettingsConflicts', title: localize('showConflicts', "Preferences Sync: Show Settings Conflicts") }; const resolveKeybindingsConflictsCommand = { id: 'workbench.userData.actions.resolveKeybindingsConflicts', title: localize('showKeybindingsConflicts', "Preferences Sync: Show Keybindings Conflicts") }; @@ -173,7 +172,6 @@ export class UserDataSyncWorkbenchContribution extends Disposable implements IWo private onDidChangeAccountStatus(status: AccountStatus): void { this.accountStatusContext.set(status); - this.updateBadge(); if (status === AccountStatus.Unavailable) { this.doTurnOff(false); } @@ -390,9 +388,7 @@ export class UserDataSyncWorkbenchContribution extends Disposable implements IWo let clazz: string | undefined; let priority: number | undefined = undefined; - if (this.userDataSyncService.status !== SyncStatus.Uninitialized && this.userDataSyncEnablementService.isEnabled() && this.userDataSyncAccounts.status === AccountStatus.Inactive) { - badge = new NumberBadge(1, () => localize('sign in to sync', "Sign in to Sync")); - } else if (this.userDataSyncService.conflicts.length) { + if (this.userDataSyncService.conflicts.length) { badge = new NumberBadge(this.userDataSyncService.conflicts.reduce((result, syncResourceConflict) => { return result + syncResourceConflict.conflicts.length; }, 0), () => localize('has conflicts', "Preferences Sync: Conflicts Detected")); } @@ -462,7 +458,7 @@ export class UserDataSyncWorkbenchContribution extends Disposable implements IWo } // User did not pick an account or login failed - if (this.userDataSyncAccounts.status !== AccountStatus.Active) { + if (this.userDataSyncAccounts.status !== AccountStatus.Available) { throw new Error(localize('no account', "No account available")); } @@ -651,7 +647,6 @@ export class UserDataSyncWorkbenchContribution extends Disposable implements IWo private registerActions(): void { this.registerTurnOnSyncAction(); - this.registerSignInAction(); this.registerShowSettingsConflictsAction(); this.registerShowKeybindingsConflictsAction(); this.registerShowSnippetsConflictsAction(); @@ -705,31 +700,6 @@ export class UserDataSyncWorkbenchContribution extends Disposable implements IWo }); } - private registerSignInAction(): void { - const that = this; - this._register(registerAction2(class StopSyncAction extends Action2 { - constructor() { - super({ - id: signInCommand.id, - title: localize('sign in 2', "Preferences Sync: Sign in to sync (1)"), - menu: { - group: '5_sync', - id: MenuId.GlobalActivity, - when: ContextKeyExpr.and(CONTEXT_SYNC_STATE.notEqualsTo(SyncStatus.Uninitialized), CONTEXT_SYNC_ENABLEMENT, CONTEXT_ACCOUNT_STATE.isEqualTo(AccountStatus.Inactive)), - order: 2 - }, - }); - } - async run(): Promise { - try { - await that.userDataSyncAccounts.login(); - } catch (e) { - that.notificationService.error(e); - } - } - })); - } - private registerShowSettingsConflictsAction(): void { const resolveSettingsConflictsWhenContext = ContextKeyExpr.regex(CONTEXT_CONFLICTS_SOURCES.keys()[0], /.*settings.*/i); CommandsRegistry.registerCommand(resolveSettingsConflictsCommand.id, () => this.handleSyncResourceConflicts(SyncResource.Settings)); @@ -816,7 +786,7 @@ export class UserDataSyncWorkbenchContribution extends Disposable implements IWo private registerSyncStatusAction(): void { const that = this; - const when = ContextKeyExpr.and(CONTEXT_SYNC_ENABLEMENT, CONTEXT_ACCOUNT_STATE.isEqualTo(AccountStatus.Active), CONTEXT_SYNC_STATE.notEqualsTo(SyncStatus.Uninitialized)); + const when = ContextKeyExpr.and(CONTEXT_SYNC_ENABLEMENT, CONTEXT_ACCOUNT_STATE.isEqualTo(AccountStatus.Available), CONTEXT_SYNC_STATE.notEqualsTo(SyncStatus.Uninitialized)); this._register(registerAction2(class SyncStatusAction extends Action2 { constructor() { super({ diff --git a/src/vs/workbench/contrib/userDataSync/browser/userDataSyncAccount.ts b/src/vs/workbench/contrib/userDataSync/browser/userDataSyncAccount.ts index 96d33ce1fbd..75a9ae11ad0 100644 --- a/src/vs/workbench/contrib/userDataSync/browser/userDataSyncAccount.ts +++ b/src/vs/workbench/contrib/userDataSync/browser/userDataSyncAccount.ts @@ -35,8 +35,7 @@ export interface IUserDataSyncAccount { export const enum AccountStatus { Uninitialized = 'uninitialized', Unavailable = 'unavailable', - Inactive = 'inactive', - Active = 'active', + Available = 'available', } export class UserDataSyncAccounts extends Disposable { @@ -116,21 +115,22 @@ export class UserDataSyncAccounts extends Disposable { } } + if (currentAccount) { + // Always use current account if available + status = AccountStatus.Available; + allAccounts.set(currentAccount.accountName, currentAccount); + } + + // update access token if (currentSession) { - status = AccountStatus.Inactive; try { const token = await currentSession.getAccessToken(); await this.authenticationTokenService.setToken(token); - status = AccountStatus.Active; } catch (e) { - // Ignore error + this.logService.error(e); } } - if (currentAccount) { - // Always use current account if available - allAccounts.set(currentAccount.accountName, currentAccount); - } } this._all = values(allAccounts);