From bde31b0068ba82636d2b9ae330f0e6a7b76c5b6c Mon Sep 17 00:00:00 2001 From: Andrew Dyukov Date: Fri, 5 Feb 2010 14:59:28 +0200 Subject: Fixed normal bug EXT-4649 (VCP stays in "leaving call" state if end call in a location where nearby voice chat is disabled) - Added manual setting of title and avatar list for nearby VCP in regions with disabled voice. --HG-- branch : product-engine --- indra/newview/llcallfloater.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'indra/newview/llcallfloater.cpp') diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp index bd4fae6ab6..53ae001923 100644 --- a/indra/newview/llcallfloater.cpp +++ b/indra/newview/llcallfloater.cpp @@ -750,18 +750,26 @@ void LLCallFloater::reset(const LLVoiceChannel::EState& new_state) mParticipants = NULL; mAvatarList->clear(); - // "loading" is shown in parcel with disabled voice only when state is "ringing" - // to avoid showing it in nearby chat vcp all the time- "no_one_near" is now shown there (EXT-4648) - bool show_loading = LLVoiceChannel::STATE_RINGING == new_state; - if(!show_loading && !LLViewerParcelMgr::getInstance()->allowAgentVoice() && mVoiceType == VC_LOCAL_CHAT) + // These ifs were added instead of simply showing "loading" to make VCP work correctly in parcels + // with disabled voice (EXT-4648 and EXT-4649) + if (!LLViewerParcelMgr::getInstance()->allowAgentVoice() && LLVoiceChannel::STATE_HUNG_UP == new_state) { + // hides "Leave Call" when call is ended in parcel with disabled voice- hiding usually happens in + // updateSession() which won't be called here because connect to nearby voice never happens + childSetVisible("leave_call_btn_panel", false); + // setting title to nearby chat an "no one near..." text- because in region with disabled + // voice we won't have chance to really connect to nearby, so VCP is changed here manually + setTitle(getString("title_nearby")); mAvatarList->setNoItemsCommentText(getString("no_one_near")); } - else + // "loading" is shown only when state is "ringing" to avoid showing it in nearby chat vcp + // of parcels with disabled voice all the time- "no_one_near" is now shown there (EXT-4648) + else if (new_state == LLVoiceChannel::STATE_RINGING) { // update floater to show Loading while waiting for data. mAvatarList->setNoItemsCommentText(LLTrans::getString("LoadingData")); } + mAvatarList->setVisible(TRUE); mNonAvatarCaller->setVisible(FALSE); -- cgit v1.2.3 From a46a029a70ead8e09810741abaf35c53adbd2763 Mon Sep 17 00:00:00 2001 From: Andrew Dyukov Date: Fri, 5 Feb 2010 19:06:57 +0200 Subject: Fixed normal bug EXT-4397 (Call isn't ended after disabling voice). - Added customizing string with notification about ending call depending on voice availability. - Added closing of open VCP if voice is disabled. --HG-- branch : product-engine --- indra/newview/llcallfloater.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'indra/newview/llcallfloater.cpp') diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp index 53ae001923..d405c1bbc1 100644 --- a/indra/newview/llcallfloater.cpp +++ b/indra/newview/llcallfloater.cpp @@ -721,7 +721,15 @@ void LLCallFloater::connectToChannel(LLVoiceChannel* channel) void LLCallFloater::onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state) { - updateState(new_state); + // check is voice operational and if it doesn't work hide VCP (EXT-4397) + if(LLVoiceClient::voiceEnabled() && gVoiceClient->voiceWorking()) + { + updateState(new_state); + } + else + { + closeFloater(); + } } void LLCallFloater::updateState(const LLVoiceChannel::EState& new_state) -- cgit v1.2.3 From ec076c97feaa2976520e28fd1c1b23099be656d7 Mon Sep 17 00:00:00 2001 From: "Mark Palange (Mani)" Date: Fri, 5 Feb 2010 18:15:31 -0800 Subject: EXT-4754 Fix for LLEventTimer::updateClass crash. Ugh. Update on Tofu's patch for this bug. Reviewed by Richard --- indra/newview/llcallfloater.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'indra/newview/llcallfloater.cpp') diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp index d405c1bbc1..97a5c3b8e2 100644 --- a/indra/newview/llcallfloater.cpp +++ b/indra/newview/llcallfloater.cpp @@ -678,8 +678,7 @@ void LLCallFloater::resetVoiceRemoveTimers() void LLCallFloater::removeVoiceRemoveTimer(const LLUUID& voice_speaker_id) { - bool delete_it = true; - mSpeakerDelayRemover->unsetActionTimer(voice_speaker_id, delete_it); + mSpeakerDelayRemover->unsetActionTimer(voice_speaker_id); } bool LLCallFloater::validateSpeaker(const LLUUID& speaker_id) -- cgit v1.2.3 From 1d5df49d6abf2f22c84b77a40118ff239e7d11ac Mon Sep 17 00:00:00 2001 From: Mike Antipov Date: Tue, 9 Feb 2010 17:48:35 +0200 Subject: Fixed normal bug EXT-5119 (Voice Control Panel should open only after call is connected, so it's not overlapped by voice notifications.) - updated condition when VCP should be shown to check voice channel state (CONNECTED) --HG-- branch : product-engine --- indra/newview/llcallfloater.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indra/newview/llcallfloater.cpp') diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp index 97a5c3b8e2..0aaaa8e705 100644 --- a/indra/newview/llcallfloater.cpp +++ b/indra/newview/llcallfloater.cpp @@ -303,8 +303,8 @@ void LLCallFloater::updateSession() refreshParticipantList(); updateAgentModeratorState(); - //show floater for voice calls - if (!is_local_chat) + //show floater for voice calls & only in CONNECTED to voice channel state + if (!is_local_chat && LLVoiceChannel::STATE_CONNECTED == voice_channel->getState()) { LLIMFloater* im_floater = LLIMFloater::findInstance(session_id); bool show_me = !(im_floater && im_floater->getVisible()); -- cgit v1.2.3 From 713eb289b0128cae540866f38e0baff187ef3392 Mon Sep 17 00:00:00 2001 From: Andrew Dyukov Date: Fri, 12 Feb 2010 17:54:57 +0200 Subject: Fixed normal bug EXT-5117 (Voice Control Panel sorting should default to by Recent speaker). - Changed sort order of participant list in VCP to by Recent speaker after it's creation. --HG-- branch : product-engine --- indra/newview/llcallfloater.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'indra/newview/llcallfloater.cpp') diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp index 0aaaa8e705..3c4f791d91 100644 --- a/indra/newview/llcallfloater.cpp +++ b/indra/newview/llcallfloater.cpp @@ -333,6 +333,7 @@ void LLCallFloater::refreshParticipantList() { mParticipants = new LLParticipantList(mSpeakerManager, mAvatarList, true, mVoiceType != VC_GROUP_CHAT && mVoiceType != VC_AD_HOC_CHAT); mParticipants->setValidateSpeakerCallback(boost::bind(&LLCallFloater::validateSpeaker, this, _1)); + mParticipants->setSortOrder(LLParticipantList::E_SORT_BY_RECENT_SPEAKERS); if (LLLocalSpeakerMgr::getInstance() == mSpeakerManager) { -- cgit v1.2.3 From df6af052e0e8810b0ba82245a970091be8c1eb6b Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Fri, 12 Feb 2010 17:37:08 +0000 Subject: CID-428 Checker: FORWARD_NULL Function: LLCallFloater::updateSession() File: /indra/newview/llcallfloater.cpp --- indra/newview/llcallfloater.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'indra/newview/llcallfloater.cpp') diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp index 3c4f791d91..76e058a1c3 100644 --- a/indra/newview/llcallfloater.cpp +++ b/indra/newview/llcallfloater.cpp @@ -304,7 +304,9 @@ void LLCallFloater::updateSession() updateAgentModeratorState(); //show floater for voice calls & only in CONNECTED to voice channel state - if (!is_local_chat && LLVoiceChannel::STATE_CONNECTED == voice_channel->getState()) + if (!is_local_chat && + voice_channel && + LLVoiceChannel::STATE_CONNECTED == voice_channel->getState()) { LLIMFloater* im_floater = LLIMFloater::findInstance(session_id); bool show_me = !(im_floater && im_floater->getVisible()); -- cgit v1.2.3