add testing hook to send a group chat IM.

master
Andrew A. de Laix 2011-04-14 15:23:09 -07:00
parent e9f6de28b2
commit 96f5a8e19c
3 changed files with 30 additions and 6 deletions

View File

@ -18,6 +18,22 @@
// external library headers
// other Linden headers
#include "llgroupactions.h"
#include "llimview.h"
namespace {
void startIm_wrapper(LLSD const & event)
{
LLUUID session_id = LLGroupActions::startIM(event["id"].asUUID());
sendReply(LLSDMap("session_id", LLSD(session_id)), event);
}
void send_message_wrapper(const std::string& text, const LLUUID& session_id, const LLUUID& group_id)
{
LLIMModel::sendMessage(text, session_id, group_id, IM_SESSION_GROUP_START);
}
}
GroupChatListener::GroupChatListener():
LLEventAPI("GroupChat",
@ -26,11 +42,18 @@ GroupChatListener::GroupChatListener():
add("startIM",
"Enter a group chat in group with UUID [\"id\"]\n"
"Assumes the logged-in agent is already a member of this group.",
&LLGroupActions::startIM,
LLSDArray("id"));
&startIm_wrapper);
add("endIM",
"Leave a group chat in group with UUID [\"id\"]\n"
"Assumes a prior successful startIM request.",
&LLGroupActions::endIM,
LLSDArray("id"));
add("sendIM",
"send a groupchat IM",
&send_message_wrapper,
LLSDArray("text")("session_id")("group_id"));
}
/*
static void sendMessage(const std::string& utf8_text, const LLUUID& im_session_id,
const LLUUID& other_participant_id, EInstantMessage dialog);
*/

View File

@ -322,10 +322,9 @@ void LLGroupActions::closeGroup(const LLUUID& group_id)
// static
void LLGroupActions::startIM(const LLUUID& group_id)
LLUUID LLGroupActions::startIM(const LLUUID& group_id)
{
if (group_id.isNull())
return;
if (group_id.isNull()) return LLUUID::null;
LLGroupData group_data;
if (gAgent.getGroupData(group_id, group_data))
@ -339,12 +338,14 @@ void LLGroupActions::startIM(const LLUUID& group_id)
LLIMFloater::show(session_id);
}
make_ui_sound("UISndStartIM");
return session_id;
}
else
{
// this should never happen, as starting a group IM session
// relies on you belonging to the group and hence having the group data
make_ui_sound("UISndInvalidOp");
return LLUUID::null;
}
}

View File

@ -87,7 +87,7 @@ public:
/**
* Start group instant messaging session.
*/
static void startIM(const LLUUID& group_id);
static LLUUID startIM(const LLUUID& group_id);
/**
* End group instant messaging session.