diff --git a/src/UnreadStatus.js b/src/UnreadStatus.js new file mode 100644 index 0000000000..c8693c1e50 --- /dev/null +++ b/src/UnreadStatus.js @@ -0,0 +1,30 @@ +/* +Copyright 2015 OpenMarket Ltd + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +module.exports = { + /** + * Returns true iff this event arriving in a room should affect the room's + * count of unread messages + */ + eventTriggersUnreadCount: function(ev) { + if (ev.getType() == "m.room.member") { + return false; + } else if (ev.getType == 'm.room.message' && ev.getContent().msgtype == 'm.notify') { + return false; + } + return true; + } +}; diff --git a/src/components/views/rooms/RoomList.js b/src/components/views/rooms/RoomList.js index 8610793c40..7c9aa30793 100644 --- a/src/components/views/rooms/RoomList.js +++ b/src/components/views/rooms/RoomList.js @@ -98,8 +98,7 @@ module.exports = React.createClass({ room.roomId != this.props.selectedRoom && ev.getSender() != MatrixClientPeg.get().credentials.userId) { - // don't mark rooms as unread for just member changes - if (ev.getType() != "m.room.member") { + if (UnreadStatus.eventTriggersUnreadCount(ev)) { hl = 1; }