mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-26 19:44:25 +01:00
refactor - move logic to userDataSyncWorkbenchService
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
|
||||
import { IAuthenticationProvider, SyncStatus, SyncResource } from 'vs/platform/userDataSync/common/userDataSync';
|
||||
import { Event } from 'vs/base/common/event';
|
||||
import { RawContextKey } from 'vs/platform/contextkey/common/contextkey';
|
||||
import { localize } from 'vs/nls';
|
||||
|
||||
export interface IUserDataSyncAccount {
|
||||
readonly authenticationProviderId: string;
|
||||
readonly accountName: string;
|
||||
readonly accountId: string;
|
||||
}
|
||||
|
||||
export const IUserDataSyncWorkbenchService = createDecorator<IUserDataSyncWorkbenchService>('IUserDataSyncWorkbenchService');
|
||||
export interface IUserDataSyncWorkbenchService {
|
||||
_serviceBrand: any;
|
||||
|
||||
readonly authenticationProviders: IAuthenticationProvider[];
|
||||
readonly all: IUserDataSyncAccount[];
|
||||
readonly current: IUserDataSyncAccount | undefined;
|
||||
|
||||
readonly accountStatus: AccountStatus;
|
||||
readonly onDidChangeAccountStatus: Event<AccountStatus>;
|
||||
|
||||
turnOn(): Promise<void>;
|
||||
turnoff(everyWhere: boolean): Promise<void>;
|
||||
pickAccount(): Promise<void>;
|
||||
}
|
||||
|
||||
export function getSyncAreaLabel(source: SyncResource): string {
|
||||
switch (source) {
|
||||
case SyncResource.Settings: return localize('settings', "Settings");
|
||||
case SyncResource.Keybindings: return localize('keybindings', "Keyboard Shortcuts");
|
||||
case SyncResource.Snippets: return localize('snippets', "User Snippets");
|
||||
case SyncResource.Extensions: return localize('extensions', "Extensions");
|
||||
case SyncResource.GlobalState: return localize('ui state label', "UI State");
|
||||
}
|
||||
}
|
||||
|
||||
export const enum AccountStatus {
|
||||
Uninitialized = 'uninitialized',
|
||||
Unavailable = 'unavailable',
|
||||
Available = 'available',
|
||||
}
|
||||
|
||||
// Contexts
|
||||
export const CONTEXT_SYNC_STATE = new RawContextKey<string>('syncStatus', SyncStatus.Uninitialized);
|
||||
export const CONTEXT_SYNC_ENABLEMENT = new RawContextKey<boolean>('syncEnabled', false);
|
||||
export const CONTEXT_ACCOUNT_STATE = new RawContextKey<string>('userDataSyncAccountStatus', AccountStatus.Uninitialized);
|
||||
export const CONTEXT_ENABLE_VIEWS = new RawContextKey<boolean>(`showUserDataSyncViews`, false);
|
||||
|
||||
// Commands
|
||||
export const ENABLE_SYNC_VIEWS_COMMAND_ID = 'workbench.userDataSync.actions.enableViews';
|
||||
export const CONFIGURE_SYNC_COMMAND_ID = 'workbench.userDataSync.actions.configure';
|
||||
export const SHOW_SYNC_LOG_COMMAND_ID = 'workbench.userDataSync.actions.showLog';
|
||||
@@ -1,40 +0,0 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { IUserDataSyncService, IUserDataSyncEnablementService } from 'vs/platform/userDataSync/common/userDataSync';
|
||||
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
|
||||
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
|
||||
|
||||
export const IUserDataSyncWorkbenchService = createDecorator<IUserDataSyncWorkbenchService>('IUserDataSyncWorkbenchService');
|
||||
export interface IUserDataSyncWorkbenchService {
|
||||
_serviceBrand: any;
|
||||
turnoff(everyWhere: boolean): Promise<void>;
|
||||
}
|
||||
|
||||
export class UserDataSyncWorkbenchService implements IUserDataSyncWorkbenchService {
|
||||
|
||||
_serviceBrand: any;
|
||||
|
||||
constructor(
|
||||
@IUserDataSyncEnablementService private readonly userDataSyncEnablementService: IUserDataSyncEnablementService,
|
||||
@IUserDataSyncService private readonly userDataSyncService: IUserDataSyncService,
|
||||
@ITelemetryService private readonly telemetryService: ITelemetryService,
|
||||
) {
|
||||
}
|
||||
|
||||
async turnoff(everywhere: boolean): Promise<void> {
|
||||
if (everywhere) {
|
||||
this.telemetryService.publicLog2('sync/turnOffEveryWhere');
|
||||
await this.userDataSyncService.reset();
|
||||
} else {
|
||||
await this.userDataSyncService.resetLocal();
|
||||
}
|
||||
this.userDataSyncEnablementService.setEnablement(false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
registerSingleton(IUserDataSyncWorkbenchService, UserDataSyncWorkbenchService);
|
||||
Reference in New Issue
Block a user