add testing hook to send a group chat IM.
parent
e9f6de28b2
commit
96f5a8e19c
|
|
@ -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);
|
||||
*/
|
||||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Reference in New Issue