Skip to content

Commit 70e414b

Browse files
committed
do not listen on status
1 parent b354b43 commit 70e414b

3 files changed

Lines changed: 38 additions & 24 deletions

File tree

src/vs/platform/userDataSync/common/userDataAutoSyncService.ts

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
import { Delayer, disposableTimeout } from 'vs/base/common/async';
77
import { Event, Emitter } from 'vs/base/common/event';
88
import { Disposable, toDisposable, MutableDisposable, IDisposable } from 'vs/base/common/lifecycle';
9-
import { IUserDataSyncLogService, IUserDataSyncService, SyncStatus, IUserDataAutoSyncService, UserDataSyncError, UserDataSyncErrorCode, IUserDataSyncEnablementService, ALL_SYNC_RESOURCES } from 'vs/platform/userDataSync/common/userDataSync';
9+
import { IUserDataSyncLogService, IUserDataSyncService, IUserDataAutoSyncService, UserDataSyncError, UserDataSyncErrorCode, IUserDataSyncEnablementService, ALL_SYNC_RESOURCES, getUserDataSyncStore } from 'vs/platform/userDataSync/common/userDataSync';
1010
import { IAuthenticationTokenService } from 'vs/platform/authentication/common/authentication';
1111
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
12+
import { IProductService } from 'vs/platform/product/common/productService';
13+
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
1214

1315
type AutoSyncClassification = {
1416
sources: { classification: 'SystemMetaData', purpose: 'FeatureInsight', isMeasurement: true };
@@ -34,22 +36,29 @@ export class UserDataAutoSyncService extends Disposable implements IUserDataAuto
3436
@IUserDataSyncLogService private readonly logService: IUserDataSyncLogService,
3537
@IAuthenticationTokenService private readonly authTokenService: IAuthenticationTokenService,
3638
@ITelemetryService private readonly telemetryService: ITelemetryService,
39+
@IProductService private readonly productService: IProductService,
40+
@IConfigurationService private readonly configurationService: IConfigurationService,
3741
) {
3842
super();
39-
this.updateEnablement();
4043
this.syncTriggerDelayer = this._register(new Delayer<void>(0));
41-
this._register(Event.any(authTokenService.onDidChangeToken, userDataSyncService.onDidChangeStatus, this.userDataSyncEnablementService.onDidChangeEnablement)(() => this.updateEnablement()));
42-
this._register(Event.filter(this.userDataSyncEnablementService.onDidChangeResourceEnablement, ([, enabled]) => enabled)(() => this.triggerAutoSync([RESOURCE_ENABLEMENT_SOURCE])));
44+
45+
if (getUserDataSyncStore(this.productService, this.configurationService)) {
46+
this.updateAutoSync();
47+
this._register(Event.any(authTokenService.onDidChangeToken, this.userDataSyncEnablementService.onDidChangeEnablement)(() => this.updateAutoSync()));
48+
this._register(Event.filter(this.userDataSyncEnablementService.onDidChangeResourceEnablement, ([, enabled]) => enabled)(() => this.triggerAutoSync([RESOURCE_ENABLEMENT_SOURCE])));
49+
}
4350
}
4451

