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
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.
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
260f50c104
Add id attr to key change advisory elements
...
The id attribute is needed to ensure that message elements are inserted
in the correct place in the DOM
2017-01-25 20:40:25 -08:00
lilia
5be5f985fc
Lint
2017-01-25 20:40:25 -08:00
lilia
41216f1378
Add timestamps to attachment filenames
2017-01-25 20:40:24 -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
d7f241ddee
Use correct type on timer updates
2017-01-25 20:40:24 -08:00
lilia
05ed7c3822
Merge timer update functions
2017-01-25 20:40:24 -08:00
lilia
f2bdafc7e9
Validate/reformat phone numbers in contact syncs
...
Turns out there's no garauntee that Android will send us contact info
with phone numbers in e164 format. When that happens, we fail to update
the correct contact. Fix by performing validation on the incoming number
before attempting to merge changes to the name, avatar, or color.
Fixes #903
2017-01-25 20:40:24 -08:00
Ikarulus
53cd3af78b
Added a dark theme
...
I added a dark theme in order to solve #328 .
This may fix #328 at least partially.
2016-12-02 00:41:42 +01:00
lilia
a8468dae28
Reduce load from delivery receipt processing
...
Add a special type of collection just for retrieving group ids, which
doesn't incur the overhead of initializing a conversation model along
with all its group members.
2016-11-17 20:13:34 +01:00
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
65072d8e03
Update libphonenumber
2016-10-30 19:49:14 +09:00
lilia
35270dbbb4
Use timeout-based animation for hourglasses
...
CSS animations are convenient but costly if you have hundreds of them.
Fixes #945
2016-10-30 16:53:17 +09:00
Benedikt Constantin Radtke
520be3d5db
Fixed bubble timestamp update timer breakdown
...
TimestampView's getRelativeTimeSpanString called moment() twice while
calculating the timeout. If there was a minute/hour/day wrap between
these 2 calls, the calculated delay was 0 and thus no timer was
scheduled, since if (this.delay) evaluated to false.
Fixes : #857 , #460
// FREEBIE
2016-10-28 14:26:51 +09:00
Benedikt Constantin Radtke
add159dde9
Localized the message detail view's timestamps
...
Momentjs will now format the timestamps depending on the locale.
Fixes : #954
// FREEBIE
2016-10-27 00:49:04 +02:00
lilia
e86142d07c
Hide verification QR code
...
The scannable fingerprint format has changed, leaving our qr codes out
of date and thus unscannable.
2016-10-22 02:24:54 +09: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
b5f5c4604c
Fix missing hourglass on some expiring messages
...
Resolves a race condition between marking messages read and
loading/rendering those messages in the frontend.
Fixes #942
2016-10-12 10:37:10 +09:00
lilia
657fa2725f
Adjust hourglass vertical alignment
2016-10-11 22:52:40 +09:00
lilia
15a9423a17
Change Identity to Safety Numbers in conversation menu
...
Fixes #935
2016-10-08 11:06:20 +09:00
2-4601
669338c717
i18n 'Theme'
...
// FREEBIE
2016-10-07 19:27:05 +09:00
paolo.ingls@gmail.com
d4f7b9984b
Fixed bug920
...
//FREEBIE
2016-10-07 19:23:45 +09:00
lilia
51e902c26f
Remove dead code
2016-10-07 11:02:26 +09:00
lilia
674eeb8313
Remove refs to appWindow
...
We only need the regular window, not the AppWindow interface, which is
specific to chrome apps.
2016-10-07 11:02:26 +09:00
lilia
9da4cdefd7
Style fix
2016-10-07 11:02:26 +09:00
Paolo Inglese
7cd45714a5
Font size should be adjustable
...
//FREEBIE
2016-10-07 11:02:26 +09:00
lilia
fcffcd35af
DRY
2016-10-07 09:29:53 +09:00
2-4601
81e1b84129
Fix 2nd person conjugation in exp. timer messages
...
// FREEBIE
2016-10-07 09:25:19 +09:00
lilia
f8a3ae158c
Remove log message
2016-10-06 18:18:54 +09:00
lilia
34888160bb
Fix re-appearing disappearing message ui
...
Fix a bug where entering the message detail view and then going back
would cause the timer menu to appear.
2016-10-06 02:56:33 +09:00
lilia
94c1ac6f09
Fix message insertion for the first element inserted
2016-10-05 22:43:31 +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
73e69fe5eb
Update libsignal-protocol 1.1.7
2016-10-05 22:01:52 +09:00
lilia
7c81e4ed2e
Delete extra space
2016-10-05 21:15:58 +09:00
lilia
790407d42e
Add qr codes
2016-10-05 19:11:39 +09:00
lilia
f05d693994
Switch from fingerprints to safety numbers
2016-10-05 19:11:39 +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
1f0a93bf70
Ensure new installs default to non-blocking
...
// FREEBIE
2016-10-05 19:10:20 +09:00
lilia
1fe90ecdcb
Add frontend for safety numbers approval setting
...
Adds the checkbox under settings.
// FREEBIE
2016-10-05 19:10:20 +09:00
lilia
aa42139477
Implement non blocking option
...
// FREEBIE
2016-10-05 19:10:20 +09:00
lilia
ce315f3f8e
Add Events to SignalProtocolStore
...
Allows triggering and listening for events.
// FREEBIE
2016-10-05 19:10:20 +09:00
lilia
5899654ea5
Remove log message
2016-10-05 19:09:21 +09:00
lilia
de744a6c55
Fix messages being inserted in the wrong place
...
Usually new elements are inserted in a predictable order relative to the
sort order of the models/collection, but it's not garaunteed. This fixes
up message element insertion to handle the general case where elements
can be added in any order and must be displayed in correct order as
determined by the collection's sort function. In the worst case, we'll
have to iterate over the entire list of elements to find the right spot,
but in practice most of the time we can short circuit based on the index
of the model or by looking for the predecessor or successor of the
element in question.
2016-10-05 19:09:21 +09:00
lilia
009098f8dd
Insert inferred timer updates before the corresponding message
2016-10-05 19:09:21 +09:00
lilia
d52050d43f
Fix group timer updates
2016-10-05 19:09:20 +09:00
lilia
0bba096510
Use 'You' instead of your own phone number
2016-10-05 19:09:20 +09:00
lilia
1da44c847b
Fix handling sent messages sans expirationStartTimestamp
2016-10-05 19:09:20 +09:00
lilia
a12569e356
Fix destination on synced timer updates
2016-10-05 19:09:20 +09:00
lilia
86dbbc9f29
Allow null expireTimer in sendmessage
2016-10-05 19:09:20 +09:00
lilia
7eea88a545
Convert expirationStartTimestamp to number
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
448835e4d5
Bail early when processing timer updates
...
Also let expireTimer default to 0.
2016-09-29 13:06:25 -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
e809a0cf8b
Breakout timer rendering into its own view
...
Make width and height constant.
2016-09-28 17:20:03 -07:00
lilia
bd713352e3
Hourglass can start at any percentage
...
This breaks the css-purity of our mixin but is necessary in order to
apply the initial offset of the hourglass animation dynamically, since
jquery can't manipulate arbitrary css on psuedo elements.
2016-09-28 17:20:02 -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
b888e01044
Add an index on message.expireTimer
...
This allows us to query all expiring messages on startup.
2016-09-28 17:20:02 -07:00
lilia
b3e932dce8
Add protocol support for disappearing messages
2016-09-28 17:20:02 -07:00
lilia
5b5a430114
Support i18n with multiple links
...
We can now pass a variable number of hrefs into i18n_with_links rather
than just one.
2016-09-27 13:34:54 -07:00
lilia
9b645f90c8
Remove Android requirement from install flow
...
// FREEBIE
2016-09-26 10:43:51 -07:00
lilia
b0c59233f3
Add test fixtures
...
Test page loads fixtures and renders the inbox view. This may be useful
for smoke testing style changes or generating screenshots with
pseudo-realistic data.
Includes a couple small changes to get rendering working outside the
app.
2016-09-23 19:51:42 -07:00
lilia
c16e80c5e4
Let key verification view lazy-load keys
...
// FREEBIE
2016-09-20 13:45:21 -07:00
lilia
fe209a2f41
Upgrade libsignal-protocol v1.1.6
2016-09-20 13:45:21 -07:00
lilia
7b3b01bdf6
Refactor registration event
...
Make AccountManager into an event target for better separation between
app and service-library handling of registration events.
2016-09-20 13:42:33 -07:00
lilia
6dcff46e26
Move chrome-specific calls to chromium.js
...
// FREEBIE
2016-09-20 13:37:50 -07:00
lilia
b1afb79a14
Set theme based on master device userAgent
...
// FREEBIE
2016-09-15 16:28:46 -07:00
lilia
2b210b3fcd
Fix undefined websocket port
...
Fixes #889
// FREEBIE
2016-09-12 11:44:52 -07:00
lilia
edd6f58539
Update display when contact colors change
...
// FREEBIE
2016-09-12 11:44:52 -07:00
lilia
9db13310b4
Add port 80
...
// FREEBIE
2016-09-08 15:00:05 -07:00
lilia
384598fbcc
Log websocket urls
...
// FREEBIE
2016-09-08 14:31:20 -07:00
lilia
0487fa3cd1
Add server fallback port 8443
...
// FREEBIE
2016-09-08 14:31:19 -07:00
lilia
487f75dd27
Fix lint
...
// FREEBIE
2016-09-08 11:57:34 -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
141cdef2a4
Generalize toast view template
...
// FREEBIE
2016-09-07 13:04:45 -07:00
lilia
ff490994ab
Render emoji in group name in group updates
...
// FREEBIE
2016-09-01 16:01:08 -07:00
lilia
baff77c509
Revert "Remove Android requirement from install flow"
...
This reverts commit 4b9f7d518e
.
Put this back when iOS desktop support is ready for general release.
2016-09-01 14:04:46 -07:00
lilia
1d5471c318
Fix search tests
...
// FREEBIE
2016-09-01 14:01:51 -07:00
lilia
7e0df07e88
Fix tests
...
// FREEBIE
2016-09-01 13:47:50 -07:00
lilia
9deaa95e8c
Strip unicode null from deviceNames
...
Not sure how or why but sometimes deviceNames arrive on the server
containing a null char.
// FREEBIE
2016-09-01 13:19:27 -07:00
lilia
43ca465eb9
Remove unused code
...
// FREEBIE
2016-09-01 13:19:27 -07:00
lilia
1c89142752
Customize emoji conversion
...
Use image tags with :emoji: in a title attribute for an optimal
copy/paste ux.
// FREEBIE
2016-09-01 12:55:23 -07:00
lilia
f042378a37
Upgrade emoji support and switch to apple emoji
...
Use emojijs for replacing unicode with image tags for display. We were
already using it to replace colons with unicode. Additionally it has
a companion data repo that is kept up to date with images from all
the common image sets.
// FREEBIE
2016-09-01 11:51:53 -07:00
lilia
4b9f7d518e
Remove Android requirement from install flow
...
// FREEBIE
2016-08-31 15:04:01 -07:00
lilia
b5191e78c3
More themeing
...
Restyle message input and welcome screen
Cleanup search, headers
// FREEBIE
2016-08-30 18:31:03 -07:00