MCPcopy Create free account
hub / github.com/andrewreeman/SpectralSuite / run

Method run

shared/VersionCheck.cpp:3–48  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1#include "VersionCheck.h"
2
3void VersionCheckThread::run()
4{
5 std::unique_ptr<InputStream> urlInput(URLInputSource(m_versionCheckUrl).createInputStream());
6 if (urlInput == nullptr) { return; }
7
8 String jsonString = urlInput->readString();
9 if(this->threadShouldExit()) { return; }
10
11 auto parsedJson = JSON::fromString(jsonString);
12
13 String versionName = parsedJson.getProperty("version", String()).toString();
14 if (versionName.isEmpty()) {
15 DBG("Error parsing version name");
16 return;
17 }
18
19 int code = (int)parsedJson.getProperty("code", -1);
20 if (code == -1) {
21 DBG("Error parsing version code");
22 return;
23 }
24
25 String releaseUrl = parsedJson.getProperty("release_url", String()).toString();
26 if (releaseUrl.isEmpty()) {
27 DBG("Error parsing release url");
28 return;
29 }
30
31 Array<var>* releaseNotesJsonArray = parsedJson.getProperty("release_notes", "[]").getArray();
32 StringArray releaseNotes;
33 for (var releaseNote : *releaseNotesJsonArray) {
34 if (releaseNote.isString()) {
35 releaseNotes.add(releaseNote.toString());
36 }
37 }
38
39 if (code <= m_currentVersionCode) { return; }
40 if (m_listener == nullptr) { return; }
41 if(this->threadShouldExit()) { return; }
42
43 MessageManager::callAsync([versionName, releaseNotes, releaseUrl, this](){
44 VersionInfo* versionInfo = new VersionInfo(versionName, releaseNotes, releaseUrl);
45 m_listener->onNewVersionAvailable(versionInfo);
46 delete versionInfo;
47 });
48}

Callers

nothing calls this directly

Calls 2

onNewVersionAvailableMethod · 0.80
isEmptyMethod · 0.45

Tested by

no test coverage detected