Skip to content

Commit b3dadbc

Browse files
author
Akos Kitta
committed
check for updates in own module.
Signed-off-by: Akos Kitta <[email protected]>
1 parent 84d2273 commit b3dadbc

File tree

8 files changed

+75
-56
lines changed

8 files changed

+75
-56
lines changed

Diff for: arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx

-39
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ import { FileSystemFrontendContribution } from '@theia/filesystem/lib/browser/fi
4343
import { MonacoMenus } from '@theia/monaco/lib/browser/monaco-menu';
4444
import { FileNavigatorCommands } from '@theia/navigator/lib/browser/navigator-contribution';
4545
import { TerminalMenus } from '@theia/terminal/lib/browser/terminal-frontend-contribution';
46-
import { IDEUpdater } from '../common/protocol/ide-updater';
4746
import {
4847
CurrentSketch,
4948
SketchesServiceClientImpl,
@@ -55,7 +54,6 @@ import { BoardsServiceProvider } from './boards/boards-service-provider';
5554
import { BoardsToolBarItem } from './boards/boards-toolbar-item';
5655
import { OpenSketchFiles } from './contributions/open-sketch-files';
5756
import { SaveAsSketch } from './contributions/save-as-sketch';
58-
import { IDEUpdaterDialog } from './dialogs/ide-updater/ide-updater-dialog';
5957
import { ArduinoMenus } from './menu/arduino-menus';
6058
import { MonitorViewContribution } from './serial/monitor/monitor-view-contribution';
6159
import { ArduinoToolbar } from './toolbar/arduino-toolbar';
@@ -104,12 +102,6 @@ export class ArduinoFrontendContribution
104102
@inject(FileSystemFrontendContribution)
105103
private readonly fileSystemFrontendContribution: FileSystemFrontendContribution;
106104

107-
@inject(IDEUpdater)
108-
private readonly updater: IDEUpdater;
109-
110-
@inject(IDEUpdaterDialog)
111-
private readonly updaterDialog: IDEUpdaterDialog;
112-
113105
protected toDisposeOnStop = new DisposableCollection();
114106

115107
@postConstruct()
@@ -159,30 +151,6 @@ export class ArduinoFrontendContribution
159151
}
160152

161153
async onStart(app: FrontendApplication): Promise<void> {
162-
this.updater
163-
.init(
164-
this.arduinoPreferences.get('arduino.ide.updateChannel'),
165-
this.arduinoPreferences.get('arduino.ide.updateBaseUrl')
166-
)
167-
.then(() => this.updater.checkForUpdates(true))
168-
.then(async (updateInfo) => {
169-
if (!updateInfo) return;
170-
const versionToSkip = await this.localStorageService.getData<string>(
171-
SKIP_IDE_VERSION
172-
);
173-
if (versionToSkip === updateInfo.version) return;
174-
this.updaterDialog.open(updateInfo);
175-
})
176-
.catch((e) => {
177-
this.messageService.error(
178-
nls.localize(
179-
'arduino/ide-updater/errorCheckingForUpdates',
180-
'Error while checking for Arduino IDE updates.\n{0}',
181-
e.message
182-
)
183-
);
184-
});
185-
186154
this.arduinoPreferences.onPreferenceChanged((event) => {
187155
if (event.newValue !== event.oldValue) {
188156
switch (event.preferenceName) {
@@ -192,13 +160,6 @@ export class ArduinoFrontendContribution
192160
webContents.setZoomLevel(event.newValue || 0);
193161
}
194162
break;
195-
case 'arduino.ide.updateChannel':
196-
case 'arduino.ide.updateBaseUrl':
197-
this.updater.init(
198-
this.arduinoPreferences.get('arduino.ide.updateChannel'),
199-
this.arduinoPreferences.get('arduino.ide.updateBaseUrl')
200-
);
201-
break;
202163
}
203164
}
204165
});

Diff for: arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts

