UX affordance when settings are only initialized but sync is not turned on

- Show the badge on gear icon
- Have an action in gear dropdown to explain and turn on sync
This commit is contained in:
Sandeep Somavarapu
2021-07-28 14:13:34 +02:00
parent d26fe87b52
commit 8805ccc3c4
5 changed files with 147 additions and 55 deletions

View File

@@ -276,6 +276,22 @@ export class UserDataSyncWorkbenchService extends Disposable implements IUserDat
throw new Error(localize('no account', "No account available"));
}
await this.turnOnUsingCurrentAccount();
}
async turnOnUsingCurrentAccount(): Promise<void> {
if (this.userDataAutoSyncEnablementService.isEnabled()) {
return;
}
if (this.userDataSyncService.status !== SyncStatus.Idle) {
throw new Error('Cannont turn on sync while syncing');
}
if (this.accountStatus !== AccountStatus.Available) {
throw new Error(localize('no account', "No account available"));
}
const syncTitle = SYNC_TITLE;
const title = `${syncTitle} [(${localize('show log', "show log")})](command:${SHOW_SYNC_LOG_COMMAND_ID})`;
const manualSyncTask = await this.userDataSyncService.createManualSyncTask();

View File

@@ -58,6 +58,7 @@ export interface IUserDataSyncWorkbenchService {
readonly userDataSyncPreview: IUserDataSyncPreview;
turnOn(): Promise<void>;
turnOnUsingCurrentAccount(): Promise<void>;
turnoff(everyWhere: boolean): Promise<void>;
signIn(): Promise<void>;