Scott Nonnenberg
cb2c691667
Improve queuing strategies in the app
2019-07-17 11:29:51 -07:00
Scott Nonnenberg
e62a1a7812
Receive support for View Once photos
2019-07-17 11:29:51 -07:00
Scott Nonnenberg
ab2cc6ee53
Properly download new group avatars
2019-06-24 14:51:33 -04:00
Scott Nonnenberg
9fd867fdd1
Support new 'requiredProtocolVersion' in DataMessage
...
* Add new requiredProtocolVersion field to DataMessage
* Message.requiredProtocolVersion, warning if version mot supported
* Update strings; limit width; new left pane preview text
2019-06-10 17:40:02 -04:00
Scott Nonnenberg
dd98477479
For 'me,' prefer signal profile avatar over address book info
2019-06-07 14:40:34 -04:00
Scott Nonnenberg
3505ab9198
Drop profile on missing profile key, drop avatar on download 403
2019-06-07 13:20:39 -04:00
Ken Powers
be5d0837f8
Support additional sticker states
...
Co-authored-by: scott@signal.org
Co-authored-by: ken@signal.org
2019-05-29 11:01:32 -07:00
Scott Nonnenberg
e18b6bed1f
Refactor 'waiting' flags into one location, fix timestamp check
2019-05-16 17:15:54 -07:00
Ken Powers
29de50c12a
Stickers
...
Co-authored-by: scott@signal.org
Co-authored-by: ken@signal.org
2019-05-16 16:10:37 -07:00
Scott Nonnenberg
13ad4abaea
Handle and send isRecipientUpdate sync messages
...
* Handle and send isRecipientUpdate sync messages
* Disable sending isRecipientUpdates for now
2019-05-16 15:43:29 -07:00
Scott Nonnenberg
c41bc53614
Refactor messages model; New timeline react components
2019-05-16 15:23:21 -07:00
Scott Nonnenberg
d342b23cbc
Refactor: Prepare Message function props for conversation scope
2019-05-07 09:41:09 -07:00
Scott Nonnenberg
22f7a352f9
updateLastMessage: If we don't update last text, clear it
2019-04-12 14:06:34 -07:00
Scott Nonnenberg
62de2a229d
Add logging to track synchronization in message processing
2019-04-10 12:15:00 -07:00
Scott Nonnenberg
74cb808763
New MessageController as the single place for in-memory messages
2019-04-04 17:17:19 -07:00
Scott Nonnenberg
274949b247
Enable long message send as an attachment
2019-03-29 11:31:15 -07:00
Scott Nonnenberg
4d8fbe95ff
Retry send: Always remove all errors and recalculate recipients
2019-03-29 11:31:15 -07:00
Scott Nonnenberg
8c4d90df07
Send long text as an attachment instead of inline
...
Remove Android length warning
Handle incoming long message attachments
Show long download pending status in message bubble
Fix the width of the smallest spinner
Remove Android length warning from HTML templates
2019-03-14 17:30:46 -07:00
Scott Nonnenberg
32fa5cccde
Send sync sent messages properly in 1-member group
2019-03-13 10:46:00 -07:00
Scott Nonnenberg
c76d537482
Note to Self: On just expire timer update, set TIMER_UPDATE flag
2019-03-13 09:11:39 -07:00
Scott Nonnenberg
768007a269
Message Detail: Ensure that quotes are not clickable
2019-03-12 17:44:14 -07:00
Scott Nonnenberg
6ffbc0ac06
Archive Conversation
2019-03-12 17:44:14 -07:00
Scott Nonnenberg
b3ac1373fa
Move left pane entirely to React
2019-03-12 17:44:14 -07:00
Scott Nonnenberg
812f895e12
Bring lastMessage and lastMessageStatus back to conversation
2019-03-12 17:44:14 -07:00
Scott Nonnenberg
dcd16775c3
Note to Self: set expirationStartTimestamp before sending sync
2019-03-12 17:44:14 -07:00
Scott Nonnenberg
eb7ad48951
Only put nbsp before last token in msg body if token is <12 chars
2019-03-12 17:44:14 -07:00
Scott Nonnenberg
41ea9ee15b
Ensure that we show error'd recipients in message details screen
2019-02-20 16:51:30 -08:00
Scott Nonnenberg
ad53423e0a
Queue quote reference handling per convo in handleDataMessage
2019-02-20 16:51:30 -08:00
Scott Nonnenberg
af40ceda6c
Note to Self timer fixes for bugs reported by beta users
2019-02-20 16:40:35 -08:00
Scott Nonnenberg
5b54c9554e
Remove groups table, conversation is single source of truth
2019-02-13 16:04:58 -08:00
Scott Nonnenberg
1d2c3ae23c
Download attachments in separate queue from message processing
2019-02-12 16:34:21 -08:00
Scott Nonnenberg
a43a78731a
Note to Self
2019-02-12 16:08:51 -08:00
Scott Nonnenberg
462fa712bc
Show members: Pull conversation from group table
2019-02-11 18:32:05 -08:00
Scott Nonnenberg
12739ac82d
Ensure we don't add empty attachments to quote
2019-02-11 17:37:33 -08:00
Scott Nonnenberg
0d7480bd92
A number of small fixes for Link Previews
2019-02-05 13:55:55 -08:00
Scott Nonnenberg
1533fcc807
Fail over to all numbers in retry if errors don't have numbers
2019-01-29 16:08:03 -08:00
Scott Nonnenberg
c936859d09
Fix rendering bug with verified state in updateVerified()
2019-01-29 16:08:03 -08:00
Scott Nonnenberg
813924685e
Link Previews
2019-01-29 13:53:14 -08:00
Scott Nonnenberg
c0be4718fc
Update delivered_to for outgoing with earlier delivery receipts
2019-01-04 12:25:48 -08:00
Herohtar
a21d63e450
Make notification initials consistent with everything else ( #3006 )
...
Make notification initials consistent with Avatar component
2019-01-02 14:34:18 -08:00
Scott Nonnenberg
3851bf351f
Throttle typing events, fix profile logging, fix group typing
2018-12-10 14:06:43 -08:00
Scott Nonnenberg
a291834301
Dismiss typing indicator when ConversationView is not loaded
2018-11-26 17:09:50 -08:00
Scott Nonnenberg
79a861a870
Typing Indicators
2018-11-26 15:26:04 -08:00
Scott Nonnenberg
99252702e1
Support receiving multiple images in one messages
2018-11-26 15:26:04 -08:00
Scott Nonnenberg
447a217397
Bulletproof getNumberInfo against missing ourNumber
2018-11-26 15:23:25 -08:00
Scott Nonnenberg
6300256a3e
Gracefully shut down database operations before app exit
2018-11-12 15:31:17 -08:00
Scott Nonnenberg
2d48daa7b6
Refine Sealed Sender behaviors
2018-11-07 16:34:20 -08:00
Scott Nonnenberg
486932048c
Add logging to help in debugging sealedSender state
2018-11-01 17:00:24 -07:00
Scott Nonnenberg
0297279084
Eliminate some conversation fields which are no longer used
2018-11-01 17:00:24 -07:00
Scott Nonnenberg
68e3cade17
Don't display 'read' icon if read-recipts-setting is disabled
2018-11-01 17:00:24 -07:00
Scott Nonnenberg
e2e0e4c96b
Refine sealed sender logic
2018-11-01 17:00:24 -07:00
Scott Nonnenberg
1755e0adfd
Move all remaining stores to SQLCipher
2018-10-31 17:36:51 -07:00
Scott Nonnenberg
a7d78c0e9b
Sealed Sender support
...
https://signal.org/blog/sealed-sender/
2018-10-29 14:49:18 -07:00
Scott Nonnenberg
1e562c8293
Properly handle avatar changes in group update messages
2018-10-24 11:31:01 -07:00
Scott Nonnenberg
f21f83a163
Conversations have blue avatar backgrounds if no image provided
2018-10-18 11:39:23 -07:00
Scott Nonnenberg
7d9711ba65
Restore iOS-specific theme; colors on left in android theme
2018-10-11 11:42:18 -07:00
Scott Nonnenberg
ca61c9cb85
Warnings for dangerous files
2018-10-09 13:48:32 -07:00
Scott Nonnenberg
f38410976d
Delete conversation external files on deletion
2018-10-01 18:18:37 -07:00
Scott Nonnenberg
8f3e3b7aaf
Update to new design for avatars: individual/group icons/colors
...
And two initials.
2018-10-01 18:18:37 -07:00
Scott Nonnenberg
10c53bddb0
Move to new colors, switch incoming/outgoing colors
2018-10-01 18:18:37 -07:00
Scott Nonnenberg
cd60bdd08a
Move conversations to SQLCipher
2018-10-01 18:18:37 -07:00
Scott Nonnenberg
3464eb65b8
Keep conversation.lastMessage in memory
2018-09-20 15:25:54 -07:00
Scott Nonnenberg
9c399624cc
Support for blocking groups on mobile, via group/blocked syncs
2018-09-14 16:25:43 -07:00
Scott Nonnenberg
8584a79352
Don't treat sends to a group with unregistered users as an error
2018-09-05 14:17:38 -07:00
Scott Nonnenberg
37f3054976
Both UI timer and database timer will remove expired message
2018-08-15 17:45:24 -07:00
Scott Nonnenberg
fedfbed304
Copy quoted message contents into quote on receipt
...
Also:
- visually distinguish any reference we couldn't verify on receipt
- show toast on quote click if we can't scroll to message
- toast visuals redesigned to match rest of app
2018-08-15 14:58:55 -07:00
Scott Nonnenberg
ae6876a153
Ensure that error in handleDataMessage is treated as error
2018-08-08 09:40:12 -07:00
Scott Nonnenberg
727925a266
Clean up old messages, better handle errors from sending
2018-08-07 18:29:33 -07:00
Scott Nonnenberg
9ff80469a5
In partially-successful group send, don't start expire timer
2018-08-06 18:08:10 -07:00
Scott Nonnenberg
9ed1ee90f8
Move expiring message time earlier if read sync has earlier time
2018-08-06 18:08:10 -07:00
Scott Nonnenberg
4b3ddef955
Allow for 'error' status on incoming messages not just outgoing
2018-08-06 18:08:10 -07:00
Scott Nonnenberg
8180417611
Update conversation first on timer change to eliminate flicker
2018-08-02 22:31:27 -07:00
Scott Nonnenberg
22613c8cc4
Set disappearing check timer reliably - on all message saves
2018-08-02 22:31:27 -07:00
Scott Nonnenberg
1d7987108b
Show and log progress during the SQLCipher migration
2018-08-02 17:25:51 -07:00
Scott Nonnenberg
b1c6a5fe19
When updating message schema pre-SQLCipher, use legacy save
2018-08-01 12:38:48 -07:00
Scott Nonnenberg
3105b77475
Migrate to SQLCipher for messages/cache
...
Quite a few other fixes, including:
- Sending to contact with no avatar yet (not synced from mobile)
- Left pane doesn't update quickly or at all on new message
- Left pane doesn't show sent or error status
Also:
- Contributing.md: Ensure set of linux dev dependencies is complete
2018-07-31 17:08:45 -07:00
Scott Nonnenberg
8860e4c7fb
Update delivered/read message if already in collection
2018-07-27 10:55:10 -07:00
Scott Nonnenberg
61f7b8360b
Conversation: store lastMessage/lastMessageStatus in memory only
2018-07-27 10:55:10 -07:00
Scott Nonnenberg
f39a96bc76
Move to centralized message/cache data layer
...
Also, ensure that conversation.messageCollection has nothing in it
unless it has an associated ConversationView.
2018-07-27 10:55:10 -07:00
Scott Nonnenberg
34231168a7
On message delete, ensure that all external files are deleted
2018-07-27 09:15:57 -07:00
Scott Nonnenberg
e80857562a
Disappearing messages: show 'disabled' instead of 'set to off'
2018-07-27 09:15:57 -07:00
Scott Nonnenberg
1a01e38d5c
Show 'group updated' in left pane when we get info-free update
2018-07-27 09:15:57 -07:00
Scott Nonnenberg
b7d5013558
Add verified notification and sync the verified status as well
2018-07-26 15:42:07 -07:00
Scott Nonnenberg
5933a34a18
Use window.log in browser context, turn on console eslint rule
2018-07-21 14:52:43 -07:00
Scott Nonnenberg
643739f65d
Responding to feedback on the updated visuals ( #2549 )
...
* Conversation List Item: timestamp bold only when convo has unread
* Preserve the positioning of overlays on re-entry into convo
* ConversationListItem: Handle missing and broken thumbnails
* Shorten timestamp in left pane for better Android consistency
* Update convo last updated if last was expire timer change
But not if it was from a sync instead of from you or from a contact.
* Make links in quotes the same color as the text
* MediaGridItem: Update placeholder icon colors for dark theme
* Ensure turning off timer shows 'Timer set to off' in left pane
* ConversationListItem: Show unread count in blue circle
* Add one pixel margin to blue indicator for text alignment
* Ensure replies to voice message can bet sent successfully
2018-07-20 16:37:57 -07:00
Scott Nonnenberg
d5d6cdb250
Automatically clean up old debug info, remove unneeded field
2018-07-18 19:41:16 -07:00
Scott Nonnenberg
c2c8dc5090
Make quote props consistent, white circle dark theme play overlay
...
Prevents errors in the logs about attempting to load images from their
relative patn instead of the absolute path. No effect on the user.
2018-07-18 12:20:14 -07:00
Scott Nonnenberg
5e64e4ef40
Remove verbose updateLastMessage logging, fix MediaGallery save
2018-07-18 12:06:35 -07:00
Scott Nonnenberg
fdc7c85876
A couple small fixes: quotes, ConversationListItem, MessageDetail
...
- Load quoted message even with local thumbnail
- A bit more space for message in ConversationListItem
- Make the message detail screen scrollable
2018-07-18 10:42:06 -07:00
Scott Nonnenberg
db91560990
Fixes for quotes/schema upgrade, optimize media gallery load
...
Also: Fix for contact detail page; didn't show back button
2018-07-18 09:38:42 -07:00
Scott Nonnenberg
60f61c804b
Fix reply to message w/attachment, dark theme quoted attachment
2018-07-17 20:40:19 -07:00
Scott Nonnenberg
675e34fc8d
New React component: ConversationListItem, installed in left pane
...
When collecting a conversation's last message, we grab that message's
status as well (if outgoing) and show it.
2018-07-17 20:25:55 -07:00
Scott Nonnenberg
3c69886320
Finish new Message component, integrate into application
...
Also:
- New schema version 8 with video/image thumbnails, screenshots, sizes
- Upgrade messages not at current schema version when loading messages
to show in conversation
- New MessageDetail react component
- New ConversationHeader react component
2018-07-17 15:58:07 -07:00
Scott Nonnenberg
43a44793c5
Remove jshint - move everything over to eslint
...
Also removed all hints of previous linters
2018-07-17 15:54:32 -07:00
Scott Nonnenberg
e30b34f424
Add 'newmessage' event handler to Conversation for reliablity
2018-07-05 09:32:14 -07:00
Scott Nonnenberg
9d9a797bda
Handle timer updates along with group updates
2018-07-03 16:04:21 -07:00
Scott Nonnenberg
12b5547e72
Update contents of conversation even when view not hydrated
...
Also ensure that we update the last message in a conversation after
expire, after the mesage is really deleted from the database.
2018-07-03 16:04:21 -07:00
Scott Nonnenberg
0abdd5ead1
Add missing await for thumbnail creation in makeQuote()
2018-06-21 15:19:55 -07:00
Scott Nonnenberg
b113cd0ad2
Expire timer updates: don't send if updated via remote message ( #2473 )
...
A recent change removed the type property to make markRead() behave
properly, but that broke our check 'should we send an update?' logic. So
instead of using `isIncoming()` we now use the thing we previously used
to determine whether a message was incoming: `receivedAt`.
2018-06-21 12:01:56 -07:00
Scott Nonnenberg
a4603807e1
Send/reply: Be resilient to errors making attachment thumbnail ( #2468 )
...
* Show generic file icon if we fail to make attachment thumbnail
* Be resilient to thumbnail creation errors when creating quote
2018-06-21 12:01:11 -07:00
Scott Nonnenberg
5fca44d1b1
Send message: Pull expireTimer, recipients, dest before queueJob
2018-06-14 15:33:56 -07:00
Scott Nonnenberg
dfa1f0797c
Ensure timer updates show in convo before initiating message
2018-06-14 15:30:26 -07:00
Scott Nonnenberg
71d873ccfe
Ensure message expire timer start times are never in the future
2018-05-31 13:25:45 -07:00
Scott Nonnenberg
8c85f6e3a6
When marking message read, ensure that peers have same read_at
...
When we mark a message as read, we go to the database to ensure that
older messages in this conversation are marked read as well. That
optimization was missing the read_at value provided to the starting
message, so now it is piped along to all of them.
2018-05-24 18:54:06 -07:00
Scott Nonnenberg
ec3e36824c
Remove jscs from the project
2018-05-23 16:26:48 -07:00
Scott Nonnenberg
93d3abbf8d
Use contact name when updating last message for a conversation
2018-05-10 11:54:58 -07:00
Daniel Gasienica
3bf8a8966a
Notification improvements
...
- Remove on read, on focus, and on exit.
- Show multi-message notifications like '5 new messages'.
2018-05-10 14:45:56 -04:00
Scott Nonnenberg
8beeef4d10
Show contact name when you reply to message with a contact
2018-05-07 19:30:50 -07:00
Scott Nonnenberg
3ea3e4e256
Contact sharing: protos and data pipeline
...
As of this commit: 82b76ccf37
2018-05-07 19:09:55 -07:00
Daniel Gasienica
38f3ad6518
Use SignalService
vs textsecure
for protobuf
2018-05-07 21:53:39 -04:00
Daniel Gasienica
a0ddab669b
Organize global
s
2018-05-07 21:53:39 -04:00
Daniel Gasienica
13f1ec2e51
Use structured logs
...
Easier to search for static prefix and fields are named.
2018-05-03 13:24:39 -04:00
Daniel Gasienica
0ce56eed87
Use structured log
2018-05-03 13:24:39 -04:00
Daniel Gasienica
ae7d6aa900
Log Conversation::updateLastMessage
2018-05-03 13:24:38 -04:00
Daniel Gasienica
95321e5d3e
Remove Vim mode lines
2018-04-30 16:53:34 -04:00
Daniel Gasienica
822850433e
Apply manual fixes for ESLint errors
2018-04-30 16:53:34 -04:00
Daniel Gasienica
1dd87ad197
Format all source code using Prettier
2018-04-30 16:53:34 -04:00
Daniel Gasienica
36c609c2c3
Persist has*Attachments
properties for incoming messages
2018-04-27 16:31:43 -04:00
Daniel Gasienica
3df8c22e44
Alphabetize Message
properties
2018-04-27 16:31:43 -04:00
Scott Nonnenberg
84c7a4c293
Move to some of our global utility methods
2018-04-26 12:01:31 -07:00
Scott Nonnenberg
403fb1fd60
Make algorithm for finding thumbnails more efficient
2018-04-26 12:00:57 -07:00
Scott Nonnenberg
27a30b3267
Respond to PR feedback
...
- makeThumbnail -> makeImageThumbnail
- duplicate 'display: flex'
- remove no-longer-applicable comment
2018-04-26 09:50:13 -07:00
Scott Nonnenberg
ac0b50d20f
Generate thumbnails for new video attachments, video quotes
2018-04-25 18:32:46 -07:00
Daniel Gasienica
bf3a547a76
Organize global
s
2018-04-25 15:28:56 -04:00
Daniel Gasienica
b65370c8d7
Prefer GoogleChrome.is*
over MIME.is*
2018-04-25 15:25:12 -04:00
Scott Nonnenberg
9619e5b66d
Fix quote thumbnail flickering issue
...
Turns out that we reload thumbnails for every message when any new
message is added to the conversation. This fix prevents that by actually
checking for the proper sentinel on the message model
2018-04-24 18:33:10 -07:00
Scott Nonnenberg
c02860af5c
Responding to pull request review feedback
...
- messages.getQuoteObjectUrl: early return
- backup.js: explaining variables for long if statement
- types/messages.js: Log if thumbnail has neither data nor path
- sendmessage.js:
- remove extraneous logging
- fix indentation
- upload attachments and thumbnails in parallel
- preload: don't load fs for tests, just fse
- _conversation.scss: split two selectors into two lines, 0px -> 0
- backup_test.js: use fse.existsSync and comment twoSlashes regex
- network_tests_view_test.js: Comment duplicate assignment to window.getSocketStatus
2018-04-23 15:36:47 -07:00
Scott Nonnenberg
26dd01c4fd
Make sent quote clickable - process after adding to conversation
2018-04-20 15:24:01 -07:00
Scott Nonnenberg
73edabfb17
Full pipeline to send quotes, including thumbnail upload
2018-04-20 15:23:57 -07:00
Scott Nonnenberg
13ce056830
Make thumbnails on quote load and on quote preview creation
2018-04-20 15:23:56 -07:00
Scott Nonnenberg
b4ff223d18
Refactor: Push selector logic for quote props into Message model
2018-04-20 15:23:49 -07:00
Scott Nonnenberg
a563dc8b37
Style Guide: Additional message examples, a few fixes to enable
2018-04-20 15:23:47 -07:00
Scott Nonnenberg
000dc3a159
Handle attachment load failure for quoted message
2018-04-16 12:17:13 -07:00
Scott Nonnenberg
04d186c05a
Conversation.loadQuoteThumbnail: Be resilient to no attachments
2018-04-13 18:10:52 -07:00
Scott Nonnenberg
3bbb9f535a
Load thumbnail even if we have the full message in hand
...
This is important for now, when we aren't generating our own thumbnails
2018-04-13 18:10:51 -07:00
Scott Nonnenberg
fce9bb7342
Move to central MIME functions, remove some console.log
...
And generally address PR feedback.
2018-04-13 18:10:51 -07:00
Scott Nonnenberg
32925ed026
Load attachment data for quotedMessages, processMessage on add
...
Not ideal that it loads it twice, but AttachmentView is so selfish with
its blob and objectUrl!
2018-04-13 18:10:50 -07:00
Scott Nonnenberg
fc330ef854
Quote loading: Check for in-memory message until we get one
2018-04-13 18:10:48 -07:00
Scott Nonnenberg
1cc0633786
Full support for quotations in Android theme
2018-04-13 18:10:48 -07:00
Scott Nonnenberg
5602241a0c
Eliminate eslint-generated triple-parents
2018-04-13 18:10:47 -07:00
Scott Nonnenberg
5c2936bdd6
Turns out that we call validateNumber() on group conversations!
2018-04-13 18:10:47 -07:00
Scott Nonnenberg
e99192dca7
Unleash eslint on models/messages.js
...
Fun fact: eslint was not running on this file, despite the eslint
directives previously in the file!
2018-04-13 18:10:47 -07:00
Scott Nonnenberg
33ef967dd7
Unleash eslint on models/conversations.js
2018-04-13 18:10:45 -07:00
Scott Nonnenberg
054d3887a1
Quotes: The full pipeline into the database
...
1. MessageReceiver always pulls down thumbnails included in quotes
2. Message.upgradeSchema has a new schema that puts all thumbnails on
disk just like happens with full attachments.
3. handleDataMessage pipes quote from dataMessage into the final message
destined for the database
2018-04-13 18:05:45 -07:00
Daniel Gasienica
5f8148d3da
Bind to Conversation
lazily to prevent style guide errors
2018-04-13 14:26:01 -04:00
Daniel Gasienica
0902c94093
Reset last message after message has expired
...
Fixes #980 .
2018-04-11 19:34:21 -04:00
Daniel Gasienica
f253fef5c6
Explicitly make onDestroy
have void
return type
2018-03-26 16:49:21 -04:00
Daniel Gasienica
0c06fff47b
Wire up Message
/ Attachment
migration functions on startup
...
Makes `migrationContext` obsolete.
2018-03-26 16:38:34 -04:00
Daniel Gasienica
9d25aa4e43
Delete attachment files on disk upon message delete
2018-03-26 16:38:34 -04:00
Daniel Gasienica
833a203559
Remove Vim modeline
2018-03-26 16:38:34 -04:00