Bruno Windels
b30b62416c
add option to forget archived room
2021-05-12 15:38:54 +02:00
Bruno Windels
5d139dff43
Support deleting data in several stores for room id
2021-05-12 15:38:11 +02:00
Bruno Windels
e233caf7ac
change order of type and scope in operation index key to scan per scope
2021-05-12 15:36:48 +02:00
Bruno Windels
f331d84292
add options menu in room header with leave room option
2021-05-12 13:59:08 +02:00
Bruno Windels
afd33f4b77
use constant for member event type
2021-05-12 12:19:05 +02:00
Bruno Windels
ca84f485ab
fix tests
2021-05-11 17:04:36 +02:00
Bruno Windels
1738a0ea3c
need to create archived room when leaving, otherwise it isn't stored
2021-05-11 16:58:16 +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
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
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
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
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
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
Bruno Windels
15080edfa7
fix failing test now we don't remove invite from collection anymore here
2021-05-06 14:15:47 +02:00
Bruno Windels
45837f7377
don't set dmUserId when not a DM
2021-05-06 14:15:47 +02:00
Bruno Windels
7defd4a02b
ensure the sync is limited when rejoining without overlap
...
otherwise gap would be lost. The server should do this already,
but we're just ensuring it is, to be more robust.
2021-05-06 14:15:47 +02:00
Bruno Windels
08ba4577f6
rejoin logic was throwing away the prev_batch token
2021-05-06 14:15:47 +02:00
Bruno Windels
9546b13821
attempt to load sync writer position when joining a room during sync
...
since fragments and events are not archived, just the summary,
attempt to load the room and sync writer during sync,
so we write the timeline correctly and don't cause ConstraintErrors
because unaware of fragments and events already there.
2021-05-06 14:15:47 +02:00
Bruno Windels
07535eedca
when rejoining, room will be archived so consider any non-join a rejoin
2021-05-06 14:15:47 +02:00
Bruno Windels
1258aaee7c
brevity
2021-05-06 14:15:47 +02:00
Bruno Windels
f6957278c3
write and remove archived summary when leaving/rejoining
2021-05-06 14:15:47 +02:00
Bruno Windels
644698aed7
remove room from room list when leaving
2021-05-06 14:15:47 +02:00
Bruno Windels
89461bf69a
do all collection removal from sync rather than hand callbacks to invite
2021-05-06 14:15:47 +02:00
Bruno Windels
12da71f731
unneeded ?
2021-05-06 14:15:47 +02:00
Bruno Windels
bcfc4d1fd7
have better transaction errors
2021-05-06 14:15:47 +02:00
Bruno Windels
184480ad36
no need to capture req here
2021-05-06 14:15:47 +02:00
Bruno Windels
d4d7adc7fc
add archivedRoomSummary store
2021-05-06 14:15:47 +02:00
Bruno Windels
c2716a061b
pass in userId for kickDetails
2021-05-06 14:15:47 +02:00
Bruno Windels
2cfe7034e8
extract fn
2021-05-06 14:15:47 +02:00
Bruno Windels
b13bfee3d8
support setting kickDetails in room summary
2021-05-06 14:15:47 +02:00
Bruno Windels
85385295a6
don't serialize null values in room summary
...
they only take space in the storage otherwise as we add more fields
2021-05-06 14:15:47 +02:00
Bruno Windels
9e78f8382a
dont assume there is a rooms section in the sync
2021-05-06 12:10:10 +02:00
Bruno Windels
b23ec5ef70
remove obsolete comment
2021-04-28 10:08:11 +02:00