Opening and closing chat officially on entering/leaving page
This commit is contained in:
parent
a7b8dc54bd
commit
b42a8e4181
3 changed files with 27 additions and 0 deletions
|
@ -33,6 +33,7 @@ Page {
|
|||
property variant chatInformation;
|
||||
|
||||
function initializePage() {
|
||||
tdLibWrapper.openChat(chatInformation.id);
|
||||
chatPage.loading = false;
|
||||
}
|
||||
|
||||
|
@ -40,6 +41,12 @@ Page {
|
|||
initializePage();
|
||||
}
|
||||
|
||||
onStatusChanged: {
|
||||
if (status === PageStatus.Deactivating) {
|
||||
tdLibWrapper.closeChat(chatInformation.id);
|
||||
}
|
||||
}
|
||||
|
||||
SilicaFlickable {
|
||||
id: chatContainer
|
||||
contentHeight: parent.height
|
||||
|
|
|
@ -130,6 +130,24 @@ void TDLibWrapper::downloadFile(const QString &fileId)
|
|||
this->sendRequest(requestObject);
|
||||
}
|
||||
|
||||
void TDLibWrapper::openChat(const QString &chatId)
|
||||
{
|
||||
qDebug() << "[TDLibWrapper] Opening chat " << chatId;
|
||||
QVariantMap requestObject;
|
||||
requestObject.insert("@type", "openChat");
|
||||
requestObject.insert("chat_id", chatId);
|
||||
this->sendRequest(requestObject);
|
||||
}
|
||||
|
||||
void TDLibWrapper::closeChat(const QString &chatId)
|
||||
{
|
||||
qDebug() << "[TDLibWrapper] Closing chat " << chatId;
|
||||
QVariantMap requestObject;
|
||||
requestObject.insert("@type", "closeChat");
|
||||
requestObject.insert("chat_id", chatId);
|
||||
this->sendRequest(requestObject);
|
||||
}
|
||||
|
||||
QVariantMap TDLibWrapper::getUserInformation()
|
||||
{
|
||||
return this->userInformation;
|
||||
|
|
|
@ -72,6 +72,8 @@ public:
|
|||
Q_INVOKABLE void setAuthenticationCode(const QString &authenticationCode);
|
||||
Q_INVOKABLE void getChats();
|
||||
Q_INVOKABLE void downloadFile(const QString &fileId);
|
||||
Q_INVOKABLE void openChat(const QString &chatId);
|
||||
Q_INVOKABLE void closeChat(const QString &chatId);
|
||||
|
||||
signals:
|
||||
void versionDetected(const QString &version);
|
||||
|
|
Loading…
Reference in a new issue