45-
private updateEnablement(): void {
52+
private updateAutoSync(): void {
4653
const { enabled, reason } = this.isAutoSyncEnabled();
4754
if (enabled) {
4855
if (this.autoSync.value === undefined) {
49-
const autoSync = new AutoSync(this.startAutoSync(), 1000 * 60 * 5 /* 5 miutes */, this.userDataSyncService, this.logService);
50-
autoSync.register(autoSync.onDidStartSync(() => this.lastSyncTriggerTime = new Date().getTime()));
51-
autoSync.register(autoSync.onDidFinishSync(e => this.onDidFinishSync(e)));
52-
this.autoSync.value = autoSync;
56+
this.autoSync.value = new AutoSync(1000 * 60 * 5 /* 5 miutes */, this.userDataSyncService, this.logService);
57+
this.autoSync.value.register(this.autoSync.value.onDidStartSync(() => this.lastSyncTriggerTime = new Date().getTime()));
58+
this.autoSync.value.register(this.autoSync.value.onDidFinishSync(e => this.onDidFinishSync(e)));
59+
if (this.startAutoSync()) {
60+
this.autoSync.value.start();
61+
}
5362
}
5463
} else {
5564
if (this.autoSync.value !== undefined) {
@@ -66,9 +75,6 @@ export class UserDataAutoSyncService extends Disposable implements IUserDataAuto
6675
if (!this.userDataSyncEnablementService.isEnabled()) {
6776
return { enabled: false, reason: 'sync is disabled' };
6877
}
69-
if (this.userDataSyncService.status === SyncStatus.Uninitialized) {
70-
return { enabled: false, reason: 'sync is not initialized' };
71-
}
7278
if (!this.authTokenService.token) {
7379
return { enabled: false, reason: 'token is not avaialable' };
7480
}
@@ -145,21 +151,21 @@ class AutoSync extends Disposable {
145151
readonly onDidFinishSync = this._onDidFinishSync.event;
146152

147153
constructor(
148-
start: boolean,
149154
private readonly interval: number /* in milliseconds */,
150155
private readonly userDataSyncService: IUserDataSyncService,
151156
private readonly logService: IUserDataSyncLogService,
152157
) {
153158
super();
154-
if (start) {
155-
this._register(this.onDidFinishSync(() => this.waitUntilNextIntervalAndSync()));
156-
this._register(toDisposable(() => {
157-
this.logService.info('Auto Sync: Stopped');
158-
this.userDataSyncService.stop();
159-
}));
160-
this.logService.info('Auto Sync: Started');
161-
this.sync(AutoSync.INTERVAL_SYNCING);
162-
}
159+
}
160+
161+
start(): void {
162+
this._register(this.onDidFinishSync(() => this.waitUntilNextIntervalAndSync()));
163+
this._register(toDisposable(() => {
164+
this.userDataSyncService.stop();
165+
this.logService.info('Auto Sync: Stopped');
166+
}));
167+
this.logService.info('Auto Sync: Started');
168+
this.sync(AutoSync.INTERVAL_SYNCING);
163169
}
164170

165171
private waitUntilNextIntervalAndSync(): void {

src/vs/platform/userDataSync/electron-browser/userDataAutoSyncService.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import { IElectronService } from 'vs/platform/electron/electron-sandbox/electron
99
import { UserDataAutoSyncService as BaseUserDataAutoSyncService } from 'vs/platform/userDataSync/common/userDataAutoSyncService';
1010
import { IAuthenticationTokenService } from 'vs/platform/authentication/common/authentication';
1111
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
12+
import { IProductService } from 'vs/platform/product/common/productService';
13+
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
1214

1315
export class UserDataAutoSyncService extends BaseUserDataAutoSyncService {
1416

@@ -19,8 +21,10 @@ export class UserDataAutoSyncService extends BaseUserDataAutoSyncService {
1921
@IUserDataSyncLogService logService: IUserDataSyncLogService,
2022
@IAuthenticationTokenService authTokenService: IAuthenticationTokenService,
2123
@ITelemetryService telemetryService: ITelemetryService,
24+
@IProductService productService: IProductService,
25+
@IConfigurationService configurationService: IConfigurationService,
2226
) {
23-
super(userDataSyncEnablementService, userDataSyncService, logService, authTokenService, telemetryService);
27+
super(userDataSyncEnablementService, userDataSyncService, logService, authTokenService, telemetryService, productService, configurationService);
2428

2529
this._register(Event.debounce<string, string[]>(Event.any<string>(
2630
Event.map(electronService.onWindowFocus, () => 'windowFocus'),

src/vs/workbench/contrib/userDataSync/browser/userDataAutoSyncService.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import { IHostService } from 'vs/workbench/services/host/browser/host';
1111
import { IAuthenticationTokenService } from 'vs/platform/authentication/common/authentication';
1212
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
1313
import { UserDataSyncTrigger } from 'vs/workbench/contrib/userDataSync/browser/userDataSyncTrigger';
14+
import { IProductService } from 'vs/platform/product/common/productService';
15+
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
1416

1517
export class UserDataAutoSyncService extends BaseUserDataAutoSyncService {
1618

@@ -22,8 +24,10 @@ export class UserDataAutoSyncService extends BaseUserDataAutoSyncService {
2224
@IInstantiationService instantiationService: IInstantiationService,
2325
@IHostService hostService: IHostService,
2426
@ITelemetryService telemetryService: ITelemetryService,
27+
@IProductService productService: IProductService,
28+
@IConfigurationService configurationService: IConfigurationService,
2529
) {
26-
super(userDataSyncEnablementService, userDataSyncService, logService, authTokenService, telemetryService);
30+
super(userDataSyncEnablementService, userDataSyncService, logService, authTokenService, telemetryService, productService, configurationService);
2731

2832
this._register(Event.debounce<string, string[]>(Event.any<string>(
2933
Event.map(hostService.onDidChangeFocus, () => 'windowFocus'),

0 commit comments

Comments
 (0)