+2
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,7 @@ import { Notifications } from './contributions/notifications';
308308
import { OpenSketchFiles } from './contributions/open-sketch-files';
309309
import { InoLanguage } from './contributions/ino-language';
310310
import { SelectedBoard } from './contributions/selected-board';
311+
import { CheckForUpdates } from './contributions/check-for-updates';
311312

312313
MonacoThemingService.register({
313314
id: 'arduino-theme',
@@ -705,6 +706,7 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
705706
Contribution.configure(bind, OpenSketchFiles);
706707
Contribution.configure(bind, InoLanguage);
707708
Contribution.configure(bind, SelectedBoard);
709+
Contribution.configure(bind, CheckForUpdates);
708710

709711
// Disabled the quick-pick customization from Theia when multiple formatters are available.
710712
// Use the default VS Code behavior, and pick the first one. In the IDE2, clang-format has `exclusive` selectors.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import { nls } from '@theia/core/lib/common/nls';
2+
import { LocalStorageService } from '@theia/core/lib/browser/storage-service';
3+
import { inject, injectable } from '@theia/core/shared/inversify';
4+
import {
5+
IDEUpdater,
6+
SKIP_IDE_VERSION,
7+
} from '../../common/protocol/ide-updater';
8+
import { IDEUpdaterDialog } from '../dialogs/ide-updater/ide-updater-dialog';
9+
import { Contribution } from './contribution';
10+
11+
@injectable()
12+
export class CheckForUpdates extends Contribution {
13+
@inject(IDEUpdater)
14+
private readonly updater: IDEUpdater;
15+
16+
@inject(IDEUpdaterDialog)
17+
private readonly updaterDialog: IDEUpdaterDialog;
18+
19+
@inject(LocalStorageService)
20+
private readonly localStorage: LocalStorageService;
21+
22+
override onStart(): void {
23+
this.preferences.onPreferenceChanged(
24+
({ preferenceName, newValue, oldValue }) => {
25+
if (newValue !== oldValue) {
26+
switch (preferenceName) {
27+
case 'arduino.ide.updateChannel':
28+
case 'arduino.ide.updateBaseUrl':
29+
this.updater.init(
30+
this.preferences.get('arduino.ide.updateChannel'),
31+
this.preferences.get('arduino.ide.updateBaseUrl')
32+
);
33+
}
34+
}
35+
}
36+
);
37+
}
38+
39+
override onReady(): void {
40+
this.updater
41+
.init(
42+
this.preferences.get('arduino.ide.updateChannel'),
43+
this.preferences.get('arduino.ide.updateBaseUrl')
44+
)
45+
.then(() => this.updater.checkForUpdates(true))
46+
.then(async (updateInfo) => {
47+
if (!updateInfo) return;
48+
const versionToSkip = await this.localStorage.getData<string>(
49+
SKIP_IDE_VERSION
50+
);
51+
if (versionToSkip === updateInfo.version) return;
52+
this.updaterDialog.open(updateInfo);
53+
})
54+
.catch((e) => {
55+
this.messageService.error(
56+
nls.localize(
57+
'arduino/ide-updater/errorCheckingForUpdates',
58+
'Error while checking for Arduino IDE updates.\n{0}',
59+
e.message
60+
)
61+
);
62+
});
63+
}
64+
}

Diff for: arduino-ide-extension/src/browser/contributions/compiler-errors.ts

+1-7
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,7 @@ import { MonacoEditor } from '@theia/monaco/lib/browser/monaco-editor';
2929
import { MonacoToProtocolConverter } from '@theia/monaco/lib/browser/monaco-to-protocol-converter';
3030
import { ProtocolToMonacoConverter } from '@theia/monaco/lib/browser/protocol-to-monaco-converter';
3131
import { CoreError } from '../../common/protocol/core-service';
32-
import {
33-
ArduinoPreferences,
34-
ErrorRevealStrategy,
35-
} from '../arduino-preferences';
32+
import { ErrorRevealStrategy } from '../arduino-preferences';
3633
import { InoSelector } from '../ino-selectors';
3734
import { fullRange } from '../utils/monaco';
3835
import { Contribution } from './contribution';
@@ -127,9 +124,6 @@ export class CompilerErrors
127124
@inject(CoreErrorHandler)
128125
private readonly coreErrorHandler: CoreErrorHandler;
129126

130-
@inject(ArduinoPreferences)
131-
private readonly preferences: ArduinoPreferences;
132-
133127
private readonly errors: ErrorDecoration[] = [];
134128
private readonly onDidChangeEmitter = new monaco.Emitter<this>();
135129
private readonly currentErrorDidChangEmitter = new Emitter<ErrorDecoration>();

Diff for: arduino-ide-extension/src/browser/contributions/contribution.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@ export abstract class Contribution
9595
@inject(SettingsService)
9696
protected readonly settingsService: SettingsService;
9797

98+
@inject(ArduinoPreferences)
99+
protected readonly preferences: ArduinoPreferences;
100+
98101
@inject(FrontendApplicationStateService)
99102
protected readonly appStateService: FrontendApplicationStateService;
100103

@@ -142,9 +145,6 @@ export abstract class SketchContribution extends Contribution {
142145
@inject(SketchesServiceClientImpl)
143146
protected readonly sketchServiceClient: SketchesServiceClientImpl;
144147

145-
@inject(ArduinoPreferences)
146-
protected readonly preferences: ArduinoPreferences;
147-
148148
@inject(EditorManager)
149149
protected readonly editorManager: EditorManager;
150150

Diff for: arduino-ide-extension/src/browser/contributions/edit-contributions.ts

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { inject, injectable } from '@theia/core/shared/inversify';
22
import { CommonCommands } from '@theia/core/lib/browser/common-frontend-contribution';
33
import { ClipboardService } from '@theia/core/lib/browser/clipboard-service';
4-
import { PreferenceService } from '@theia/core/lib/browser/preferences/preference-service';
54
import { MonacoEditorService } from '@theia/monaco/lib/browser/monaco-editor-service';
65
import {
76
Contribution,
@@ -20,13 +19,10 @@ import type { StandaloneCodeEditor } from '@theia/monaco-editor-core/esm/vs/edit
2019
@injectable()
2120
export class EditContributions extends Contribution {
2221
@inject(MonacoEditorService)
23-
protected readonly codeEditorService: MonacoEditorService;
22+
private readonly codeEditorService: MonacoEditorService;
2423

2524
@inject(ClipboardService)
26-
protected readonly clipboardService: ClipboardService;
27-
28-
@inject(PreferenceService)
29-
protected readonly preferences: PreferenceService;
25+
private readonly clipboardService: ClipboardService;
3026

3127
override registerCommands(registry: CommandRegistry): void {
3228
registry.registerCommand(EditContributions.Commands.GO_TO_LINE, {

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ import {
1212
IDEUpdater,
1313
IDEUpdaterClient,
1414
ProgressInfo,
15+
SKIP_IDE_VERSION,
1516
UpdateInfo,
1617
} from '../../../common/protocol/ide-updater';
1718
import { LocalStorageService } from '@theia/core/lib/browser';
18-
import { SKIP_IDE_VERSION } from '../../arduino-frontend-contribution';
1919
import { WindowService } from '@theia/core/lib/browser/window/window-service';
2020

2121
@injectable()

Diff for: arduino-ide-extension/src/common/protocol/ide-updater.ts

+2
Original file line numberDiff line numberDiff line change
@@ -69,3 +69,5 @@ export interface IDEUpdaterClient {
6969
notifyDownloadProgressChanged(message: ProgressInfo): void;
7070
notifyDownloadFinished(message: UpdateInfo): void;
7171
}
72+
73+
export const SKIP_IDE_VERSION = 'skipIDEVersion';

0 commit comments

Comments
 (0)