diff --git a/src/Rooms.js b/src/Rooms.js index 2fda46450f..96e7c140bb 100644 --- a/src/Rooms.js +++ b/src/Rooms.js @@ -45,7 +45,7 @@ export function getOnlyOtherMember(room, myUserId) { function _isConfCallRoom(room, myUserId, conferenceHandler) { if (!conferenceHandler) return false; - const myMembership = room.getMyMembership(myUserId); + const myMembership = room.getMyMembership(); if (myMembership != "join") { return false; } @@ -81,7 +81,7 @@ export function isConfCallRoom(room, myUserId, conferenceHandler) { } export function looksLikeDirectMessageRoom(room, myUserId) { - const myMembership = room.getMyMembership(myUserId); + const myMembership = room.getMyMembership(); const me = room.getMember(myUserId); if (myMembership == "join" || myMembership === "ban" || (me && me.isKicked())) { @@ -90,8 +90,9 @@ export function looksLikeDirectMessageRoom(room, myUserId) { // Used for 1:1 direct chats // Show 1:1 chats in seperate "Direct Messages" section as long as they haven't // been moved to a different tag section - // TODO: Use SUMMARYAPI to take invited users into account - if (room.currentState.getJoinedMemberCount() === 2 && !tagNames.length) { + const totalMemberCount = room.currentState.getJoinedMemberCount() + + room.currentState.getInvitedMemberCount(); + if (totalMemberCount === 2 && !tagNames.length) { return true; } } diff --git a/src/stores/RoomListStore.js b/src/stores/RoomListStore.js index e415389423..7eb7b79509 100644 --- a/src/stores/RoomListStore.js +++ b/src/stores/RoomListStore.js @@ -174,7 +174,7 @@ class RoomListStore extends Store { this._matrixClient.getRooms().forEach((room, index) => { const myUserId = this._matrixClient.getUserId(); - const membership = room.getMyMembership(myUserId); + const membership = room.getMyMembership(); const me = room.getMember(myUserId); if (membership == "invite") { diff --git a/src/utils/DMRoomMap.js b/src/utils/DMRoomMap.js index acb1573cbf..d95eda490d 100644 --- a/src/utils/DMRoomMap.js +++ b/src/utils/DMRoomMap.js @@ -96,10 +96,8 @@ export default class DMRoomMap { if (this.roomToUser[roomId] === undefined) { // no entry? if the room is an invite, look for the is_direct hint. const room = this.matrixClient.getRoom(roomId); - // TODO Use SUMMARYAPI to fix DM detection? if (room) { - const me = room.getMember(this.matrixClient.getUserId()); - return me && me.getDMInviter(); + return room.getDMInviter(); } } return this.roomToUser[roomId];