diff --git a/persistancelayer.cpp b/persistancelayer.cpp index f33b4eeb1b8450fff837243f512fa525af62ed77..1274e217dc011d29b6e0dc5991b427777d04573c 100755 --- a/persistancelayer.cpp +++ b/persistancelayer.cpp @@ -766,7 +766,7 @@ void PersistanceLayer::setSetting( const QString &pProperty, const QString &pVal } -void PersistanceLayer::addChannel( const QString &pId, const QString &pName, const QString &pType, bool pJoined, bool pReadOnly, const QString &pMuted, bool pArchived, bool pBlocked, const QString &pUsername, const QString &pMchatPartnerId ) +void PersistanceLayer::addChannel( const QString &pId, const QString &pName, const QString &pType, bool pJoined, bool pReadOnly, const QString &pMuted, bool pArchived, bool pBlocked, const QString &pUsername, const QString &pChatPartnerId ) { transaction(); QSqlQuery setChannel; @@ -781,7 +781,7 @@ void PersistanceLayer::addChannel( const QString &pId, const QString &pName, con setChannel.bindValue( QStringLiteral( ":archived" ), pArchived ); setChannel.bindValue( QStringLiteral( ":blocked" ), pBlocked ); setChannel.bindValue( QStringLiteral( ":username" ), pUsername ); - setChannel.bindValue( QStringLiteral( ":chat_partner_id" ), pMchatPartnerId ); + setChannel.bindValue( QStringLiteral( ":chat_partner_id" ), pChatPartnerId ); if ( !setChannel.exec() ) { diff --git a/rocketchat.cpp b/rocketchat.cpp index 7d655acd3abb50bbb6803a83aeebeacd37993ed4..07db4445c72a917a1af396ba57014c3f58127f2a 100755 --- a/rocketchat.cpp +++ b/rocketchat.cpp @@ -148,16 +148,6 @@ bool RocketChat::isStorageReady() return mStorageStatus; } -void RocketChat::forceVirtualKeyboardShow() -{ - QGuiApplication::inputMethod()->setVisible( true ); -} - -void RocketChat::forceVirtualKeyboardHide() -{ - QGuiApplication::inputMethod()->setVisible( false ); -} - void RocketChat::setStatusBarColor( const QString &pColor ) { #ifdef Q_OS_ANDROID @@ -177,13 +167,6 @@ void RocketChat::resetChannelSwitchRequest() mChannelSwitchRequest.clear(); } -void RocketChat::channelViewReady() -{ -#ifdef Q_OS_IOS - emit checkForLinkedFile(); -#endif -} - bool RocketChat::customEmojisReady() { return mEmojisReady; @@ -241,11 +224,6 @@ void RocketChat::reportAbusiveContent( const QString &pMessageId, const QString QMetaObject::invokeMethod( mServerMap.first(), "reportAbusiveContent", Q_ARG( QString, pMessageId ), Q_ARG( QString, pAuthor ) ); } -void RocketChat::end() -{ - QCoreApplication::quit(); -} - void RocketChat::searchMessage( const QString &pTerm, const QString &pChannelId ) { QMetaObject::invokeMethod( mServerMap.first(), "searchMessage", Q_ARG( QString, pTerm ), Q_ARG( QString, pChannelId ) ); @@ -414,15 +392,6 @@ void RocketChat::openFileExternally( const QString &pPath ) } -void RocketChat::getSortOrderByCategory( const QString &pServerId, const QString &pType ) -{ - Q_UNUSED( pServerId ); - - if ( mServerStatus ) { - QMetaObject::invokeMethod( mServerMap.first(), "requestChannelSortOrder", Q_ARG( QString, pType ) ); - } -} - bool RocketChat::hasCameraPermission() { int granted = 1; @@ -444,13 +413,6 @@ QString RocketChat::getCleanString( const QString &pText ) return text; } -void RocketChat::getAllChannels() -{ - if ( mServerStatus ) { - QMetaObject::invokeMethod( mServerMap.first(), "requestAllChannels" ); - } -} - void RocketChat::uploadSharedFileToChannel( const QString &pChannelId ) { if ( mServerStatus ) { @@ -564,27 +526,6 @@ QString RocketChat::getCurrentChannel() return doc.toJson(); } -void RocketChat::resetCurrentChannel() -{ - mStorage->setCurrentChannel( QStringLiteral( "none" ), QStringLiteral( "none" ) ); -} - -void RocketChat::getUserSuggestions( const QString &pTerm, const QString &pExceptions ) -{ - if ( mServerStatus ) { - QMetaObject::invokeMethod( mServerMap.first(), "getUserSuggestions", Q_ARG( QString, pTerm ), Q_ARG( QString, pExceptions ) ); - } -} - -void RocketChat::getRoomInformation( const QString &pServerId, const QString &pChannelName ) -{ - Q_UNUSED( pServerId ); - - if ( mServerStatus ) { - QMetaObject::invokeMethod( mServerMap.first(), "getRoomInformation", Q_ARG( QString, pChannelName ) ); - } -} - void RocketChat::cancelUpload( const QString &pServerId, const QString &pFileId ) { Q_UNUSED( pServerId ); @@ -733,10 +674,8 @@ void RocketChat::serverReadySlot() auto pServer = mServerMap.first(); connect( pServer, &RocketChatServerData::ddpConnected, this, &RocketChat::onDDPConnected, Qt::UniqueConnection ); connect( pServer, &RocketChatServerData::loggedIn, this, &RocketChat::onLoggedIn, Qt::UniqueConnection ); - connect( pServer, &RocketChatServerData::privateChannelCreated, this, &RocketChat::onPrivateChannelCreated, Qt::UniqueConnection ); connect( pServer, &RocketChatServerData::customEmojisReceived, this, &RocketChat::onEmojisReady, Qt::UniqueConnection ); connect( pServer, &RocketChatServerData::loggedOut, this, &RocketChat::onLogout, Qt::UniqueConnection ); - connect( pServer, &RocketChatServerData::suggestionsReady, this, &RocketChat::suggestionsReady, Qt::UniqueConnection ); connect( pServer, &RocketChatServerData::loginError, this, &RocketChat::loginError, Qt::UniqueConnection ); connect( pServer, &RocketChatServerData::fileuploadStarted, this, &RocketChat::fileuploadStarted, Qt::UniqueConnection ); @@ -761,7 +700,6 @@ void RocketChat::serverReadySlot() connect( pServer, &RocketChatServerData::offlineMode, this, &RocketChat::offlineMode, Qt::UniqueConnection ); connect( pServer, &RocketChatServerData::loggingIn, this, &RocketChat::loggingIn, Qt::UniqueConnection ); - connect( pServer, &RocketChatServerData::historyReady, this, &RocketChat::historyReady, Qt::UniqueConnection ); connect( pServer, &RocketChatServerData::userStatusChanged, this, &RocketChat::userStatusChanged, Qt::UniqueConnection ); @@ -876,12 +814,6 @@ void RocketChat::onDDPConnected( const QString &pServerId ) emit serverConnected( pServerId ); } -void RocketChat::onPrivateChannelCreated( const QString &pServerId, const QString &pRid, const QString &pUsername ) -{ - qDebug() << "sending private channel creation to gui"; - emit privateChannelCreated( pServerId, pRid, pUsername ); -} - void RocketChat::onOnlineStateChanged( bool pOnline ) { qDebug() << "stat changed" << pOnline; diff --git a/rocketchat.h b/rocketchat.h index 802d3a742afe962b3429bf5882bae18376ead4e2..519caf7a1c8983989d135d72728cedca8d3d9456 100755 --- a/rocketchat.h +++ b/rocketchat.h @@ -57,8 +57,6 @@ class RocketChat : public QObject Q_INVOKABLE void getFileRessource( const QString &pUrl, const QString &pType ); Q_INVOKABLE QString getCurrentChannel( void ); - Q_INVOKABLE void getUserSuggestions( const QString &pTerm, const QString &pExceptions ); - Q_INVOKABLE void getRoomInformation( const QString &pServerId, const QString &pChannelName ); Q_INVOKABLE void cancelUpload( const QString &pServerId, const QString &pFileId ); Q_INVOKABLE void joinChannel( const QString &pServer, const QString &pChannelId ); @@ -72,7 +70,6 @@ class RocketChat : public QObject Q_INVOKABLE void sendMessage( const QString &pServerId, const QString &pChannelId, const QString &pMessage ); Q_INVOKABLE void openFileDialog( const QString &pChannelId ); - Q_INVOKABLE void resetCurrentChannel( void ); Q_INVOKABLE void logout( const QString &pServer ); Q_INVOKABLE void createPublicGroup( const QString &pServerId, const QString &pChannelName, const QStringList &pUsersNames, bool pReadonly = false ); @@ -81,10 +78,8 @@ class RocketChat : public QObject Q_INVOKABLE void addUsersToChannel( const QString &pServerId, const QString &pChannelName, const QString &pUsernames ); Q_INVOKABLE void openFileExternally( const QString &pPath ); - Q_INVOKABLE void getSortOrderByCategory( const QString &pServerId, const QString &pType ); Q_INVOKABLE bool hasCameraPermission(); Q_INVOKABLE QString getCleanString( const QString &pText ); - Q_INVOKABLE void getAllChannels(); Q_INVOKABLE void uploadSharedFileToChannel( const QString &channelId ); Q_INVOKABLE void joinJitsiCall( const QString &pServer, const QString &pChannelId, const QString &pMessageId ); @@ -109,16 +104,11 @@ class RocketChat : public QObject Q_INVOKABLE bool isServerReady(); Q_INVOKABLE bool isStorageReady(); - Q_INVOKABLE void forceVirtualKeyboardShow(); - Q_INVOKABLE void forceVirtualKeyboardHide(); - Q_INVOKABLE void setStatusBarColor( const QString &pColor ); Q_INVOKABLE QVariantMap checkForChannelSwitchRequest(); Q_INVOKABLE void resetChannelSwitchRequest(); - Q_INVOKABLE void channelViewReady(); - Q_INVOKABLE bool customEmojisReady(); Q_INVOKABLE void checkLoggedIn(); @@ -139,8 +129,6 @@ class RocketChat : public QObject Q_INVOKABLE void reportAbusiveContent( const QString &pMessageId, const QString &pAuthor ); - Q_INVOKABLE void end( void ); - Q_INVOKABLE void searchMessage( const QString &pTerm, const QString &pChannelId ); Q_INVOKABLE void searchRoom( const QString &pTerm ); @@ -200,8 +188,6 @@ class RocketChat : public QObject QString currentChannel; void onDDPConnected( const QString &pServerId ); - void onPrivateChannelCreated( const QString &pServerId, const QString &pRid, - const QString &pUsername ); void onOnlineStateChanged( bool pStat ); void onApplicationStateChanged( const Qt::ApplicationState &pState ); void onLogout( const QString &pServerId ); @@ -236,12 +222,10 @@ class RocketChat : public QObject signals: void fileRessourceProcessed( QString url, QString path, bool showInline ); - void privateChannelCreated( QString serverId, QString roomId, QString username ); void serverConnected( QString serverid ); void loggedIn( QString serverid ); void hashLoggedIn( QString server ); void loggedOut( QString server ); - void suggestionsReady( QVariantMap suggestions ); void loginError(); void offline( void ); void fileUploadFinished( QString fileId ); @@ -254,7 +238,6 @@ class RocketChat : public QObject void serverReady(); void storageReady(); void emojisReady( QVariantList emojis ); - void allChannelsReceived( QVariantList channels ); //TODO: use QVariant... void channelDetailsReady( QVariantMap details, QString channelId ); void noJitsiMeetAvailable(); @@ -262,7 +245,6 @@ class RocketChat : public QObject void pushTokenReceived( QString pToken ); void pushMessageReceived( QString pServer, QString pRid, QString pName, QString pType ); void loggingIn(); - void historyReady(); void userStatusChanged( int status ); diff --git a/rocketchatserver.cpp b/rocketchatserver.cpp index 645189822b2ad0a0e2db1e430fbdadc801760910..497d6b635cb14da9d519e84b25cd972f56bf9df6 100755 --- a/rocketchatserver.cpp +++ b/rocketchatserver.cpp @@ -97,7 +97,7 @@ void RocketChatServerData::init() emit offlineMode(); } - mUserId = mStorage->getUserId(); + setUserId( mStorage->getUserId() ); mUsername = mStorage->getUserName(); // mEmojisMap.reserve(3000); @@ -466,7 +466,6 @@ void RocketChatServerData::setUserId( const QString &userId ) QMetaObject::invokeMethod( userModel, "addUser", Q_ARG( User, user ) ); } - mOwnUser = user; mUserId = userId; connect( user.data(), &RocketChatUser::statusChanged, this, [ = ]() { @@ -508,8 +507,6 @@ void RocketChatServerData::loadHistoryTill( const QString &pChannelId, qint64 pT std::function<void ( QMultiMap<QString, QSharedPointer<RocketChatMessage>> *messages )> success = [ = ]( QMultiMap<QString, QSharedPointer<RocketChatMessage>> *messages ) { historyLoaded( messages ); - qDebug() << "loaded"; - emit historyReady(); }; QSharedPointer<LoadHistoryServiceRequest> request( new LoadHistoryServiceRequest( pChannelId ) ); request->setEnd( pTs ); @@ -591,11 +588,21 @@ void RocketChatServerData::offlineLogin() QString userName = mStorage->getUserName(); if ( !userId.isEmpty() && !userName.isEmpty() ) { - this->mUserId = userId; + setUserId( userId ); emit loggedIn( QStringLiteral( "default" ) ); } } +QSharedPointer<RocketChatUser> RocketChatServerData::getOwnUser() const +{ + return mOwnUser; +} + +void RocketChatServerData::setOwnUser( const QSharedPointer<RocketChatUser> &ownUser ) +{ + mOwnUser = ownUser; +} + QString RocketChatServerData::getBaseUrl() const { QString protocol = "https://"; @@ -661,7 +668,6 @@ void RocketChatServerData::loginWithHash( const QString &pUsername, const QStrin self->mRestApi->setToken( self->mResumeToken ); self->mRestApi->setUserId( userId ); self->mStorage->commit(); - self->mUserId = result[QStringLiteral( "id" )].toString(); self->mDdpApi->setToken( self->mResumeToken ); self->mDdpApi->unsetResponseBinding( request->getFrame() ); self->onDDPAuthenticated(); @@ -721,7 +727,6 @@ void RocketChatServerData::loginWithToken( const QString &pUsername, const QStri self->mStorage->setUserId( userId ); self->mRestApi->setToken( self->mResumeToken ); self->mRestApi->setUserId( userId ); - self->mUserId = result[QStringLiteral( "id" )].toString(); self->mDdpApi->setToken( self-> mResumeToken ); self->mDdpApi->unsetResponseBinding( request->getFrame() ); @@ -801,7 +806,6 @@ void RocketChatServerData::loginWtihSamlToken( const QString &pToken ) mStorage->setUserId( userId ); mRestApi->setToken( mResumeToken ); mRestApi->setUserId( userId ); - this->mUserId = result[QStringLiteral( "id" )].toString(); mDdpApi->setToken( mResumeToken ); mDdpApi->unsetResponseBinding( request->getFrame() ); @@ -872,7 +876,6 @@ void RocketChatServerData::loginWithOpenIDToken( const QString &pToken, const QS self->setUserId( userId ); self->mRestApi->setToken( mResumeToken ); self->mRestApi->setUserId( userId ); - self->mUserId = result[QStringLiteral( "id" )].toString(); self->mDdpApi->setToken( mResumeToken ); self->mDdpApi->unsetResponseBinding( request->getFrame() ); @@ -1101,23 +1104,6 @@ void RocketChatServerData::sendPushToken( const QString &pToken ) } } - -void RocketChatServerData::requestAllChannels() -{ - QVariantList channelsMap; - - for ( const auto &channel : mChannels->getElements() ) { - if ( !channel.isNull() ) { - QVariantMap obj; - obj[QStringLiteral( "name" )] = channel->getName(); - obj[QStringLiteral( "id" )] = channel->getRoomId(); - channelsMap.append( obj ); - } - } - - emit allChannelsReady( channelsMap ); -} - void RocketChatServerData::sendUnsentMessages() { qDebug() << "send unsend ddp messages"; @@ -1264,15 +1250,7 @@ void RocketChatServerData::onDDPMessageReceived( const QJsonObject &pMessage ) } else if ( pMessage[QStringLiteral( "collection" )] == QStringLiteral( "autocompleteRecords" ) ) { - if ( Q_LIKELY( pMessage.contains( QStringLiteral( "fields" ) ) && pMessage.contains( QStringLiteral( "msg" ) ) && pMessage.contains( QStringLiteral( "id" ) ) ) ) { - QJsonObject fields = pMessage[QStringLiteral( "fields" )].toObject(); - - if ( pMessage[QStringLiteral( "msg" )] == QStringLiteral( "added" ) ) { - mAutocompleteRecords[pMessage[QStringLiteral( "id" )].toString()] = fields; - } else if ( pMessage[QStringLiteral( "msg" )] == QStringLiteral( "removed" ) ) { - mAutocompleteRecords.remove( pMessage[QStringLiteral( "id" )].toString() ); - } - } + // not used anymore } else if ( pMessage[QStringLiteral( "collection" )] == QStringLiteral( "meteor_accounts_loginServiceConfiguration" ) ) { if ( Q_LIKELY( pMessage.contains( QStringLiteral( "fields" ) ) && pMessage.contains( QStringLiteral( "msg" ) ) && pMessage.contains( QStringLiteral( "id" ) ) ) ) { QString msg = pMessage[QStringLiteral( "msg" )].toString(); @@ -1839,44 +1817,6 @@ void RocketChatServerData::cancelUpload( const QString &pFileId ) } } -void RocketChatServerData::getUserSuggestions( const QString &pTerm, const QString &pExeptions ) -{ - QJsonArray params; - QJsonObject firstParam; - QJsonDocument jsonExceptions = QJsonDocument::fromJson( pExeptions.toUtf8() ); - - QStringList users = pExeptions.split( ',' ); - QJsonArray exceptionEntries; - - for ( const auto &entry : users ) { - exceptionEntries.append( entry ); - } - - //exceptionEntries.append( mUsername ); - firstParam[QStringLiteral( "exceptions" )] = exceptionEntries; - firstParam[QStringLiteral( "term" )] = pTerm; - params.append( firstParam ); - - QSharedPointer<DDPSubscriptionRequest> subSuggestions( new DDPSubscriptionRequest( QStringLiteral( "userAutocomplete" ), params ) ); - DdpCallback success = [ = ]( QJsonObject pResponse, MeteorDDP * pDdp ) { - - if ( pDdp ) { - if ( pResponse.contains( QStringLiteral( "msg" ) ) ) { - if ( pResponse[QStringLiteral( "msg" )] == QStringLiteral( "ready" ) ) { - emit suggestionsReady( mAutocompleteRecords ); - mAutocompleteRecords.clear(); - QSharedPointer<DDPUnsubscriptionRequest> unSubSuggestions( new DDPUnsubscriptionRequest( subSuggestions->getFrame() ) ); - sendDdprequest( unSubSuggestions ); - pDdp->unsetResponseBinding( subSuggestions->getFrame() ); - - } - } - } - }; - subSuggestions->setSuccess( success ); - sendDdprequest( subSuggestions ); -} - void RocketChatServerData::getRoomInformation( const QString &pRoomName ) { QJsonArray params; diff --git a/rocketchatserver.h b/rocketchatserver.h index fb0f5c3d329a9032ef89b1ab916a9e3702387194..806c77de5b8b4d04475665be867194ec3ec90a90 100755 --- a/rocketchatserver.h +++ b/rocketchatserver.h @@ -153,9 +153,6 @@ class RocketChatServerData : public MessageListener void getFileRessource( const QString &pUrl ); void getFileRessource( const QString &pUrl, const QString &pType ); - - void getUserSuggestions( const QString &pTerm, const QString &pExceptions ); - void getRoomInformation( const QString &pRoomName ); void getLoginMethods(); void getServerInfo(); @@ -178,8 +175,6 @@ class RocketChatServerData : public MessageListener void sendPushToken( const QString &pToken ); - void requestAllChannels(); - void switchChannel( const QString &pServer, const QString &pRid, const QString &pName, const QString &pType ); void switchChannelByName( const QString &pRid, const QString &pType ); @@ -268,7 +263,6 @@ class RocketChatServerData : public MessageListener LoginMethodsRepository mLoginMethodRepo; ChannelRepository *mChannels = nullptr; EmojiRepo *mEmojiRepo = nullptr; - QVariantMap mAutocompleteRecords; RocketChatServerConfig config; bool mConnected = false; bool mLoggedIn = false; @@ -327,10 +321,8 @@ class RocketChatServerData : public MessageListener void ddpConnected( const QString &pServerId ); void loggedIn( const QString &pServer ); void onHashLoggedIn( const QString &pServer ); - void privateChannelCreated( const QString &pServerId, const QString &pRid, const QString &pUsername ); void loginError( void ); void loggedOut( const QString &pServerId ); - void suggestionsReady( QVariantMap ); void fileUploadFinished( const QString &pData ); void fileuploadStarted( const QString &pData ); void fileUploadProgressChanged( const QString &pData ); @@ -342,20 +334,20 @@ class RocketChatServerData : public MessageListener void readyToCheckForPendingNotification(); void registerForPush(); void allChannelsReady( const QVariantList &channels ); - void usersReady( const QString &users, const QString &channel ); void channelDetailsReady( QVariantMap details, const QString &channelId ); void unreadCountChanged( const QString &pServerId, uint pUnread ); void newLoginMethod( const QMap<QString, QVariant> &entry ); void resetLoginMethods(); void offlineMode( void ); void loggingIn(); - void historyReady(); void userStatusChanged( int status ); // MessageListener interface public: bool handlesMessage( QJsonObject object ); QString getBaseUrl() const; + QSharedPointer<RocketChatUser> getOwnUser() const; + void setOwnUser( const QSharedPointer<RocketChatUser> &ownUser ); }; #endif // ROCKETCHATSERVER_H diff --git a/services/rocketchatchannelservice.cpp b/services/rocketchatchannelservice.cpp index 59824c17f900a9cc6dfe0b835bb96d567625cee9..b908cfc3eb30248ab4392b7786665a7b7c0eb9b9 100755 --- a/services/rocketchatchannelservice.cpp +++ b/services/rocketchatchannelservice.cpp @@ -279,7 +279,9 @@ void RocketChatChannelService::loadJoinedChannelsFromDb() channelPointer->setChatPartner( user ); } else { auto newUser = QSharedPointer<RocketChatUser>( new RocketChatUser( channelPointer->getChatPartnerId() ) ); + newUser->setUserName( roomHash["username"].toString() ); channelPointer->setChatPartner( newUser ); + QMetaObject::invokeMethod( users, "addUser", Q_ARG( User, newUser ) ); } }