Merge pull request #2533 from secondlife/roxie/webrtc-283

Callback button for groups was not being reenabled after hanging up on group call.
meow-7.2.2
Roxanne Skelly 2024-09-09 14:06:55 -07:00 committed by GitHub
commit b7c82a8e7a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 10 deletions

View File

@ -450,7 +450,8 @@ void LLFloaterIMSessionTab::enableDisableCallBtn()
else
{
// We allow to start call from this state only
if (mSession->mVoiceChannel->getState() == LLVoiceChannel::STATE_NO_CHANNEL_INFO &&
if (mSession->mVoiceChannel &&
!mSession->mVoiceChannel->callStarted() &&
LLVoiceClient::instanceExists())
{
LLVoiceClient* client = LLVoiceClient::getInstance();
@ -494,10 +495,7 @@ void LLFloaterIMSessionTab::onCallButtonClicked()
}
else
{
LLVoiceChannel::EState channel_state = mSession && mSession->mVoiceChannel ?
mSession->mVoiceChannel->getState() : LLVoiceChannel::STATE_NO_CHANNEL_INFO;
// We allow to start call from this state only
if (channel_state == LLVoiceChannel::STATE_NO_CHANNEL_INFO)
if (mSession->mVoiceChannel && !mSession->mVoiceChannel->callStarted())
{
gIMMgr->startCall(mSessionID);
}

View File

@ -390,11 +390,11 @@ void notify_of_message(const LLSD& msg, bool is_dnd_msg)
}
else
{
LLAvatarNameCache::get(participant_id, boost::bind(&on_avatar_name_cache_toast, _1, _2, msg));
LLAvatarNameCache::get(participant_id, boost::bind(&on_avatar_name_cache_toast, _1, _2, msg));
}
}
}
}
}
}
if (store_dnd_message)
{
// If in DND mode, allow notification to be stored so upon DND exit
@ -4178,11 +4178,16 @@ public:
}
if (input["body"]["info"].has("voice_channel_info"))
{
// new voice channel info incoming, update and re-activate call
// if currently in a call.
LLIMModel::LLIMSession* session = LLIMModel::getInstance()->findIMSession(session_id);
if (session)
{
session->initVoiceChannel(input["body"]["info"]["voice_channel_info"]);
session->mVoiceChannel->activate();
if (session->mVoiceChannel && session->mVoiceChannel->callStarted())
{
session->initVoiceChannel(input["body"]["info"]["voice_channel_info"]);
session->mVoiceChannel->activate();
}
}
}
}