From 3e8e1bab67887e8d2198af0cc9cdf9709e1a1601 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Thu, 27 Aug 2020 10:38:22 +0200 Subject: [PATCH 1/5] remove logging --- src/matrix/room/members/Heroes.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/matrix/room/members/Heroes.js b/src/matrix/room/members/Heroes.js index 74f69db1..f7ccb2df 100644 --- a/src/matrix/room/members/Heroes.js +++ b/src/matrix/room/members/Heroes.js @@ -92,7 +92,6 @@ export class Heroes { get roomAvatarUrl() { if (this._members.size === 1) { for (const member of this._members.values()) { - console.log("roomAvatarUrl", member, member.avatarUrl); return member.avatarUrl; } } From 41a7448c7419b0102bac4740b58fa91a5ea52a2f Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Thu, 27 Aug 2020 10:40:49 +0200 Subject: [PATCH 2/5] add logging for room list sorting --- .../session/roomlist/RoomTileViewModel.js | 41 +++++++++++++++---- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/src/domain/session/roomlist/RoomTileViewModel.js b/src/domain/session/roomlist/RoomTileViewModel.js index ec344f79..25ebf30e 100644 --- a/src/domain/session/roomlist/RoomTileViewModel.js +++ b/src/domain/session/roomlist/RoomTileViewModel.js @@ -49,34 +49,59 @@ export class RoomTileViewModel extends ViewModel { } compare(other) { + /* + put unread rooms first + then put rooms with a timestamp first, and sort by name + then sort by name for rooms without a timestamp + */ const myRoom = this._room; const theirRoom = other._room; + let buf = ""; + function log(...args) { + buf = buf + args.join(" ") + "\n"; + } + function logResult(result) { + if (result === 0) { + log("rooms are equal (should not happen)", result); + } else if (result > 0) { + log(`${theirRoom.name || theirRoom.id} comes first`, result); + } else { + log(`${myRoom.name || myRoom.id} comes first`, result); + } + console.log(buf); + return result; + } + log(`comparing ${myRoom.name || theirRoom.id} and ${theirRoom.name || theirRoom.id} ...`); + log("comparing isUnread..."); if (isSortedAsUnread(this) !== isSortedAsUnread(other)) { if (isSortedAsUnread(this)) { - return -1; + return logResult(-1); } - return 1; + return logResult(1); } const myTimestamp = myRoom.lastMessageTimestamp; const theirTimestamp = theirRoom.lastMessageTimestamp; // rooms with a timestamp come before rooms without one if ((myTimestamp === null) !== (theirTimestamp === null)) { + log("checking if either does not have lastMessageTimestamp ..."); if (theirTimestamp === null) { - return -1; + return logResult(-1); } - return 1; + return logResult(1); } const timeDiff = theirTimestamp - myTimestamp; - if (timeDiff === 0) { + if (timeDiff === 0 || !Number.isSafeInteger(theirTimestamp) || !Number.isSafeInteger(myTimestamp)) { + log("checking name ..."); // sort alphabetically const nameCmp = this.name.localeCompare(other.name); if (nameCmp === 0) { - return this._room.id.localeCompare(other._room.id); + return logResult(this._room.id.localeCompare(other._room.id)); } - return nameCmp; + return logResult(nameCmp); } - return timeDiff; + log("checking timestamp ..."); + return logResult(timeDiff); } get isOpen() { From 4b682ad9305bea86df5356abce7f86d659ed1d2d Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Thu, 27 Aug 2020 10:45:20 +0200 Subject: [PATCH 3/5] use the same check when seeing if either does not have a timestamp --- src/domain/session/roomlist/RoomTileViewModel.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/domain/session/roomlist/RoomTileViewModel.js b/src/domain/session/roomlist/RoomTileViewModel.js index 25ebf30e..5a73a86a 100644 --- a/src/domain/session/roomlist/RoomTileViewModel.js +++ b/src/domain/session/roomlist/RoomTileViewModel.js @@ -82,8 +82,10 @@ export class RoomTileViewModel extends ViewModel { } const myTimestamp = myRoom.lastMessageTimestamp; const theirTimestamp = theirRoom.lastMessageTimestamp; - // rooms with a timestamp come before rooms without one - if ((myTimestamp === null) !== (theirTimestamp === null)) { + const myTimestampValid = Number.isSafeInteger(myTimestamp); + const theirTimestampValid = Number.isSafeInteger(theirTimestamp); + // if either does not have a timestamp, put the one with a timestamp first + if (myTimestampValid !== theirTimestampValid) { log("checking if either does not have lastMessageTimestamp ..."); if (theirTimestamp === null) { return logResult(-1); @@ -91,7 +93,7 @@ export class RoomTileViewModel extends ViewModel { return logResult(1); } const timeDiff = theirTimestamp - myTimestamp; - if (timeDiff === 0 || !Number.isSafeInteger(theirTimestamp) || !Number.isSafeInteger(myTimestamp)) { + if (timeDiff === 0 || !theirTimestampValid || !myTimestampValid) { log("checking name ..."); // sort alphabetically const nameCmp = this.name.localeCompare(other.name); From 9e891c34425ae777436439ef1d7bebc7823916ac Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Thu, 27 Aug 2020 10:48:12 +0200 Subject: [PATCH 4/5] log actual timestamps as well so we can see if they are anything but null or a number --- src/domain/session/roomlist/RoomTileViewModel.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/domain/session/roomlist/RoomTileViewModel.js b/src/domain/session/roomlist/RoomTileViewModel.js index 5a73a86a..00c6df9d 100644 --- a/src/domain/session/roomlist/RoomTileViewModel.js +++ b/src/domain/session/roomlist/RoomTileViewModel.js @@ -59,7 +59,7 @@ export class RoomTileViewModel extends ViewModel { let buf = ""; function log(...args) { - buf = buf + args.join(" ") + "\n"; + buf = buf + args.map(a => a+"").join(" ") + "\n"; } function logResult(result) { if (result === 0) { @@ -86,7 +86,7 @@ export class RoomTileViewModel extends ViewModel { const theirTimestampValid = Number.isSafeInteger(theirTimestamp); // if either does not have a timestamp, put the one with a timestamp first if (myTimestampValid !== theirTimestampValid) { - log("checking if either does not have lastMessageTimestamp ..."); + log("checking if either does not have lastMessageTimestamp ...", myTimestamp, theirTimestamp); if (theirTimestamp === null) { return logResult(-1); } @@ -94,7 +94,7 @@ export class RoomTileViewModel extends ViewModel { } const timeDiff = theirTimestamp - myTimestamp; if (timeDiff === 0 || !theirTimestampValid || !myTimestampValid) { - log("checking name ..."); + log("checking name ...", myTimestamp, theirTimestamp); // sort alphabetically const nameCmp = this.name.localeCompare(other.name); if (nameCmp === 0) { From 1a6931129b1cedd5c490901082e5ace9a8cb2f7c Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Thu, 27 Aug 2020 10:50:30 +0200 Subject: [PATCH 5/5] log as info --- src/domain/session/roomlist/RoomTileViewModel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/domain/session/roomlist/RoomTileViewModel.js b/src/domain/session/roomlist/RoomTileViewModel.js index 00c6df9d..bed129e2 100644 --- a/src/domain/session/roomlist/RoomTileViewModel.js +++ b/src/domain/session/roomlist/RoomTileViewModel.js @@ -69,7 +69,7 @@ export class RoomTileViewModel extends ViewModel { } else { log(`${myRoom.name || myRoom.id} comes first`, result); } - console.log(buf); + console.info(buf); return result; } log(`comparing ${myRoom.name || theirRoom.id} and ${theirRoom.name || theirRoom.id} ...`);