Update min/max required nymea core version
parent
24d5d8fa29
commit
f82fc9056d
|
|
@ -644,13 +644,19 @@ void JsonRpcClient::helloReply(int /*commandId*/, const QVariantMap ¶ms)
|
|||
|
||||
qDebug() << "Handshake reply:" << "Protocol version:" << protoVersionString << "InitRequired:" << m_initialSetupRequired << "AuthRequired:" << m_authenticationRequired << "PushButtonAvailable:" << m_pushButtonAuthAvailable;;
|
||||
|
||||
QVersionNumber minimumRequiredVersion = QVersionNumber(1, 10);
|
||||
QVersionNumber minimumRequiredVersion = QVersionNumber(5, 0);
|
||||
QVersionNumber maximumMajorVersion = QVersionNumber(5);
|
||||
if (m_jsonRpcVersion < minimumRequiredVersion) {
|
||||
qWarning() << "Nymea core doesn't support minimum required version. Required:" << minimumRequiredVersion << "Found:" << m_jsonRpcVersion;
|
||||
m_connection->disconnect();
|
||||
emit invalidProtocolVersion(m_jsonRpcVersion.toString(), minimumRequiredVersion.toString());
|
||||
emit invalidMinimumVersion(m_jsonRpcVersion.toString(), minimumRequiredVersion.toString());
|
||||
return;
|
||||
}
|
||||
if (m_jsonRpcVersion.majorVersion() > maximumMajorVersion.majorVersion()) {
|
||||
qWarning() << "Nymea core has breaking API changes not supported by this app version. Core major version:" << m_jsonRpcVersion.majorVersion() << "Maximum supported major version:" << maximumMajorVersion.majorVersion();
|
||||
emit invalidMaximumVersion(m_jsonRpcVersion.toString(), QString("%1.x").arg(maximumMajorVersion.majorVersion()));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Verify SSL certificate
|
||||
if (m_connection->isEncrypted()) {
|
||||
|
|
|
|||
|
|
@ -129,7 +129,8 @@ signals:
|
|||
void pushButtonAuthAvailableChanged();
|
||||
void authenticatedChanged();
|
||||
void tokenChanged();
|
||||
void invalidProtocolVersion(const QString &actualVersion, const QString &minimumVersion);
|
||||
void invalidMinimumVersion(const QString &actualVersion, const QString &minVersion);
|
||||
void invalidMaximumVersion(const QString &actualVersion, const QString &maxVersion);
|
||||
void authenticationFailed();
|
||||
void pushButtonAuthFailed();
|
||||
void createUserSucceeded();
|
||||
|
|
|
|||
|
|
@ -366,10 +366,17 @@ Item {
|
|||
init();
|
||||
}
|
||||
|
||||
onInvalidProtocolVersion: {
|
||||
onInvalidMinimumVersion: {
|
||||
var popup = invalidVersionComponent.createObject(app.contentItem);
|
||||
popup.actualVersion = actualVersion;
|
||||
popup.minimumVersion = minimumVersion
|
||||
popup.minVersion = minVersion;
|
||||
popup.open()
|
||||
tabSettings.lastConnectedHost = ""
|
||||
}
|
||||
onInvalidMaximumVersion: {
|
||||
var popup = invalidVersionComponent.createObject(app.contentItem);
|
||||
popup.actualVersion = actualVersion;
|
||||
popup.maxVersion = maxVersion;
|
||||
popup.open()
|
||||
tabSettings.lastConnectedHost = ""
|
||||
}
|
||||
|
|
@ -421,8 +428,9 @@ Item {
|
|||
Popup {
|
||||
id: popup
|
||||
|
||||
property string actualVersion: "0.0"
|
||||
property string minimumVersion: "1.10"
|
||||
property string actualVersion: ""
|
||||
property string minVersion: ""
|
||||
property string maxVersion: ""
|
||||
|
||||
width: app.width * .8
|
||||
height: col.childrenRect.height + app.margins * 2
|
||||
|
|
@ -439,7 +447,9 @@ Item {
|
|||
font.pixelSize: app.largeFont
|
||||
}
|
||||
Label {
|
||||
text: qsTr("Sorry, the version of the %1:core you are trying to connect to is too old. This app requires at least version %2 but this %1:core only supports %3").arg(app.systemName).arg(popup.minimumVersion).arg(popup.actualVersion)
|
||||
text: popup.minVersion != ""
|
||||
? qsTr("The version of the %1:core you are trying to connect to is too old. This app requires at least version %2 but this %1:core only supports %3. Please update your %1:core system.").arg(app.systemName).arg(popup.minVersion).arg(popup.actualVersion)
|
||||
: qsTr("The version of the %1:core you are trying to connect to is too new. This app supports only up to version %2 but this %1:core provides %3. Please update %1:app.").arg(app.systemName).arg(popup.maxVersion).arg(popup.actualVersion)
|
||||
wrapMode: Text.WordWrap
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue