+ if(msg.flags() & Message::Self) // don't update activity for our own messages
+ return;
+
+ if(lastSeenMsg().isValid() && lastSeenMsg() >= msg.msgId())
+ return;
+
+ ActivityLevel level = activityLevel() | OtherActivity;
+ if(msg.type() & (Message::Plain | Message::Notice | Message::Action))
+ level |= NewMessage;
+
+ if(msg.flags() & Message::Highlight)
+ level |= Highlight;
+
+ if(level != activityLevel())
+ setActivityLevel(level);
+}