summaryrefslogtreecommitdiff
path: root/indra/newview/llimview.cpp
diff options
context:
space:
mode:
authorGilbert Gonzales <gilbert@lindenlab.com>2013-01-04 17:58:30 -0800
committerGilbert Gonzales <gilbert@lindenlab.com>2013-01-04 17:58:30 -0800
commit02ca16c1334d1409d8b14136f76305686796c359 (patch)
tree48353024dafd13c4df289041c150fd137c0e4abf /indra/newview/llimview.cpp
parentaa6fee292d1721eac6f0f1f270844e01e06979d4 (diff)
CHUI-499: Now when existing DND mode, stored IM's will not show a toast but instead flash the conversation line item and Chat FUI button.
Diffstat (limited to 'indra/newview/llimview.cpp')
-rw-r--r--indra/newview/llimview.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index d736b81bb7..716e6fe7ba 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -101,6 +101,43 @@ BOOL LLSessionTimeoutTimer::tick()
return TRUE;
}
+
+
+void process_dnd_im(const LLSD& notification)
+{
+ LLSD data = notification["substitutions"];
+ LLUUID sessionID = data["SESSION_ID"].asUUID();
+
+ //re-create the IM session if needed
+ //(when coming out of DND mode upon app restart)
+ if(!gIMMgr->hasSession(sessionID))
+ {
+ //reconstruct session using data from the notification
+ std::string name = data["FROM"];
+ LLAvatarName av_name;
+ if (LLAvatarNameCache::get(data["FROM_ID"], &av_name))
+ {
+ name = av_name.getDisplayName();
+ }
+
+
+ LLIMModel::getInstance()->newSession(sessionID,
+ name,
+ IM_NOTHING_SPECIAL,
+ data["FROM_ID"],
+ false,
+ false); //will need slight refactor to retrieve whether offline message or not (assume online for now)
+ }
+
+ //For now always flash conversation line item
+ LLFloaterIMContainer* im_box = LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container");
+ im_box->flashConversationItemWidget(sessionID, true);
+
+ //And flash toolbar button
+ gToolBarView->flashCommand(LLCommandId("chat"), true);
+}
+
+
static void on_avatar_name_cache_toast(const LLUUID& agent_id,
const LLAvatarName& av_name,
LLSD msg)