Commit graph

2460 commits

Author SHA1 Message Date
Bruno Windels
a0e3848cf6 dispose existing view model when changing status, otherwise we leak! 2021-05-11 16:39:33 +02:00
Bruno Windels
8b8214cd1b reference count archived rooms and keep track of active ones
so we don't create two instances for the same id, one for sync, and one
for displaying, and hence updates from sync being pushed on a different
instance than the one displaying, and not updating the view.
2021-05-11 16:09:58 +02:00
Bruno Windels
965700272b remove archivedRoom map, it's unused and just complicating for now 2021-05-11 16:09:01 +02:00
RMidhunSuresh
dbe76e973e Add braces to all blocks
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 17:59:03 +05:30
Bruno Windels
82a1b37363 refresh room view model when going from joined -> archived
given we have a dedicated class (ArchivedRoom) for it now
2021-05-11 13:11:38 +02:00
Bruno Windels
e3c1644d09 show leave reason instead of composer for archived room 2021-05-11 13:11:11 +02:00
Bruno Windels
9ea0138ffd don't open room view when clearing room id 2021-05-11 13:10:21 +02:00
Bruno Windels
be7934057e lint 2021-05-11 13:08:13 +02:00
Bruno Windels
51d13fd8d2 update comments for Invite updates 2021-05-11 13:07:57 +02:00
Bruno Windels
6bb9140720 have individual getters for kickDetails 2021-05-11 13:07:31 +02:00
Bruno Windels
00d4dc9518 rename kickAuthor to kickedBy 2021-05-11 13:07:11 +02:00
Bruno Windels
24731687dc log room id in invite and archivedroom afterSync 2021-05-11 13:05:02 +02:00
Bruno Windels
e775ed12b4 sync arch. rooms with Room during init. sync to create summary, timeline
when receiving archived rooms during initial sync, sync them with Room
(e.g. as a joined room) first so the members, timeline get written
and the summary gets created which is then adopted by the ArchivedRoom.
2021-05-11 13:02:43 +02:00
Bruno Windels
2087059c0b fix archived room summary key path now the summary is nested 2021-05-11 13:01:19 +02:00
RMidhunSuresh
3830a95af2 Cache result in TextTile
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 16:03:14 +05:30
RMidhunSuresh
86f4b6186a Refactor functions to accept single parameter
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 15:03:20 +05:30
RMidhunSuresh
e4a143659c Refactor unwanted getter into constant object
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 14:02:25 +05:30
RMidhunSuresh
051771397c Fix bug in which links preceeded text
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 13:59:45 +05:30
RMidhunSuresh
3beaf88a8b Rename messageFormat to body
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 13:46:38 +05:30
RMidhunSuresh
070bc96186 Fallback to empty string if content is undefined
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 13:43:54 +05:30
RMidhunSuresh
577883a1d4 Refactor loop
Don't handle last element separately

Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 13:31:33 +05:30
RMidhunSuresh
03b971d898 Added tests for new linkify
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 12:55:39 +05:30
Bruno Windels
99d5467ad1 make archived room part of sync lifecycle (draft) 2021-05-10 18:42:30 +02:00
Bruno Windels
79d97737bc calculate leave details in archived room 2021-05-10 18:41:43 +02:00
RMidhunSuresh
17be7c4f4d Add newline to message
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-10 22:10:50 +05:30
RMidhunSuresh
fc3b391aa9 Use MessageBodyBuilder instead of linkify
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-10 21:41:57 +05:30
RMidhunSuresh
55f2d79d07 Move newline handling to MessageBodyBuilder
- Also add a insert method to reflect new design.

Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-10 21:37:27 +05:30
RMidhunSuresh
787d438a74 Refactored Linkifier class into single function
Modified design so that linkify interacts with MessageBodyBuilder
through callbacks.

Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-10 21:30:11 +05:30
RMidhunSuresh
dca649dfd4 Moved files into more appropriate locations
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-10 19:53:40 +05:30
RMidhunSuresh
06a6cae4af Rename MessageBodyBuilder to MessageBodyBuilder
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-10 19:50:26 +05:30
RMidhunSuresh
bbeb0a5764 Transform new message format into DOM elements
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-08 19:22:49 +05:30
RMidhunSuresh
2f883d049c Return new message format instead of message text
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-08 19:20:07 +05:30
RMidhunSuresh
9ca0d93a01 Add tests for linkify
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-08 19:18:45 +05:30
RMidhunSuresh
32fd1eb318 Implement linkifier
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-08 19:17:43 +05:30
RMidhunSuresh
3c46a07a1e Implement object format to represent chat messages
Every chat text message can be split into parts such as text, newline
and links.

Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-08 19:02:44 +05:30
Bruno Windels
1216378783 Extract BaseRoom from Room with summary and timeline, not sync or send
Which we can then reuse to create a dedicated ArchivedRoom class
which will:
 - have only relevant methods and properties (e.g. no sendEvent)
 - turns out that you can still receive a leave room in the sync
   (e.g. when banned after kick) so we'll make the sync for
   an archived room separate from room to not overcomplicate the sync
   there, much like we did for Invite already.
2021-05-07 16:13:49 +02:00
Bruno Windels
06868abdb2 with room status being a thing, we don't need the invite on the room 2021-05-07 14:42:29 +02:00
Bruno Windels
a8d4ee0dd6 different room view models don't need to initiate switching now
as this is triggered by observing the room status
2021-05-07 13:11:17 +02:00
Bruno Windels
6c58c61da9 move switching room view models to a dedicated observable
based on the observing the room status
2021-05-07 13:10:35 +02:00
Bruno Windels
6bb8e2fa43 allow loading an archived room 2021-05-07 13:10:10 +02:00
Bruno Windels
1b83ae7d8a allow observing the room status 2021-05-07 13:09:38 +02:00
Bruno Windels
243d105aad support getting the room status for a room: invited, joined or archived 2021-05-07 13:08:39 +02:00
Bruno Windels
3143f2a791 also make an observable version of a retained value 2021-05-07 13:06:20 +02:00
Bruno Windels
36f54420cf extract RetainedValue from MemberList 2021-05-07 13:06:00 +02:00
Bruno Windels
030b6837ef rename 2021-05-06 15:27:32 +02:00
Bruno Windels
7e450071b1 clear all room state when rejoining room 2021-05-06 15:27:10 +02:00
Bruno Windels
8c2ae863fd clean up rejoin storage logic somewhat 2021-05-06 15:26:48 +02:00
Bruno Windels
f16c08f13e remove room from all user identities when leaving
and delete identity as well as all device identities if no rooms left
2021-05-06 15:24:52 +02:00
Bruno Windels
a12f10dc3c make type explicit 2021-05-06 15:23:33 +02:00
Bruno Windels
00d8f81bdd clear all room state before rejoining room 2021-05-06 14:15:47 +02:00