Process connection status updates
This commit is contained in:
parent
154113afc4
commit
6c4cb405b1
4 changed files with 53 additions and 1 deletions
|
@ -43,6 +43,10 @@ void TDLibReceiver::processReceivedDocument(const QJsonDocument &receivedJsonDoc
|
||||||
if (objectTypeName == "updateAuthorizationState") {
|
if (objectTypeName == "updateAuthorizationState") {
|
||||||
this->processUpdateAuthorizationState(receivedInformation);
|
this->processUpdateAuthorizationState(receivedInformation);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (objectTypeName == "updateConnectionState") {
|
||||||
|
this->processUpdateConnectionState(receivedInformation);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TDLibReceiver::processUpdateOption(const QVariantMap &receivedInformation)
|
void TDLibReceiver::processUpdateOption(const QVariantMap &receivedInformation)
|
||||||
|
@ -65,3 +69,10 @@ void TDLibReceiver::processUpdateAuthorizationState(const QVariantMap &receivedI
|
||||||
qDebug() << "[TDLibReceiver] Authorization state changed: " << authorizationState;
|
qDebug() << "[TDLibReceiver] Authorization state changed: " << authorizationState;
|
||||||
emit authorizationStateChanged(authorizationState);
|
emit authorizationStateChanged(authorizationState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TDLibReceiver::processUpdateConnectionState(const QVariantMap &receivedInformation)
|
||||||
|
{
|
||||||
|
QString connectionState = receivedInformation.value("state").toMap().value("@type").toString();
|
||||||
|
qDebug() << "[TDLibReceiver] Connection state changed: " << connectionState;
|
||||||
|
emit connectionStateChanged(connectionState);
|
||||||
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@ signals:
|
||||||
void versionDetected(const QString &version);
|
void versionDetected(const QString &version);
|
||||||
void authorizationStateChanged(const QString &authorizationState);
|
void authorizationStateChanged(const QString &authorizationState);
|
||||||
void optionUpdated(const QString &optionName, const QVariant &optionValue);
|
void optionUpdated(const QString &optionName, const QVariant &optionValue);
|
||||||
|
void connectionStateChanged(const QString &connectionState);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void *tdLibClient;
|
void *tdLibClient;
|
||||||
|
@ -30,6 +31,7 @@ private:
|
||||||
void processReceivedDocument(const QJsonDocument &receivedJsonDocument);
|
void processReceivedDocument(const QJsonDocument &receivedJsonDocument);
|
||||||
void processUpdateOption(const QVariantMap &receivedInformation);
|
void processUpdateOption(const QVariantMap &receivedInformation);
|
||||||
void processUpdateAuthorizationState(const QVariantMap &receivedInformation);
|
void processUpdateAuthorizationState(const QVariantMap &receivedInformation);
|
||||||
|
void processUpdateConnectionState(const QVariantMap &receivedInformation);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // TDLIBRECEIVER_H
|
#endif // TDLIBRECEIVER_H
|
||||||
|
|
|
@ -39,6 +39,7 @@ TDLibWrapper::TDLibWrapper(QObject *parent) : QObject(parent)
|
||||||
connect(this->tdLibReceiver, SIGNAL(versionDetected(QString)), this, SLOT(handleVersionDetected(QString)));
|
connect(this->tdLibReceiver, SIGNAL(versionDetected(QString)), this, SLOT(handleVersionDetected(QString)));
|
||||||
connect(this->tdLibReceiver, SIGNAL(authorizationStateChanged(QString)), this, SLOT(handleAuthorizationStateChanged(QString)));
|
connect(this->tdLibReceiver, SIGNAL(authorizationStateChanged(QString)), this, SLOT(handleAuthorizationStateChanged(QString)));
|
||||||
connect(this->tdLibReceiver, SIGNAL(optionUpdated(QString, QVariant)), this, SLOT(handleOptionUpdated(QString, QVariant)));
|
connect(this->tdLibReceiver, SIGNAL(optionUpdated(QString, QVariant)), this, SLOT(handleOptionUpdated(QString, QVariant)));
|
||||||
|
connect(this->tdLibReceiver, SIGNAL(connectionStateChanged(QString)), this, SLOT(handleConnectionStateChanged(QString)));
|
||||||
|
|
||||||
this->tdLibReceiver->start();
|
this->tdLibReceiver->start();
|
||||||
}
|
}
|
||||||
|
@ -70,6 +71,11 @@ TDLibWrapper::AuthorizationState TDLibWrapper::getAuthorizationState()
|
||||||
return this->authorizationState;
|
return this->authorizationState;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TDLibWrapper::ConnectionState TDLibWrapper::getConnectionState()
|
||||||
|
{
|
||||||
|
return this->connectionState;
|
||||||
|
}
|
||||||
|
|
||||||
void TDLibWrapper::handleVersionDetected(const QString &version)
|
void TDLibWrapper::handleVersionDetected(const QString &version)
|
||||||
{
|
{
|
||||||
this->version = version;
|
this->version = version;
|
||||||
|
@ -134,6 +140,27 @@ void TDLibWrapper::handleOptionUpdated(const QString &optionName, const QVariant
|
||||||
emit optionUpdated(optionName, optionValue);
|
emit optionUpdated(optionName, optionValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TDLibWrapper::handleConnectionStateChanged(const QString &connectionState)
|
||||||
|
{
|
||||||
|
if (connectionState == "connectionStateConnecting") {
|
||||||
|
this->connectionState = ConnectionState::Connecting;
|
||||||
|
}
|
||||||
|
if (connectionState == "connectionStateConnectingToProxy") {
|
||||||
|
this->connectionState = ConnectionState::ConnectingToProxy;
|
||||||
|
}
|
||||||
|
if (connectionState == "connectionStateReady") {
|
||||||
|
this->connectionState = ConnectionState::IsReady;
|
||||||
|
}
|
||||||
|
if (connectionState == "connectionStateUpdating") {
|
||||||
|
this->connectionState = ConnectionState::Updating;
|
||||||
|
}
|
||||||
|
if (connectionState == "connectionStateWaitingForNetwork") {
|
||||||
|
this->connectionState = ConnectionState::WaitingForNetwork;
|
||||||
|
}
|
||||||
|
|
||||||
|
emit connectionStateChanged(this->connectionState);
|
||||||
|
}
|
||||||
|
|
||||||
void TDLibWrapper::setInitialParameters()
|
void TDLibWrapper::setInitialParameters()
|
||||||
{
|
{
|
||||||
qDebug() << "[TDLibWrapper] Sending initial parameters to TD Lib";
|
qDebug() << "[TDLibWrapper] Sending initial parameters to TD Lib";
|
||||||
|
|
|
@ -30,25 +30,37 @@ public:
|
||||||
WaitTdlibParameters
|
WaitTdlibParameters
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum ConnectionState {
|
||||||
|
Connecting,
|
||||||
|
ConnectingToProxy,
|
||||||
|
IsReady,
|
||||||
|
Updating,
|
||||||
|
WaitingForNetwork
|
||||||
|
};
|
||||||
|
|
||||||
Q_INVOKABLE void sendRequest(const QVariantMap &requestObject);
|
Q_INVOKABLE void sendRequest(const QVariantMap &requestObject);
|
||||||
Q_INVOKABLE QString getVersion();
|
Q_INVOKABLE QString getVersion();
|
||||||
Q_INVOKABLE TDLibWrapper::AuthorizationState getAuthorizationState();
|
Q_INVOKABLE TDLibWrapper::AuthorizationState getAuthorizationState();
|
||||||
|
Q_INVOKABLE TDLibWrapper::ConnectionState getConnectionState();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void versionDetected(const QString &version);
|
void versionDetected(const QString &version);
|
||||||
void authorizationStateChanged(const TDLibWrapper::AuthorizationState &authorizationState);
|
void authorizationStateChanged(const TDLibWrapper::AuthorizationState &authorizationState);
|
||||||
void optionUpdated(const QString &optionName, const QVariant &optionValue);
|
void optionUpdated(const QString &optionName, const QVariant &optionValue);
|
||||||
|
void connectionStateChanged(const TDLibWrapper::ConnectionState &connectionState);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void handleVersionDetected(const QString &version);
|
void handleVersionDetected(const QString &version);
|
||||||
void handleAuthorizationStateChanged(const QString &authorizationState);
|
void handleAuthorizationStateChanged(const QString &authorizationState);
|
||||||
void handleOptionUpdated(const QString &optionName, const QVariant &optionValue);
|
void handleOptionUpdated(const QString &optionName, const QVariant &optionValue);
|
||||||
|
void handleConnectionStateChanged(const QString &connectionState);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void *tdLibClient;
|
void *tdLibClient;
|
||||||
TDLibReceiver *tdLibReceiver;
|
TDLibReceiver *tdLibReceiver;
|
||||||
QString version;
|
QString version;
|
||||||
TDLibWrapper::AuthorizationState authorizationState;
|
TDLibWrapper::AuthorizationState authorizationState;
|
||||||
|
TDLibWrapper::ConnectionState connectionState;
|
||||||
QVariantMap options;
|
QVariantMap options;
|
||||||
|
|
||||||
void setInitialParameters();
|
void setInitialParameters();
|
||||||
|
|
Loading…
Reference in a new issue