Commit Graph

97 Commits (405e67c758cf0e0f04b9e7a1c528f96ea4a56d10)

Author SHA1 Message Date
lilia 405e67c758 Merge inbox and panel controllers
These collections should always be operating with the same model
instances, so let the inbox reset it self from the same in-memory
cache of conversation models used by the conversation windows.
10 years ago
lilia b83ce7a015 Delay conversation creation til post-decrypt 10 years ago
lilia 08878b3dc8 Update inbox after sending a message
Also change the event name to reflect how its being used, and stop
passing the message object around since it is not being used.

// FREEBIE
10 years ago
lilia e9d7864f75 Set conversation type when creating from sync message
When a conversation is created as the result of a sync message, and it
is not a group, we need to set its type to private.

// FREEBIE
10 years ago
lilia 1b83932a29 Update open conversations on sync messages 10 years ago
lilia 1ed0ef5bc3 Process group updates before sync delivery receipts
Because we need to know the group members to find early-arrival
receipts.
10 years ago
lilia 654373d743 Fix null conversationId on group sync messages 10 years ago
lilia 65a6068003 Fix for out-of-order message/receipt arrival
In a multi device world, it's possible to receive a receipt for a sync
message before the sync message actually arrives. In this case we need
to keep the receipt around and the process it when the message shows up.
10 years ago
lilia c4fa2cb935 Fix sync message timestamps 10 years ago
lilia 20ebc3f890 Move identity key storage functions to axolotl store 10 years ago
lilia 71715c95bc Async remove identity 10 years ago
lilia 90c742d57c More error logging 10 years ago
lilia c51773ab0e More helpful error logging 10 years ago
lilia a2d88b4fad Don't trigger notifications for sync messages 10 years ago
lilia ce36c36bd0 Include outgoing control messages in message history
So you know it worked.
10 years ago
lilia f067bb9954 Remove dead code 10 years ago
lilia fdb0935d6a Fix resolveConflicts for groups 10 years ago
lilia a7079206f4 Nicer looking end-session and group control messages 10 years ago
lilia 9474b16eba In rare cases, a group has no members 10 years ago
lilia 06f4d4456d Fix empty notification on key conflicts 10 years ago
lilia 718f1a5e3d Improve notification contents
Include sensible descriptions of non-content messages. For group
messages, display the sender's name and avatar rather than the group's.
10 years ago
lilia 11b822eaf3 Allow unknown groups
Save groups even if we've never heard of them. Previously
we would fail to save due to a missing 'type' attribute.
10 years ago
lilia 9930937707 Move handlePushMessageContent to message model
And retool message handling flow to helps us avoid instantiating
duplicate message and conversation models.
10 years ago
lilia 897d391817 Improve identity key conflict ux
Clicking on a key conflict message opens the message detail view,
which displays the contact(s) in this conversation. If the message
contains a key conflict with any of these contacts, a button is
displayed which attempts to resolve that conflict and any other
conflicts in the conversation that are related to that contact.
10 years ago
lilia 857eee5003 Divorce identity wipe from tryAgain functions
We'd like to live in a world where we can retry all the pending
conflicts in a conversation as a batch, which means we don't want to
wipe the identity key before processing each message. Thus, remove that
step from these handlers and encapsulate in a method on the conversation
model.
10 years ago
lilia c642854ddf Extract app-level logic from libtextsecure
Ensure that both tryAgain functions return promises, allowing the
application to take appropriate action in the result of success or
failure. This lets us remove all dependency from libtextsecure on
app-level constructs like message objects/ids and the `extenion.trigger`
function.

Corresponding frontend changes to follow in another commit.
10 years ago
lilia cecb438a52 Simplify avatar rendering 10 years ago
lilia fa3699cdd3 Trigger desktop notifications
Notifications show the conversation name, avatar, and new message text.
Clicking the notification opens the conversation.
10 years ago
lilia 04796e56d1 Fix tests 10 years ago
lilia 8e54aa1401 Plumb contact avatars into conversations 10 years ago
lilia 019a9d1fbc Unread counts
Update unreadCounts per-conversation on incoming messages. Render unread
conversations with font-weigh: bold in the inbox view.

To ensure that the inbox and conversation views remain in sync, the
background page now ensures that the same models objects are used for
both views.
10 years ago
lilia 2ee34343a8 Use consistent boiler plate throughout js files 10 years ago
lilia c08c29bd4a Render group members in the message detail view
This requires that we fetch contact info when opening a conversation
so that's available for rendering contact names and avatars.
10 years ago
lilia ec43a0b633 jshint all the things
Small style fixes here and there. Removed one unused file.
10 years ago
lilia 1bdb42b67e Fix bug loading conversation upsidedown
Sometimes a conversation's messages would be reverse-ordered on first
load, correcting themselves after a refresh. This is an artifact of the
order we load messages from the database. To fix, load them in the
opposite order.

The alternative solution would be to reset the collection every time we
fetch new messages, but this would create an entirely new set of model
objects each time, which seems unnecessary.
10 years ago
lilia 94c94eb7c9 Refactor message view
The message view has three flavors so far, a normal text+attachments
message, a group update, and an end session message. This changeset
extracts the normal message rendering into its own subview, and adds
some convenience functions to the message model in order to simplify
some of that flavoring logic.
10 years ago
lilia 488f25635d Wire up end session and leave group
Closes #136
Closes #137
10 years ago
lilia 44b1e5c88e Move inbox collection to the background page
No more waiting, no more messy fetch logic. Background page
bootstraps the inbox and keeps it up to date.
10 years ago
lilia b27826cba5 Conversations must have an id before saving 10 years ago
lilia c84ccfc735 Wrap model phonenumber validation in try/catch 10 years ago
lilia eae072e72d Remove unneeded var, add todo 10 years ago
lilia fc3a600e72 Validate conversation type 10 years ago
lilia 5e3ed1658b Show phone numbers in contact selector 10 years ago
lilia d435ff003b Improve typeahead contact selector experience
Store and match on various phone number formats. Still not perfect, as
occasionally all the models are returned for a non-matching query.
10 years ago
lilia e05405e832 Format phone numbers before saving conversations
Saving the national and internation versions of the number lets us use
those attributes in a typeahead collection.
10 years ago
lilia bd86546cea Make chat window titles match contact list 10 years ago
lilia d119bdff01 restore default avatars 10 years ago
lilia 3d6c251fd1 Group avatars 10 years ago
lilia 0ea176dfa0 Don't require a conversation name
Just display a sensible default in the frontend if it's unset.
For private conversations this should be the phone number, for
groups, the list of numbers.
10 years ago
Dave Sescleifer 2462aba24b Fixed timestamps and added last message to the gutter 11 years ago