diff options
| author | AndreyL ProductEngine <andreylproductengine@lindenlab.com> | 2015-06-04 18:25:28 +0300 | 
|---|---|---|
| committer | AndreyL ProductEngine <andreylproductengine@lindenlab.com> | 2015-06-04 18:25:28 +0300 | 
| commit | adcd7030ea6de9be85fa738ca36171b5e23fff59 (patch) | |
| tree | 59fddfa69e9b8fc716d578608b41296aad8a813b /indra/newview | |
| parent | c62fc3e36e36934e9f5f9264b15188b9133f9875 (diff) | |
MAINT-5240 FIXED Viewer will request the full group member list for group chat in some cases
Diffstat (limited to 'indra/newview')
| -rwxr-xr-x | indra/newview/llspeakers.cpp | 21 | 
1 files changed, 10 insertions, 11 deletions
| 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()) | 
