From c8b6ccba2595f604b517223e2c8202b276d2974c Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Tue, 14 Aug 2018 11:43:03 +0200 Subject: [PATCH 1/2] fallback to room summary for dm detection --- src/Rooms.js | 5 +++-- src/utils/DMRoomMap.js | 4 +--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/Rooms.js b/src/Rooms.js index 2fda46450f..024a4f1d8c 100644 --- a/src/Rooms.js +++ b/src/Rooms.js @@ -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/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]; From 440ebd187da349414520e89202e5c52903d44d82 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Tue, 14 Aug 2018 11:47:05 +0200 Subject: [PATCH 2/2] getMyMembership() doesn't take id anymore --- src/Rooms.js | 4 ++-- src/stores/RoomListStore.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Rooms.js b/src/Rooms.js index 024a4f1d8c..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())) { 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") {