Commit graph

262 commits

Author SHA1 Message Date
lilia
0854b19371 Revert "Don't load group contacts unnecessarily"
This reverts commit 6699571910.

Not quite ready for primetime.
2016-11-16 22:25:36 +01:00
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).
2016-11-16 13:33:04 +01:00
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.
2016-10-12 11:34:49 +09:00
lilia
f8a3ae158c Remove log message 2016-10-06 18:18:54 +09: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
a12569e356 Fix destination on synced timer updates 2016-10-05 19:09:20 +09:00
lilia
56aee5e8ef Update conversation snippets automatically
Fixes stale snippets after the message has expired
2016-10-05 19:09:20 +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
6074a29046 Send timer update messages when changing the timer 2016-09-29 16:17:01 -07:00
lilia
824b7417e9 Apply expireTimer to outgoing messages 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
edd6f58539 Update display when contact colors change
// FREEBIE
2016-09-12 11:44:52 -07:00
lilia
f610233ef6 Add support for syncing blocked numbers
// FREEBIE
2016-09-07 13:04:45 -07:00
lilia
53f20640af Add support for syncing colors
// FREEBIE
2016-09-07 13:04:45 -07:00
lilia
7b9894d688 Refactor css to support theming
Move away from inline style attributes for setting contact colors.
Apply colors by name via css classes instead. Also lays groundwork
for syncing contact colors.

// FREEBIE
2016-08-30 18:31: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
lilia
8939c61c7c Log on notification removal
// FREEBIE
2016-08-01 20:19:16 -07:00
lilia
7caecc564d Process all incoming conflicts before outgoing ones
Fixes a session management problem where, after resolving a conflict
with some contact, that contact would get bad mac as a result of us
sending them a new prekey message before processing a pending conflicted
prekey message received from them earlier.

Fixes #806

// FREEBIE
2016-05-26 18:11:17 -07:00
lilia
148bd32671 Update libsignal-protocol v0.10.0
* Changes policy for old session deletion
* Renames putIdentityKey to saveIdentity
* Remove device messages

// FREEBIE
2016-05-18 11:11:11 -07:00
2-4601
b9ecdbf402 i18n 'Error handling incoming message'
// FREEBIE
2016-05-05 12:54:15 -07:00
2-4601
60fe1e2cea i18n 'Received message with unknown identity key'
// FREEBIE
2016-05-05 12:54:14 -07:00
2-4601
52992a8f12 i18n 'Secure session ended'
// FREEBIE
2016-05-05 12:54:14 -07:00
lilia
1d60dc38fb Rename axolotl storage
// FREEBIE
2016-04-22 13:43:30 -07:00
lilia
dd7d72a77d i18n 'Media message'
Fixes #736

// FREEBIE
2016-04-18 19:15:36 -07:00
lilia
172d843368 Always update lastMessage on incoming messages
Fixes #742

// FREEBIE
2016-04-18 19:15:35 -07:00
lilia
0cd7f84a05 Refactor read state tracking
Adds support for handling early arriving read receipts.

// FREEBIE
2016-04-14 11:57:52 -07:00
lilia
d1e9534542 Refactor delivery receipt tracking
Move code for matching receipts to messages (and vice versa) to its own
file.

// FREEBIE
2016-04-13 13:57:56 -07:00
lilia
18012688ea Log unread message timestamps
// FREEBIE
2016-04-13 13:57:55 -07:00
lilia
0f4f00ff4e Fix read sync on duplicate messages
In the case of a double send (same message encrypted and sent twice due
to key conflict bug), we would mark the first instance read twice rather
than marking both instances read. Fix by searching for matching messages
that have not yet been marked read.

// FREEBIE
2016-04-04 16:14:15 -07:00
lilia
07a0463b65 Fix conversation list self-resorting
When deleting all messages in a conversation, the entry in the left pane
should be inserted into the alphabetical portion of the list. To keep it
in this collection, do not nullify active_at.

To ensure the list view is keeping itself correctly sorted, make sure
that resorting behavior is triggered any time a relevant attribute is
changed.

This fixes deleted conversations jumping to the top of the list, and
conversation order scrambling when getting a group or contact sync
message from our master device.

Fixes #734

// FREEBIE
2016-03-25 14:32:57 -07:00
lilia
3901bcb8df Style resend button as an inline link
For messages that failed to send due to network errors, this change
allows retrying them directly from the main conversation view rather
than only from the message detail view.

// FREEBIE
2016-03-22 15:38:22 -07:00
lilia
234f937bc7 Conversation subscreens share a header
// FREEBIE
2016-03-21 15:37:53 -07:00
lilia
c8aa2246dc Let groups have blue headers
// FREEBIE
2016-03-21 13:02:34 -07:00
lilia
18a5ce8e54 Restyle conversation panel
// FREEBIE
2016-03-18 13:09:45 -07:00
lilia
8b3596b956 Delete last timestamp on a convo when deleting messages
// FREEBIE
2016-03-18 11:21:11 -07:00
lilia
6f3f33657a Don't mark read on sync messages
There's no longer a need for this since we have read-state syncing.

// FREEBIE
2016-03-18 11:20:52 -07:00
lilia
762cb68721 Serialize sending and adding messages to a convo
Previously, if a message was sent in between the receive time of an
incoming message and the time it is actually added to the conversation's
message collection (which only occurs later after several async
callbacks), the incoming message would be inserted not-at-the-end of the
collection since it is ordered by receive time. This tricked the front
end into assuming the message was an older message instead of a new one.

Fixes #490

// FREEBIE
2016-03-17 15:41:01 -07:00
lilia
f9a3c7817e DRY up early receipt processing
// FREEBIE
2016-03-17 15:39:28 -07:00