From adcd7030ea6de9be85fa738ca36171b5e23fff59 Mon Sep 17 00:00:00 2001 From: AndreyL ProductEngine Date: Thu, 4 Jun 2015 18:25:28 +0300 Subject: MAINT-5240 FIXED Viewer will request the full group member list for group chat in some cases --- indra/newview/llspeakers.cpp | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'indra/newview/llspeakers.cpp') diff --git a/indra/newview/llspeakers.cpp b/indra/newview/llspeakers.cpp index 7867e1573c..bc92f2a416 100755 --- a/indra/newview/llspeakers.cpp +++ b/indra/newview/llspeakers.cpp @@ -547,18 +547,17 @@ void LLSpeakerMgr::updateSpeakerList() // For groups, we need to hit the group manager. // Note: The session uuid and the group uuid are actually one and the same. If that was to change, this will fail. LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(session_id); - F32 large_group_delay = 0.f; - if (gdatap) - { - //This is a viewer-side bandaid for maint-4414 it does not fix the core issue. - large_group_delay = (F32)(gdatap->mMemberCount / 5000); - } - - const F32 load_group_timeout = gSavedSettings.getF32("ChatLoadGroupTimeout") + large_group_delay; - - if (!gdatap && (mGetListTime.getElapsedTimeF32() >= load_group_timeout)) + + if (!gdatap || !gdatap->isGroupPropertiesDataComplete()) + { + // Request group properties first. This is to avoid fetching lagre member lists here. See MAINT-5240 + LLGroupMgr::getInstance()->sendGroupPropertiesRequest(session_id); + } + else if (gdatap && gdatap->isGroupPropertiesDataComplete() + && !gdatap->isMemberDataComplete() && gdatap->mMemberCount < 5000 + && mGetListTime.getElapsedTimeF32() >= gSavedSettings.getF32("ChatLoadGroupTimeout")) { - // Request the data the first time around + // Request the member list data the first time around LLGroupMgr::getInstance()->sendCapGroupMembersRequest(session_id); } else if (gdatap && gdatap->isMemberDataComplete() && !gdatap->mMembers.empty()) -- cgit v1.2.3 From 71209a51af1f2069938653a0de8b9af0e42b56d6 Mon Sep 17 00:00:00 2001 From: AndreyL ProductEngine Date: Thu, 4 Jun 2015 19:40:21 +0300 Subject: MAINT-5240 FIXED Per Kelly, added delay to GroupPropertiesRequest too --- indra/newview/llspeakers.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'indra/newview/llspeakers.cpp') diff --git a/indra/newview/llspeakers.cpp b/indra/newview/llspeakers.cpp index bc92f2a416..cb3ab93e2a 100755 --- a/indra/newview/llspeakers.cpp +++ b/indra/newview/llspeakers.cpp @@ -548,7 +548,8 @@ void LLSpeakerMgr::updateSpeakerList() // Note: The session uuid and the group uuid are actually one and the same. If that was to change, this will fail. LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(session_id); - if (!gdatap || !gdatap->isGroupPropertiesDataComplete()) + if (!gdatap || !gdatap->isGroupPropertiesDataComplete() + && mGetListTime.getElapsedTimeF32() >= gSavedSettings.getF32("ChatLoadGroupTimeout")) { // Request group properties first. This is to avoid fetching lagre member lists here. See MAINT-5240 LLGroupMgr::getInstance()->sendGroupPropertiesRequest(session_id); -- cgit v1.2.3 From 77b4f1d51c6e9d2b7d6711bfa38912ba4682c320 Mon Sep 17 00:00:00 2001 From: Mnikolenko ProductEngine Date: Fri, 5 Jun 2015 13:06:04 +0300 Subject: build fix --- indra/newview/llspeakers.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/newview/llspeakers.cpp') diff --git a/indra/newview/llspeakers.cpp b/indra/newview/llspeakers.cpp index cb3ab93e2a..aac67b8774 100755 --- a/indra/newview/llspeakers.cpp +++ b/indra/newview/llspeakers.cpp @@ -548,7 +548,7 @@ void LLSpeakerMgr::updateSpeakerList() // Note: The session uuid and the group uuid are actually one and the same. If that was to change, this will fail. LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(session_id); - if (!gdatap || !gdatap->isGroupPropertiesDataComplete() + if ((!gdatap || !gdatap->isGroupPropertiesDataComplete()) && mGetListTime.getElapsedTimeF32() >= gSavedSettings.getF32("ChatLoadGroupTimeout")) { // Request group properties first. This is to avoid fetching lagre member lists here. See MAINT-5240 -- cgit v1.2.3 From a63ab891dc02550a79a4cad42e3157cf334afa0e Mon Sep 17 00:00:00 2001 From: AndreyL ProductEngine Date: Mon, 8 Jun 2015 06:51:05 +0300 Subject: MAINT-5240 FIXED Viewer will request the full group member list for group chat in some cases - need to remove this --- indra/newview/llspeakers.cpp | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) (limited to 'indra/newview/llspeakers.cpp') diff --git a/indra/newview/llspeakers.cpp b/indra/newview/llspeakers.cpp index aac67b8774..44c980c96f 100755 --- a/indra/newview/llspeakers.cpp +++ b/indra/newview/llspeakers.cpp @@ -548,20 +548,7 @@ void LLSpeakerMgr::updateSpeakerList() // Note: The session uuid and the group uuid are actually one and the same. If that was to change, this will fail. LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(session_id); - if ((!gdatap || !gdatap->isGroupPropertiesDataComplete()) - && mGetListTime.getElapsedTimeF32() >= gSavedSettings.getF32("ChatLoadGroupTimeout")) - { - // Request group properties first. This is to avoid fetching lagre member lists here. See MAINT-5240 - LLGroupMgr::getInstance()->sendGroupPropertiesRequest(session_id); - } - else if (gdatap && gdatap->isGroupPropertiesDataComplete() - && !gdatap->isMemberDataComplete() && gdatap->mMemberCount < 5000 - && mGetListTime.getElapsedTimeF32() >= gSavedSettings.getF32("ChatLoadGroupTimeout")) - { - // Request the member list data the first time around - LLGroupMgr::getInstance()->sendCapGroupMembersRequest(session_id); - } - else if (gdatap && gdatap->isMemberDataComplete() && !gdatap->mMembers.empty()) + if (gdatap && gdatap->isMemberDataComplete() && !gdatap->mMembers.empty()) { // Add group members when we get the complete list (note: can take a while before we get that list) LLGroupMgrGroupData::member_list_t::iterator member_it = gdatap->mMembers.begin(); -- cgit v1.2.3