diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/lldonotdisturbnotificationstorage.cpp | 25 | ||||
| -rw-r--r-- | indra/newview/llimview.cpp | 2 | 
2 files changed, 25 insertions, 2 deletions
diff --git a/indra/newview/lldonotdisturbnotificationstorage.cpp b/indra/newview/lldonotdisturbnotificationstorage.cpp index 22f35752bd..be20adeb8a 100644 --- a/indra/newview/lldonotdisturbnotificationstorage.cpp +++ b/indra/newview/lldonotdisturbnotificationstorage.cpp @@ -33,6 +33,7 @@  #include "lldir.h"  #include "llerror.h"  #include "llfloaterreg.h" +#include "llimview.h"  #include "llnotifications.h"  #include "llnotificationhandler.h"  #include "llnotificationstorage.h" @@ -145,6 +146,8 @@ void LLDoNotDisturbNotificationStorage::loadNotifications()  	LLNotifications& instance = LLNotifications::instance();      bool imToastExists = false; +	bool group_ad_hoc_toast_exists = false; +	S32 toastSessionType;      bool offerExists = false;  	for (LLSD::array_const_iterator notification_it = data.beginArray(); @@ -158,7 +161,20 @@ void LLDoNotDisturbNotificationStorage::loadNotifications()          if(notificationName == toastName)          { -            imToastExists = true; +			toastSessionType = notification_params["payload"]["SESSION_TYPE"]; +			if(toastSessionType == LLIMModel::LLIMSession::P2P_SESSION) +			{ +				imToastExists = true; +			} +			//Don't add group/ad-hoc messages to the notification system because +			//this means the group/ad-hoc session has to be re-created +			else if(toastSessionType == LLIMModel::LLIMSession::GROUP_SESSION  +					|| toastSessionType == LLIMModel::LLIMSession::ADHOC_SESSION) +			{ +				//Just allows opening the conversation log for group/ad-hoc messages upon startup +				group_ad_hoc_toast_exists = true; +				continue; +			}          }          else if(notificationName == offerName)          { @@ -197,7 +213,12 @@ void LLDoNotDisturbNotificationStorage::loadNotifications()          LLFloaterReg::showInstance("im_container");      } -    if(imToastExists || offerExists) +	if(group_ad_hoc_toast_exists) +	{ +		LLFloaterReg::showInstance("conversation"); +	} + +    if(imToastExists || group_ad_hoc_toast_exists || offerExists)      {  		make_ui_sound_deferred("UISndNewIncomingIMSession");      } diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 10e214bc90..8c862548bb 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -154,6 +154,7 @@ static void on_avatar_name_cache_toast(const LLUUID& agent_id,  	args["FROM"] = av_name.getCompleteName();  	args["FROM_ID"] = msg["from_id"];  	args["SESSION_ID"] = msg["session_id"]; +	args["SESSION_TYPE"] = msg["session_type"];  	LLNotificationsUtil::add("IMToast", args, args, boost::bind(&LLFloaterIMContainer::showConversation, LLFloaterIMContainer::getInstance(), msg["session_id"].asUUID()));  } @@ -1008,6 +1009,7 @@ bool LLIMModel::addMessage(const LLUUID& session_id, const std::string& from, co  	arg["from"] = from;  	arg["from_id"] = from_id;  	arg["time"] = LLLogChat::timestamp(false); +	arg["session_type"] = session->mSessionType;  	mNewMsgSignal(arg);  	return true;  | 
