Richard van der Hoff
02be0f659a
Support for cancelling pending events
...
Implement client.cancelPendingEvent which will cancel queued or not_sent events
2016-03-17 22:15:46 +00:00
Richard van der Hoff
55d8f56f98
update docs
2016-03-17 17:53:20 +00:00
Richard van der Hoff
ab35fff9e8
Implement 'pendingEventList'
...
The existing 'pendingEventOrdering'=='end' semantics had been substantially
broken by the introduction of timelines and gappy syncs: after a gappy
sync, pending events would get stuck in the old timeline section. (Part of
https://github.com/vector-im/vector-web/issues/1120 ).
2016-03-17 17:05:23 +00:00
Richard van der Hoff
3c6bd4774d
Refactor transmitted-messages code
...
This is some preparatory work for fixing up the problems with te timeline
ordering of unsent messages
(https://github.com/vector-im/vector-web/issues/1120 ). The functional changes
here should be minimal (bar an extra `Room.localEchoUpdated` when the local
echo is first added to the timeline).
Give `MatrixClient.sendEvent` its own entry point `Room.addPendingMessage`
instead of pushing it through `addEventsToTimeline`; this considerably
simplifies the implementation of the latter and also means that we can contain
the `_txnId` ming to MatrixClient.
Move the code which deals with a successful `/send` response from
`MatrixClient` into `Room.updatePendingEvent`, since it involves fiddling with
the innards of the Room.
Also adds a new EventStatus 'SENT' for events which have been successfully sent
but whose remote echo we still haven't received.
2016-03-17 14:26:36 +00:00
Richard van der Hoff
eaf3fe16eb
sync error: Don't log the exception twice
...
If we have e.stack, then it will include the description of the exception.
2016-03-17 12:05:01 +00:00
Richard van der Hoff
963eaf7ec7
Log the stack when we get a sync error
...
If we have the stack for an exception in the /sync loop, we should log it.
2016-03-17 11:54:43 +00:00
Matthew Hodgson
ebc95667b8
workaround for unicode regexp matches - https://github.com/vector-im/vector-web/issues/568
2016-03-17 01:02:50 +00:00
Matthew Hodgson
f7bc11361c
trivially add content.currently_active in m.presence events.
2016-03-16 22:35:55 +00:00
Matthew Hodgson
a68b61dafe
oops, revert accidental merge
2016-03-16 17:33:30 +00:00
Matthew Hodgson
84c9876b3a
if synapse handed us profile data in the leave event, then use it. unbreaks overzealous tests
2016-03-16 17:32:47 +00:00
Matthew Hodgson
de864c489a
make sure we show display names & avatars on parts, and use the right type of content for displaynames for member events in general. fixes https://github.com/vector-im/vector-web/issues/1140 and https://github.com/vector-im/vector-web/issues/873 and a bunch more
2016-03-16 17:32:47 +00:00
Matthew Hodgson
2c277f7d96
Merge pull request #108 from matrix-org/matthew/fix-displaynames
...
Matthew/fix displaynames
2016-03-16 17:31:41 +00:00
Kegan Dougal
d0560f594d
Set the right .sender value for m.room.member events
2016-03-16 17:18:33 +00:00
Matthew Hodgson
3d316959f9
Revert this as it just doesn't work - our events are always m.room.members at this point
2016-03-16 16:44:22 +00:00
Matthew Hodgson
f35409700a
Revert "make sure we show display names & avatars on parts, and use the right…"
2016-03-16 14:49:29 +00:00
Matthew Hodgson
b009739b9e
Merge pull request #106 from matrix-org/matthew/fix-displaynames
...
make sure we show display names & avatars on parts, and use the right…
2016-03-16 14:39:59 +00:00
Matthew Hodgson
3db4d9488b
oops, normal events should use the chronologically earlier content, but membership changes should use the current content.
2016-03-16 14:31:03 +00:00
Matthew Hodgson
6b0fa84697
if synapse handed us profile data in the leave event, then use it. unbreaks overzealous tests
2016-03-16 14:14:14 +00:00
Matthew Hodgson
98b0cf2560
make sure we show display names & avatars on parts, and use the right type of content for displaynames for member events in general. fixes https://github.com/vector-im/vector-web/issues/1140 and https://github.com/vector-im/vector-web/issues/873 and a bunch more
2016-03-16 13:51:55 +00:00
Matthew Hodgson
372759b6e4
fix lint
2016-03-16 13:43:38 +00:00
Matthew Hodgson
ec29b4ffeb
Add RoomState.mayClientSendStateEvent()
2016-03-16 13:08:36 +00:00
Matthew Hodgson
95494933fd
Merge pull request #103 from matrix-org/matthew/peek-presence
...
make presence work when peeking.
2016-03-16 11:55:25 +00:00
Matthew Hodgson
6fff29c07b
oops, that map should be a forEach
2016-03-16 11:54:56 +00:00
David Baker
6f7ed93b87
Merge pull request #100 from matrix-org/dbkr/session_logged_out
...
Add Session.logged_out event
2016-03-16 10:44:01 +00:00
David Baker
8e903c0531
Merge pull request #94 from matrix-org/dbkr/may_send_state_event
...
Add maySendStateEvent method, ported from react-sdk (but fixed).
2016-03-16 10:39:55 +00:00
David Baker
b90984a7f6
Use member.powerLevel instead of duplicating the user power level calculation.
2016-03-16 10:38:16 +00:00
David Baker
57006b7366
Check member hasn't left the room
2016-03-16 10:35:29 +00:00
Matthew Hodgson
db9ba52873
make presence work when peeking. fixes https://github.com/vector-im/vector-web/issues/780
2016-03-15 21:50:18 +00:00
David Baker
0f38764709
No point throwing the exception if we return the original promise
2016-03-15 16:17:41 +00:00
Richard van der Hoff
07bbe358ea
Clean up a codepath that was only used for crypto messages
...
Transmission of encrypted messages was happening somewhat differently to
normal messages. In particular, we weren't copying the 'unsigned' field when we
got the remote-echo, which meant the 'sync' code didn't correctly match up the
echo with the original.
The separate codepath was becoming a thorn in my side, so fix things up to
bring it back in line.
2016-03-15 15:07:26 +00:00
David Baker
9f91995f4e
Fix tests by returning the original promise to avoid the extra trip around the event loop.
2016-03-15 14:15:15 +00:00
David Baker
85f2754300
Make the client object be an event emitter rather than a matrixclient to avoid us being tempted to gut wrench stuff directly into the Matrix Client.
2016-03-15 11:05:05 +00:00
David Baker
5833654aa6
Add Session.logged_out event that fires whenever the current session is no longer valid and the user needs to log in again. Also null check _syncApi before trying to stop it.
2016-03-15 10:45:08 +00:00
David Baker
d13fbd0e3e
fix lint
2016-03-14 17:13:01 +00:00
David Baker
5e18c84e53
Add a delay before we start polling the connectivity check endpoint to avoid tightlooping if the conn check succeeds but /sync etc fails.
2016-03-14 16:50:00 +00:00
Richard van der Hoff
c3ea913ae8
Try again if a pagination request gives us no new messages
...
This is basically a workaround for https://matrix.org/jira/browse/SYN-645 : if
we knew about all of the events already, we want to try again.
Fixes the second half of https://github.com/vector-im/vector-web/issues/1014
2016-03-14 14:47:29 +00:00
Richard van der Hoff
4ae353d3d3
Raise localEchoUpdated events in more places
...
We need to know about more transitions for local-echo status changes, so raise
localEchoUpdated events for each transition.
Fixes an issue where we weren't turning failed transmissions red, because the
timeline wasn't being updated.
2016-03-10 12:07:27 +00:00
Richard van der Hoff
b4b8b4bfb8
Merge pull request #95 from matrix-org/rav/raise_event_on_remote_echo
...
Emit an event when a local-echo is turned into a proper event
2016-03-08 16:40:03 +00:00
Richard van der Hoff
234c227fd5
Work around confused timelines causing pagination loops
...
Look out for us getting stuck in a loop of using the same pagination token,
and use something else next time.
Hopefully this will fix https://github.com/vector-im/vector-web/issues/1089 .
2016-03-08 15:38:00 +00:00
Richard van der Hoff
78eded3bbd
Emit an event when a local-echo is turned into a proper event
...
We need to trigger an update of the timeline when this happens, so raise an
event for it.
2016-03-08 15:00:19 +00:00
David Baker
9328a12ccb
Add maySendStateEvent method, ported from react-sdk (but fixed). Plus tests.
2016-03-03 17:44:27 +00:00
Richard van der Hoff
0034bdf4ad
Set the back-pagination token before raising Room.timelineReset
...
This fixes another race condition on gappy syncs, wherein we weren't
back-paginating back from the start of the gappy sync.
2016-03-01 13:35:22 +00:00
Mark Haines
bb4766c8c6
Merge pull request #90 from matrix-org/markjh/change_push_actions
...
Add setPushRuleActions method for setting the actions for push notifi…
2016-03-01 10:10:38 +00:00
Richard van der Hoff
e287e7591b
Merge pull request #91 from matrix-org/rav/fix_stuck_pagination_after_join
...
Don't reset the timeline when we join a room after peeking
2016-03-01 09:10:21 +00:00
David Baker
48f7aca121
Merge pull request #89 from matrix-org/dbkr/invite_name_from_member_event
...
Use our inviter's member event to get their display name if it exists.
2016-02-29 18:05:27 +00:00
Richard van der Hoff
a14f9e6d1c
Don't reset the timeline when we join a room after peeking
...
If we've already got all the events in a limited sync, there is no need to reset
the timeline.
2016-02-29 17:25:20 +00:00
David Baker
76f1d24c7b
Make room name generation slightly more sane and add unit tests fir invite naming.
2016-02-29 13:51:55 +00:00
Mark Haines
066dd77aba
Add setPushRuleActions method for setting the actions for push notification rules
2016-02-26 16:47:22 +00:00
David Baker
45a3bf63b2
Use our inviter's member event to get their display name if it exists.
2016-02-26 14:11:10 +00:00
Richard van der Hoff
75f2efffac
Merge pull request #88 from matrix-org/rav/optimise_timeline_load
...
TimelineWindow.load: make the livetimeline case quicker
2016-02-26 13:27:40 +00:00