added missing acknowledge token in channels and fasten up markAllRead by using async on each post

This commit is contained in:
csoler 2021-01-24 22:17:02 +01:00
parent a7de50d4c8
commit 537957a2ea
2 changed files with 15 additions and 10 deletions

View File

@ -1777,12 +1777,13 @@ bool p3GxsChannels::createComment(RsGxsComment& comment) // deprecated
return true;
}
bool p3GxsChannels::subscribeToChannel(
const RsGxsGroupId& groupId, bool subscribe )
bool p3GxsChannels::subscribeToChannel( const RsGxsGroupId& groupId, bool subscribe )
{
uint32_t token;
if( !subscribeToGroup(token, groupId, subscribe)
|| waitToken(token) != RsTokenService::COMPLETE ) return false;
if( !subscribeToGroup(token, groupId, subscribe) || waitToken(token) != RsTokenService::COMPLETE ) return false;
RsGxsGroupId grpId;
acknowledgeGrp(token,grpId);
return true;
}
@ -1791,6 +1792,10 @@ bool p3GxsChannels::markRead(const RsGxsGrpMsgIdPair& msgId, bool read)
uint32_t token;
setMessageReadStatus(token, msgId, read);
if(waitToken(token) != RsTokenService::COMPLETE ) return false;
RsGxsGrpMsgIdPair p;
acknowledgeMsg(token,p);
return true;
}

View File

@ -795,12 +795,12 @@ void RsGxsChannelPostsModel::setAllMsgReadStatus(bool read_status)
// 2 - then call the async methods
RsThread::async([pairs, read_status]()
{
for(uint32_t i=0;i<pairs.size();++i)
if(!rsGxsChannels->markRead(pairs[i],read_status))
RsErr() << "setAllMsgReadStatus: failed to change status of msg " << pairs[i].first << " in group " << pairs[i].second << " to status " << read_status << std::endl;
});
for(uint32_t i=0;i<pairs.size();++i)
RsThread::async([p=pairs[i], read_status]()
{
if(!rsGxsChannels->markRead(p,read_status))
RsErr() << "setAllMsgReadStatus: failed to change status of msg " << p.first << " in group " << p.second << " to status " << read_status << std::endl;
});
}
void RsGxsChannelPostsModel::setMsgReadStatus(const QModelIndex& i,bool read_status)