FIRE-11339: Persisted group notifications get logged to IM on each login

meow-7.2.2
Ansariel 2020-10-29 17:46:28 +01:00
parent 15251c44d7
commit 5609fdbf3d
4 changed files with 24 additions and 1 deletions

View File

@ -499,7 +499,8 @@ LLNotification::LLNotification(const LLSDParamAdapter<Params>& p) :
mResponderObj(NULL),
mId(p.id.isProvided() ? p.id : LLUUID::generateNewID()),
mOfferFromAgent(p.offer_from_agent),
mIsDND(p.is_dnd)
mIsDND(p.is_dnd),
mIsFromStorage(false)// <FS:Ansariel> FIRE-11339: Persisted group notifications get logged to IM on each login
{
if (p.functor.name.isChosen())
{

View File

@ -400,6 +400,7 @@ private:
LLNotificationResponderPtr mResponder;
bool mOfferFromAgent;
bool mIsDND;
bool mIsFromStorage; // <FS:Ansariel> FIRE-11339: Persisted group notifications get logged to IM on each login
// a reference to the template
LLNotificationTemplatePtr mTemplatep;
@ -557,6 +558,18 @@ public:
mIsDND = flag;
}
// <FS:Ansariel> FIRE-11339: Persisted group notifications get logged to IM on each login
bool isFromStorage() const
{
return mIsFromStorage;
}
void setIsFromStorage(bool logged)
{
mIsFromStorage = logged;
}
// </FS:Ansariel>
std::string getType() const;
std::string getMessage() const;
std::string getFooter() const;

View File

@ -204,6 +204,12 @@ void LLHandlerUtil::logToIMP2P(const LLNotificationPtr& notification, bool to_fi
void LLHandlerUtil::logGroupNoticeToIMGroup(
const LLNotificationPtr& notification)
{
// <FS:Ansariel> FIRE-11339: Persisted group notifications get logged to IM on each login
if (notification->isFromStorage())
{
return;
}
// </FS:Ansariel>
const LLSD& payload = notification->getPayload();
LLGroupData groupData;

View File

@ -153,6 +153,9 @@ void LLPersistentNotificationStorage::loadNotifications()
LLNotificationResponderPtr responder(createResponder(notification_params["name"], notification_params["responder"]));
notification->setResponseFunctor(responder);
// <FS:Ansariel> FIRE-11339: Persisted group notifications get logged to IM on each login
notification->setIsFromStorage(true);
instance.add(notification);
// hide script floaters so they don't confuse the user and don't overlap startup toast