This commit is contained in:
Sandeep Somavarapu
2021-12-07 14:07:10 +01:00
parent 55c15b14d0
commit 5a9e780f0a
33 changed files with 214 additions and 279 deletions

View File

@@ -0,0 +1,62 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { IUserDataSyncEnablementService, SyncResource } from 'vs/platform/userDataSync/common/userDataSync';
import { UserDataSyncEnablementService as BaseUserDataSyncEnablementService } from 'vs/platform/userDataSync/common/userDataSyncEnablementService';
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
export class UserDataSyncEnablementService extends BaseUserDataSyncEnablementService implements IUserDataSyncEnablementService {
protected get workbenchEnvironmentService(): IWorkbenchEnvironmentService { return <IWorkbenchEnvironmentService>this.environmentService; }
override getResourceSyncStateVersion(resource: SyncResource): string | undefined {
return resource === SyncResource.Extensions ? this.workbenchEnvironmentService.options?.settingsSyncOptions?.extensionsSyncStateVersion : undefined;
}
}
export class WebUserDataSyncEnablementService extends UserDataSyncEnablementService implements IUserDataSyncEnablementService {
private enabled: boolean | undefined = undefined;
override canToggleEnablement(): boolean {
return this.isTrusted() && super.canToggleEnablement();
}
override isEnabled(): boolean {
if (!this.isTrusted()) {
return false;
}
if (this.enabled === undefined) {
this.enabled = this.workbenchEnvironmentService.options?.settingsSyncOptions?.enabled;
}
if (this.enabled === undefined) {
this.enabled = super.isEnabled();
}
return this.enabled;
}
override setEnablement(enabled: boolean) {
if (enabled && !this.canToggleEnablement()) {
return;
}
if (this.enabled !== enabled) {
this.enabled = enabled;
super.setEnablement(enabled);
if (this.workbenchEnvironmentService.options?.settingsSyncOptions?.enablementHandler) {
this.workbenchEnvironmentService.options.settingsSyncOptions.enablementHandler(this.enabled);
}
}
}
override getResourceSyncStateVersion(resource: SyncResource): string | undefined {
return resource === SyncResource.Extensions ? this.workbenchEnvironmentService.options?.settingsSyncOptions?.extensionsSyncStateVersion : undefined;
}
private isTrusted(): boolean {
return !!this.workbenchEnvironmentService.options?.workspaceProvider?.trusted;
}
}