Scott Nonnenberg
1cf9289b1a
Add items to conversation history when user verifies/unverifies
...
FREEBIE
8 years ago
Scott Nonnenberg
a827334c3e
Allow re-send of messages in msg detail view on OutgoingKeyError
...
We also show more errors than we used to in the MessageDetail screen
to help make it clear what is happening, and why the user would need to
re-send.
FREEBIE
8 years ago
Scott Nonnenberg
ee0b0f5ffb
Remove all concept of 'key conflict' from the app
8 years ago
Scott Nonnenberg
785b117b86
Mark older messages as read when we get out-of-order read receipt
...
FREEBIE
8 years ago
Scott Nonnenberg
fb7e7cf34c
TimerView: don't continue to update after expiration
...
FREEBIE
8 years ago
lilia
3dbb21c53c
Fix being re-added to a group you previously left
...
Negate the flag marking the group as left. Fixes #1207 .
// FREEBIE
8 years ago
Scott Nonnenberg
10c2874d19
Fix race condition: Pull from database after add to conversation
...
Also add some console logs to help us determine whether this ever
happens to people in the wild.
FREEBIE
8 years ago
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
510a5cb7fe
Namespace global listeners to Whisper
8 years ago
lilia
e4b9c51f88
Rework expiring messages management
...
// FREEBIE
8 years ago
lilia
08e8c00329
Restore setting lastMessage in handleDataMessage
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
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
05ed7c3822
Merge timer update functions
8 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
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
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
lilia
96fd017890
Support for incoming expiring messages
...
When initialized, or when expiration-related attributes change, expiring
messages will set timers to self-destruct. On self-destruct they trigger
'expired' events so that frontend listeners can clean up any collections
and views referencing them.
At startup, load all messages pending expiration so they can start their
timers even if they haven't been loaded in the frontend yet.
Todo: Remove expired conversation snippets from the left pane.
9 years ago
lilia
e07616e2ef
Only create notifications for unread messages
...
In some cases, we have already received a read receipt for an incoming
message by the time we go to create a notification about it. In this
case, we should skip the notification.
// FREEBIE
9 years ago
2-4601
b9ecdbf402
i18n 'Error handling incoming message'
...
// FREEBIE
9 years ago
2-4601
60fe1e2cea
i18n 'Received message with unknown identity key'
...
// FREEBIE
9 years ago
2-4601
52992a8f12
i18n 'Secure session ended'
...
// FREEBIE
9 years ago
lilia
dd7d72a77d
i18n 'Media message'
...
Fixes #736
// FREEBIE
9 years ago
lilia
172d843368
Always update lastMessage on incoming messages
...
Fixes #742
// FREEBIE
9 years ago
lilia
0cd7f84a05
Refactor read state tracking
...
Adds support for handling early arriving read receipts.
// FREEBIE
9 years ago