summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llvoicechannel.cpp31
-rw-r--r--indra/newview/skins/default/xui/en/floater_outgoing_call.xml11
2 files changed, 36 insertions, 6 deletions
diff --git a/indra/newview/llvoicechannel.cpp b/indra/newview/llvoicechannel.cpp
index ae32ec7d11..7036d9ebb6 100644
--- a/indra/newview/llvoicechannel.cpp
+++ b/indra/newview/llvoicechannel.cpp
@@ -747,6 +747,8 @@ LLVoiceChannelP2P::LLVoiceChannelP2P(const LLUUID& session_id, const std::string
void LLVoiceChannelP2P::handleStatusChange(EStatusType type)
{
+ llinfos << "P2P CALL CHANNEL STATUS CHANGE: incoming=" << int(mReceivedCall) << " newstatus=" << LLVoiceClientStatusObserver::status2string(type) << " (mState=" << mState << ")" << llendl;
+
// status updates
switch(type)
{
@@ -873,6 +875,8 @@ void LLVoiceChannelP2P::setState(EState state)
// *HACK: Open/close the call window if needed.
toggleCallWindowIfNeeded(state);
+ llinfos << "P2P CALL STATE CHANGE: incoming=" << int(mReceivedCall) << " oldstate=" << mState << " newstate=" << state << llendl;
+
if (mReceivedCall) // incoming call
{
// you only "answer" voice invites in p2p mode
@@ -889,7 +893,8 @@ void LLVoiceChannelP2P::setState(EState state)
mCallDialogPayload["session_id"] = mSessionID;
mCallDialogPayload["session_name"] = mSessionName;
mCallDialogPayload["other_user_id"] = mOtherUserID;
- if (state == STATE_RINGING)
+ if (state == STATE_RINGING ||
+ state == STATE_CALL_STARTED)
{
// *HACK: open outgoing call floater if needed, might be better done elsewhere.
// *TODO: should move this squirrelly ui-fudging crap into LLOutgoingCallDialog itself
@@ -901,6 +906,7 @@ void LLVoiceChannelP2P::setState(EState state)
ocd->getChild<LLTextBox>("calling")->setVisible(true);
ocd->getChild<LLTextBox>("leaving")->setVisible(true);
ocd->getChild<LLTextBox>("connecting")->setVisible(false);
+ ocd->getChild<LLTextBox>("noanswer")->setVisible(false);
}
}
}
@@ -912,16 +918,29 @@ void LLVoiceChannelP2P::setState(EState state)
ocd->getChild<LLTextBox>("calling")->setVisible(false);
ocd->getChild<LLTextBox>("leaving")->setVisible(false);
ocd->getChild<LLTextBox>("connecting")->setVisible(true);
+ ocd->getChild<LLTextBox>("noanswer")->setVisible(false);
}
}*/
+ else if (state == STATE_ERROR)
+ {
+ LLOutgoingCallDialog *ocd = dynamic_cast<LLOutgoingCallDialog*>(LLFloaterReg::showInstance("outgoing_call", mCallDialogPayload, TRUE));
+ if (ocd)
+ {
+ ocd->getChild<LLTextBox>("calling")->setVisible(false);
+ ocd->getChild<LLTextBox>("leaving")->setVisible(false);
+ ocd->getChild<LLTextBox>("connecting")->setVisible(false);
+ ocd->getChild<LLTextBox>("noanswer")->setVisible(true);
+ }
+ }
else if (state == STATE_HUNG_UP ||
state == STATE_CONNECTED)
{
- LLOutgoingCallDialog *ocd = dynamic_cast<LLOutgoingCallDialog*>(LLFloaterReg::showInstance("outgoing_call", mCallDialogPayload, TRUE));
- if (ocd)
- {
- ocd->closeFloater();
- }
+ // hide popup
+ LLOutgoingCallDialog *ocd = dynamic_cast<LLOutgoingCallDialog*>(LLFloaterReg::showInstance("outgoing_call", mCallDialogPayload, TRUE));
+ if (ocd)
+ {
+ ocd->closeFloater();
+ }
}
}
diff --git a/indra/newview/skins/default/xui/en/floater_outgoing_call.xml b/indra/newview/skins/default/xui/en/floater_outgoing_call.xml
index 82417de8a7..ae4d5042ef 100644
--- a/indra/newview/skins/default/xui/en/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/en/floater_outgoing_call.xml
@@ -59,6 +59,17 @@ Connecting to [CALLEE_NAME]
Calling [CALLEE_NAME]
</text>
<text
+ font="SansSerifLarge"
+ height="20"
+ layout="topleft"
+ left="77"
+ name="noanswer"
+ top="27"
+ width="315"
+ word_wrap="true">
+No Answer. Please try again later.
+ </text>
+ <text
font="SansSerif"
height="50"
layout="topleft"