Scott Nonnenberg
3beecce94e
fetchConversation: Minimize scans across loaded messages
...
FREEBIE
8 years ago
Scott Nonnenberg
d5d1d58cc2
Exclude Backbone-sourced method from jscs checks
...
FREEBIE
8 years ago
Scott Nonnenberg
3ceb3a049e
Override Message.fetch to ensure that db data overrides local
...
FREEBIE
8 years ago
Scott Nonnenberg
2c81539042
A guard to prevent infinite loops in fetching of conversation
...
FREEBIE
8 years ago
Scott Nonnenberg
30b7bf23db
Recursively fetch messages until we've loaded all unread
...
FREEBIE
8 years ago
lilia
80bfe18f02
Mark groups left on synced "You left the group"
...
When leaving a group on mobile, we sync the group quit message to desktop, but
we weren't marking the conversation left.
// FREEBIE
8 years ago
lilia
8bd7280673
Early read receipts should start expiration timers
...
Check for early read receipts for an incoming messages *after*
processing the expireTimer on that message. Then we can set
expirationStartTime appropriately if an early receipt is found.
Closes #950
// FREEBIE
8 years ago
lilia
aed5735620
Improve keychange notice reliability/perf
...
Bind a single listener to keychange events from the storage interface,
which then looks up relevant conversations and adds notices to them,
with tests.
Previously we would need to instantiate a conversation model in order to
start listening to its key change events. In practice this usually
happens at startup but we shouldn't rely on it, and it incurs higher
overhead since it creates a different listener for each conversation.
// FREEBIE
8 years ago
lilia
787c393e1b
Log key change advisory creation
...
// FREEBIE
8 years ago
lilia
8aa2f771a7
Remove self-listener in conversation model
...
Since there is the only source/listener on this event, it can be called
directly.
// FREEBIE
8 years ago
lilia
510a5cb7fe
Namespace global listeners to Whisper
8 years ago
Sam Vevang
ed4991974b
set up a new view for displaying the network status
...
// FREEBIE
8 years ago
lilia
e4b9c51f88
Rework expiring messages management
...
// FREEBIE
8 years ago
lilia
08e8c00329
Restore setting lastMessage in handleDataMessage
8 years ago
lilia
ace59147ab
Reduce unnecessary updates on conversations at startup
8 years ago
lilia
6509646bdb
Set expireTimer to null to unset
...
// FREEBIE
8 years ago
lilia
54b856139a
Fix fetchExpiring
8 years ago
lilia
e648a4b095
Revert "Remove unregistered group members"
...
This reverts commit a768b94471
.
d2ddfc7
was enough to fix #989 . Removing unregistered members from the
group (as opposed to silently ignorning them) creates greater potential
for getting out of sync with the member lists on other devices.
// FREEBIE
8 years ago
lilia
cd0fe7037b
Add replayable error for signed key failure
...
Disable message sending if signed key updates fail too many times, but
allow the user to retry sending.
// FREEBIE
8 years ago
haffenloher
a768b94471
Remove unregistered group members
...
Locally remove unregistered users from group membership lists.
Fixes #989
Related to Whispersystems/Signal-Android#6175
Closes #1052
// FREEBIE
8 years ago
haffenloher
04f0142b23
Ignore missing members in incoming group updates
...
Previously, updateNumbers would throw an Error, so the whole group
update was discarded.
Signal-Android handles this the same way in
GroupMessageProcessor.handleGroupUpdate().
Closes #1056
8 years ago
Thomas Guillet
400313f749
Prevent expiration timer update on group update
...
It occurs when a message with a different expiration time is received.
The issue report highlights the scenario of a member leaving a group
(group update [quit] sent with expiration time = 0).
Fix https://github.com/WhisperSystems/Signal-Android/issues/5996
Fix https://github.com/WhisperSystems/Signal-iOS/issues/1566
8 years ago
lilia
9ef61d43f4
Update conversation lastMessage from database
...
Don't set lastMessage, let it update itself as needed, such as when
first rendering a conversation list item, and when its messages are
sent, received, or destroyed.
8 years ago
lilia
6253269d19
Tweak key change advisory insertion
...
Let received_at be the current time for keychanges. This avoids them
being inserted in the wrong place in the thread.
Use the newmessage event to trigger frontend listeners to add them to
the conversation view if it is open.
8 years ago
lilia
a623f909f2
Move key change advisory content to the model
...
Return this content from a helper method so it can be used to populate
the last message on conversations.
8 years ago
lilia
d2c1e6df27
Fix wrong variable name
...
Fix potentially setting expiration timeouts more than once.
8 years ago
lilia
d7f241ddee
Use correct type on timer updates
8 years ago
lilia
05ed7c3822
Merge timer update functions
8 years ago
lilia
0854b19371
Revert "Don't load group contacts unnecessarily"
...
This reverts commit 6699571910
.
Not quite ready for primetime.
9 years ago
lilia
6699571910
Don't load group contacts unnecessarily
...
There are some cases when we want to initialize a group object without
loading its contacts, such as while processing delivery receipts. We
really only need to load the contacts for a group/convo when we are
rendering it, so let the front end handle those cases (which most of
them do already).
9 years ago
lilia
03c5d12edd
Fix necrobumping convos on key change
...
When inserting key change advisories, use the current conversation
timestamp to avoid pushing lots of old groups to the top of the
conversation list.
9 years ago
lilia
f8a3ae158c
Remove log message
9 years ago
lilia
d3a2f5c838
Ignore expireTimer on session reset messages
9 years ago
lilia
4ee2652367
Fix wrong contact in some timer updates
...
Mistakenly showed 'You' for timer updates inferred from incoming
messages.
9 years ago
lilia
7fe708d195
Insert keychange advisories
...
On click, these open a verification panel for the relevant contact,
within this conversation.
// FREEBIE
9 years ago
lilia
009098f8dd
Insert inferred timer updates before the corresponding message
9 years ago
lilia
a12569e356
Fix destination on synced timer updates
9 years ago
lilia
56aee5e8ef
Update conversation snippets automatically
...
Fixes stale snippets after the message has expired
9 years ago
lilia
8d16bfb65e
Populate conversation snippet for timer updates
9 years ago
lilia
e488c19889
Do not trigger notifications for timer updates
9 years ago
lilia
7a26cf79ee
Insert timer update messages when inferring timer changes
9 years ago
lilia
ad2174e279
Sync expirationStartTimestamp on outgoing messages
...
Linked devices need to know when to start the clock.
9 years ago
lilia
6074a29046
Send timer update messages when changing the timer
9 years ago
lilia
824b7417e9
Apply expireTimer to outgoing messages
9 years ago
lilia
2b2c6ab040
Frontend for timer updates and timer indicator
9 years ago
lilia
4cd2c03687
Add clock svg style
9 years ago
lilia
7331d967d2
Add support for expiration timer updates messages
9 years ago
lilia
5f92ccd524
Render animated hourglass when messages are expiring
9 years ago
lilia
1383dc141f
Ensure that expired messages are removed from the frontend
9 years ago
lilia
02ea4f2475
Use read receipt envelope to infer startExpirationTime
...
Avoids display of phantom messages that are only received and marked
read locally long after they have expired on another linked device.
9 years ago