Bruno Windels
e5c1094153
WIP
2021-06-15 19:06:41 +02:00
RMidhunSuresh
e161f61319
Remove selector list
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-15 15:11:32 +05:30
RMidhunSuresh
5e4db2f5dc
Change font size
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-15 14:52:07 +05:30
RMidhunSuresh
1772fc04f9
Remove text(..)
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-15 14:45:46 +05:30
RMidhunSuresh
4f05d9a5b7
Make navigation changes in one go
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-15 14:34:26 +05:30
RMidhunSuresh
97e484b8e6
Rename toggle --> open
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-15 14:30:27 +05:30
RMidhunSuresh
88a1e34987
Unsubscribe on dispose
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-14 21:04:44 +05:30
RMidhunSuresh
7b811aa927
Remove space after brace in two places
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-14 20:33:32 +05:30
RMidhunSuresh
e10b455b27
Rename method
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-14 20:32:05 +05:30
Bruno Windels
75ee509361
fix lint
2021-06-11 11:30:11 +02:00
Bruno Windels
6bdbbee83e
undo forced offline mode
2021-06-11 11:05:34 +02:00
Bruno Windels
81a721f880
make equality stable in comparator for reaction
2021-06-11 11:04:48 +02:00
Bruno Windels
1d9709d4e3
also compare by key if the timestamps are the same
2021-06-11 11:02:31 +02:00
Bruno Windels
757e08c62c
WIP 4
2021-06-10 18:29:10 +02:00
Bruno Windels
cb051ad161
WIP3
2021-06-09 16:52:30 +02:00
RMidhunSuresh
e2443a8b09
Undo spillover from earlier formatting havoc
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
b2f2d51594
Make formatting consistent with the codebase
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
dd9a19b7f0
Make formatting consistent
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
4005d70bb9
Increase height to make element more centered
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
fa67c5e248
Refactor function
...
- Move related parameters closer together.
- Remove unused parameter.
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
95512b5144
Remove margin from top
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
6086d157e2
Make value multiple of 4
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
2c0176f3f2
Remove unwanted width
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
f3f1436bb0
Rename room info to room details everywhere
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
f917730a21
Stick to naming convention for css/html classes
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
efd37d811f
Update on changes to vm
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
008f3601ca
Remove link support from Menu
...
- Not needed anymore since every link item has been rewritten as a
button.
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
332fbdda84
Move variable to scope of conditional
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
7fbcf89539
Remove unncessary empty line
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
eb870cfc23
Use url instead of link
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
fcc2afba08
Do not compute link in getter
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
04065847dc
Remove unused getter
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
c6f3b1fbbe
Do not use private props from room summary
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
4700009c68
Add new test for parseUrlPath
...
Make sure that the details panel stays open during room change.
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
4c962943b2
Modify setters in MenuOption to support chaining
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
0d63ce9a3a
Change SideBarActive --> right-shown
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
5b74038912
Check value of details everywhere
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
b2448e1207
Calculate path when button is clicked
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
37e052c061
details do not need to be child of rooms
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
a4bcb21a85
Move details handling to separate function
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
7f922afe79
Reduce duplication in code
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
04933acbfb
Add missing checks
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
a3587a80c6
Use internationalization for user facing strings
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
986f04aac0
Move Room details menu entry to top
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
9074caf443
Change Room Details --> Room details
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
65bd74442f
Make menu-items uniform
...
- Same font ,font-size and height.
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
98ef6f4321
Use optionWithButton
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
a3271fb916
Fix Menu: Use t instead of tag to get events
...
- Also move constructor up
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
8d254c91e3
Undo formatting/stylistic changes
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
3273682155
Do not show room id instead of canonical alias
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
d3d65d89ba
Put sidebar rows into container
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
f1fe17fe65
Make font-size equal to that of room-header
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
040c744b6a
Style links and buttons similarly in menu
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
00dbd3db06
Add menu entry to launch RoomInfoView
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
1e96b58f85
Add link support to menu
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
426d0779ee
Keep RoomInfoView open across room/grid changes
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
02d79b52a4
Prefer canonical alias over room_id if available
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
2dcec6343d
Info icon should open/close view alternatively
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
d782c9e0bb
Justify content to flex-end instead
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
eab6ca3baf
Make side-bar responsive
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
9ac415fa4f
Show panel when first visit contains /details
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
b5480b018b
Style open button
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
4edc58ebcf
Add button in Room header to open details
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
ecd5505af9
Bring in info icon
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
37367cde65
Make close button close the view
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
20a250dfc0
Style close button
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
c65e26ec4c
Position the close button to right end
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
91f083a245
Add close button to RoomInfoView
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
b0535b5d7d
Add styling for RoomInfoView
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
c96abc8892
Add css to place items appropriately
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
f42553f8cb
Add avatar size for design
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
ee29d7f799
Bring in icon assets
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
653fcbbb1f
Add method to create avatar section
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
0a4f8aff79
Create method to add sidebar element
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
a23e2c361a
Better styling
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
d502a7f911
Make display name bold
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
aece82dff6
Make room avatar larger in RoomInfoView
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
6f1b77b6fa
Add room avatar to RoomInfoView
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
0ea2843454
Add background for sidebar
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
191eb09a76
Fallback to canonical alias if no names found
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
0d11f85ab3
Add CSS to display sidebar to the right
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
9a605cc6c6
Remove unnecessary check
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
c3333f5fe8
Extract method
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
ddaa9b46c0
Dispose vm preemptively
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
7e38c3ea88
Remove right panel on grid update if needed
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
98d8d44695
Allow details to be child of rooms
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
439910f6ca
Handle case when path.get() may be null
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
96959a3c4c
Put name of property in emitChange
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
e39572b98b
Create RoomInformationView on toggle
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
986271d02a
Add code to toggle RoomInformation panel
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
c7fd0fac07
Allow details to be child of room
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
RMidhunSuresh
c7ba472042
Add view and vm for RoomInformation
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
Bruno Windels
206d18f498
WIP2
2021-06-08 16:56:17 +02:00
Bruno Windels
2ebadb36c3
WIP
2021-06-08 13:20:55 +02:00
Bruno Windels
280de98858
fix lint
2021-06-04 16:41:37 +02:00
Bruno Windels
3e47877645
Merge branch 'master' into bwindels/reactions
2021-06-04 16:33:10 +02:00
Bruno Windels
47e74bd598
add glow animation for pending reactions
2021-06-04 16:32:35 +02:00
Bruno Windels
33655ee37e
forgot to export class
2021-06-04 16:32:03 +02:00
Bruno Windels
7691b28503
prevent another race between sync and openTimeline
2021-06-04 16:28:08 +02:00
Bruno Windels
bb6905bdcd
don't assume localEntries exists, as load races with sync.afterSync
2021-06-04 16:05:28 +02:00
Bruno Windels
919542f8fc
Don't assume container node exists when loading bundle
...
Only look for the container node when needed
2021-06-04 15:36:01 +02:00
Bruno Windels
b7402ce43c
support local echo for adding a reaction
2021-06-04 15:34:44 +02:00
Bruno Windels
8bf160dfc0
handle sending relations to events that haven't been sent yet
2021-06-04 10:48:59 +02:00
Bruno Windels
2878208e94
keep the DOM small, avoid a node for reactions on every message
2021-06-04 10:08:07 +02:00
Bruno Windels
4ef5afc011
this is actually not used, so remove it
2021-06-04 10:07:52 +02:00
Bruno Windels
dde26da5a6
add mountView utility to handle error handling on mount
...
and use it where errorToDOM is used currently for catching mount errors
2021-06-04 10:07:12 +02:00
Bruno Windels
ff370d03db
catch errors thrown by childview mount method on add in ListView
2021-06-04 09:37:36 +02:00
Bruno Windels
05cc1f6757
make reactions look like element
2021-06-03 21:01:59 +02:00
Bruno Windels
d91282a767
render reactions in div instead of ul
2021-06-03 21:01:47 +02:00
Bruno Windels
3e2b7ba5fa
obsolete, already provided in parent class
2021-06-03 21:01:26 +02:00
Bruno Windels
1385a22e60
don't recreate the reactions after clearing it with the last one removed
2021-06-03 21:00:57 +02:00
Bruno Windels
cc444fa207
we actually don't need any of the view model infrastructure
...
all the updates go over the observable list
2021-06-03 21:00:25 +02:00
Bruno Windels
8d4d9c6e8d
WIP
2021-06-03 19:57:48 +02:00
Bruno Windels
2eb2e4e9b3
more stable sorting order for reactions
2021-06-03 19:57:29 +02:00
Bruno Windels
bb8acbefa3
support undoing a reaction
2021-06-03 19:57:16 +02:00
Bruno Windels
20abb01ee8
very basic way of sending a reaction
2021-06-03 19:16:53 +02:00
Bruno Windels
b722691e85
show reactions as ListView of buttons if present
2021-06-03 19:16:19 +02:00
Bruno Windels
2152d5e833
expose reactions on base message tile as vm with observable list
2021-06-03 19:15:49 +02:00
Bruno Windels
b94ab42c90
delete annotations object when no more annotations left
2021-06-03 19:10:29 +02:00
Bruno Windels
b05345ee27
only show redacted messages
2021-06-03 16:50:37 +02:00
Bruno Windels
a78e9af8fc
Support (de)aggregating annotation relations in relation writer
...
When deaggregating on redacting an annotation relation, we remove the
relation and aggregate the other relations for that key again, so we can
reliably detect the first timestamp (and count and me as well to lesser
extent).
as a consequence, more than one event can get updated when redacting a
relation (the relation is updated, as well as the relation target), so
account for that by returning an array of entries that have updated.
2021-06-03 16:50:37 +02:00
Bruno Windels
41fb30c68b
add relations store
2021-06-03 16:50:37 +02:00
Bruno Windels
36a35d92f0
pass ownUserId to RelationWriter
...
We'll need to to aggregate whether we have reacted to a message
Create writers at room level and pass subwriter is dependency, rather
than creating them in sync and gap writer.
2021-06-03 16:50:37 +02:00
Bruno Windels
46bfab3eb7
fix some lint and comment
2021-06-03 16:50:11 +02:00
Bruno Windels
b83613924c
don't assume there is at least 1 tile before loading at top
...
it can happen that all tiles are not renderable, and we should just
keep calling loadAtTop
2021-06-03 09:25:56 +02:00
Bruno Windels
d965d57be7
don't leak timeline when an error is thrown while opening it
...
or you are just stuck with "not dealing with race" errors until refresh
2021-06-02 18:44:03 +02:00
Bruno Windels
0c4c018ceb
add note that powerlevels won't update when the state event is changed
2021-06-02 18:43:47 +02:00
Bruno Windels
d2f5b412ac
don't try to hook up local relations for events that are not relations
...
and do unnecessary work
2021-06-02 18:43:16 +02:00
Bruno Windels
365bd5cad0
fix the race
2021-06-02 18:42:46 +02:00
Bruno Windels
84ecaa2ee1
don't trip over missing create events when loading power levels
...
as the test from previous commit fails because of that, and powerlevels
works fine without
2021-06-02 18:41:52 +02:00
Bruno Windels
4a8a6168cd
add failing test for race between sync & subscribing after openTimeline
2021-06-02 18:41:03 +02:00
Bruno Windels
d8acf63e1d
change mock event api a bit to be easier to read
2021-06-02 18:38:16 +02:00
Bruno Windels
09bf0f3b4e
fix status styling for text messages being broken
...
as binding was put at argument level rather than className level
2021-06-02 15:25:20 +02:00
Bruno Windels
31075d601f
load power levels before decryption closes the txn
2021-06-02 15:06:30 +02:00
Bruno Windels
cef94fea45
fix lint
2021-06-02 12:38:41 +02:00
Bruno Windels
bf951bd322
fix logging wrong value
2021-06-02 12:34:14 +02:00
Bruno Windels
c3754fdbd4
fix the race, make test succeed
2021-06-02 12:34:02 +02:00
Bruno Windels
87ebdbb0b4
add failing test for unhandled race between sync and send
...
see comments in code
2021-06-02 12:33:15 +02:00
Bruno Windels
8369dcef5f
utility to wait until a value becomes truthy in a test
2021-06-02 12:32:50 +02:00
Bruno Windels
ffb6cb372a
utility to create events in tests
2021-06-02 12:32:34 +02:00
Bruno Windels
cf6e14ed8b
utility for homeserver api mocking
2021-06-02 12:32:19 +02:00
Bruno Windels
6a5679a338
create mock storage using fake-indexeddb
2021-06-02 12:32:03 +02:00
Bruno Windels
edbac25613
prepare storage to work with alternative idb impl
2021-06-02 12:31:13 +02:00
Bruno Windels
8dfed73524
Merge pull request #361 from vector-im/bwindels/redactions
...
Redactions
2021-06-02 10:22:33 +00:00
Bruno Windels
7a96f84cab
also show redaction reason for redaction local echo
2021-06-02 12:17:09 +02:00
Bruno Windels
15f6ab8b7e
only show cancel option if not already sending
2021-06-02 11:56:15 +02:00
Bruno Windels
addddf1f26
remove need for transferLocalEchoState, just add local relations again
2021-05-31 16:33:05 +02:00
Bruno Windels
13a4a0169c
remove obsolete comments
2021-05-31 16:23:59 +02:00
Bruno Windels
25ce06c9d5
clarify
2021-05-31 15:55:31 +02:00
Bruno Windels
dc2e21495b
explain why this is needed
2021-05-31 15:46:57 +02:00
Bruno Windels
8196a02f9d
don't even need isOwn member anymore
2021-05-31 15:25:01 +02:00
Bruno Windels
00231443d3
timeline has the own member, so can just use timeline, not ownUserId
2021-05-31 15:18:44 +02:00
Bruno Windels
2bd7c23076
fix lint
2021-05-31 15:08:49 +02:00
Bruno Windels
d68d14358f
use lower return
2021-05-31 14:08:45 +02:00
Bruno Windels
492a8fe359
remove extra whiteline
2021-05-31 14:05:37 +02:00
Bruno Windels
5d35caf85f
no need to emit, timeline finds out by themselves with remote echo
2021-05-31 14:03:22 +02:00
Bruno Windels
606d40c9d4
simplify canRedact logic in view by overriding in RedactedTile
2021-05-31 13:55:08 +02:00
Bruno Windels
23459aad52
check if you are allowed to redact a message
2021-05-31 13:52:03 +02:00
Bruno Windels
128f9812a6
set destructive flag here too
2021-05-31 13:08:06 +02:00
Bruno Windels
57288f75b0
add avatar & sender as first element in message so they don't occlude
2021-05-31 13:03:41 +02:00
Bruno Windels
d4373eb309
make options button look the same in all browsers
2021-05-31 13:03:23 +02:00
Bruno Windels
d66cdc97cd
fix message options button placement in IE11
2021-05-31 13:02:42 +02:00
Bruno Windels
2e34668b91
show errors while mounting list view children
2021-05-31 12:28:42 +02:00
Bruno Windels
762ed96a3b
Not needed as both evententry and pendingevententry return timestamp
2021-05-31 11:58:01 +02:00
Bruno Windels
447b98ce6c
don't use subviews for showing/hiding avatar & sender on continuation
2021-05-31 11:57:17 +02:00
Bruno Windels
0596ca06b1
emit remove before linking up sibling tiles
...
otherwise emitting the update from updatePreviousSibling has
the wrong idx
2021-05-31 11:56:41 +02:00
Bruno Windels
63b371b6ef
support findAndUpdate with same predicate semantics in SortedArray too
2021-05-31 10:47:32 +02:00
Bruno Windels
fa37e8fedb
findAndUpdate uses predicate, just add callback to update method
2021-05-31 10:46:16 +02:00
RMidhunSuresh
849a02cec2
Add aria-label
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-28 20:37:36 +05:30
Bruno Windels
6a5d856093
add destructive flag to delete menu option
2021-05-28 16:25:23 +02:00
Bruno Windels
5b0675b711
fix lint
2021-05-28 16:25:06 +02:00
Bruno Windels
95a680eb83
fix whitespace
2021-05-28 16:24:47 +02:00
Bruno Windels
57d9916746
buttons in ff were not in Inter
2021-05-28 15:30:03 +02:00
Bruno Windels
7f41993648
prevent buttons with negative margin to displace message menu
2021-05-28 15:28:04 +02:00
Bruno Windels
b3749f2d92
prevent long links from creating horizontal scroll
2021-05-28 15:27:44 +02:00
Bruno Windels
5afcfc3e9b
fix unsent/unverified message style
2021-05-28 15:27:25 +02:00
Bruno Windels
43c082475b
unify cancel option for various tiles in menu option
2021-05-28 15:27:02 +02:00
Bruno Windels
2b0fa22c8a
open menu when clicking ... button on message with delete/cancel option
2021-05-28 13:14:55 +02:00
Bruno Windels
63e948fc80
change renderMessage fn to base class
...
as preparation to create menu items in subclasses
2021-05-28 12:32:19 +02:00
Bruno Windels
100e056d55
style the button
2021-05-28 12:22:47 +02:00
Bruno Windels
f82e873da8
adjust message status styling to css grid changes
2021-05-28 12:17:59 +02:00
RMidhunSuresh
fc898f8c7e
Set new svg icon as background-image of button
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-28 15:47:50 +05:30
RMidhunSuresh
ba11cdd83f
Remove ellipsis character
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-28 15:47:06 +05:30
RMidhunSuresh
3f99b7247c
Bring in vertical ellipsis icon
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-28 15:46:10 +05:30
Bruno Windels
bbf9832d6a
switch timeline messages to css grid, and add menu button
2021-05-28 12:09:21 +02:00
Bruno Windels
13ac41b264
delete obsolete code
2021-05-28 12:02:35 +02:00
Bruno Windels
2da7ef4280
can only look in remote entries here as PEEs never return an event id
2021-05-27 10:28:02 +02:00
Bruno Windels
5e9ce365bf
also apply local relations when loading at top
2021-05-27 10:27:44 +02:00
Bruno Windels
c6e2607f1f
guard against updates emitted while populating during first subscription
...
This came up now because Timeline uses a MappedList to map PendingEvents
to PendingEventEntries. In the map function, we setup links between
entries to support local echo for relations. When opening a timeline
that has unsent relations, the initial populating of the MappedList
will try to emit an update for the target entry in remoteEntries.
This all happens while the ListView of the timeline is calling subscribe
and all collections in the chain are populating themselves based on
their sources.
This usually entails calling subscribe on the source,
and now you are subscribed, iterate over the source (as you're not
allowed to query an unsubscribed observable collection, as it might not
be populated yet, and even if it did, it wouldn't be guaranteed to be
up to date as events aren't flowing yet).
So in this concrete example, TilesCollection hadn't populated its tiles
yet and when the update to the target of the unsent relation reached
TilesCollection, the tiles array was still null and it crashed.
I thought what would be the best way to fix this and have a solid model
for observable collections to ensure they are always compatible with
each other. I considered splitting up the subscription process in two
steps where you'd first populate the source and then explicitly start
events flowing.
I didn't go with this way because it's really only updates that
make sense to be emitted during setup.
A missed update wouldn't usually bring the collections out of sync
like a missed add or remove would. It would just mean the UI isn't
updated (or any subsequent filtered collections are not updated),
but this should be fine to ignore during setup, as you can rely
on the subscribing collections down the chain picking up the update
while populating. If we ever want to support add or remove events
during setup, we would have to explicitly support them, but for now
they are correct to throw.
So for now, just ignore update events that happen during setup
where needed.
2021-05-27 10:02:05 +02:00
Bruno Windels
a8e43d4850
remove leftover logging
2021-05-27 09:18:22 +02:00
Bruno Windels
a93b1af047
ensure these don't fail on a gap entry
2021-05-27 09:16:25 +02:00
Bruno Windels
afc3db2f33
unrelated todo note for later
2021-05-27 09:11:57 +02:00
Bruno Windels
2b5dcff836
consistent naming
2021-05-27 09:11:13 +02:00
Bruno Windels
56495c9d13
fix gap failing to fill 2nd time + unit regression test
2021-05-27 09:10:10 +02:00
Bruno Windels
15048bd9c3
very basic redact button on all text messages
2021-05-26 13:11:20 +02:00
Bruno Windels
da02b5fe2d
transfer local echo state when replacing event entry
...
e.g. after decryption or remote echo of other relation comes in
2021-05-26 13:10:19 +02:00
Bruno Windels
ca4d09e923
add logging and return promise from Tile.redact
2021-05-26 13:08:54 +02:00
Bruno Windels
a5d5c55835
MappedList.findAndUpdate
2021-05-26 13:08:33 +02:00
Bruno Windels
ce7147e463
put redactions in their own view, and allow aborting while still queued
2021-05-26 13:07:56 +02:00
Bruno Windels
cb622be653
rerender tile when becoming or stopped being redacted
2021-05-25 12:58:20 +02:00
Bruno Windels
af45810582
add support for redactions (and relations) local echo
2021-05-21 16:59:29 +02:00
Bruno Windels
b55efb7f11
ensure updateEntries is always set in the result of GapWriter
2021-05-21 16:58:04 +02:00
Bruno Windels
c934049523
also resolve related event ids when removing remote echo during sync
...
as /sync races with /send, and remote echo may happen first.
It's important for local echo that the pending redaction/relation
will also get attached to the remote echo before /send returns,
otherwise the remote echo would be "unannotated" until /send returns
2021-05-21 10:52:46 +02:00
Bruno Windels
c3fb35848b
emit update when receiving event id for related event ahead in the queue
2021-05-20 15:02:45 +02:00
Bruno Windels
619cf9bcbb
this should be filter rather than find, we iterate it
2021-05-20 15:02:24 +02:00
Bruno Windels
f271517446
log redaction during sync
2021-05-20 15:02:14 +02:00
Bruno Windels
8a8c5569dc
provide redact method on tile and room
...
also add some logging
2021-05-20 14:53:17 +02:00
Bruno Windels
9721432a8c
remove pending events that failed because of permanent error
...
so they don't get stuck
2021-05-20 14:52:30 +02:00
Bruno Windels
4ce66fc8a1
allow concurrent removals when iterating pending events
...
so we can remove failed events in the next commit
2021-05-20 14:51:04 +02:00
Bruno Windels
618a32e6c0
revert last tried pending event status to waiting when offline
...
so we don't fail the check if we can immediately remove when redacting
2021-05-20 14:49:54 +02:00
Bruno Windels
df9e886f32
fix lint
2021-05-20 13:22:54 +02:00
Bruno Windels
b655c34bbb
also show reason for redaction
2021-05-20 13:20:12 +02:00
Bruno Windels
780ad44032
render redacted messages
2021-05-20 13:15:35 +02:00
Bruno Windels
94b0bc82ef
writing relations is async
2021-05-20 12:50:16 +02:00
Bruno Windels
814e92ad92
fix missing import
2021-05-20 12:50:16 +02:00
Bruno Windels
39bed4b0fc
fix lint here
2021-05-20 12:50:16 +02:00
Bruno Windels
9b923d337d
write redactions during sync
2021-05-20 12:50:16 +02:00
Bruno Windels
edaac9f436
draft redaction support, no local echo yet
2021-05-20 12:50:16 +02:00
Bruno Windels
1f17edc248
fix undefined variable, this probably breaks restoring the last url
2021-05-20 11:11:07 +02:00
Bruno Windels
df8686099f
Merge pull request #356 from MidhunSureshR/linkify-doc
...
Add jsdoc comments for clickable link code + Minor Changes
2021-05-18 13:30:23 +00:00
Bruno Windels
c3ef801566
offer back button when session loading fails
2021-05-18 15:27:31 +02:00
Bruno Windels
d567664d8b
ensure there is a session id in last-session action
2021-05-18 14:47:45 +02:00
Bruno Windels
2c7ea44afd
don't expose last url to root VM so it isn't confused by empty path
...
instead, check the length of the path in a dedicated method in
the router
2021-05-18 14:27:09 +02:00
Bruno Windels
dd880529ac
make redirects in initial url be reflected in url bar
2021-05-18 13:52:31 +02:00
Bruno Windels
1bec1033d1
translate last-session to a real session id
2021-05-18 13:52:13 +02:00
Bruno Windels
4c5be997fe
fix menu alignment with extra option
...
we'll need to have a closer look how these alignment options make sense
but for now this will do
2021-05-18 11:58:06 +02:00
Bruno Windels
754e7e7bb2
clarify with comments
2021-05-18 11:54:18 +02:00
Bruno Windels
f92b1df4fc
update copyright comments
2021-05-18 11:54:10 +02:00
Bruno Windels
54798d3079
unreachable now
2021-05-18 11:50:02 +02:00
Bruno Windels
32e47bc660
remove unused imports
2021-05-18 11:49:25 +02:00
Bruno Windels
3724fc6765
log join network call
2021-05-18 11:49:16 +02:00
Bruno Windels
2cf100efaa
refine unknown room view
2021-05-18 11:46:55 +02:00
Bruno Windels
c04a8140a3
offer to rejoin archived room from menu
2021-05-18 11:07:46 +02:00
Bruno Windels
03be63572d
ask to join when room id is unknown
2021-05-18 11:07:19 +02:00
Bruno Windels
3acb3bb48c
fix memory leak when switching room ids
2021-05-18 11:06:48 +02:00
Bruno Windels
9679058081
allow to join room by id or alias
2021-05-18 11:05:31 +02:00
RMidhunSuresh
72f58b6001
Change lines[i] to line
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-18 14:26:56 +05:30
RMidhunSuresh
1d63799c9b
Added js-doc for formatFunction
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-17 20:56:12 +05:30
RMidhunSuresh
11d551f8a3
Add js-doc for parsePlainBody
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-17 20:39:23 +05:30
RMidhunSuresh
d671bcec31
Add js-docs for linkify function
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-17 20:32:35 +05:30
Bruno Windels
8ff1f91d2c
bring down lint error count, delete some old, inactive unit tests
2021-05-17 12:59:04 +02:00
Bruno Windels
645470cd03
no need for private prop here
2021-05-17 12:45:55 +02:00
Bruno Windels
ce976226f9
rename MessageTile to BaseMessageTile
...
since MessageTile doesn't have a shape property anymore
2021-05-17 12:15:13 +02:00
Bruno Windels
67714040e7
rename BaseTextMessageTile to BaseTextTile
2021-05-17 12:14:15 +02:00
Bruno Windels
fa64fcce2d
expect MessageBody here with parts property
...
and do some cleanup
2021-05-17 11:29:00 +02:00
Bruno Windels
054c51b82f
add caching MessageBody in BaseTextMessageTile,use in EncryptedEventTile
...
missing body in EncryptedEventTile was what caused the bug
2021-05-17 11:27:30 +02:00
Bruno Windels
01b8b397b6
expose sourceString on result of parsing message body
...
and also do some cleanup
2021-05-17 11:26:30 +02:00
Bruno Windels
f5f25c3019
fix DM room names appearing as "Empty room"
...
because we weren't properly awaiting the heroes to be loaded
2021-05-12 23:07:25 +02:00
Bruno Windels
62bb891e79
don't accept closing parenthesis as last character of url
2021-05-12 22:49:34 +02:00
Bruno Windels
56699baaf1
dont need this anymore
2021-05-12 18:31:13 +02:00
Bruno Windels
86d60496c0
Don't move read rooms to lower sorting position
2021-05-12 18:28:39 +02:00
Bruno Windels
402a5e5d54
fix room list sorting not keeping sorting position after clearing unread
2021-05-12 18:26:55 +02:00
Bruno Windels
93c08c16c1
Merge pull request #345 from MidhunSureshR/linkify
...
Render URLs as clickable links in timeline
2021-05-12 15:40:46 +00:00
Bruno Windels
10ac1dc29c
make options vertical ellipsis larger
2021-05-12 17:29:12 +02:00
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
2d2ec25f86
add comment clarifying popup arrangement options
2021-05-12 14:02:15 +02:00
Bruno Windels
f331d84292
add options menu in room header with leave room option
2021-05-12 13:59:08 +02:00
RMidhunSuresh
851e8d34a4
Incorporate better regex from review
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-12 16:15:30 +05:30
RMidhunSuresh
00bcdbab37
Fix broken test
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-12 16:15:07 +05:30
RMidhunSuresh
bb74656348
Grammar fix
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-12 15:59:44 +05:30
RMidhunSuresh
2e657fbbbd
Add failing test for link ending with <
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-12 15:56:33 +05:30
RMidhunSuresh
55b7c55efe
Pull callback args into variables
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-12 15:52:05 +05:30
Bruno Windels
afd33f4b77
use constant for member event type
2021-05-12 12:19:05 +02:00
RMidhunSuresh
9d898bdf47
Change word to improve meaning
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 22:32:05 +05:30
RMidhunSuresh
b521797f4d
Explain the reason for double escapes
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 22:28:14 +05:30
RMidhunSuresh
ef15968a3d
Add some helpful pointers
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 22:26:45 +05:30
RMidhunSuresh
c6d7cef491
Refactor regex to improve readability
...
- Split regex into components
- Add informative comments
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 22:21:37 +05:30
RMidhunSuresh
31740f4ec6
Put regex into separate file
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 22:18:52 +05:30
RMidhunSuresh
6f0362802a
Move linkify.js to separate directory
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 22:17:08 +05:30
RMidhunSuresh
027f6020e7
Modified regex to allow unicode in fragment
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 22:15:36 +05:30
RMidhunSuresh
e20810b0cb
Add test for unicode after fragment without path
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 20:44:39 +05:30
Bruno Windels
ca84f485ab
fix tests
2021-05-11 17:04:36 +02:00
RMidhunSuresh
7be9f93909
Make regex module-level constant
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 20:32:36 +05:30
Bruno Windels
1738a0ea3c
need to create archived room when leaving, otherwise it isn't stored
2021-05-11 16:58:16 +02:00
RMidhunSuresh
03208b88d5
Move link tests to linkify
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-05-11 20:19:29 +05:30
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
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
Tawfiek
1104317a76
UI: add enterkeyhint into filter in LerftPanelView
2021-04-30 04:19:58 +02:00
Tawfiek
31a9da09b2
UI: add enterkeyhint end into the MessageComposer
2021-04-30 04:15:11 +02:00
Bruno Windels
ad3b7f7f00
also add avatar size for timeline
2021-04-28 14:12:35 +02:00
Bruno Windels
e1d4c75d18
pass avatar sizes from view to view model rather than repeating there
...
and risk a mismatch resulting in too large/small image
2021-04-28 14:11:35 +02:00
Bruno Windels
b35b6ec496
work around --avatar-size being compiled away in build
2021-04-28 13:45:43 +02:00
Bruno Windels
bfaeffcb51
fix memory leak in settings view by using nested template builder
2021-04-28 13:05:52 +02:00
Bruno Windels
870ed3f211
add avatar size now there is no default anymore
2021-04-28 11:40:24 +02:00
Bruno Windels
25e0211ca1
Merge pull request #279 from Johennes/feature/safari-viewport
...
Manually adapt UI when keyboard shows or hides on mobile Safari
2021-04-28 11:04:43 +02:00
Bruno Windels
b23ec5ef70
remove obsolete comment
2021-04-28 10:08:11 +02:00
Bruno Windels
e850874019
clarify order
2021-04-28 10:05:34 +02:00
Bruno Windels
15dfb6c202
clarify
2021-04-28 10:05:21 +02:00
Bruno Windels
ef6f10c5a2
test for Path.replace
2021-04-28 09:53:44 +02:00
Bruno Windels
1c5b953026
hide non-joined rooms in left panel for now
...
until we support archiving/forgetting the room
2021-04-27 16:16:07 +02:00
Bruno Windels
025320b83e
fix filtered map
2021-04-27 16:15:20 +02:00
Bruno Windels
396ec4dfd9
also in grid remove room id from nav path when refreshing room vm fails
2021-04-27 15:33:12 +02:00
Bruno Windels
c47b27428b
implement invite view + styling
2021-04-27 15:10:12 +02:00
Bruno Windels
f4f153ac4b
don't seems to throw the letter off-center more than anything else
...
apart for some rare cases ... shrug
2021-04-27 15:09:45 +02:00
Bruno Windels
a9838fed06
don't set a default avatar size in the css, makes it easier to change it
2021-04-27 15:09:29 +02:00
Bruno Windels
fbe255f837
support extra classes in static avatar
2021-04-27 15:04:01 +02:00
Bruno Windels
441bb4d5d7
keep .room-placeholder display settings separate from .middle
2021-04-27 15:03:13 +02:00
Bruno Windels
34cca2ba0f
add invite view to view gallery
2021-04-27 15:02:43 +02:00
Bruno Windels
1f36122283
remove debugging code
2021-04-27 15:02:29 +02:00
Bruno Windels
799ea50c68
remove obsolete logging
2021-04-27 15:02:00 +02:00
Bruno Windels
32d9f6e830
expose inviter user id
2021-04-27 15:01:35 +02:00
Bruno Windels
a95df54978
scale down inviter avatar
2021-04-27 15:01:20 +02:00
Bruno Windels
15fba7a07d
missing semicolon
2021-04-27 14:43:26 +02:00
Bruno Windels
781235cb07
scale up room avatar
2021-04-27 14:43:13 +02:00
Bruno Windels
f902f255a4
add roomDescription property
2021-04-27 14:42:37 +02:00
Bruno Windels
b6573258fb
always show inviter if present
2021-04-27 14:42:12 +02:00
Bruno Windels
87defbfb51
sort invites most recent first
2021-04-27 14:27:14 +02:00
Bruno Windels
fd454f1e20
don't expose joinRule prop, as it is protocol specific
2021-04-27 14:26:40 +02:00
Bruno Windels
86e8b27cb3
fix middle-shown to use new active vm
2021-04-27 11:01:51 +02:00
Bruno Windels
aaf4e79a73
make media repo available on invite
2021-04-27 11:01:33 +02:00
Bruno Windels
9b9e6fceda
refine action buttons style
2021-04-27 10:32:06 +02:00
Bruno Windels
bb6664a9a8
fix room header height
2021-04-27 10:31:47 +02:00
Bruno Windels
ab8111f847
make all middle containers column flexboxes, not just the room view
2021-04-27 10:28:25 +02:00
Bruno Windels
55b576a299
rename .TimelinePanel to .RoomView_body
2021-04-27 10:28:09 +02:00
Bruno Windels
bd748549f7
fix updates in Invite not firing on collection
2021-04-26 10:45:27 +02:00
Bruno Windels
47b2eb0bdb
don't create a room when rejecting an invite
2021-04-26 10:41:21 +02:00
Bruno Windels
f2d7f5e4da
refresh vm when left room receives invite
...
clean up room vm switching in the process
2021-04-23 18:06:38 +02:00
Bruno Windels
827075bc37
only apply the invite when joining
2021-04-23 18:05:46 +02:00
Bruno Windels
847738a76c
set invite on left room so we can detect a vm refresh is needed
2021-04-23 18:05:14 +02:00
Bruno Windels
b9f145caa4
emit events for rooms before invites
...
so the room is already there when removing the invite
2021-04-23 18:04:10 +02:00
Bruno Windels
b77d0f75ce
can just use vm here
2021-04-22 17:23:41 +02:00
Bruno Windels
d289a44624
also sync leave now that we can handle it
2021-04-22 17:23:29 +02:00
Bruno Windels
2e9ddf9c2c
prevent key collisions between rooms and invites before creating tile vm
2021-04-22 17:22:47 +02:00
Bruno Windels
ec0de15da6
handle overlap with existing timeline when rejoining room
2021-04-22 17:21:29 +02:00
Bruno Windels
ff4abbc5ba
make dispose not fail
2021-04-22 17:18:07 +02:00
Bruno Windels
4e3127c4cf
handle key collisions in JoinedMap
2021-04-22 13:28:14 +02:00
Bruno Windels
20f4474eb6
missing semicolon
2021-04-21 18:13:29 +02:00
Bruno Windels
35992ac2fc
show very basic buttons to accept or reject invite
2021-04-21 17:50:41 +02:00
Bruno Windels
b4ad6142f4
show spinner in room list while accepting or rejecting invite
2021-04-21 17:50:22 +02:00
Bruno Windels
ac312cbdc7
fix c/p error in invite store
2021-04-21 17:49:59 +02:00
Bruno Windels
76933e51aa
fix default avatar color being broken in room list
2021-04-21 17:48:40 +02:00
Bruno Windels
1cf49688d6
show invites at the top of the room list
2021-04-21 17:26:34 +02:00
Bruno Windels
16df40331b
fix refactor mistake in sync
2021-04-21 17:26:10 +02:00
Bruno Windels
bfb7f58a3d
add very basic invite view
2021-04-21 17:25:59 +02:00
Bruno Windels
f596b34cac
add very basic join observable map, joining several maps into one
...
will be used to join invites and rooms into one map
2021-04-21 17:25:37 +02:00
Bruno Windels
1d3a2aca0e
add 'get' method to common observable map api
2021-04-21 17:23:49 +02:00
Bruno Windels
0dc796b863
spacing
2021-04-21 15:48:41 +02:00
Bruno Windels
9961d3e4fc
unused code
2021-04-21 15:48:27 +02:00
Bruno Windels
7e2870acef
wire up InviteViewModel in Session/RoomGridViewModel
...
and:
- switch to room once accepted
- close invite if rejected
2021-04-21 15:47:39 +02:00
Bruno Windels
0cc95f5083
first draft of InviteViewModel
2021-04-21 15:45:51 +02:00
Bruno Windels
16f275ca34
make pass-through props smaller
2021-04-21 15:34:35 +02:00
Bruno Windels
a91a584201
not used anymore
2021-04-21 15:33:45 +02:00
Bruno Windels
9c19fa5c63
utility to remove room from path (with our without grid)
...
which will be used when rejecting an invite
2021-04-21 15:33:08 +02:00
Bruno Windels
ad5d7fc9f0
add note collection emit should happen first in Invite
2021-04-21 15:32:37 +02:00
Bruno Windels
a5e6294593
test accepted/rejected fields in invite tests
2021-04-21 15:32:13 +02:00
Bruno Windels
465e0c191f
add logging to accepting or rejecting an invite
2021-04-21 15:31:55 +02:00
Bruno Windels
5ce138539b
network calls to accept and reject invite
2021-04-20 19:02:45 +02:00
Bruno Windels
bb1c64e1ac
add left panel tile view model for invites
...
and track in-progress state in Invite so it is shared by left panel
and open invite
2021-04-20 19:01:40 +02:00
Bruno Windels
ee98eaa640
restore invites when loading the session
2021-04-20 18:09:48 +02:00
Bruno Windels
5876e5200b
don't need this for now
2021-04-20 18:03:27 +02:00
Bruno Windels
4560e0e491
split sync lifecycle steps out in different methods to keep it smaller
2021-04-20 17:57:17 +02:00
Bruno Windels
09ac503e22
add test for removing invite
2021-04-20 17:57:03 +02:00
Bruno Windels
d1dc4c9e9c
remove extra layer of log items
2021-04-20 17:56:53 +02:00
Bruno Windels
a072426e07
integrate invites into the sync lifecycle and expose them on session
2021-04-20 17:39:46 +02:00
Bruno Windels
de125441d1
add write/load test for Invite
2021-04-20 17:34:45 +02:00
Bruno Windels
39c772300a
fix indenting
2021-04-20 16:21:35 +02:00
Bruno Windels
81a35639ba
add Invite class
...
calculating the room name, avatar, etc ...
with empty accept and reject methods for now
2021-04-20 16:21:27 +02:00
Bruno Windels
7c4a6fbe4b
invite store
2021-04-20 13:13:56 +02:00
Bruno Windels
33f1ba686c
add warning when rendering outside of render fn for templates
2021-04-15 15:14:02 +02:00
Bruno Windels
766ce4e217
create AvatarView and renderStaticAvatar (for timeline) and use it
...
in RoomTileView, we make some efforts to only have one update listener
for the entire list, because by default a subview would listen on
the view model
2021-04-15 15:12:14 +02:00
Bruno Windels
c85b2ca3c9
allow manually updating subviews in templates w/ parentProvidesUpdates
2021-04-15 15:11:05 +02:00
Bruno Windels
357ce21678
extract base class from Template view to select update mechanism
2021-04-15 15:09:45 +02:00
Bruno Windels
16fda4dde0
white background for transparent avatar images
2021-04-15 14:59:01 +02:00
Bruno Windels
d414fb6b94
sync can also stop without an error
2021-04-09 19:50:22 +02:00
Bruno Windels
ba38ce7976
use canonical way of check error type
2021-04-09 16:30:53 +02:00
Bruno Windels
b852feeb9c
ConnectionError isn't throw from start, but sets sync.error
2021-04-09 16:28:14 +02:00
Bruno Windels
4b19e3c498
remove unused member
2021-04-09 16:27:25 +02:00
Bruno Windels
606e30fed2
make comment easier to read
2021-04-09 15:24:10 +02:00
Bruno Windels
c604c31032
use external mock for request in timeout tests
2021-04-09 15:16:43 +02:00
Bruno Windels
c36e812360
move RequestWrapper to own file
...
and add tests, improve comments, and and don't use timeout connection
error as that's not what happens if aborted request from service worker
is reported as TypeError either.
2021-04-09 15:15:28 +02:00
Bruno Windels
2b1f4866a9
map unexpected fetch AbortError to ConnectionError, so doesn't stop sync
2021-04-09 14:25:19 +02:00
Bruno Windels
2341748023
add some tests to timeout code
2021-04-09 14:09:48 +02:00
Bruno Windels
e17fb24bd8
also await sharing the key in encrypt
2021-04-09 10:37:55 +02:00
Bruno Windels
13f20cdd26
wait for running key share operation in encrypt
2021-04-09 10:37:43 +02:00
Bruno Windels
bdc8451c4a
better logging
2021-04-08 18:39:52 +02:00
Bruno Windels
9e697c6cbe
don't add the pending event again if removed already, fixes #289
2021-04-08 18:36:26 +02:00
Bruno Windels
f976eeaf13
rename SortedArray.replace to update
2021-04-08 18:36:09 +02:00
Bruno Windels
863f659774
fall back to bare userid for local echo profile
2021-04-08 16:30:46 +02:00
Bruno Windels
813be758d7
we should prefer to not pick the event itself if it's a member event
...
but still fall back to that if it's a new join
2021-04-08 15:33:21 +02:00
Bruno Windels
f67ccc18f4
take most recent member rather than first in timeline for inline lookup
...
noticed this while inspecting the code, looks related to #269
2021-04-08 12:57:10 +02:00
Bruno Windels
6f37c232f7
Don't cache members that haven't been written yet - fixes #271
2021-04-08 12:56:24 +02:00
Bruno Windels
f5db6babf2
forgot to change the type of the hs field, so it still nags
2021-04-08 10:27:50 +02:00
Bruno Windels
ced98d02d5
Merge pull request #318 from vector-im/bwindels/avoid_bogus_notifs
...
opt-out for unread count notifications, which cause bogus notifs
2021-04-07 12:41:28 +00:00
Bruno Windels
141cf95eac
some minor TODOs for template view improvements
2021-04-07 14:38:48 +02:00
Bruno Windels
ca9663d2f5
opt-out for unread count notifications, which cause bogus notifs
2021-04-07 14:37:46 +02:00
Bruno Windels
97030f7ef3
add https to homeserver if not already a valid url
2021-04-01 17:44:55 +02:00
Bruno Windels
1505f2d101
Merge pull request #307 from vector-im/hs/deault-hs-url
...
Allow specifying a custom defaultHomeServer
2021-04-01 13:03:46 +00:00
Bruno Windels
10e9e7388f
expose checking pusher on homeserver in setting
2021-04-01 15:01:04 +02:00
Bruno Windels
c06659c0be
support checking if pusher is still present on server
2021-04-01 14:59:46 +02:00
Bruno Windels
010b782a96
allow t.map render fn to not return a dom node
2021-04-01 14:59:18 +02:00
Bruno Windels
8894329fa3
don't use url to open room as it still refreshes the page on chrome
...
even though only the hash is different
2021-03-31 16:52:37 +02:00
Bruno Windels
3767060632
fix reloading or opening wrong page when clicking notif
2021-03-31 16:34:37 +02:00
Will Hunt
6bdf7f1ee9
Allow specifying a custom defaultHomeServer
2021-03-30 17:43:03 +01:00
Johannes Marbach
14ed5fd1e8
Manually adapt UI when keyboard shows or hides on mobile Safari
...
Mobile Safari seems to be the only browser that does *not* resize the
viewport when the keyboard shows and hides. Instead the window is moved
to make room for the keyboard which moves content at the top off screen.
This uses the VisualViewport API to manually resize the `SessionView`
in response to keyboard display events. Additionally, if a DOM element
exists that has the `bottom-aligned-scroll` CSS class, its scroll
position is retained. Currently this only applies to the `Timeline`.
Note that the VisualViewport API was only introduced with iOS 13.
According to [statista.com], versions below 13 made up for 19% of
all iOS users in summer 2020, with the share continuing to fall off.
As a result, this seems like an acceptable workaround.
Fixes : #181
[statista.com]: https://www.statista.com/statistics/565270/apple-devices-ios-version-share-worldwide/
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2021-03-26 08:29:33 +01:00
Bruno Windels
07fc49e371
Never close notifs unless clicking them as all browsers only seem to show the last one anyway
2021-03-25 11:13:54 +01:00
Bruno Windels
b3680af342
move comment back to right place, and explain we we do it after
2021-03-25 10:23:43 +01:00
Bruno Windels
889ca05506
log when we get a click from a notif without a tag
...
like when the browser decides to show "site got updated in the
background" notif in response to a unread=0 push message.
2021-03-25 10:11:05 +01:00
Bruno Windels
e54a707684
rework notifications
...
- we don't close them when receiving a push message without event_id
as we always need to have a notification open after a push message
and replacing them with a generic one like we did is worse than just
leaving it open
- after the second notification for a room, we just show "New messages"
and you don't get binged again for new messages after that.
- You will still have a notification for every room, and on Android
you will just see the one for the last room as it only shows one
notification at a time.
2021-03-25 10:08:38 +01:00
Bruno Windels
f98369c4d6
remove obsolete code from refactoring before
2021-03-25 10:07:42 +01:00
Bruno Windels
a70a38f481
focus can throw on Android, wrap it in a try/catch
2021-03-25 10:03:44 +01:00
Bruno Windels
bc763e2a19
fix typo
2021-03-25 10:01:25 +01:00
Bruno Windels
165532be30
add badge icon to notifs
2021-03-25 00:12:57 +01:00
Bruno Windels
0b3f2a7fa0
improve notification click handling
...
- also here don't use client.url to figure out if a session is open
as that doesn't work in FF
- use tag to make sure we're dealing with the right type of notif
- use findClient function
2021-03-24 15:25:59 +01:00
Bruno Windels
f91abe4301
improve notifications shown
...
- use event.waitUntil to prevent default notification
- replace notifications for same room
- replace notifications when receiving unread=0 with "Read messages"
to prevent default notification
- don't rely on client.url to figure out if a room is open as FF
does not update this field on hash changes.
2021-03-24 15:23:01 +01:00
Bruno Windels
2de61c5928
ask the new version to the new and not old service worker
2021-03-24 15:19:10 +01:00
Bruno Windels
178790d816
symlink service worker for local dev, so its scope captures whole app
...
also rename service worker (as it is not a template anymore)
2021-03-23 18:20:23 +01:00
Bruno Windels
a8ca82ca4d
support running the service worker during local development
2021-03-23 18:20:23 +01:00
Bruno Windels
76fdbbb2fe
shorten this
2021-03-23 18:20:23 +01:00
Bruno Windels
d5b12fa7f9
log endpoint hostname
2021-03-23 18:20:23 +01:00
Bruno Windels
3313d0623a
thinko with push checks
2021-03-23 18:20:23 +01:00
Bruno Windels
dbddba3691
fix c/p errors when moving code over to notif service
2021-03-23 18:20:23 +01:00
Bruno Windels
725098f262
open client when clicking notification
2021-03-23 18:20:23 +01:00
Bruno Windels
8fcf7f8c7f
show notification when receiving push message
2021-03-23 18:20:23 +01:00
Bruno Windels
7b9904e423
add UI in settings for push notifs status/enable/disable
2021-03-23 18:20:23 +01:00
Bruno Windels
630e61a674
support enabling/disabling push notifs on a session
2021-03-23 18:20:23 +01:00
Bruno Windels
f764323c80
fixup: notif service
2021-03-23 18:20:23 +01:00
Bruno Windels
d4fc08c06b
put pusher bits in separate class to enable and disable on the HS
2021-03-23 18:20:23 +01:00
Bruno Windels
1b0f175b02
put web-specific parts of notifications (push and in-app) in platform
2021-03-23 18:20:23 +01:00
Bruno Windels
5db3b28e3a
Merge pull request #285 from MidhunSureshR/fix-269
...
Add previous name in name change announcement
2021-03-23 10:22:02 +00:00
Bruno Windels
95b1804a8d
Merge pull request #287 from Johennes/feature/lightbox
...
Set explicit height on lightbox container
2021-03-23 10:11:13 +00:00
Johannes Marbach
f496aff478
Set explicit height on lightbox container
...
Without an explicit height defined on the container, Safari
fails to expand the `.picture` content. On desktop this results
in the image showing too small and at the top of the screen.
On mobile the picture ends up with zero height and is completely
hidden.
This commit fixes the issue by defining a height of 100% on the
`.lightbox` border box.
Fixes : #278
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2021-03-22 14:12:02 +01:00
RMidhunSuresh
3d1ddccbd8
Add previous name in name change announcement
...
- Fixes issue 269 in which the announcement generated when a member
changes their name would show as :
<new_name> changed their name to <new_name>
instead of:
<old_name> changed their name to <new_name>
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-03-19 23:28:50 +05:30
RMidhunSuresh
c2df9df6d4
Fix overflowing account chooser label
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-03-19 21:09:03 +05:30
Bruno Windels
f691c0c0ef
Merge pull request #281 from vector-im/bwindels/fix-updates
...
Fix service worker updates stalling
2021-03-18 19:02:45 +00:00
Bruno Windels
ffdec16076
don't show the update dialog if we open the app for the first time
...
and don't have a service worker yet
2021-03-18 19:58:50 +01:00
Bruno Windels
017d3818eb
always reply here
2021-03-18 19:50:53 +01:00
Bruno Windels
5d71b655ad
halt any fetch request while waiting for new service worker to activate
...
this make updates apply instantly rather than sometimes being stalled
for seconds or minutes.
2021-03-18 19:50:53 +01:00
Bruno Windels
eba4d8a28b
improve ergonomics for sub-templates in TemplateView
...
- renames if to ifView
- adds map and if that immediately take a sub template render function
rather than having to call createTemplate
2021-03-18 19:44:59 +01:00
Bruno Windels
1348611f9f
also log error messages
2021-03-15 17:18:45 +01:00
Bruno Windels
5d55f6d78c
log app version when opening session
2021-03-15 16:55:14 +01:00
Bruno Windels
d88720a18f
don't start key backup operation if not enabled
2021-03-15 16:54:43 +01:00
Bruno Windels
2b24de838a
actually log initial session backup enabling rather than using null log
2021-03-15 15:24:57 +01:00
Bruno Windels
325d237302
simpler optional log
2021-03-15 15:23:46 +01:00
Bruno Windels
8684d6b5e5
some fixes
2021-03-15 15:23:35 +01:00
Bruno Windels
fcc06b2754
WIP to add logging to decryption and fetching key backups
2021-03-15 14:39:42 +01:00
Bruno Windels
744ac6b885
implement latest api changes in null logger, and add ensureLogItem
...
to ensure log item either by taking an existing one or taking one
from the null logger
2021-03-15 14:37:46 +01:00
Bruno Windels
f2dc7728a5
notifyRoomKey was a better name
2021-03-15 14:36:38 +01:00
Bruno Windels
96f060c0a9
also retry decryption for backfilled entries
...
as their event ids won't be stored along the missing key (we only store
synced items so we don't fill up the missing event ids in the store
with undecryptable backfilled event ids)
2021-03-15 14:33:14 +01:00
Bruno Windels
4b62e0a2ce
extract retry event ids for key before overwriting key on key backup
2021-03-15 13:38:27 +01:00
Bruno Windels
8100c70e88
fix image uploads being broken
2021-03-11 10:27:50 +01:00
Bruno Windels
9506bf1b81
clean up video upload error handling
2021-03-10 13:43:55 +01:00
Bruno Windels
a672b0c78a
better error handling in video decoding
2021-03-10 13:40:11 +01:00
Bruno Windels
e8c8455f43
safari hack/fix
2021-03-10 13:39:58 +01:00
Bruno Windels
948249bb3d
better error reporting for unsupported codecs when uploading
2021-03-10 13:39:34 +01:00
Bruno Windels
c8265b2358
also allow other video mime types, otherwise playback fails in e2ee room
2021-03-10 13:39:04 +01:00
Bruno Windels
9bc1d38d73
extract dom event => promise code
2021-03-10 13:38:28 +01:00
Bruno Windels
35e6dffd0b
don't rely on mime-types to decide to use main url for thumbnail
...
so it does not break when clients forget to set the mimetype
2021-03-10 10:01:07 +01:00
Bruno Windels
c6ff56a942
send video messages
2021-03-09 19:35:25 +01:00
Bruno Windels
ee6f3e5457
render video messages
2021-03-09 19:35:10 +01:00
Bruno Windels
b955cac7ce
extract base class from image view to inherit video view from
2021-03-09 19:34:22 +01:00
Bruno Windels
299fcfd4d1
extract base class from image tile to inherit from for video tile
2021-03-09 19:33:54 +01:00
Bruno Windels
b4f4594ead
Merge pull request #267 from vector-im/bwindels/fix-223
...
consider all server errors as connection errors
2021-03-09 11:54:21 +00:00
Bruno Windels
0bd0f788e3
consider all server errors as connection errors
...
even if they do have an errcode
fixes #223
2021-03-09 12:51:34 +01:00
Bruno Windels
8cd6a7988a
on fill server OTKs up to max/2
...
so we don't remove keys for yet to be received
olm messages that claimed a key
2021-03-09 12:33:31 +01:00
Bruno Windels
0b211e8e1c
simplify this code now that it is only doing one thing
2021-03-09 12:27:51 +01:00
Bruno Windels
2d4003379e
Fix #97
2021-03-08 22:25:18 +01:00
Bruno Windels
30b056af1c
let devices know we can't claim their OTKs
2021-03-08 16:19:46 +01:00
Bruno Windels
30525cf391
oops, missing await to store new olm sessions!
2021-03-08 16:19:28 +01:00
Bruno Windels
a3987a655e
log if a connection error is a timeout
2021-03-08 15:35:34 +01:00
Bruno Windels
cfb521ef10
fix ll events being duplicated in the timeline preventing name changes
2021-03-05 20:10:57 +01:00
Bruno Windels
b37a586094
add clarification why this doesn't need to also check member changes
2021-03-05 17:04:18 +01:00
Bruno Windels
f4a7782298
add MemberWriter, and only return MemberChange's if something changed
2021-03-05 17:03:45 +01:00
Bruno Windels
e97ed9ae45
fix session test, just barely
2021-03-05 17:03:12 +01:00
Bruno Windels
49fc971d67
cleanup
2021-03-05 17:02:57 +01:00
Bruno Windels
f98f690b49
no need to "serialize" here every time, it just adds noise
2021-03-05 17:02:26 +01:00
Bruno Windels
4e0bd16a4e
reuse LRU Cache for session cache
2021-03-05 17:01:38 +01:00
Bruno Windels
f0c0c3e084
add LRU Cache utility
...
we'll use it to cache members later on
2021-03-05 17:00:55 +01:00
Bruno Windels
c1c8f11bf7
fix TypeError when syncing a new e2ee room with keys at the same time
2021-03-05 11:50:54 +01:00
Bruno Windels
5682e715e6
prevent multiple checks if a new room key is better
2021-03-05 10:07:48 +01:00
Bruno Windels
d08c41c13a
probably best to close this
2021-03-04 22:09:11 +01:00
Bruno Windels
e603e4b455
provide default mimetype so file uploads work on iOS
...
otherwise homeserverapi doesn't think this is a blob
2021-03-04 21:51:53 +01:00
Bruno Windels
6ad778d27b
support file downloads on iOS through data: uris
2021-03-04 21:51:29 +01:00
Bruno Windels
932d26ed8c
detect the webkit bug, and await a bogus request when opening a txn
2021-03-04 19:49:13 +01:00
Bruno Windels
e0d14207ac
make opening a txn async again
...
as we'll need to await a bogus request first thing after opening the txn
funny enough, we originally made it sync to accommodate the same bug
in safari, but that didn't prevent any microtask being awaited
before scheduling a request in the calling code closing the txn.
We'll await a bogus request within the transaction class now so it
doesn't depend on the calling code
2021-03-04 19:47:02 +01:00
Bruno Windels
4445b1ee01
store key share operations before tracking the room
2021-03-03 18:56:16 +01:00
Bruno Windels
aa23672694
forgot await, this broke updating the timeline when fetching key backup
2021-03-03 17:50:38 +01:00
Bruno Windels
f5bba54fd4
Merge pull request #255 from vector-im/bwindels/send-local-echo-profile
...
Show correct profile for pending messages
2021-03-03 13:55:26 +00:00
Bruno Windels
b012b1dc99
Show correct profile for pending messages
2021-03-03 14:53:22 +01:00
Bruno Windels
961d0cb224
Merge pull request #249 from vector-im/bwindels/ui-sent-status
...
show message already as black when sent but no remote echo yet
2021-03-03 13:08:46 +00:00
Bruno Windels
6771303086
make a method to determine only the retry entries rather
2021-03-03 14:03:50 +01:00
Bruno Windels
404dbcd065
english
2021-03-03 14:03:50 +01:00
Bruno Windels
e7598b9c76
only request key backup for events that are UTD
2021-03-03 14:03:50 +01:00
Bruno Windels
30481a5a9e
add logging to key sharing and discarding in reaction to member changes
2021-03-03 14:03:50 +01:00
Bruno Windels
f3c49e51f2
add, don't replace timeline retry entries
...
also, filter out any that have been decrypted already
2021-03-03 14:03:50 +01:00
Bruno Windels
43547e0901
don't add retried entries to the timeline if they are not already there
2021-03-03 14:03:50 +01:00
Bruno Windels
7f1cdf6841
also decrypt all matching timeline entries when new key
2021-03-03 14:03:50 +01:00
Bruno Windels
3671574547
comment about session backup
2021-03-03 14:03:50 +01:00
Bruno Windels
3bfe52b1dc
filter encrypted events before deciding to decrypt or not
2021-03-03 14:03:50 +01:00
Bruno Windels
9702c4fd64
more logging in sync write
2021-03-03 14:03:50 +01:00
Bruno Windels
8d7cb2a39a
remove unused imports
2021-03-03 14:03:50 +01:00
Bruno Windels
e85844f482
don't redeclare retryEntries, or they won't get passed to writeSync
2021-03-03 14:03:50 +01:00
Bruno Windels
56db210763
attempt at fixing https://github.com/vector-im/hydrogen-web/issues/245
2021-03-03 14:03:50 +01:00
Bruno Windels
e29bc6710a
bring back missing import
2021-03-03 14:03:50 +01:00
Bruno Windels
c6db23bcfb
WIP to store missing session event ids
2021-03-03 14:03:50 +01:00
Bruno Windels
3fa2d22015
remove isTimelineOpen flag and rather do the check to verify in Room
...
flags are ugly, let's avoid them where we can
2021-03-03 14:03:50 +01:00
Bruno Windels
265a9bd993
applyToEntries does not return anything
2021-03-02 19:39:04 +01:00
Bruno Windels
10003e7d3a
also sync room not in the rooms section but with new room keys
2021-03-02 19:39:04 +01:00
Bruno Windels
8d080163b3
reattempt decryption for timeline items
2021-03-02 19:39:04 +01:00
Bruno Windels
061e7abd50
don't break on empty room sync response
2021-03-02 19:39:04 +01:00
Bruno Windels
8a39c16a38
fix name conflict with _sessionInfo in parent class
2021-03-02 19:39:04 +01:00
Bruno Windels
a536ea7742
comment to explain replay attack better
2021-03-02 19:39:04 +01:00
Bruno Windels
a33200d926
fix sender key lookup for room key coming from olm
2021-03-02 19:39:04 +01:00
Bruno Windels
fb446167f6
make new sync room keys available during decryption of same sync
2021-03-02 19:39:04 +01:00
Bruno Windels
37151dc06b
always log ids, etc in console logger, even if falsy
2021-03-02 19:38:46 +01:00
Bruno Windels
8208464653
only log and clear when actually needed
2021-03-02 19:37:11 +01:00
Bruno Windels
e1821b1753
prevent linking fragment to itself when filling a gap
...
this seems to happen when at the beginning of the timeline and
make the timeline reader go into an infinite loop
2021-03-02 19:31:00 +01:00
Bruno Windels
6f6346d5c3
detect when hitting beginning of timeline when loading timeline
2021-03-02 19:29:55 +01:00
Bruno Windels
0eb2b4fe6b
simplify with toFixed here
2021-03-01 15:07:24 +01:00
Bruno Windels
42654dbd4f
console logger for local dev
2021-03-01 15:07:24 +01:00
Bruno Windels
856001160b
show message already as black when sent but no remote echo yet
2021-02-26 10:40:08 +01:00
Bruno Windels
636208a321
show all event type counts in device msg logging
2021-02-24 20:56:20 +01:00
Bruno Windels
b43754da6a
code is wrong and unused, so delete
...
it is wrong in the way that it does not always return a string
2021-02-24 15:06:01 +01:00
Bruno Windels
1e209b8613
Prevent pending events being skipped when remote echo comes
...
This fixes #241
2021-02-24 14:14:04 +01:00
Bruno Windels
139ffc9548
explain sent file names are logged
...
because they are in the url of the upload request, which we log
2021-02-24 11:30:32 +01:00
Bruno Windels
b63ad629a7
can remove console logging here now
2021-02-24 11:25:26 +01:00
Bruno Windels
48c361531d
log clearing unread state of a room
2021-02-24 11:22:19 +01:00
Bruno Windels
376e59820c
more info when logging gap fills
2021-02-24 11:22:07 +01:00
Bruno Windels
1093895133
log opening timeline
...
also load the timeline when opening it in the room, so logging
starts in the room (and we don't need to pass the logger to Timeline)
and also API-wise it makes more sense to
not return uninitialized objects
2021-02-24 11:21:04 +01:00
Bruno Windels
29df61eb8a
remove superfluous console log
2021-02-24 10:57:29 +01:00
Bruno Windels
41ecf1db8e
missing semicolon
2021-02-24 10:38:19 +01:00
Bruno Windels
ee8886f7c2
serialize child items with parent start offset subtracted
...
for compactness
2021-02-24 10:37:20 +01:00
Bruno Windels
23b8ba7e54
unused var
2021-02-24 10:14:26 +01:00
Bruno Windels
a372836a64
only create refids when used
2021-02-24 10:14:14 +01:00
Bruno Windels
86011b42e3
await the room log operations for login/load session
...
so the callee can await the operation
2021-02-24 09:58:50 +01:00
Bruno Windels
0cbf6008a2
log event id when sending and when receiving remote echo on sync
2021-02-23 19:58:01 +01:00
Bruno Windels
7b7907add0
some doc comments for logging api
2021-02-23 19:23:12 +01:00
Bruno Windels
dd38fc13d7
log sending messages
2021-02-23 19:22:59 +01:00
Bruno Windels
57bb75e864
log login & loading a session
2021-02-23 19:22:25 +01:00
Bruno Windels
ef1e867dee
no need for keys in the iteration
2021-02-23 19:20:58 +01:00
Bruno Windels
67ddcaa468
fix lint errors in Sync
2021-02-23 19:20:36 +01:00
Bruno Windels
c6c96a611a
fix iteration bug when disposing pending events at shutdown
...
discovered by logging
2021-02-23 19:04:25 +01:00
Bruno Windels
a8df30016b
mark force-finished log items when app closes
2021-02-23 15:36:36 +01:00
Bruno Windels
17451b7bd6
fix typo
2021-02-23 15:36:17 +01:00
Bruno Windels
ed1b37d251
support referencing other log items that are detached (fire & forget)
...
for async tasks that are not awaited
2021-02-23 15:27:55 +01:00
Bruno Windels
b2621b3001
Merge pull request #234 from vector-im/bwindels/sync-logging
...
Better sync logging
2021-02-22 13:31:34 +00:00
Bruno Windels
0a4d72b011
remove extra newline
2021-02-22 11:23:24 +01:00
Bruno Windels
94cc8b99b0
don't need to check this actually, sync response should be there
2021-02-22 11:21:56 +01:00
Bruno Windels
f0d9d13f4e
don't assume device lists are set in sync response
2021-02-22 11:20:51 +01:00
Bruno Windels
3a8badb3e7
also add log method to null logger
2021-02-22 10:48:46 +01:00
Bruno Windels
364295c7a9
don't throw when container is already disposed, just dispose immediately
2021-02-22 10:48:06 +01:00
Bruno Windels
417e920ea0
make log id autoinc
2021-02-22 10:46:40 +01:00
Bruno Windels
656637e5e2
typo
2021-02-19 11:57:50 +01:00
Bruno Windels
f4a3b64da0
log in sync writer (at detail level) and log room ids at info level
2021-02-19 11:57:17 +01:00
Bruno Windels
08622699f6
more logging for device messages
2021-02-18 19:56:47 +01:00
Bruno Windels
c5c0a181ff
move check for devicelists up in Session.writeSync, and more logging
2021-02-18 19:56:10 +01:00
Bruno Windels
ad0c813833
don't take network time into account in sync log filter
2021-02-18 19:48:19 +01:00
Bruno Windels
f2f9162b85
log pagehide event
2021-02-18 19:47:16 +01:00
Bruno Windels
bd85dc2393
children is undefined here actually, so filter wasn't working properly
2021-02-18 15:38:32 +01:00
Bruno Windels
cd68bb7b3f
log when devices get marked as outdated
2021-02-18 14:00:06 +01:00
Bruno Windels
8539b0c893
also log session in after sync completed as detail level
2021-02-18 13:07:52 +01:00
Bruno Windels
dea11845f5
log encrypted event count in session sync write
2021-02-18 13:07:32 +01:00
Bruno Windels
e590b573fb
log remaining specific room entries as detailed
2021-02-18 12:44:19 +01:00
Bruno Windels
9f9de0988e
don't log here yet as the logger isn't passed from createIdentity yet
2021-02-18 12:44:19 +01:00
Bruno Windels
7524a912c3
use (t)ype rather than kind
2021-02-18 12:44:19 +01:00
Bruno Windels
f321968ac3
add more sync logging
2021-02-18 12:44:19 +01:00
Bruno Windels
e14929bd4f
inherit log level from parent rather than defaulting to info if not set
2021-02-18 12:44:19 +01:00
Bruno Windels
cc916b80de
add app version to logs
2021-02-18 12:44:19 +01:00
Bruno Windels
d201d2c9de
don't use depth based log filtering, also add Detail log level
...
it's hard to make it work with an override where you don't want
to filter by depth if a given loglevel is present in the children.
2021-02-18 12:44:19 +01:00
Bruno Windels
d39c3812b2
Merge pull request #231 from vector-im/bwindels/logs
...
Structured logging
2021-02-17 10:19:46 +00:00
Bruno Windels
5bec4d5a72
comment
2021-02-16 20:05:33 +01:00
Bruno Windels
630ac40f05
this is broken now, but we're not using it anyway, so remove
2021-02-16 20:00:08 +01:00
Bruno Windels
0ccf735148
console log when failing to restore queued items
2021-02-16 19:57:45 +01:00
Bruno Windels
b28eefb2db
do emergency serialization without log filter
2021-02-16 19:53:37 +01:00
Bruno Windels
c3637def2e
ensure any breakage does not disrupt logging
2021-02-16 18:36:41 +01:00
Bruno Windels
2dd8803efc
better error handling if something goes wrong serializing log items
2021-02-16 18:30:23 +01:00
Bruno Windels
338f628627
remove option to anonymize
2021-02-16 18:30:06 +01:00
Bruno Windels
90cfcad5f1
add privacy notice in settings
2021-02-16 18:25:52 +01:00
Bruno Windels
59928432df
better logs filename
2021-02-16 17:46:07 +01:00
Bruno Windels
1f91fa9a94
final flush interval
2021-02-16 17:45:47 +01:00
Bruno Windels
e629a93edd
delete extra log items when over limit,to not have to delete every flush
2021-02-16 17:45:19 +01:00
Bruno Windels
ee4a382578
revert this back
2021-02-16 15:38:43 +01:00
Bruno Windels
5d67db0c5e
Fix NullLogger
2021-02-16 15:35:30 +01:00
Bruno Windels
7dc3707871
add button to export logs
2021-02-16 15:27:24 +01:00
Bruno Windels
48569c28bc
serialize logs as json
2021-02-16 15:08:08 +01:00
Bruno Windels
4defbe1322
simplify log filtering, while also adding depth based filtering
2021-02-16 15:07:17 +01:00
Bruno Windels
78805f0a65
implement dynamic log filtering
...
the logger does not have a base level any more, because there is
no sensible place to configure this.
instead, we allow to dynamically determine what should be logged
after an operation finished by setting the threshold and default
log level inspecting the finished log item.
2021-02-16 11:37:48 +01:00
Bruno Windels
510d5ab2cd
add bool settings type
2021-02-12 19:08:13 +01:00
Bruno Windels
704708bd6c
add some logging to sync
2021-02-12 18:56:26 +01:00
Bruno Windels
07f8500d29
don't read from settings for now, as it is async
2021-02-12 18:55:37 +01:00
Bruno Windels
1183305d71
wrapLog => run is a better name
2021-02-12 18:36:21 +01:00
Bruno Windels
42780df94f
actually track log items, and correctly remove them
2021-02-12 18:36:04 +01:00
Bruno Windels
a53c25d2ae
support logging in hsApi
2021-02-12 18:35:33 +01:00
Bruno Windels
e6c108c6e0
no need to copy it over in viewmodel
2021-02-12 18:06:14 +01:00
Bruno Windels
f65db338cf
make it work
2021-02-12 18:05:39 +01:00
Bruno Windels
89139bba30
expose some meta data on a log export to show before submitting
2021-02-12 16:08:28 +01:00
Bruno Windels
c0a03858eb
add option to anonymize logged values
2021-02-12 16:08:07 +01:00
Bruno Windels
bbab1e9ecc
move base64/58 encoding into platform
...
fixes https://github.com/vector-im/hydrogen-web/issues/99
2021-02-12 16:01:54 +01:00
Bruno Windels
2bb7b3b598
add null logger
2021-02-12 14:06:09 +01:00
Bruno Windels
0763410aa1
filter output when serializing by loglevel
2021-02-12 14:05:51 +01:00
Bruno Windels
4c2abcf9c7
add logger to platform
2021-02-12 13:04:18 +01:00
Bruno Windels
91bd5f638c
finish logging api
2021-02-12 13:04:05 +01:00
Bruno Windels
e515548037
add some comments while debugging a problem
2021-02-11 21:08:06 +01:00
Bruno Windels
89599e9f87
WIP
2021-02-11 21:07:18 +01:00
Bruno Windels
e49639fda2
move textencoder/decoder into platform
2021-02-11 17:29:48 +01:00
Bruno Windels
ac1bbb3937
ensure thumbnail dimensions are integer, fixes #203
2021-02-11 11:15:20 +01:00
Bruno Windels
a9a27133b9
fix #204
2020-11-26 09:49:25 +01:00
Bruno Windels
1c4818cf1d
prevent a new iframe being created for every download
2020-11-23 10:28:20 +01:00
Bruno Windels
2f0f168c6e
show 'sending' while waiting for remote echo for filetile instead of unknown status
2020-11-20 16:38:16 +01:00
Bruno Windels
b7aca076ba
better wording
2020-11-20 16:32:33 +01:00
Bruno Windels
7bf02f42b7
don't use grid to put lightbox on top, as it broke again in IE11
2020-11-20 16:32:13 +01:00
Bruno Windels
83d54351b1
put spacer behind rather than before link to open lightbox
2020-11-20 16:14:32 +01:00
Bruno Windels
45dd539179
also update preference onchange for IE
2020-11-20 16:06:16 +01:00
Bruno Windels
3eec897630
better wording
2020-11-20 16:06:05 +01:00
Bruno Windels
9ab81eea02
add setting for image compression level
2020-11-20 15:51:16 +01:00
Bruno Windels
764cddcdec
can be cached
2020-11-20 11:45:38 +01:00
Bruno Windels
f7a07a9e79
adjust fileview/tile to pendingevent changes
2020-11-20 11:45:14 +01:00
Bruno Windels
628a3b65c6
cancel > remove
2020-11-19 15:02:59 +01:00
Bruno Windels
8b8d06cf3e
show error for attachments still need upload but missing after refresh
2020-11-19 14:42:29 +01:00
Bruno Windels
18407e17a8
toggle popup menu
2020-11-18 20:18:09 +01:00
Bruno Windels
59a92bdf97
vm changes for improved image view
2020-11-18 20:10:05 +01:00
Bruno Windels
0581066350
upload smallest attachments first
...
so you don't get a delay at the end of the upload
when starting a new request
2020-11-18 20:09:27 +01:00
Bruno Windels
a23075a326
make safe to call when no attachments present
2020-11-18 20:09:07 +01:00
Bruno Windels
fba5877b3b
dispose attachment blobs when pending event is removed/closing session
2020-11-18 20:08:42 +01:00
Bruno Windels
f6dbb23f79
better error handling for file and picture upload
2020-11-18 20:07:31 +01:00
Bruno Windels
47147f2d46
progress bar for upload, add cancel button, no lightbox while uploading
2020-11-18 20:06:34 +01:00
Bruno Windels
6f94ca1a4a
make toBlob work on IE11
2020-11-18 16:28:48 +01:00
Bruno Windels
a930dec8db
adjust ImageTile to state machine changes
2020-11-18 13:05:10 +01:00
Bruno Windels
fd81111bfb
merge state machine from AttachmentUpload into PendingEvent
...
to have less state machines, and we are mostly interested in the
aggregate status of all attachments of an event
this will also drive updates through the pending events collection
that already exists rather than an extra observablevalue, so less
housekeeping to update the UI.
2020-11-18 13:04:23 +01:00
Bruno Windels
91f7970d66
Merge branch 'master' into bwindels/upload-images
2020-11-16 19:31:04 +01:00
Bruno Windels
ca7c07a23c
fix #200
2020-11-16 19:29:51 +01:00
Bruno Windels
d1a95c664d
require space after /me
2020-11-16 19:29:29 +01:00
Bruno Windels
671e23a123
basic reporting of image upload progress in %
2020-11-16 15:10:44 +01:00
Bruno Windels
6bd777e7be
make sure cors errors on setting headers don't fail sending the request
2020-11-16 15:10:25 +01:00
Bruno Windels
83cbe78cd6
report attachment upload progress
2020-11-16 10:45:46 +01:00
Bruno Windels
1dd46b875b
this is fine actually, as it will get encrypted.
...
just don't pass it to the upload
2020-11-13 19:22:06 +01:00
Bruno Windels
41738ad660
local echo for image tiles
2020-11-13 19:15:21 +01:00
Bruno Windels
8b82c991e7
wire up image uploads
2020-11-13 19:15:03 +01:00
Bruno Windels
41fb3e742e
fix file upload attachment api changes
2020-11-13 19:13:35 +01:00
Bruno Windels
0292725076
better formatting
2020-11-13 19:10:18 +01:00
Bruno Windels
262cc8936e
don't leak mimetype for encrypted attachments
2020-11-13 19:10:04 +01:00
Bruno Windels
96e46d154c
copyright header for legacy platform
2020-11-13 19:05:09 +01:00
Bruno Windels
791b3ae04f
don't center align link buttons (while at it)
2020-11-13 19:04:46 +01:00
Bruno Windels
d2a4242e5b
support multiple attachments per event
2020-11-13 17:19:19 +01:00
Bruno Windels
14b3c4b701
no need for a dedicated class just to hide it
2020-11-13 16:00:32 +01:00
Bruno Windels
9bb521986b
first draft of generic popup and menu views
2020-11-13 15:58:40 +01:00
Bruno Windels
6fd10b63e5
add device pixel ratio scaling while at it
2020-11-12 13:50:32 +01:00
Bruno Windels
1ad8af34d1
add thumbnailing code
2020-11-12 13:50:06 +01:00
Bruno Windels
f23312b0d3
fix decrypt/encrypt wording in error message
2020-11-11 13:17:05 +01:00
Bruno Windels
8b16d8bc99
handle upload failures better
2020-11-11 13:06:03 +01:00
Bruno Windels
d477be2b41
put paperclip in send file button
2020-11-11 12:57:43 +01:00
Bruno Windels
6384702863
fix file selector for IE11
2020-11-11 12:47:26 +01:00
Bruno Windels
8db7499f5a
support AES-CTR 256 JWK keys in legacy crypto for IE11
2020-11-11 12:44:59 +01:00
Bruno Windels
fd9eccec4d
support local echo in FileTile while uploading
2020-11-11 11:52:06 +01:00
Bruno Windels
af4f3f902f
wait for attachment to be uploaded in send queue
...
also expose attachment from PendingEvent(Entry)
2020-11-11 11:51:39 +01:00
Bruno Windels
48cd4ac95d
track upload error
2020-11-11 11:51:11 +01:00
Bruno Windels
91f15074be
/upload is on /media/r0, not /client/r0
2020-11-11 11:50:40 +01:00
Bruno Windels
366f3c0bba
iv and digest are sent in unpadded base64
2020-11-11 11:50:20 +01:00
Bruno Windels
e9324ad678
support jwk keys to encrypt
2020-11-11 11:47:39 +01:00
Bruno Windels
e2dd9b9f77
fix typos/refactor errors
2020-11-11 11:47:13 +01:00
Bruno Windels
65d02072c8
hook up UI
2020-11-11 11:47:05 +01:00
Bruno Windels
7088b2cdc8
support attachment upload and sending from room api
2020-11-11 10:47:55 +01:00
Bruno Windels
0c70a67ebb
pass platform to room
...
as we'll need it to access crypto and creating blobs
2020-11-11 10:47:19 +01:00
Bruno Windels
c289bcd097
return blob from encryptAttachment
2020-11-11 10:46:37 +01:00
Bruno Windels
32b7b1f064
draft of AttachmentUpload class
2020-11-11 10:46:20 +01:00
Bruno Windels
2890a6aff7
implement attachment uploading in hs api rather than media repo
...
as we need the access token
2020-11-11 10:45:44 +01:00
Bruno Windels
9f2c7c1e32
support uploading blobs in hs api
2020-11-11 10:45:23 +01:00
Bruno Windels
c278b0f4a3
rename blob.blob to blob.nativeBlob
...
also to make the name a bit more unique where we want to do duck typing
2020-11-11 10:44:44 +01:00
Bruno Windels
2cfffa015d
WIP
2020-11-10 22:36:26 +01:00
Bruno Windels
a37d8c0223
implement AES encryption
2020-11-10 19:48:36 +01:00
Bruno Windels
c65e8bea11
clean up properly
2020-11-10 19:05:50 +01:00
Bruno Windels
d14f485292
Merge branch 'master' into bwindels/file-downloads
2020-11-10 18:55:27 +01:00
Bruno Windels
2ad34c2dd2
c/p error for passing arguments to create_outbound
2020-11-10 18:31:33 +01:00
Bruno Windels
f5480b7708
provide random value for IE11
2020-11-10 18:31:18 +01:00
Bruno Windels
ba323c65d6
fix typo in name
2020-11-10 18:30:48 +01:00
Bruno Windels
6fa9471292
remove trailing whitespace
2020-11-10 17:51:39 +01:00
Bruno Windels
2d8000d11d
file tile view
2020-11-10 17:50:53 +01:00
Bruno Windels
a3ca0feda9
file tile view model
2020-11-10 17:50:38 +01:00
Bruno Windels
21a7ec0dff
byte size formatting
2020-11-10 17:50:20 +01:00
Bruno Windels
373a42c7a8
allow downloading plaintext attachments also, with or without cache
2020-11-10 17:49:48 +01:00
Bruno Windels
4477073d6d
add platform method to offer saving a buffer handle
2020-11-10 17:24:30 +01:00
Bruno Windels
de143fdafc
update timestamp when creating a new megolm session
2020-11-10 16:17:56 +01:00
Bruno Windels
a4f610ad3f
support emotes
2020-11-10 15:13:31 +01:00
Bruno Windels
1c978f060e
Merge pull request #182 from Newbytee/submit-for-login
...
Use submit event for login instead of click
2020-11-10 14:09:56 +00:00
Bruno Windels
e4fa4ded6c
hide clear button in composer on IE
2020-11-10 14:02:37 +01:00
Bruno Windels
769feac73c
cleanup
2020-11-10 14:02:27 +01:00
Bruno Windels
fd498b3d24
no need to keep track of promise, fn is internally rate-limited now
2020-11-10 14:02:07 +01:00
Bruno Windels
89c66699d7
some Lock refactoring that I didn't end up needing but still useful
2020-11-10 11:04:53 +01:00
Bruno Windels
f13f1cd593
prevent leaking resources in olm worker
2020-11-10 11:04:39 +01:00
Bruno Windels
5f6ad91ff2
offload creating an olm session to the olm worker
...
so IE11 doesn't lock up when you start typing
2020-11-10 11:04:09 +01:00
Bruno Windels
bd5771e449
remove obsolete comment
2020-11-09 17:22:37 +01:00
Bruno Windels
6572377832
move tracking the room to where we need the devices
2020-11-09 16:50:39 +01:00
Bruno Windels
9cfb3c8e95
only check to pre-share new megolm session every minute
2020-11-09 16:50:05 +01:00
Bruno Windels
44a2febce9
hook it up
2020-11-06 23:43:02 +01:00
Bruno Windels
c6ff4c2517
finish room encryption part
2020-11-06 18:56:32 +01:00
Bruno Windels
d0d1f68a9c
WIP
2020-11-06 16:56:12 +01:00
Bruno Windels
5d12aef6db
support pre-sharing room keys in room encryption
2020-11-06 10:32:37 +01:00
Bruno Windels
85ba1676e5
log non-network errors in service worker to diagnose #187
2020-11-05 22:51:21 +01:00
Bruno Windels
9708e394a0
don't assume the thumbnail was cached already
2020-11-05 22:45:20 +01:00
Bruno Windels
e0c8be3a9a
try to call out when #187 happens
2020-11-05 22:41:33 +01:00
Bruno Windels
c696a75f88
fix #177
2020-11-05 22:37:39 +01:00
Bruno Windels
16542284f3
fix #48
2020-11-05 21:24:14 +01:00
Bruno Windels
b8370d53b6
always throw here so we never get to Ready status when stopped
2020-11-05 21:22:29 +01:00
Bruno Windels
134f018849
always have an error when stopping sync
2020-11-05 21:21:27 +01:00
Bruno Windels
9f453c0984
fix #152
2020-11-05 21:19:34 +01:00
Bruno Windels
b27f6a067f
implement .size for all observable maps
...
as SortedMapList uses it, putting undefined in its list
initially when missing, creating a crash in
the TemplateView that renders it
2020-11-05 12:00:17 +01:00
Newbyte
e112e9c2d2
Use submit event for login trigger
...
Signed-off-by: Newbyte <newbie13xd@gmail.com>
2020-11-05 11:21:04 +01:00
Newbyte
3ab70861cc
Add form to element list
...
Signed-off-by: Newbyte <newbie13xd@gmail.com>
2020-11-05 11:21:04 +01:00
Bruno Windels
0003ddebb5
also fix grid layout
2020-11-03 09:12:11 +01:00
Bruno Windels
9131cf00a3
load images when they becomes partly into view
2020-11-02 14:49:59 +01:00
Bruno Windels
72fdce4a86
fix broken layout after changing to grid
2020-11-02 14:15:24 +01:00
Bruno Windels
a3ec01385b
Merge pull request #178 from vector-im/bwindels/lightbox
...
Lightbox for picture messages
2020-11-02 11:23:10 +00:00
Bruno Windels
f1b557f995
add comment
2020-11-02 11:29:22 +01:00
Bruno Windels
fd28b39e23
fix spacing between spinner and loading text in lightbox
2020-11-02 11:29:09 +01:00
Bruno Windels
7e9e937742
IE11 doesn't calculate padding percentages based on parent width in grid
...
so do progressive fallback. This won't scale the height of the
image tile height, but it will still scale the thumbnail
on narrow viewports, leaving a blank space underneath the image.
2020-11-02 11:16:35 +01:00
Bruno Windels
fbbdaf7dfa
expose IE11 flag in JS as well
2020-11-02 11:16:19 +01:00
Bruno Windels
57da68fb1e
padding for lightbox
2020-10-31 00:25:51 +01:00
Bruno Windels
4d08e415bd
fallback for IE11
2020-10-31 00:25:42 +01:00
Bruno Windels
8507a3eb16
prevent jumps when image loads by adding a spacer
2020-10-31 00:25:05 +01:00
Bruno Windels
5aa2c7dc5c
dom changes for timeline image view
2020-10-30 22:52:54 +01:00
Bruno Windels
5a31bc5f2b
basic focus trapping of lightbox
2020-10-30 22:52:32 +01:00
Bruno Windels
708893022a
use justify/align-self rather than auto margins, works better in IE11
2020-10-30 22:52:08 +01:00
Bruno Windels
a21765757d
don't use position: absolute for scaling images in the timeline
...
as it bleeds through the lightbox on IE11, and is a bad idea anyway
2020-10-30 22:51:57 +01:00
Bruno Windels
581dc95c53
allow adding custom event handlers to a template view
...
so you don't have to remove them yourself
2020-10-30 22:48:56 +01:00
Bruno Windels
c847cfb200
WIP: Esc key on lightbox
2020-10-30 19:59:42 +01:00
Bruno Windels
597a57eae3
too much whitespace
2020-10-30 19:59:21 +01:00
Bruno Windels
c9147e6b9a
implement first draft of image lightbox
2020-10-30 15:20:11 +01:00
Bruno Windels
137264edcb
implement subscribing to a single event
2020-10-30 15:19:51 +01:00
Bruno Windels
7d81306a49
return BufferHandles from the media repository
...
BufferHandles are platform specific handles to a buffer. On web,
they have a .blob and .url property.
2020-10-30 15:18:27 +01:00
Bruno Windels
0691f34650
detect abort error by name here too
2020-10-30 09:55:03 +01:00
Bruno Windels
3008367307
detect AbortError properly, name is a string
2020-10-30 09:54:38 +01:00
Bruno Windels
68a0dd30ca
add lightbox navigation and basic view & view model
2020-10-29 11:12:32 +01:00
Bruno Windels
fe6e4464fd
pass all viewmodel options to tile view models
2020-10-29 11:10:34 +01:00
Bruno Windels
d7ccdd3304
switch main layout from flexbox to grid so we can overlay a lightbox
2020-10-29 11:10:34 +01:00
Bruno Windels
862a0ba56b
show image decryption error
2020-10-29 10:29:08 +01:00
Bruno Windels
d1e78a735a
show error in label for now
2020-10-29 10:18:05 +01:00
Bruno Windels
0405af0116
disable click-to-zoom on image
...
so we can release before the lightbox ix ready
2020-10-29 10:17:19 +01:00
Bruno Windels
b69464b87d
improve picture styling
2020-10-27 16:47:22 +01:00
Bruno Windels
d55f38a9e9
don't reimplement removing an item from the list
2020-10-27 16:26:45 +01:00
Bruno Windels
97c3a4b8f3
store error when loading encrypted images
2020-10-27 16:21:08 +01:00
Bruno Windels
e7ff6decbf
remove unneeded quotes
2020-10-27 16:20:41 +01:00
Bruno Windels
c9efee77f2
if shape is update and item should be different view, recreate the tile
2020-10-27 16:20:04 +01:00
Bruno Windels
77dca5dd55
add update parameter when replacing tile
2020-10-27 16:19:36 +01:00
Bruno Windels
932542bea0
some more cleanup
2020-10-27 14:35:47 +01:00
Bruno Windels
fcc4c21ad2
filter mime types for blob urls
2020-10-27 14:35:33 +01:00
Bruno Windels
ade01f6cf7
space
2020-10-27 13:51:40 +01:00
Bruno Windels
2ebce8eb7b
set responseType after calling open
2020-10-27 13:50:09 +01:00
Bruno Windels
a61d7fc68a
jwk key support for aesjs
2020-10-27 13:21:12 +01:00
Bruno Windels
a3aa25449b
make it work with xhr
2020-10-26 17:37:32 +01:00
Bruno Windels
ee1e62207c
apply platform changes to decrypting images
2020-10-26 17:18:17 +01:00
Bruno Windels
3ed5ea8b0b
Merge branch 'master' into bwindels/decrypt-images
2020-10-26 17:08:29 +01:00
Bruno Windels
98be9a8f4d
fix legacy spinner
2020-10-26 16:44:12 +01:00
Bruno Windels
1a518cdd28
more refactor fixes
2020-10-26 16:31:30 +01:00
Bruno Windels
03351d2e1f
extract platform class to put all platform specific code in
2020-10-26 15:44:11 +01:00
Bruno Windels
46fd769dda
(re)move old (compile-time) platform code
2020-10-26 10:34:35 +01:00
Bruno Windels
06e4dea590
move ui and dom under platform/web
2020-10-26 10:28:11 +01:00
Bruno Windels
2e0d1363c7
fix
2020-10-26 10:16:23 +01:00
Bruno Windels
a6224135e3
extract blob url code to platform (WIP)
2020-10-26 10:14:46 +01:00
Bruno Windels
4fd71279cf
don't disable cache for media repository downloads
2020-10-26 09:58:39 +01:00
Bruno Windels
cbd48aa528
only load main image when clicking thumbnail
2020-10-26 09:49:42 +01:00
Bruno Windels
6a468a0883
decrypt attachment code
2020-10-23 17:45:15 +02:00
Bruno Windels
3a6268f0c1
basic PoC of image decryption working
...
needs looooaaads of cleanup still
2020-10-23 17:25:11 +02:00
Bruno Windels
f214c53fa9
add @internal and other comments to Session
2020-10-23 12:59:40 +02:00
Bruno Windels
62c8d6574c
fix index.html not being restored from cache when offline on #hash url
2020-10-23 12:58:45 +02:00
Bruno Windels
df8eed14aa
expose whether we already have a 4s key,to show the 4s setup in settings
...
it's a tri-state of null/false/true with null meaning we need to
go online first to know as only then we try to setup session backup
2020-10-23 12:57:47 +02:00
Bruno Windels
df72e829bf
setup session backup as part of start method, so we know we're online
...
also don't upload OTKs in case of existing account until
catchup sync has happened
2020-10-23 12:22:52 +02:00
Bruno Windels
f1aef6c034
render should return nodes otherwise the mapView binding doesn't work
...
this broke e2ee messages appearing when decrypted
2020-10-21 12:10:42 +02:00
Bruno Windels
7459985e00
show storage usage in settings
2020-10-20 17:50:43 +02:00
Bruno Windels
545a2e481a
prevent cached thumbnails from being opaque responses
...
fixes https://github.com/vector-im/hydrogen-web/issues/169
2020-10-20 17:28:42 +02:00
Bruno Windels
a7a922680d
request persisted storage when logging in/restoring a session
2020-10-20 17:02:34 +02:00
Bruno Windels
2b93d50396
dont crash when value is undefined
2020-10-20 16:51:51 +02:00
Bruno Windels
4dd303e558
remove unused code
2020-10-20 15:29:36 +02:00
Bruno Windels
1e1b254678
adjust prop names
2020-10-20 15:26:22 +02:00
Bruno Windels
601bdbb25d
make session backup banner dismissable
2020-10-20 14:42:17 +02:00
Bruno Windels
446d30469b
improve wording and cleanup
2020-10-20 12:12:07 +02:00
Bruno Windels
98d7ffe87c
add button to set up field
2020-10-20 12:11:58 +02:00
Bruno Windels
16e0f515dc
make text not sprawl across screen on large monitors
2020-10-20 12:10:56 +02:00
Bruno Windels
6f09bd97b6
move setting view models in own dir / file
2020-10-20 12:10:41 +02:00
Bruno Windels
6f82d81f39
better session backup ui
2020-10-19 18:29:13 +02:00
Bruno Windels
d3b7d176b8
extract SettingsView into own file
...
also fix some copyright attributions
2020-10-19 14:55:01 +02:00
Bruno Windels
1fe3f646dc
further style settings page
2020-10-19 14:53:05 +02:00
Bruno Windels
d8f8342a10
make middle panel responsive styling + hide back b. + header css generic
2020-10-19 14:52:18 +02:00
Bruno Windels
1e599be142
Merge branch 'master' into bwindels/settings-screen
2020-10-19 13:45:17 +02:00
Bruno Windels
6bf8e976cb
don't assign timelineVM before loaded, so prop doesn't return it
...
... if the binding happens to be evaluating (which it was during mount)
follow-up from bwindels/fix-crash-switch-rooms-too-fast
2020-10-19 13:39:19 +02:00
Bruno Windels
f07b4a6554
Merge pull request #167 from vector-im/bwindels/fix-redirects
...
Fix back button not working when changing rooms
2020-10-19 11:01:07 +00:00
Bruno Windels
cdcdc07c06
fix a crash when switching rooms before the messages have loaded
...
as we were not disposing the timeline view model
(but still not leaking though)
2020-10-19 12:57:21 +02:00
Bruno Windels
8357260133
fix an applying an url also pushing a copy of the url back on history
...
it should replace instead, as it is a redirect
2020-10-19 12:55:42 +02:00
Bruno Windels
fb273782bf
use handleEvent in History so we don't have to bind
2020-10-19 12:55:10 +02:00
Bruno Windels
3e34ccb7e1
rename, I think, last occurrence of brawl to hydrogen 👋
2020-10-19 12:52:57 +02:00
Bruno Windels
db102e63d2
Merge branch 'master' into bwindels/settings-screen
2020-10-19 10:13:41 +02:00
Bruno Windels
90910dae15
render multiline messages with br's
2020-10-19 10:00:32 +02:00
Bruno Windels
4828e141c9
add br tag to html template
2020-10-19 10:00:18 +02:00
Bruno Windels
efe6956a79
support render method and value in StaticView
2020-10-19 09:59:56 +02:00
Bruno Windels
974f77a71d
WIP
2020-10-16 18:06:20 +02:00
Bruno Windels
90435a8fb7
semicolons, add them
2020-10-16 15:48:49 +02:00
Bruno Windels
e599d8b6fa
also clear
2020-10-16 15:47:13 +02:00
Bruno Windels
74e6d018f4
ensure url creation does not race on the current path of the navigation
2020-10-16 15:46:06 +02:00
Bruno Windels
0ca926d427
claim clients immediately from service worker
2020-10-16 14:52:34 +02:00
Bruno Windels
743cdd0bea
safari is tooo fast and skips it when it shouldn't
...
also, I've never had the registration fail, seems very unlikely
2020-10-16 13:26:19 +02:00
Bruno Windels
c125335ef0
undo debug squibels
2020-10-16 13:03:16 +02:00
Bruno Windels
5a30855227
rename urlRouter option in view models to urlCreator
2020-10-16 13:02:21 +02:00
Bruno Windels
0d622164df
close session db in other tabs when opening
2020-10-16 12:50:37 +02:00
Bruno Windels
fc61729cb3
support closing session in other clients in service worker
2020-10-16 12:50:19 +02:00
Bruno Windels
101c7015f2
move service worker code in bundle, and support closing sessions
2020-10-16 12:49:42 +02:00
Bruno Windels
788bce7904
reduce navigation boilerplate
...
this makes the url router adjust the url when the navigation path is
changed, instead of doing urlRouter.applyUrl() and
urlRouter.history.pushUrl().
This history field and applyUrl method on URLRouter are now private,
as the URLRouter should only be used to generate urls you want to
put in an <a href="..."></a>, anything else should use navigator.push()
2020-10-16 12:46:14 +02:00
Bruno Windels
ddf7d01760
WIP working
2020-10-15 21:35:10 +02:00
Bruno Windels
3aa1992a3f
WIP of messaging to sw
2020-10-15 19:12:16 +02:00
Bruno Windels
6b15e7e3ba
remove extra newline
2020-10-15 15:58:59 +02:00
Bruno Windels
5fcf8022a1
store the url on every change, as PWAs don't trigger beforeunload ...
...
... when (force) closed
2020-10-14 15:30:40 +02:00
Bruno Windels
3d8dfc9635
also show grid layout in mobile layout, just in case of restoring url
2020-10-14 15:29:51 +02:00
Bruno Windels
7c2fc516bb
restore last url if not providing a specific one on startup
2020-10-14 15:10:32 +02:00
Bruno Windels
19e774ce01
don't assume grid button is a button, just in case
2020-10-14 14:54:56 +02:00
Bruno Windels
4f46854362
add close session button
2020-10-14 14:54:46 +02:00
Bruno Windels
d96f8adcc7
fix back button in room header not working
2020-10-14 14:53:52 +02:00
Bruno Windels
cf99f55f3d
fix typo making the room list not shown on the mobile layout
2020-10-14 14:20:53 +02:00
Bruno Windels
fd1df595c8
remove leftover logging
2020-10-14 14:06:11 +02:00
Bruno Windels
8122d76e73
Merge branch 'master' into bwindels/url-routing
2020-10-14 12:45:49 +02:00
Bruno Windels
b00db1af3e
only keep 20 outbound olm sessions in memory at once to prevent OOM
2020-10-14 12:44:27 +02:00
Bruno Windels
07701117cd
reduce megolm sync cache size to 1 session
...
as this is kept around for every e2ee room, and we only have
limited olm memory
2020-10-14 12:43:35 +02:00
Bruno Windels
6ad7be8726
fix leaking left panel view model after closing session
2020-10-14 11:34:34 +02:00
Bruno Windels
de83d7740b
replace custom error view with staticview
2020-10-14 11:26:39 +02:00
Bruno Windels
fa8bec0b56
fix room view model being leaked when closing session
2020-10-14 11:26:10 +02:00
Bruno Windels
b29b776e9f
fix olm session cache being leaked when closing session
2020-10-14 11:25:49 +02:00
Bruno Windels
789a41c671
fix styling for session info entries
2020-10-14 10:34:25 +02:00
Bruno Windels
692fa808e4
make utility buttons also useable for links
2020-10-14 10:34:11 +02:00
Bruno Windels
7e477b3c8d
rename button.styled to .button-action so it can also be used for links
2020-10-14 10:33:48 +02:00
Bruno Windels
5fe479e8a9
fix styling for room list items
2020-10-14 10:20:20 +02:00
Bruno Windels
3d327b0875
also open the initial room in the room list
2020-10-14 10:20:00 +02:00
Bruno Windels
2333a959a2
actually apply the /session/<id> url after login!
2020-10-13 17:10:28 +02:00
Bruno Windels
ab354e9f38
update prop type
2020-10-13 15:19:54 +02:00
Bruno Windels
afbfb0c82c
anticipate non-found rooms
2020-10-13 15:18:13 +02:00
Bruno Windels
081820d8fb
also update view when going to an not-found room
2020-10-13 15:14:07 +02:00
Bruno Windels
a14795e3f8
unused
2020-10-13 15:05:11 +02:00
Bruno Windels
d1d675ed7a
make navigation observables already return new value before they emit
2020-10-13 14:54:57 +02:00
Bruno Windels
7f3e0f237b
also do redirect after initial navigation
2020-10-13 14:43:45 +02:00
Bruno Windels
1780f334ea
more tests
2020-10-13 13:13:47 +02:00
Bruno Windels
d9c8a6339e
support empty strings for rooms segment
2020-10-13 13:13:35 +02:00
Bruno Windels
7b13e45e19
fix creating the rooms segment
2020-10-13 13:13:15 +02:00
Bruno Windels
a360d0a2b9
also unset room vm if moving away from room
2020-10-13 13:12:49 +02:00
Bruno Windels
379d65edf1
also create new vm when coming for grid if transfering vm fails
2020-10-13 13:12:30 +02:00
Bruno Windels
77a58041eb
clean-up room grid initialization with vm transfering
...
also handle duplicate rooms, and add unit tests for grid vm
2020-10-13 13:11:19 +02:00
Bruno Windels
c8dd7b42e7
encountered this very unlikely race while testing, so prevent it
2020-10-13 13:10:35 +02:00
Bruno Windels
db5c98a706
support reassigning to null from untrack
2020-10-13 13:10:27 +02:00
Bruno Windels
4e8e9eae26
first round of fixes
2020-10-12 18:31:55 +02:00
Bruno Windels
14d2dcbc60
remove dead code
2020-10-12 17:49:41 +02:00
Bruno Windels
b2d6b7014b
first draft of url navigation for grid
2020-10-12 17:49:06 +02:00
Bruno Windels
6c2c29a7da
WIP
2020-10-09 19:43:11 +02:00
Bruno Windels
83ac3eccc5
apply url changes to view gallery
2020-10-09 17:04:25 +02:00
Bruno Windels
56e51fc2aa
idea comment
2020-10-09 17:04:17 +02:00
Bruno Windels
927e8134d3
use url navigation in root view model
...
also track all view models as it is
important everything is properly disposed now
2020-10-09 17:03:38 +02:00
Bruno Windels
33627edcb3
use url to go back in login view
2020-10-09 17:03:24 +02:00
Bruno Windels
35e85c55e0
use urls instead of callbacks to navigate in session picker
2020-10-09 17:03:13 +02:00
Bruno Windels
7b86b483ed
confirm before clearing
2020-10-09 17:02:19 +02:00
Bruno Windels
3ab68ef438
throw when something tracked is not disposable, fail early
2020-10-09 17:01:54 +02:00
Bruno Windels
1289f065d6
implement root view as template view
2020-10-09 17:01:39 +02:00
Bruno Windels
0f8f558889
dispose session container from view model
2020-10-09 17:01:22 +02:00
Bruno Windels
d48bbd122a
make applyUrl and history public
...
so we don't need to bother with silent flags in replaceUrl
2020-10-09 17:00:19 +02:00
Bruno Windels
35b83b7976
make SessionLoadViewModel transfer ownership of container with callback
...
also, deleting the session when navigating away is now done by
LoginViewModel
2020-10-09 16:59:34 +02:00
Bruno Windels
4ae622bdd3
make pushUrl silent again
2020-10-09 16:58:53 +02:00
Bruno Windels
41c1c9a6c3
rename Brawl -> Root
...
one of the last occurrences of brawl
2020-10-09 09:59:59 +02:00
Bruno Windels
c9bb18b87e
make loading screen a bit prettier
...
by wrapping it in a view with common pre-session chrome
this renames the existing SessionLoadView to SessionLoadStatusView
so we can call the wrapper the former.
2020-10-09 09:58:00 +02:00
Bruno Windels
696e7856f8
some cleanup
2020-10-09 09:56:01 +02:00
Bruno Windels
da9798979c
Merge branch 'master' into bwindels/url-routing
2020-10-09 09:30:38 +02:00
Bruno Windels
24690f8035
fix placeholder not being hidden in mobile layout
2020-10-09 09:30:06 +02:00
Bruno Windels
0d54f88670
early draft of showing load progress of a session loaded through url
2020-10-08 18:23:53 +02:00
Bruno Windels
00bd4364f0
early draft of loading session via url scheme
2020-10-08 18:23:37 +02:00
Bruno Windels
087aff4ef4
set to true if undefined passed in as well
2020-10-08 18:23:08 +02:00
Bruno Windels
4fe971775c
more url router work, differentiate between path and url
...
rename hashobservable to history
2020-10-08 18:22:36 +02:00
Bruno Windels
547241f577
Merge branch 'master' into bwindels/url-routing
2020-10-08 16:42:14 +02:00
Bruno Windels
ca0f8fd142
leave some space between room list tile and edge
2020-10-08 16:37:24 +02:00
Bruno Windels
5c2425796c
Merge branch 'master' into bwindels/url-routing
2020-10-08 16:33:19 +02:00
Bruno Windels
cb0ef1a1ae
this makes the caret huge on gnome web
2020-10-08 16:29:38 +02:00
Bruno Windels
35832e387a
Swap grid tile description based on focus
...
swap RoomPlaceholderView for generic StaticView
2020-10-08 16:14:59 +02:00
Bruno Windels
93e301e4fa
fix spinner margins
2020-10-08 15:53:12 +02:00
Bruno Windels
4783e03871
fix room header margin issue with hidden back button
2020-10-08 15:21:16 +02:00
Bruno Windels
868b1a1045
style composer
2020-10-08 15:20:52 +02:00
Bruno Windels
59802d1812
style room header
2020-10-08 15:00:20 +02:00
Bruno Windels
2cbe349a4d
don't read private parts
2020-10-08 14:21:34 +02:00
Bruno Windels
5c299c1db9
remove prefixes now we auto prefix
2020-10-08 14:18:48 +02:00
Bruno Windels
47a43869e6
fix grid layout in IE 11
...
this brings back index addressing rather than x y in the grid vm,
as we need to have a css class for every position for IE 11,
as we can't use css variables and autoprefixer can
translate grid-areas
2020-10-08 14:17:43 +02:00
Bruno Windels
c4cfb6f6d1
align left panel to 4px grid better, and simply margins
2020-10-08 10:29:30 +02:00
Bruno Windels
fd4b3d238f
increase click area of clear filter button, add search icon
2020-10-08 10:13:05 +02:00
Bruno Windels
c2eebb9af2
prevent filter field and composer breaking narrow layouts
2020-10-08 10:11:12 +02:00
Bruno Windels
e80f37603b
prevent breaking narrow layouts with inputs
2020-10-08 10:10:39 +02:00
Bruno Windels
26112fe3de
update grid icons
2020-10-08 10:10:03 +02:00
Bruno Windels
dafa995429
placeholder does not count as room shown
2020-10-07 18:00:07 +02:00
Bruno Windels
b79b41adcd
keep focused class
2020-10-07 17:59:58 +02:00
Bruno Windels
c80c369c42
prevent grid item from growing to max content height
2020-10-07 17:59:40 +02:00
Bruno Windels
bd959bc147
style grid button
2020-10-07 17:59:28 +02:00
Bruno Windels
ddda03d82c
style filter field and grid button
2020-10-07 17:59:14 +02:00
Bruno Windels
61b5369f2f
also show status view a bit lower for grid
2020-10-07 14:53:41 +02:00
Bruno Windels
f6d9ffa7bb
friends don't read each others private properties
2020-10-07 14:36:08 +02:00
Bruno Windels
46b24c3f24
fix room not changing when not in grid view
2020-10-07 14:32:57 +02:00
Bruno Windels
537972b97b
clarify comment
2020-10-07 14:25:32 +02:00
Bruno Windels
de14d6b54b
fix filter field taking up too much width
2020-10-07 14:22:14 +02:00
Bruno Windels
152a83f75f
css for the grid view
2020-10-07 14:22:00 +02:00
Bruno Windels
99ff387dec
index the room by x,y instead of index from the view
...
so it is easier to implement a focus-ring as a separate dom node
2020-10-07 14:18:35 +02:00
Bruno Windels
b9d2da736a
when opening room, focus in grid if already open
2020-10-07 13:18:19 +02:00
Bruno Windels
1ff6d36ec3
add grid toggle button to left panel
2020-10-07 12:31:52 +02:00
Bruno Windels
7955462dda
render grid view in session view
2020-10-07 12:31:24 +02:00
Bruno Windels
dc1357bb31
support clearing unread when focusing a room
2020-10-07 12:30:46 +02:00
Bruno Windels
614ec08238
integrate grid vm with session vm, allowing to switch
2020-10-07 12:25:40 +02:00
Bruno Windels
9cc7833d7a
implement room grid view
2020-10-07 12:24:44 +02:00
Bruno Windels
5a1d255d2a
implement room grid view model
2020-10-07 12:23:02 +02:00
Bruno Windels
01ff806b86
WIP
2020-10-07 09:40:51 +02:00
Bruno Windels
404de53c75
basic url router and navigation bootstrapping
2020-10-06 18:06:11 +02:00
Bruno Windels
b373a177ec
create room url in room tile
2020-10-06 18:05:52 +02:00
Bruno Windels
221b94adbf
room tile should be passed child options
2020-10-06 18:05:38 +02:00
Bruno Windels
5ab947e7de
pass urlRouter and navigation as view model options
2020-10-06 18:05:02 +02:00
Bruno Windels
514095da7a
move waitFor and get to BaseObservableValue
2020-10-06 18:04:34 +02:00
Bruno Windels
b8dcb249ff
implement url router
2020-10-06 18:03:12 +02:00
Bruno Windels
ef428809b5
implement navigation stack
2020-10-06 18:01:56 +02:00
Bruno Windels
1de645a990
give filter field a bit more space
2020-10-06 13:32:27 +02:00
Bruno Windels
e878b5786e
fix room view not showing anymore on narrow viewports
2020-10-06 13:31:23 +02:00
Bruno Windels
a7db44eabf
Merge pull request #138 from vector-im/bwindels/filter-room-list
...
Room list filtering
2020-10-06 11:08:39 +00:00
Bruno Windels
b1cb797919
fix refactor error in xhr, breaking it
2020-10-06 13:02:35 +02:00
Bruno Windels
0d6fe32f30
clear filter on esc
2020-10-06 12:43:31 +02:00
Bruno Windels
ddbe3305c8
fix filter field height
2020-10-06 12:34:13 +02:00
Bruno Windels
2fe6f4b769
clean up SessionView by making it a TemplateView
2020-10-06 12:23:17 +02:00
Bruno Windels
cac3daca72
add LeftPanelView(Model) with room filtering
2020-10-06 12:23:11 +02:00
Bruno Windels
c8125595a7
render hidden flag
2020-10-06 12:21:42 +02:00
Bruno Windels
c532cb5aea
add hidden flag to room tile vm
...
also move to leftpanel dir
2020-10-06 12:21:11 +02:00
Bruno Windels
e3fdd3a4fd
ApplyMap, your observable map collection for applying side-effects
2020-10-06 12:20:28 +02:00
Bruno Windels
9a3734e5ba
this is a NOP, but in the future might not be
2020-10-06 12:20:03 +02:00
Bruno Windels
7def542e21
fix test
2020-10-06 12:19:47 +02:00
Bruno Windels
84425fad5c
more work on FilteredMap (not done yet though)
...
I ended up not using this, but at some point we'll need it,
so commit this work
2020-10-06 12:19:08 +02:00
Bruno Windels
943467cf67
actually implemented filtered map
2020-10-05 18:18:44 +02:00
Bruno Windels
5ae1be9a9c
ignore invalid json on error pages
2020-10-05 17:18:05 +02:00
Bruno Windels
c8e4dbc1b3
this should be a map
2020-10-05 17:06:29 +02:00
Bruno Windels
b2e6310775
re-focus composer when clicking send button
2020-10-05 17:03:46 +02:00
Bruno Windels
a04a6a83be
fix composer not being visible on mobile
2020-10-05 17:03:32 +02:00
Bruno Windels
8f5d678698
cache small media repo thumbnails in service worker
2020-10-05 15:58:29 +02:00
Bruno Windels
6a8c0b52e0
indenting
2020-10-05 15:10:06 +02:00
Bruno Windels
8dc2816d6e
keep hashed files in cache as long as they don't change
2020-10-02 19:54:24 +02:00
Bruno Windels
e93b091566
dont use no-cache in fetch, as it doesn't play well with CORS on Safari
2020-10-02 14:02:59 +02:00
Bruno Windels
07eee8fac1
only create fragments when we will really write events to the timeline store
2020-10-01 17:01:33 +02:00
Bruno Windels
bebdaad7d4
log when we can't abort
2020-10-01 16:23:15 +02:00
Bruno Windels
c1df371a14
add some documentation for our idb investigations
2020-10-01 16:14:58 +02:00
Bruno Windels
9a4d47820d
change this back as well
2020-10-01 14:46:30 +02:00
Bruno Windels
cb7da2ba4a
dont need this anymore
2020-10-01 14:45:09 +02:00
Bruno Windels
f402e8c6c4
typo/thinko in docs
2020-10-01 14:39:23 +02:00
Bruno Windels
300529b7c5
write sync token first
...
in case we get a TransactionInactiveError,
we have at least written the sync token
and won't repeat the same sync request
2020-10-01 14:38:54 +02:00
Bruno Windels
1117c77d05
note for future optimisation
2020-10-01 14:36:00 +02:00
Bruno Windels
d5a6a4d350
todo comment
2020-10-01 14:35:46 +02:00
Bruno Windels
3c7125bb88
add (optional) logging for idb requests
2020-10-01 14:35:33 +02:00
Bruno Windels
93a7f9959e
Safari doesn't like the prepare txn still open when opening the sync txn
...
Waiting for it to close magically solves the TransactionInactiveError
we were seeing on some incremental sync request when
reading from roomMembers.
Still unsure what this is about, and if we should wait for all read txns
to close or not.
2020-10-01 14:31:38 +02:00
Bruno Windels
ddb14f48bf
we actually don't need to track write requests
...
as errors will bubble up to the txn
2020-10-01 14:31:08 +02:00
Bruno Windels
d5a52c32d6
these don't return a promise anymore
2020-09-29 11:51:14 +02:00
Bruno Windels
37690cffe3
track storage write requests internally, as we never await their promise
2020-09-29 11:50:37 +02:00
Bruno Windels
482b5f4d22
allow passing message to IDBRequestError
2020-09-29 11:50:10 +02:00
Bruno Windels
43d430fc98
remove unused storage modification functions
2020-09-29 11:47:49 +02:00
Bruno Windels
f993048a2b
Merge branch 'master' into bwindels/idb-promises-txn
2020-09-29 11:33:58 +02:00
Bruno Windels
e5b1cbbcd3
prevent endless loop when restoring messages that were already sent
2020-09-29 11:32:49 +02:00
Bruno Windels
7627a2bda2
add comment
2020-09-29 10:53:02 +02:00
Bruno Windels
163ca12854
ignore abort error
2020-09-29 10:52:52 +02:00
Bruno Windels
919357b474
more broken imports after refactor
2020-09-29 09:57:48 +02:00
Bruno Windels
c529df179b
also import this
2020-09-29 09:56:46 +02:00
Bruno Windels
c1ecaffbae
fix refactor typo
2020-09-29 09:54:51 +02:00
Bruno Windels
07fcf7e75b
also do this in try catch
2020-09-29 09:43:25 +02:00
Bruno Windels
4d23529b68
set promise polyfill before others
...
just in case
2020-09-29 09:42:43 +02:00
Bruno Windels
b1f9cfd972
cleanup storage errors a bit
2020-09-29 09:17:03 +02:00
Bruno Windels
ee4c132fb4
add todo
2020-09-28 16:06:41 +02:00
Bruno Windels
76381fbca1
open storage transactions synchronously
...
this (almost) makes it work in some browsers that otherwise
have throw a TransactionInactiveError on the first operation
you try to do on a store.
2020-09-28 16:06:41 +02:00
Bruno Windels
d759e1429f
set error before changing state to stopped
2020-09-28 16:06:19 +02:00
Bruno Windels
3440823981
Merge pull request #117 from vector-im/bwindels/idb-promises
...
Prevent transaction from closing on IE11/Win7
2020-09-28 13:37:34 +00:00
Bruno Windels
47dbc87e95
load promise first
2020-09-28 15:34:10 +02:00
Bruno Windels
bb58fa9b6c
dont need this anymore
2020-09-28 15:32:40 +02:00
Bruno Windels
18cc34c082
remove extra newlines
2020-09-28 15:31:04 +02:00
Bruno Windels
dd30f51ffe
add copyright
2020-09-28 15:28:51 +02:00
Bruno Windels
9cf24d910a
properly install polyfill and remove logging
2020-09-28 15:28:38 +02:00
Bruno Windels
6d003f9565
don't include corejs promise polyfill anymore
2020-09-28 15:28:22 +02:00
Bruno Windels
e3581c8260
use our fork of es6-promise with flush exposed as the promise polyfill
2020-09-28 15:27:38 +02:00
Bruno Windels
8366b44d8c
dont assume global is window
2020-09-28 14:52:12 +02:00
Bruno Windels
98a6d82820
detect when sync promise hack is needed
2020-09-28 14:51:41 +02:00
Bruno Windels
706ec97296
change method name
2020-09-28 13:25:44 +02:00
Bruno Windels
64290d5ae6
flush promises manually in idb event handler
2020-09-25 16:53:19 +02:00
Bruno Windels
becdf656a4
nicer error messages when decrypting with a worker
2020-09-25 16:52:26 +02:00
Bruno Windels
27a8ef4604
add comment how timeouts interact with the reconnector
2020-09-25 10:45:41 +02:00
Bruno Windels
e175e9ac8b
cleanup
2020-09-25 10:45:34 +02:00
Bruno Windels
134b04c782
make flushing room key shares reentrant
...
as it can be called from Room.start while still running.
2020-09-25 10:45:00 +02:00
Bruno Windels
bcca23bac9
retry sync on timeout, even for incremental sync
2020-09-25 10:44:36 +02:00
Bruno Windels
7f0d36cf79
remove double negation
2020-09-25 10:44:19 +02:00
Bruno Windels
86df4993e1
prevent room summary from being updated every time it is in /sync resp
2020-09-24 16:45:28 +02:00
Bruno Windels
46abafdccc
ensure cloned is always set to false for this._data
...
by making all assignments of this._data go through applyChanges
2020-09-24 16:40:51 +02:00
Bruno Windels
4a0173e90f
only run decryptPending if needed
2020-09-24 10:53:51 +02:00
Bruno Windels
4d616ce281
add todo for future optimisation
2020-09-24 10:35:09 +02:00
Bruno Windels
ece4840653
don't mark rooms as unread after retrying decryption for now
...
this will not mark e2ee rooms as unread if their room key is delayed
though. We should really only do this for back-filled events but that
is hard to do right now, as we don't know the original source here.
2020-09-23 19:11:11 +02:00
Bruno Windels
eb4237f6f4
tell caller if an update was done from summery.writeAndApplyData
...
so room actually emits an update
2020-09-23 19:10:25 +02:00
Bruno Windels
17f84ab314
fix "this" still being used in readRawTimelineEntries ...
2020-09-23 19:09:44 +02:00
Bruno Windels
086bdafe9a
no need for async
2020-09-23 18:28:21 +02:00
Bruno Windels
7cad3b2bdb
some tabs in here
2020-09-23 18:22:51 +02:00
Bruno Windels
64f657e5a2
fix test
2020-09-23 18:20:29 +02:00
Bruno Windels
6e77ebb160
undo obsolete changes
2020-09-23 18:06:16 +02:00
Bruno Windels
d53b5eefb3
fill in the blanks
2020-09-23 17:59:42 +02:00
Bruno Windels
9d41e122a0
draft of falling back to reading entries since last decrypted event key
...
this change notifyRoomKey(s) to only take one room key at a time
to simplify things
2020-09-23 17:34:25 +02:00
Bruno Windels
a8392dc684
also decrypt messages in the sync response that enabled encryption
...
like initial sync
2020-09-23 14:26:14 +02:00
Bruno Windels
241176d6fb
WIP
2020-09-22 18:22:37 +02:00
Bruno Windels
137f55b44d
manage request scheduler in session container
...
so we can start it before sync does its first request,
which otherwise gets aborted because the scheduler hasn't started yet
2020-09-22 16:39:41 +02:00
Bruno Windels
150f06b9bf
also move to Stopped for aborts
2020-09-22 16:39:04 +02:00
Bruno Windels
85b451ffa1
can't rename named params like this
2020-09-22 15:49:43 +02:00
Bruno Windels
5660e0f4f0
rename send scheduler to request scheduler
2020-09-22 15:49:35 +02:00
Bruno Windels
0a00d4c865
use hsApi wrapper that handles rate-limiting instead of send scheduler
2020-09-22 13:43:18 +02:00
Bruno Windels
d7c25e3106
move MediaRepository out of HomeServerApi
...
so HomeServerApi becomes easier to wrap, only having methods
that return a RequestResult.
2020-09-22 13:40:38 +02:00
Bruno Windels
6cd227b82d
only prompt after waiting 10s for sync UTD
2020-09-22 09:30:25 +02:00
Bruno Windels
0a83bf1176
more notes for legacy css marker
2020-09-22 09:30:13 +02:00
Bruno Windels
3359d49161
off both passphrase and security key options
2020-09-21 19:19:55 +02:00
Bruno Windels
e6a46874c4
wrap olm error for creating session in DecryptionError
...
so we can relate it back to the event that caused it
2020-09-21 17:58:13 +02:00
Bruno Windels
c9ee5a5db2
stay in catchup mode as long as there are device messages
...
this implements https://github.com/vector-im/element-web/issues/2782
it also implements 0 timeout for catchup, getting rid of the
catching up with your convo banner for 30s upon reconnection.
2020-09-21 17:57:01 +02:00
Bruno Windels
015c6b1c70
interpret unreported signed_curve25519 as 0 OTKs
2020-09-21 17:56:23 +02:00
Bruno Windels
4dfbd3f3cd
don't run afterSyncCompleted and next sync request in parallel
...
as the otk count the next sync request reports will be outdated
if afterSyncCompleted uploaded OTKs, and the next afterSyncCompleted
, having the wrong server OTK count, will again upload OTKs.
This will overwrite existing OTK keys which will
throw BAD_MESSAGE_KEY_ID when creating new sessions with those OTKs
2020-09-21 17:53:29 +02:00
Bruno Windels
c7370d7b01
Use continue in for loop rather than return
...
this was running in a Promise.all(array.map)) closure before
2020-09-21 14:11:28 +02:00
Bruno Windels
2c6a3a7ce7
fix afterSyncCompleted not being run after a sync error occurs
...
the error was not cleared when calling start again.
Also we should better look at the sync status to decide whether to run
afterSyncCompleted.
This prevented the room keys from being applied once you
had a connection error or other error at some point
since you started the app.
2020-09-21 13:55:35 +02:00
Bruno Windels
8cf29e344b
don't send access token on /versions
...
as it's not a good idea, and some CORS configs might not be happy with
an Authorization header on that path
2020-09-18 18:13:20 +02:00
Bruno Windels
1d33ab20a5
fix decrypted tiles not corresponding to a tile
2020-09-18 13:36:16 +02:00
Bruno Windels
4d604f7357
log all sync errors
2020-09-18 13:11:18 +02:00
Bruno Windels
3704de1a26
more dispose
2020-09-18 13:11:10 +02:00
Bruno Windels
da780d0aa2
delay backup 10s if missing session event came from sync
2020-09-18 13:11:02 +02:00
Bruno Windels
3aead4eae2
createEnum does not take an array
2020-09-18 13:08:35 +02:00
Bruno Windels
ed913ca24b
add dispose to room encryption
2020-09-18 13:08:18 +02:00
Bruno Windels
6c46cc98de
be more specific in error message
2020-09-18 12:12:52 +02:00
Bruno Windels
2de406afa0
log secret storage error as well
2020-09-18 12:12:19 +02:00
Bruno Windels
cb32f4201e
note for future cleanup
2020-09-18 12:12:12 +02:00
Bruno Windels
9fd39ab57f
aes-js doesn't work with ArrayBuffers
2020-09-18 12:04:48 +02:00
Bruno Windels
36b56132b0
add TextEncoder/Decoder polyfill to legacy bundle
2020-09-18 12:04:22 +02:00
Bruno Windels
6375574a56
show error
2020-09-17 18:59:40 +02:00
Bruno Windels
f58a3ee975
use olm from param
2020-09-17 18:56:02 +02:00
Bruno Windels
7d6fcfafa8
pass olm, better naming, don't reuse var
2020-09-17 18:55:39 +02:00
Bruno Windels
5b45c00322
switch to security key
2020-09-17 18:55:28 +02:00
Bruno Windels
ceac6008bc
fix import
2020-09-17 18:55:09 +02:00
Bruno Windels
fe5b732c97
cleanup, better copy text
2020-09-17 18:54:55 +02:00
Bruno Windels
494c5cbcf0
notify UI when we need session backup
2020-09-17 18:00:00 +02:00
Bruno Windels
06ccd74680
this should be read-write, oops
2020-09-17 17:59:35 +02:00
Bruno Windels
1b8e481559
keys from backup need to be imported with import_session, not create
2020-09-17 17:59:02 +02:00
Bruno Windels
915925d6ee
don't throw when trying to restore session from backup, check sender key
2020-09-17 17:57:52 +02:00
Bruno Windels
a205ae8841
fixes
2020-09-17 17:57:12 +02:00
Bruno Windels
5752cca69c
go back to bs58 and use other base64 decoder
...
as base-x isn't meant for base64
2020-09-17 17:56:05 +02:00
Bruno Windels
9d622434fb
integrate session backup with session class
2020-09-17 15:58:46 +02:00
Bruno Windels
3cebd17cbe
adjust paths
2020-09-17 15:17:46 +02:00
Bruno Windels
c9d8d40242
move ssss out of e2ee dir as not really e2ee related
2020-09-17 15:17:00 +02:00
Bruno Windels
33aa475e18
add function to create key from either passphrase or recovery key
2020-09-17 15:16:01 +02:00
Bruno Windels
7f97c540fb
obsolete comment, this is already the case
2020-09-17 14:20:42 +02:00
Bruno Windels
092547bfc8
renaming
2020-09-17 14:20:36 +02:00
Bruno Windels
17fc249fa8
integrate session backup with room encryption and megolm decryption
2020-09-17 14:20:15 +02:00
Bruno Windels
3941af93d2
more impl of SessionBackup
2020-09-17 14:19:57 +02:00
Bruno Windels
fff8308259
first draft of SessionBackup
2020-09-17 12:34:39 +02:00
Bruno Windels
1a105d391b
cleanup: rename session name to hydrogen as well
...
as we'll need people to resync because of account data as well
2020-09-17 12:34:10 +02:00
Bruno Windels
b7401a148c
some ssss cleanup
2020-09-17 12:33:57 +02:00
Bruno Windels
8204e942d9
first draft of reading a ssss secret
2020-09-17 11:39:40 +02:00
Bruno Windels
c44ab3e55e
derive ssss key from recovery key
2020-09-17 11:39:25 +02:00
Bruno Windels
7c4c266fe0
derive ssss key from passphrase
2020-09-17 11:39:07 +02:00
Bruno Windels
45c62eb0e5
common types and storage for ssss
2020-09-17 11:38:53 +02:00
Bruno Windels
7412b3aae8
forgot to commit account data store
2020-09-17 11:38:44 +02:00
Bruno Windels
4ec0e67384
use base-x to support both base64 and base58
2020-09-17 11:36:54 +02:00
Bruno Windels
abfde76e24
store account data in storage
...
needs a resync, need to think how to handle this
2020-09-17 10:39:51 +02:00
Bruno Windels
00eade1c16
add crypto driver with primitives needed for 4S & session backup
2020-09-17 10:19:09 +02:00
Bruno Windels
ab01c903a6
turns out that rollup-plugin-cleanup doesn't like line 259 in aes-js
...
so don't remove comments for now in the legacy build
2020-09-17 09:36:37 +02:00
Bruno Windels
77a21c08eb
add legacy extras, so deps only needed for legacy are not in main bundle
2020-09-16 18:31:17 +02:00
Bruno Windels
b63aaa6dcb
add typed array polyfills to worker bundle
2020-09-16 14:42:13 +02:00
Bruno Windels
12262f2824
actually use correct method to get all device ids for a user
2020-09-14 18:31:54 +02:00
Bruno Windels
75bff228ec
fix data not being passed on, caused crash on initial sync
2020-09-14 17:45:13 +02:00
Bruno Windels
a11b612640
await this
2020-09-14 17:45:02 +02:00
Bruno Windels
b2e6e8687e
dispose tiles
...
also add more defence against emitting event when disposed
2020-09-14 17:44:37 +02:00
Bruno Windels
9ea961ae53
don't crash when we don't have a subscription anymore
2020-09-14 17:43:06 +02:00
Bruno Windels
49f330279b
also pass timeline entries to summary after initial decryption failed
2020-09-14 16:34:07 +02:00
Bruno Windels
f3f07a0672
centralize update emitting in room
2020-09-14 16:33:43 +02:00
Bruno Windels
bce46daa9c
this is shorter
2020-09-14 16:33:30 +02:00
Bruno Windels
3325f12092
remove devices not present in /keys/query response
2020-09-14 15:47:00 +02:00
Bruno Windels
504371eaf3
this is outdated (and not really needed)
2020-09-14 15:47:00 +02:00
Bruno Windels
8555fd5f18
a little extra caution
2020-09-14 15:47:00 +02:00
Bruno Windels
aa5d55bbf2
show when e2ee is enabled in timeline
2020-09-14 15:47:00 +02:00
Bruno Windels
8c4d68def9
show decryption errors in timeline
2020-09-14 15:47:00 +02:00
Bruno Windels
a2f8731a23
Keep room key with earliest index
2020-09-14 15:47:00 +02:00
Bruno Windels
9fad5b3b29
only load olm once
2020-09-14 15:47:00 +02:00
Bruno Windels
0c3ea90ab4
also update room list when encrypted events come in
2020-09-14 15:46:58 +02:00
Bruno Windels
fb69688d47
also update room list when encrypted events come in
2020-09-14 14:01:47 +02:00
Bruno Windels
4875095ea3
fix event tiles not updating when event is decrypted when room keys come
2020-09-11 17:47:35 +02:00
Bruno Windels
2855166239
migrate encryption flag so old sessions dont send unencrypted events
2020-09-11 16:48:04 +02:00
Bruno Windels
e763771cc2
cleanup
2020-09-11 14:45:38 +02:00
Bruno Windels
96119b4e58
load all pending operations when starting the session, pass to room
2020-09-11 14:41:40 +02:00
Bruno Windels
ab1fe711ad
implement room key sharing with operations store
2020-09-11 14:41:12 +02:00
Bruno Windels
b00865510f
add operation store
2020-09-11 14:40:05 +02:00
Bruno Windels
9f6822f362
remove needsRoomKey flag on member
2020-09-11 14:38:36 +02:00
Bruno Windels
bba53b3477
dont store duplicated key values for replay detection
2020-09-11 12:08:06 +02:00
Bruno Windels
0dece5b04f
make continuation logic work well with pending events
...
- don't use display name to compare but user id
(pending doesn't have display name yet)
- use current time as timestamp
2020-09-11 11:43:40 +02:00
Bruno Windels
2c186554a1
this works better in ie11 for some reason
2020-09-11 11:36:08 +02:00
Bruno Windels
843e3e6b1c
show encrypted status of room
2020-09-11 11:35:53 +02:00
Bruno Windels
0e3084cce3
provide alternative spinner for ie11
2020-09-11 11:28:59 +02:00
Bruno Windels
95c6fd5a5b
reenable only using worker when wasm is not supported
2020-09-11 10:53:15 +02:00
Bruno Windels
e0d9d703b7
offload olm account creation in worker
2020-09-11 10:43:17 +02:00
Bruno Windels
0b26e6f53a
compress new e2ee stores into one new idb version
2020-09-11 08:40:43 +02:00
Bruno Windels
78fecd003a
cleanup
2020-09-10 18:57:29 +02:00
Bruno Windels
af36c71a59
load worker in main and pass paths so it works both on compiled and non-compiled
2020-09-10 18:41:23 +02:00
Bruno Windels
de1cc0d739
abort decrypt requests when changing room
2020-09-10 17:43:01 +02:00
Bruno Windels
0bf1723d99
Worker WIP
2020-09-10 15:40:30 +01:00
Bruno Windels
fdbc5f3c1d
WIP worker work
2020-09-10 13:00:11 +02:00
Bruno Windels
17412bbb2f
more validation
2020-09-10 12:12:39 +02:00
Bruno Windels
94b0cfbd72
add prepareSync and afterPrepareSync steps to sync, run decryption in it
2020-09-10 12:11:43 +02:00
Bruno Windels
1c77c3b876
expose multi-step decryption from RoomEncryption, adjust room timeline
...
sync code hasn't been adjusted yet
2020-09-10 12:11:25 +02:00
Bruno Windels
7c1f9dbed0
split up megolm decryption so it can happen in multiple steps,see README
2020-09-10 12:05:53 +02:00
Bruno Windels
a4c8e56ab0
fix getKey not working on IE11
2020-09-09 11:42:26 +01:00
Bruno Windels
f8e3a75471
fix typo
2020-09-09 10:22:29 +02:00
Bruno Windels
a18d2c0e78
update comment
2020-09-09 09:51:48 +02:00
Bruno Windels
212efe823c
fix memberlist not containing all members
...
we were using the prev_batch of the last sync to pass to
/members, but this points at the timeline *before* the last
sync, so wouldn't contain all members. Use the sync token instead.
2020-09-09 09:50:03 +02:00
Bruno Windels
1f9d6191c2
this happens often when room is not tracked yet, so don't log
2020-09-08 18:32:51 +02:00
Bruno Windels
0ed2d14887
log OTK claim failures
2020-09-08 18:32:12 +02:00
Bruno Windels
da4b710e49
don't return promise here, not used
2020-09-08 18:30:45 +02:00
Bruno Windels
4ca5ff9b9f
only load 50 olm sessions at once
2020-09-08 18:30:06 +02:00
Bruno Windels
10b5614fd9
m.dummy events don't have content
2020-09-08 18:27:49 +02:00
Bruno Windels
9a7abb1899
make logic more explicit
2020-09-08 18:27:35 +02:00
Bruno Windels
4a2faed198
don't assume roomKeys is an array
2020-09-08 18:27:12 +02:00
Bruno Windels
4c1aaaf416
show "setting up encryption keys..." step during login
2020-09-08 17:16:34 +02:00
Bruno Windels
36a8ec0110
dont attempt to decrypt redacted events
...
this will show them as undecryptable for now though
2020-09-08 17:16:01 +02:00
Bruno Windels
773cb3420f
ignore duplicate curve25519 keys in /keys/query response
2020-09-08 17:14:23 +02:00
Bruno Windels
b653022a5a
do store our own device, otherwise need special case verifying own msgs
2020-09-08 15:25:36 +02:00
Bruno Windels
65660a1e3b
remove double jsdoc
2020-09-08 15:06:44 +02:00
Bruno Windels
650df6fea8
forgot await
2020-09-08 15:00:29 +02:00
Bruno Windels
5a8aac57ac
there might not be a member yet
2020-09-08 15:00:20 +02:00
Bruno Windels
7bba83aa9e
add outbound session store to sync txn
2020-09-08 15:00:00 +02:00
Bruno Windels
5e65eb10ef
docs
2020-09-08 14:39:33 +02:00
Bruno Windels
1aa044667c
try sending out pending room keys after first sync
2020-09-08 14:39:07 +02:00
Bruno Windels
31d4b6f75d
send room keys to newly joined members in afterSyncCompleted stage
2020-09-08 14:38:27 +02:00
Bruno Windels
c158e3da77
support running afterSyncCompleted step on rooms as well
...
and make it in parallel with next sync request
2020-09-08 14:37:24 +02:00
Bruno Windels
52c3c7c03d
support sending out room key in room encryption for newly joined members
2020-09-08 14:36:50 +02:00
Bruno Windels
7b35a3c46c
memberChanges is a map, not array
2020-09-08 14:23:38 +02:00
Bruno Windels
bbaf3a5605
write needsRoomKey flag when new members joins to tracked e2ee room
2020-09-08 14:22:11 +02:00
Bruno Windels
d184be2d22
rotate outbound megolm session when somebody leaves the room
2020-09-08 11:09:09 +02:00
Bruno Windels
cd172f6df2
log new room keys for debugging
2020-09-08 10:55:38 +02:00
Bruno Windels
dea9fd90b4
name devices at login "Hydrogen"
...
so you can somewhat identify them in a device list
2020-09-08 10:53:15 +02:00
Bruno Windels
2c5c3ac8e2
formatting
2020-09-08 10:53:02 +02:00
Bruno Windels
2b59c8bb7c
store ed25519 key from olm event rather than one in m.room_key payload
...
that's the docs/js-sdk do it, even though it probably
doesn't matter much as we verify the key anyway
2020-09-08 10:52:02 +02:00
Bruno Windels
40ed66dc5e
document return type
2020-09-08 10:51:45 +02:00
Bruno Windels
4cf3b3569d
storage method takes EventKey actually
2020-09-08 10:51:28 +02:00
Bruno Windels
3e100ff5ec
ensure /keys/query devices have the keys we need
2020-09-08 10:51:01 +02:00
Bruno Windels
c32ac2c764
use decryption result to show message verification status in timeline
2020-09-08 10:50:39 +02:00
Bruno Windels
9137d5dcbb
make decryption algorithms return DecryptionResult
...
which contains curve25519 key and claimed ed25519 key as well as payload
2020-09-08 10:48:11 +02:00
Bruno Windels
fbb534fa16
add todo
2020-09-04 16:46:13 +02:00
Bruno Windels
a817a9aaf9
return decrypted type and content
2020-09-04 16:41:03 +02:00
Bruno Windels
7bfcfc9eed
correct store name
2020-09-04 16:40:51 +02:00
Bruno Windels
f31efe3e87
encode key with proper names
2020-09-04 16:40:39 +02:00
Bruno Windels
8e5d5db32b
add event prop on entry
2020-09-04 16:40:15 +02:00
Bruno Windels
e06cb1eb5f
fix param order
2020-09-04 16:29:20 +02:00
Bruno Windels
1af118a443
don't assume we have a timeline
2020-09-04 16:27:39 +02:00
Bruno Windels
9b771120e4
actually accept megolm decryption dep
2020-09-04 16:27:14 +02:00
Bruno Windels
dc0576f2db
cleanup
2020-09-04 15:31:45 +02:00
Bruno Windels
baad4bd37f
hookup megolm decryption in session
2020-09-04 15:31:27 +02:00
Bruno Windels
32a399afec
implement storage changes for megolm decryption
2020-09-04 15:31:00 +02:00
Bruno Windels
5a731903da
implement decrypting when loading timeline
2020-09-04 15:30:06 +02:00
Bruno Windels
62bcb27784
implement decryption retrying and decrypting of gap/load entries
...
turns out we do have to always check for replay attacks because
failing to decrypt doesn't prevent an item from being stored,
so if you reload and then load you might be decrypting it
for the first time
2020-09-04 15:29:58 +02:00
Bruno Windels
565fdb0f8c
use proper error codes
2020-09-04 12:10:36 +02:00
Bruno Windels
28b46a1e5b
add some comments
2020-09-04 12:10:28 +02:00
Bruno Windels
fe9245dd04
first draft of retrying decryption when receiving room keys
2020-09-04 12:10:12 +02:00
Bruno Windels
502ba5deea
first draft of decryption in Room and RoomEncryption
2020-09-04 12:09:19 +02:00
Bruno Windels
fab58e8724
first draft of megolm decryption
2020-09-04 12:06:26 +02:00
Bruno Windels
80ede4f411
session will always be true here, we want to check sessionEntry
2020-09-04 12:05:58 +02:00
Bruno Windels
8ac80314c2
cleanup
2020-09-03 17:51:20 +02:00
Bruno Windels
c5efa582b1
check algorithm
2020-09-03 17:51:00 +02:00
Bruno Windels
c5c9505ce2
hookup megolm encryption in session
2020-09-03 17:50:28 +02:00
Bruno Windels
be4d887178
add outbound group session storage
2020-09-03 17:49:20 +02:00
Bruno Windels
6bc30bb824
implement megolm encryption
2020-09-03 17:48:59 +02:00
Bruno Windels
b1226d9220
add infrastructure to encrypt while sending
2020-09-03 15:36:48 +02:00
Bruno Windels
5cafef96f5
add RoomEncryption to room
2020-09-03 15:36:17 +02:00
Bruno Windels
2a40c89a24
implement hsapi /keys/claim endpoint
2020-09-03 15:33:23 +02:00
Bruno Windels
dde8c66196
implement store changes for olm encryption
2020-09-03 15:33:03 +02:00
Bruno Windels
792f0cf9a0
log our identity keys after load
2020-09-03 15:32:33 +02:00
Bruno Windels
1d4a5cd6d4
instantiate olm encryption in session
2020-09-03 15:32:08 +02:00
Bruno Windels
4401012312
no need to call decrypt when there are no events
2020-09-03 15:30:54 +02:00
Bruno Windels
408ff3322d
content already exists here
2020-09-03 15:30:42 +02:00
Bruno Windels
620fc0d210
JSON stringify payload, olm_encrypt does not do objects
2020-09-03 15:30:18 +02:00
Bruno Windels
8676909a26
don't swallow errors!
2020-09-03 15:30:09 +02:00
Bruno Windels
a943467e71
await txns
2020-09-03 15:30:01 +02:00
Bruno Windels
71ba2dd714
name userId -> ownUserId as elsewhere
2020-09-03 15:29:35 +02:00
Bruno Windels
8d0d4570dd
fix import path
2020-09-03 15:29:09 +02:00
Bruno Windels
b2fffee037
give better error when olm plaintext is not json
2020-09-03 15:28:49 +02:00
Bruno Windels
1f8005cdfd
forgot to pass account
2020-09-03 15:28:38 +02:00
Bruno Windels
e22131bf57
don't store or return our own device
2020-09-03 15:28:20 +02:00
Bruno Windels
eda15e1141
forgot to remove this after extracting function
2020-09-03 15:27:40 +02:00
Bruno Windels
8d64fa54fe
using wrong method here
2020-09-03 15:27:00 +02:00
Bruno Windels
af423b1c7f
ensure second promise has run in test
2020-09-03 12:17:01 +02:00
Bruno Windels
4f4808b94c
lock on senderKey while enc/decrypting olm sessions
2020-09-03 12:12:33 +02:00
Bruno Windels
4ecd853348
Merge branch 'bwindels/e2ee' into bwindels/olm-encrypt
2020-09-03 11:44:36 +02:00
Bruno Windels
279b55e8e6
fix test
2020-09-03 11:31:00 +02:00
Bruno Windels
1492b6b6f8
cleanup of olm encryption
2020-09-03 09:53:16 +02:00
Bruno Windels
e3daef5ca9
first draft of olm encryption
2020-09-02 17:58:01 +02:00
Bruno Windels
3cb46b38ff
extract olm/Session into own file
2020-09-02 17:38:46 +02:00
Bruno Windels
f1b78a5778
extract groupBy function from olm decryption into util
2020-09-02 17:38:25 +02:00
Bruno Windels
0545c1f0c5
extract verifying a signed object from the device tracker
2020-09-02 17:37:48 +02:00
Bruno Windels
bd64aaf029
create outbound olm session from account
...
also better error handling
2020-09-02 17:37:13 +02:00
Bruno Windels
6c60381d54
Merge pull request #79 from vector-im/bwindels/hookuk-olm-to-device
...
Hookup to_device message handling and store megolm sessions when receiving m.room_key
2020-09-02 13:01:52 +00:00
Bruno Windels
1dbabf6240
cleanup ctor
2020-09-02 14:59:17 +02:00
Bruno Windels
b4d2be6b12
Merge branch 'master' into bwindels/e2ee
2020-09-02 14:55:38 +02:00
Bruno Windels
5a12904cc3
log errors during session load
2020-09-02 14:54:57 +02:00
Bruno Windels
1ab356cd9c
wrong store name
2020-09-02 14:53:50 +02:00
Bruno Windels
95fcbe1598
typo
2020-09-02 14:52:33 +02:00
Bruno Windels
14cba7ec6e
need to pass in olm
2020-09-02 14:52:19 +02:00
Bruno Windels
1f66868566
forgot to await
2020-09-02 14:52:02 +02:00
Bruno Windels
e09fbf566d
TODO
2020-09-02 14:30:49 +02:00
Bruno Windels
7d517eb700
wire up the olm decryption,megolm room key handler and to_device handler
2020-09-02 14:30:18 +02:00
Bruno Windels
0219932f50
typo
2020-09-02 14:29:18 +02:00
Bruno Windels
6d3aa219fa
implement storing room keys
2020-09-02 14:24:38 +02:00
Bruno Windels
f5c7b1b3ec
remove obsolete comment
2020-09-02 13:35:25 +02:00
Bruno Windels
6aad751611
fix wrong idb method used in session store
2020-09-02 13:35:08 +02:00
Bruno Windels
44e9f91d4c
to_device handler for encrypted messages
...
changes the api of the olm decryption to decrypt in batch
so we can isolate side-effects until we have a write-txn open
and we can parallelize the decryption of different sender keys.
2020-09-02 13:33:27 +02:00
Bruno Windels
6788a612fc
implement olm session storage
2020-09-01 17:59:59 +02:00
Bruno Windels
5fee7fedc3
implement olm decryption algorithm
2020-09-01 17:59:39 +02:00
Bruno Windels
81a1573e3b
make a shared olm util for the whole session
2020-09-01 17:57:59 +02:00
Bruno Windels
9870483121
remove room list sorting logging, works well now
2020-08-31 16:22:03 +02:00
Bruno Windels
cfa011a317
remove room list sorting logging, works well now
2020-08-31 16:21:12 +02:00
Bruno Windels
007333628a
add todo for /sync <-> /members race
2020-08-31 16:10:18 +02:00
Bruno Windels
15ae35bbbc
add future todo
2020-08-31 16:09:38 +02:00
Bruno Windels
6580219b09
add userIdentities to sync txn
2020-08-31 16:09:24 +02:00
Bruno Windels
4077f57afb
fix typos in stores
2020-08-31 16:09:13 +02:00
Bruno Windels
aeb2f5402a
process own membership changes before device lists
2020-08-31 16:08:47 +02:00
Bruno Windels
703c89e276
make membership available on member
2020-08-31 16:07:29 +02:00
Bruno Windels
374dce638d
these are assumed to be getters
2020-08-31 16:07:18 +02:00
Bruno Windels
4fd3e2ab20
response is a method
2020-08-31 16:07:04 +02:00
Bruno Windels
d43cdfd889
don't crash when tracked user is not there
2020-08-31 16:06:40 +02:00
Bruno Windels
fef6586e5b
actually pass the room id
2020-08-31 16:06:31 +02:00
Bruno Windels
78c3157a5f
fix not taking into account Object.entries yields arrays for the pairs
2020-08-31 16:05:57 +02:00
Bruno Windels
561df45641
olm.Utility should be instanciated
2020-08-31 16:05:21 +02:00
Bruno Windels
0399562340
fix typo
2020-08-31 16:05:04 +02:00
Bruno Windels
8b7fdb2c61
create user & device identity stores
2020-08-31 14:38:03 +02:00
Bruno Windels
4ef5d4b3b8
implement hsapi /keys/query method
2020-08-31 14:24:09 +02:00
Bruno Windels
2e67b2b6b8
handle prev_content location ambiguity
2020-08-31 14:21:18 +02:00
Bruno Windels
09cb39b553
don't run afterSyncCompleted when there was an error
2020-08-31 14:13:36 +02:00
Bruno Windels
afb9ae4391
hook up device tracker with sync
2020-08-31 14:13:21 +02:00
Bruno Windels
8b358379e8
first draft of device tracker
...
mainly missing race protection with /sync and actually running the code
2020-08-31 14:12:12 +02:00
Bruno Windels
8482bc95ec
pass memberchanges around instead of members
...
so we can easily tell how their membership changes, (e.g. join -> left)
which we'll need for device tracking.
Not adding this to RoomMember because RoomMember also needs to be
able to represent a member loaded from storage which doesn't contain
this error. A MemberChange exists only within a sync.
2020-08-31 09:50:57 +02:00
Bruno Windels
164384f312
forgot memberlist member
2020-08-31 08:54:27 +02:00
Bruno Windels
8da00f9a03
add isTrackingMembers flag to know if EncryptionUsers have been written
...
for this room
2020-08-31 08:53:47 +02:00
Bruno Windels
d813e6d932
store encryption event content rather than just flag in room summary
2020-08-31 08:53:10 +02:00
Bruno Windels
693682f360
move e2ee constants to common file
2020-08-28 14:35:47 +02:00
Bruno Windels
e751333bbd
don't assume setting up a session went all the way through when stopping
2020-08-28 13:58:42 +02:00
Bruno Windels
a1ba5d7dba
between syncs, generate more otks if needed, and upload them
2020-08-28 13:58:17 +02:00
Bruno Windels
681dfdf62b
sync otk count to e2ee account
2020-08-28 13:56:44 +02:00
Bruno Windels
d64db185bd
await callback in case we need to read, then write from it
2020-08-28 13:54:42 +02:00
Bruno Windels
3ab5a72221
give e2ee account values a prefix so we can prevent from clearing them
2020-08-28 13:52:27 +02:00
Bruno Windels
d24be7ee55
extract constants out
2020-08-28 13:51:58 +02:00
Bruno Windels
d7d1d8c45a
Merge branch 'master' into bwindels/e2ee
2020-08-28 12:11:33 +02:00
Bruno Windels
6a9cbf7f33
store and sort by m.lowpriority tag
2020-08-27 20:52:51 +02:00
Bruno Windels
4c290f0394
upload identity and one-time keys
2020-08-27 19:13:24 +02:00
Bruno Windels
f98b3dd5fa
create/load olm account before first sync
2020-08-27 19:13:09 +02:00
Bruno Windels
3b24ea34f3
Merge branch 'master' into bwindels/e2ee
2020-08-27 14:40:57 +02:00