Skip to content

Commit b9ceb3d

Browse files
author
Akos Kitta
committed
Defer settings/certificates load until app ready.
Signed-off-by: Akos Kitta <[email protected]>
1 parent 18f2ff6 commit b9ceb3d

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

Diff for: arduino-ide-extension/src/browser/dialogs/certificate-uploader/certificate-uploader-dialog.tsx

+10-4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { CommandRegistry } from '@theia/core/lib/common/command';
1919
import { certificateList, sanifyCertString } from './utils';
2020
import { ArduinoFirmwareUploader } from '../../../common/protocol/arduino-firmware-uploader';
2121
import { nls } from '@theia/core/lib/common';
22+
import { FrontendApplicationStateService } from '@theia/core/lib/browser/frontend-application-state';
2223

2324
@injectable()
2425
export class UploadCertificateDialogWidget extends ReactWidget {
@@ -37,6 +38,9 @@ export class UploadCertificateDialogWidget extends ReactWidget {
3738
@inject(ArduinoFirmwareUploader)
3839
protected readonly arduinoFirmwareUploader: ArduinoFirmwareUploader;
3940

41+
@inject(FrontendApplicationStateService)
42+
private readonly appStateService: FrontendApplicationStateService;
43+
4044
protected certificates: string[] = [];
4145
protected updatableFqbns: string[] = [];
4246
protected availableBoards: AvailableBoard[] = [];
@@ -66,10 +70,12 @@ export class UploadCertificateDialogWidget extends ReactWidget {
6670
}
6771
});
6872

69-
this.arduinoFirmwareUploader.updatableBoards().then((fqbns) => {
70-
this.updatableFqbns = fqbns;
71-
this.update();
72-
});
73+
this.appStateService.reachedState('ready').then(() =>
74+
this.arduinoFirmwareUploader.updatableBoards().then((fqbns) => {
75+
this.updatableFqbns = fqbns;
76+
this.update();
77+
})
78+
);
7379

7480
this.boardsServiceClient.onAvailableBoardsChanged((availableBoards) => {
7581
this.availableBoards = availableBoards;

Diff for: arduino-ide-extension/src/browser/dialogs/settings/settings.ts

+5-3
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,11 @@ export class SettingsService {
111111

112112
@postConstruct()
113113
protected async init(): Promise<void> {
114-
const settings = await this.loadSettings();
115-
this._settings = deepClone(settings);
116-
this.ready.resolve();
114+
this.appStateService.reachedState('ready').then(async () => {
115+
const settings = await this.loadSettings();
116+
this._settings = deepClone(settings);
117+
this.ready.resolve();
118+
});
117119
}
118120

119121
protected async loadSettings(): Promise<Settings> {

0 commit comments

Comments
 (0)