mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-26 19:44:25 +01:00
#103405 check if sync is on
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { IUserDataAutoSyncService, UserDataSyncError, IUserDataSyncStoreManagementService } from 'vs/platform/userDataSync/common/userDataSync';
|
||||
import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService';
|
||||
import { IChannel } from 'vs/base/parts/ipc/common/ipc';
|
||||
import { Event } from 'vs/base/common/event';
|
||||
import { UserDataAutoSyncEnablementService } from 'vs/platform/userDataSync/common/userDataAutoSyncService';
|
||||
import { IStorageService } from 'vs/platform/storage/common/storage';
|
||||
import { IEnvironmentService } from 'vs/platform/environment/common/environment';
|
||||
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
|
||||
|
||||
class UserDataAutoSyncService extends UserDataAutoSyncEnablementService implements IUserDataAutoSyncService {
|
||||
|
||||
declare readonly _serviceBrand: undefined;
|
||||
|
||||
private readonly channel: IChannel;
|
||||
get onError(): Event<UserDataSyncError> { return Event.map(this.channel.listen<Error>('onError'), e => UserDataSyncError.toUserDataSyncError(e)); }
|
||||
|
||||
constructor(
|
||||
@IStorageService storageService: IStorageService,
|
||||
@IEnvironmentService environmentService: IEnvironmentService,
|
||||
@IUserDataSyncStoreManagementService userDataSyncStoreManagementService: IUserDataSyncStoreManagementService,
|
||||
@ISharedProcessService sharedProcessService: ISharedProcessService,
|
||||
) {
|
||||
super(storageService, environmentService, userDataSyncStoreManagementService);
|
||||
this.channel = sharedProcessService.getChannel('userDataAutoSync');
|
||||
}
|
||||
|
||||
triggerSync(sources: string[], hasToLimitSync: boolean, disableCache: boolean): Promise<void> {
|
||||
return this.channel.call('triggerSync', [sources, hasToLimitSync, disableCache]);
|
||||
}
|
||||
|
||||
turnOn(): Promise<void> {
|
||||
return this.channel.call('turnOn');
|
||||
}
|
||||
|
||||
turnOff(everywhere: boolean): Promise<void> {
|
||||
return this.channel.call('turnOff', [everywhere]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
registerSingleton(IUserDataAutoSyncService, UserDataAutoSyncService);
|
||||
@@ -0,0 +1,51 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { IUserDataSyncStoreManagementService, UserDataSyncStoreType, IUserDataSyncStore } from 'vs/platform/userDataSync/common/userDataSync';
|
||||
import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService';
|
||||
import { IChannel } from 'vs/base/parts/ipc/common/ipc';
|
||||
import { IStorageService } from 'vs/platform/storage/common/storage';
|
||||
import { AbstractUserDataSyncStoreManagementService } from 'vs/platform/userDataSync/common/userDataSyncStoreService';
|
||||
import { IProductService } from 'vs/platform/product/common/productService';
|
||||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
|
||||
|
||||
class UserDataSyncStoreManagementService extends AbstractUserDataSyncStoreManagementService implements IUserDataSyncStoreManagementService {
|
||||
|
||||
private readonly channel: IChannel;
|
||||
|
||||
constructor(
|
||||
@IProductService productService: IProductService,
|
||||
@IConfigurationService configurationService: IConfigurationService,
|
||||
@IStorageService storageService: IStorageService,
|
||||
@ISharedProcessService sharedProcessService: ISharedProcessService,
|
||||
) {
|
||||
super(productService, configurationService, storageService);
|
||||
this.channel = sharedProcessService.getChannel('userDataSyncStoreManagement');
|
||||
}
|
||||
|
||||
async switch(type: UserDataSyncStoreType): Promise<void> {
|
||||
return this.channel.call('switch', [type]);
|
||||
}
|
||||
|
||||
async getPreviousUserDataSyncStore(): Promise<IUserDataSyncStore> {
|
||||
const userDataSyncStore = await this.channel.call<IUserDataSyncStore>('getPreviousUserDataSyncStore');
|
||||
return this.revive(userDataSyncStore);
|
||||
}
|
||||
|
||||
private revive(userDataSyncStore: IUserDataSyncStore): IUserDataSyncStore {
|
||||
return {
|
||||
url: URI.revive(userDataSyncStore.url),
|
||||
defaultUrl: URI.revive(userDataSyncStore.defaultUrl),
|
||||
insidersUrl: URI.revive(userDataSyncStore.insidersUrl),
|
||||
stableUrl: URI.revive(userDataSyncStore.stableUrl),
|
||||
authenticationProviders: userDataSyncStore.authenticationProviders,
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
registerSingleton(IUserDataSyncStoreManagementService, UserDataSyncStoreManagementService);
|
||||
Reference in New Issue
Block a user