lilia
aa83bc1dab
Ensure all sessions are archived on profile fetch
...
If the key has changed, saveIdentity will archive sibling sessions, but not the
session for the device it was called on. Therefore we have to archive that one
by hand.
Also switch from saving the identity of an OutgoingIdentityKeyError to just
triggering a profile fetch, mostly for consistency, simplicity, and DRYness.
// FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
e2ee63efaa
m.get('sender') -> m.isIncoming(), filter in getLoadedUnreadCount
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
78094102bd
Message.send: Add promise to array for consistency
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
4ee4ad80c3
Message.send - check for missing identityKey, also add logging
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
5e62d0cfd8
Update identity key after a send error tells us it has changed
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
1cf9289b1a
Add items to conversation history when user verifies/unverifies
...
FREEBIE
2017-08-04 12:03:25 -07:00
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
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
ee0b0f5ffb
Remove all concept of 'key conflict' from the app
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
785b117b86
Mark older messages as read when we get out-of-order read receipt
...
FREEBIE
2017-06-07 15:46:21 -07:00
Scott Nonnenberg
fb7e7cf34c
TimerView: don't continue to update after expiration
...
FREEBIE
2017-06-06 15:33:55 -07:00
lilia
3dbb21c53c
Fix being re-added to a group you previously left
...
Negate the flag marking the group as left. Fixes #1207 .
// FREEBIE
2017-05-30 10:51:07 -07:00
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
2017-05-26 16:02:14 -07:00
Scott Nonnenberg
3beecce94e
fetchConversation: Minimize scans across loaded messages
...
FREEBIE
2017-05-25 16:30:30 -07:00
Scott Nonnenberg
d5d1d58cc2
Exclude Backbone-sourced method from jscs checks
...
FREEBIE
2017-05-25 16:30:30 -07:00
Scott Nonnenberg
3ceb3a049e
Override Message.fetch to ensure that db data overrides local
...
FREEBIE
2017-05-25 16:30:30 -07:00
Scott Nonnenberg
2c81539042
A guard to prevent infinite loops in fetching of conversation
...
FREEBIE
2017-05-25 16:30:30 -07:00
Scott Nonnenberg
30b7bf23db
Recursively fetch messages until we've loaded all unread
...
FREEBIE
2017-05-23 11:08:23 -07:00
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
2017-05-16 15:23:29 -07:00
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
2017-05-11 13:47:58 -07:00
lilia
510a5cb7fe
Namespace global listeners to Whisper
2017-04-12 20:43:16 -07:00
lilia
e4b9c51f88
Rework expiring messages management
...
// FREEBIE
2017-02-22 16:18:01 -08:00
lilia
08e8c00329
Restore setting lastMessage in handleDataMessage
2017-02-22 16:15:27 -08:00
lilia
6509646bdb
Set expireTimer to null to unset
...
// FREEBIE
2017-02-22 01:17:20 -08:00
lilia
54b856139a
Fix fetchExpiring
2017-02-17 12:10:20 -08:00
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
2017-02-16 18:06:20 -08:00
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
2017-02-16 18:06:19 -08:00
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
2017-02-08 17:13:36 -08:00
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
2017-02-08 16:46:09 -08:00
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
2017-01-25 20:40:25 -08:00
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.
2017-01-25 20:40:25 -08:00
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.
2017-01-25 20:40:25 -08:00
lilia
d2c1e6df27
Fix wrong variable name
...
Fix potentially setting expiration timeouts more than once.
2017-01-25 20:40:24 -08:00
lilia
05ed7c3822
Merge timer update functions
2017-01-25 20:40:24 -08:00
lilia
d3a2f5c838
Ignore expireTimer on session reset messages
2016-10-05 22:32:40 +09:00
lilia
4ee2652367
Fix wrong contact in some timer updates
...
Mistakenly showed 'You' for timer updates inferred from incoming
messages.
2016-10-05 22:31:30 +09:00
lilia
7fe708d195
Insert keychange advisories
...
On click, these open a verification panel for the relevant contact,
within this conversation.
// FREEBIE
2016-10-05 19:11:39 +09:00
lilia
009098f8dd
Insert inferred timer updates before the corresponding message
2016-10-05 19:09:21 +09:00
lilia
8d16bfb65e
Populate conversation snippet for timer updates
2016-09-29 16:17:01 -07:00
lilia
e488c19889
Do not trigger notifications for timer updates
2016-09-29 16:17:01 -07:00
lilia
7a26cf79ee
Insert timer update messages when inferring timer changes
2016-09-29 16:17:01 -07:00
lilia
ad2174e279
Sync expirationStartTimestamp on outgoing messages
...
Linked devices need to know when to start the clock.
2016-09-29 16:17:01 -07:00
lilia
2b2c6ab040
Frontend for timer updates and timer indicator
2016-09-29 16:17:01 -07:00
lilia
4cd2c03687
Add clock svg style
2016-09-28 17:20:03 -07:00
lilia
7331d967d2
Add support for expiration timer updates messages
2016-09-28 17:20:03 -07:00
lilia
5f92ccd524
Render animated hourglass when messages are expiring
2016-09-28 17:20:02 -07:00
lilia
1383dc141f
Ensure that expired messages are removed from the frontend
2016-09-28 17:20:02 -07:00
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.
2016-09-28 17:20:02 -07:00
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.
2016-09-28 17:20:02 -07:00
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
2016-08-04 15:34:27 -07:00
2-4601
b9ecdbf402
i18n 'Error handling incoming message'
...
// FREEBIE
2016-05-05 12:54:15 -07:00