Mikunj
449f44cc5a
Added changing user nicknames.
7 years ago
Mikunj
6ce9d6a08c
Added nickname dialog.
7 years ago
Mikunj
cf24e42a0e
Added storing nicknames.
7 years ago
Mikunj
aa57693fce
Update profile if we get it through a message.
7 years ago
Mikunj
774c52a407
Added dynamic profile fetching in conversation.
...
Added setting profile when sending DataMessage.
7 years ago
Mikunj
0e6c14eb5c
Added profile model.
7 years ago
Scott Nonnenberg
a291834301
Dismiss typing indicator when ConversationView is not loaded
7 years ago
Scott Nonnenberg
70eed938d9
Store arrayBuffers in database for remote identity keys
7 years ago
Scott Nonnenberg
79a861a870
Typing Indicators
7 years ago
Scott Nonnenberg
99252702e1
Support receiving multiple images in one messages
7 years ago
Scott Nonnenberg
447a217397
Bulletproof getNumberInfo against missing ourNumber
7 years ago
sachaaaaa
4309a10ebc
Merge pull request #60 from BeaudanBrown/develop-mode-settings
...
Removed some repetetive logs, developer mode settings
7 years ago
Beaudan
b515fc41e7
Removed some repetetive logs, made the polling time a variable and lower the polling time and PoW difficulty if we are in debug mode
7 years ago
sachaaaaa
5c128e9d91
remove `isFriend` from conversation default
7 years ago
Beaudan
f67c71bda1
Fixed comment typo
7 years ago
Beaudan
b65d6a6d2c
Refactor friend request status to use a state enum variable
7 years ago
sachaaaaa
05602b3281
Fix accessing $messageField before assignment
7 years ago
Mikunj
d37b02421c
Merge commit '96595a46d81b2d7361dfde213392e203b18ee279' into fix/prekey-saving
7 years ago
Mikunj
9fd822a7e3
Remove preKeys on friend request decline.
7 years ago
Mikunj
0dabce9e28
Remove preKeyBundle from message.
...
Always save preKeyBundles if we receive them.
Always override preKeys when saving.
7 years ago
sachaaaaa
19b6698a24
Merge pull request #53 from BeaudanBrown/read-receipts
...
Read receipts setting
7 years ago
Beaudan
bed9ce5be2
Added read receipt checkbox to the settings window which enables or disables the sending and receiving of read receipts
7 years ago
sachaaaaa
dbdd52b4eb
Merge pull request #50 from Mikunj/fix/friend-request
...
Friend request fixes
7 years ago
Mikunj
f29a515fdf
Fix up typos.
7 years ago
Mikunj
4fd709be35
Removed unused state.
7 years ago
Mikunj
50e8f65a7e
updated doc.
7 years ago
Mikunj
fb8b0e1d40
Auto accept friend request if we have both incoming and outgoing friend requests.
7 years ago
Mikunj
8a0b8e1f00
Store the state of the friend request inside the conversation.
7 years ago
Mikunj
484efd34a3
Added friend request message expiration.
7 years ago
Mikunj
bd103e2ad2
Minor fixes.
7 years ago
sachaaaaa
c9d6a11b1a
Merge pull request #49 from sachaaaaa/log_level
...
Use correct log level in development mode
7 years ago
Mikunj
628ec5fc76
Updated truncate length to 25.
7 years ago
sachaaaaa
ccb5ff79d4
Use correct log level in development mode and use log.debug() for some of the reoccurring logs
7 years ago
Mikunj
7d8719f250
Fix incoming friend request messages being deleted.
...
Set pending outgoing friend requests to declined if we receive an incoming friend request.
Fix text input not blocking.
7 years ago
Mikunj
dba6a36e83
removed old unused code.
7 years ago
Mikunj
110387508f
UI fixes.
7 years ago
Mikunj
4ebdfab633
Update handling of new message logic.
7 years ago
Mikunj
cf3e9716ed
Update new conditions for friend accepted and key exchange complete in conversations model.
7 years ago
Mikunj
6689802513
Truncate text to 15 characters.
7 years ago
Mikunj
a9c1f628a4
Switched to using html select.
7 years ago
Mikunj
5f4a44ba8c
Remove returning models from block/unblock.
...
lint fixes.
7 years ago
Mikunj
a3a7f4a621
Merge commit 'ef44a123ed4ada70489d78fde16a86c60ced34a8' into feature/blocking
7 years ago
Beaudan
ff3cc7a315
Review changes
7 years ago
Mikunj
1bb608b55a
Fixed minor issues.
7 years ago
Mikunj
04bf00d24f
Missed semicolon
7 years ago
Beaudan
489ec8fc65
Heap of linting, eslint warning/error removal, and fixed a couple small bugs found along the way
...
Created new table to store the received message hashes. Checking this table when receiving messages to look for duplicates. Should be cleared of expired messages on app start and every hour after
Removed id which was not needed for seen messages. Refactored filter logic into function and found function name error
create unique index for contact prekeys (to allow using REPLACE)
Fixed lint stuff that merge brought back
7 years ago
Mikunj
dbb92aa9c8
Added i18n messages.
7 years ago
Mikunj
ba390e354b
Added unblocking.
...
Added styling.
Trigger changes on both conversation and messages when we block/unblock.
7 years ago
Mikunj
658b2b0332
List blocked users in settings.
7 years ago
Mikunj
a82999818a
Added blocking/unblocking from friend request.
...
Fixed incoming messages being deleted.
7 years ago
Mikunj
ae2e2fa2ae
Updated UI in conversation to support user blocking behaviour.
7 years ago
Mikunj
8cc9b7b54b
Added blocked number model and collection.
...
Added blocked number controller.
Hooked up BlockedNumberController loading.
7 years ago
Mikunj
34f43088ff
Fix incoming messages being deleted on startup.
7 years ago
sachaaaaa
78d39ac177
Merge pull request #41 from Mikunj/fix/friend-notification
...
Friend Notifications
7 years ago
Mikunj
17e5c861a1
Fixed review issues.
...
Fixed lint error.
7 years ago
Mikunj
c77f996709
Forgot a ;
7 years ago
Mikunj
a9e3a64888
removed unused default param.
7 years ago
Mikunj
3943cbbc6e
Fix linting error.
7 years ago
Mikunj
4148628e70
Remove any unsent messages when app is started.
7 years ago
Mikunj
4f4ebf3ddd
Added an info log on graceful conversation fallback,
7 years ago
Mikunj
ece266fffd
Added showing pow icon.
7 years ago
Mikunj
676fe8b5c5
Fixed new messages not showing when another message in the conversation is calculating its PoW
7 years ago
Mikunj
745d0e82d4
Added unread count badge .
7 years ago
Mikunj
061b8ab2cb
Added function to help friend request notifications
7 years ago
Mikunj
dfae580ffa
Added notification when receiving a friend request and when a friend request was accepted.
7 years ago
Mikunj
4b4999ac35
Update to signal 1.18.0
7 years ago
Scott Nonnenberg
a780fa3bab
Fix reference to nonexistent variable
7 years ago
Scott Nonnenberg
ca4e2177b4
Fix reference to nonexistent variable
7 years ago
Scott Nonnenberg
cb50451011
Bump sender certificate timer after registration for re-link
7 years ago
Mikunj
4d3fb17e61
Merge branch 'sig-development' into merge/signal
7 years ago
sachaaaaa
5bcf63e592
Merge pull request #39 from BeaudanBrown/last-hash
...
Last hash
7 years ago
Beaudan
3aa135fdb4
Grabbing last hash from server response. only requesting messages after the lasthash. Keeping track of lasthash for array of nodes (currently hardcoded for one)
7 years ago
Mikunj
3389b1d457
Fixed the way preKeyBundle is stored in message.
7 years ago
Mikunj
688f275262
pass in source, sourceDevice, timestamp and receivedAt when adding a friend request.
7 years ago
Scott Nonnenberg
55c3d9371e
Bump sender certificate timer after registration for re-link
7 years ago
BeaudanBrown
bd0ce981dd
Merge pull request #34 from sachaaaaa/classify
...
ES2015 classes for LokiServer and FallBackSessionCipher
7 years ago
Mikunj
33ee45b819
Cleaned up SQL for getMessagesByConversation.
7 years ago
Mikunj
f2dbdff548
code cleanup.
7 years ago
Mikunj
dc1e42a2e4
Removed unneeded comment :)
7 years ago
Mikunj
1150f0f915
Allow fetching conversation messages by a specific type.
7 years ago
sachaaaaa
ad1cf94526
ES2015 classes for LokiServer and FallBackSessionCipher
7 years ago
Mikunj
4b7a94c7d0
Merge branch 'development' into feature/friend-request
7 years ago
Mikunj
f4b60c3ff6
Fix setting friend requests incorrectly.
7 years ago
Beaudan
d6534e1bb8
Fixed bug with signed key sig not being saved
7 years ago
Mikunj
5e48efc935
Merge commit 'd94365f1c6dbb315f67f29b47982b5f24bd11f5f' into feature/friend-request
7 years ago
Mikunj
6aab900da2
Handle friend request updated.
7 years ago
Mikunj
4d08a74d53
Updated FriendRequest to be more consistent with the other typescript components.
7 years ago
Mikunj
f45e0030c4
Added status display and retry send to friend request.
7 years ago
Mikunj
7530836110
Send message status in friend request props.
7 years ago
Mikunj
757216fe80
Fix text input disabling.
7 years ago
Mikunj
2a83c8710c
Fix up sending friend requests.
7 years ago
Mikunj
fc3cb9c46d
Replace old pending messages with new one when adding a new incoming friend request.
...
More refactoring.
7 years ago
Mikunj
d5fafd4d78
refactor friend request message props
7 years ago
Mikunj
a80d6bb868
Merged branch correctly.
7 years ago
sachaaaaa
2451ffdca4
Comment out signal-specific logic introduced in latest merge
7 years ago
Mikunj
40fb7f726f
Fixed incorrect variable used.
7 years ago
BeaudanBrown
9ceb3c8ac0
Merge branch 'development' into message-polling
7 years ago
Scott Nonnenberg
ecf3f18762
Improve our deletion of IndexedDB post-SQLCipher migration
7 years ago
Scott Nonnenberg
6300256a3e
Gracefully shut down database operations before app exit
7 years ago
Scott Nonnenberg
c5f9fae444
A few small bugfixes
7 years ago
Beaudan
c59b196487
Now reading messages and adding them to conversations. Some cleaning of unreachable code. Modified the message data to be encoded as base64 string before sending to server
...
Sending our public key in header of message
Now attaching our key to the source field when sending messages, allows messages to be decrypted with the fallback cypher
Now polling the server for messages every 5 seconds
Sending the source device with messages
Added mock respond function to request to leave it that same as the websocket stuff. RetrieveMessages now just returns the result
Polling now continues if the server responds with an error. Returning only the result from sendMessage and retrieveMessages
Revert commenting of unreachable code
Refactored http logic into own file
Revert a change to websocket-resources
7 years ago
Mikunj
fca5a74da3
Fixed review issues.
7 years ago
Mikunj
0cecbe147c
Removed todo
7 years ago
Mikunj
c583819ccf
Fixed view layouts after deleting a conversation.
7 years ago
Mikunj
0cf616328e
Fixed saving prekey bundle once friend request is accepted.
...
Added option to delete conversation after it is declined.
7 years ago
Mikunj
0a88f337d5
Merge branch 'sig-development' into merge/signal
7 years ago
Mikunj
be1a69c200
Fix up saving friendRequestStatus
7 years ago
Mikunj
c150cbe34f
Friend request message indicator.
7 years ago
Mikunj
b9e85bb141
Added handling of accept and decline events.
7 years ago
Mikunj
08ca779fe1
Fixed up friend request message display
7 years ago
Mikunj
5626cfe47d
Added FriendRequest message
7 years ago
Scott Nonnenberg
2d48daa7b6
Refine Sealed Sender behaviors
7 years ago
Mikunj
2fabd93fd6
Fix message sending
7 years ago
Mikunj
98185fa6fd
Added sql migration.
7 years ago
Mikunj
77602e3dbb
Moved contactPreKey and contactSignedPreKey to sql.
7 years ago
Mikunj
525007f944
Added fetching preKey by recipient.
7 years ago
Mikunj
1a4adf2281
Merge branch 'development' into merge/signal
7 years ago
Mikunj
f589fdac5c
Merge signal changes into branch.
7 years ago
Mikunj
683d4f4106
Merge branch 'development' into feature/public-key-validation
7 years ago
Mikunj
61d15fdd57
Changed == to ===
7 years ago
Mikunj
9ea44a5cd2
fix incorrect error return.
7 years ago
Mikunj
4e6df71999
Fix up tests.
7 years ago
Beaudan
1ccf3b6b95
Added function to loki_message_api to do a single request call to storage server. Currently just gets called once when the application starts
7 years ago
Mikunj
9d342e8951
Show a message if user types in an invalid public key in search.
7 years ago
Mikunj
28f6992085
Replaced var with const.
7 years ago
Mikunj
8d9fbdb3df
Fix create conversation appearing even if you already have a conversation with the contact.
7 years ago
Beaudan
519d372e63
Tiny url update to work with the storage server
7 years ago
Scott Nonnenberg
fb670ad6b9
Remove IndexedDB files after removing IndexedDB database
7 years ago
Scott Nonnenberg
486932048c
Add logging to help in debugging sealedSender state
7 years ago
Scott Nonnenberg
0297279084
Eliminate some conversation fields which are no longer used
7 years ago
Scott Nonnenberg
e08c5e3307
Add current message counter to the log to help with debugging
7 years ago
Scott Nonnenberg
9f647f00d8
A couple fixes for the data layer, legacy message upgrade/migrate
7 years ago
Scott Nonnenberg
68e3cade17
Don't display 'read' icon if read-recipts-setting is disabled
7 years ago
Scott Nonnenberg
e2e0e4c96b
Refine sealed sender logic
7 years ago
Scott Nonnenberg
41dd78c073
On fetch of profileAvatar, set it to convo's profileAvatar field
7 years ago
Scott Nonnenberg
6628b73911
Only show database log entries if task takes longer than 10ms
7 years ago
Scott Nonnenberg
1755e0adfd
Move all remaining stores to SQLCipher
7 years ago
sachaaaaa
4b9fcb98d4
Linting and other housekeeping stuff
7 years ago
Scott Nonnenberg
7aa9031c7f
Import: Be resilient to deletions from importObject
7 years ago
sachaaaaa
d91f04930c
Merge pull request #21 from loki-project/bugfix/pow-nonce-calc
...
Bugfix/pow nonce calc
7 years ago
Beaudan
4598fd222a
Cleaned up newNonce stuff. Now doing target calculation with BigIntegers
7 years ago
sachaaaaa
7b1fbe362e
Allow choosing language for mnemonic seed
7 years ago
sachaaaaa
bbabeb34b8
Merge pull request #18 from sachaaaaa/mnemonic
...
Allow registering using a mnemonic word list
7 years ago
Scott Nonnenberg
a7d78c0e9b
Sealed Sender support
...
https://signal.org/blog/sealed-sender/
7 years ago
Beaudan
d4180b3ca6
Some syntax tidying up, plus fixed bug with message data not being a uint8array after IPC message
7 years ago
Scott Nonnenberg
739bd4dbda
Request contact sync only on the first connect after upgrade
7 years ago
Scott Nonnenberg
2060118e85
Remove messages/conversations/unprocessed IndexedDB object stores
7 years ago
Scott Nonnenberg
e39c999932
Import: Properly handle import with all empty non-convo stores
7 years ago
sachaaaaa
e1ffe582c3
Prompt user when an incoming friend request is received
7 years ago
sachaaaaa
143b1e883d
Merge pull request #17 from sachaaaaa/lock_input_friend_request
...
Lock input after friend request is sent
7 years ago
Scott Nonnenberg
1e562c8293
Properly handle avatar changes in group update messages
7 years ago
sachaaaaa
1ce29d77c3
Moved mnemonic to node side. Added sc_reduce32 (asm) to generate privkey. Moved mnemonic languages to separate files.
7 years ago
sachaaaaa
1cf8710127
Merge pull request #16 from sachaaaaa/friend_response
...
Handle prekeys in incoming friend request
7 years ago
sachaaaaa
a418a9d23b
allow registering using a mnemonic word list (seed used as privKey for now)
7 years ago
sachaaaaa
9370e2b74a
Merge branch 'master' of https://github.com/signalapp/Signal-Desktop into development
...
* 'master' of https://github.com/signalapp/Signal-Desktop : (38 commits)
v1.17.0
v1.17.0-beta.4
Ensure that blue group avatars are preserved in dark theme
Android theme: Incoming quotes take color from containing message
Conversations have blue avatar backgrounds if no image provided
Fix lint errors
Add ca language
inboxView: Ensure Conversation exists for our own number
Ensure that file is not attached if we've filtered it
v1.17.0-beta.3
Localization updates
v1.16.3
Lint fixes
Lint fixes
Better handle large numbers of messages in cache on startup
Keep object stores after conversations migrate to SQLCipher
Longer timeout for orphaned file cleanup
Tests and increase consistency for isFileDangerous calls
Longer timeout for orphaned file cleanup
v1.17.0-beta.2
...
# Conflicts:
# background.html
# package.json
7 years ago
Scott Nonnenberg
f21f83a163
Conversations have blue avatar backgrounds if no image provided
7 years ago
Beaudan
dfa8b59bc3
Using let and const properly, updated number to uint function, general cleaning
7 years ago
sachaaaaa
025d13a72b
Add keyId index for contact prekeys and allow retrieving prekeys for a specific pubkey and keyid
7 years ago
Beaudan
ee57c698d7
Client side proof of work attached to messages
...
Skeleton calcPoW function that prepares payload for hashingFunction to increment Uint8Array nonce
Util function for converting a number to its Uint8Array representation
Actually perform calculate PoW nonce for every message
Adding bytebuffer as dependency and updated package-lock
Move PoW to new file and execute it in child process
TODO: Move send message logic to callback after child process has finished calculating the PoW
Refactored nonce calculation to function to be awaited
More readable timestamp grab plus converted to seconds
Nonce is now returned as a base64 string and included in request header
Also converted timestamp and ttl to string when including them in the header
Added a couple comments and tidied up some nonce logic
7 years ago
sachaaaaa
5602f4bfff
Change placeholder in discussion
7 years ago
sachaaaaa
d4d0d05adf
Lock text input while waiting for friend request reply
7 years ago
sachaaaaa
886f47b8e7
Prekeys sending: first pass ( #12 )
...
* add 'recipient' attribute in prekey database to allow binding a prekey to a recipient pub key
* Attach a PreKeyBundleMessage to the ContentMessage in fallback encryption mode
* Skip generating 100 prekeys upon registration
* Store the signed key signature in database
7 years ago
Scott Nonnenberg
b9cc17b81a
inboxView: Ensure Conversation exists for our own number
7 years ago
Scott Nonnenberg
a24d9f9979
Ensure that file is not attached if we've filtered it
7 years ago
sachaaaaa
d5ef0cfb03
Revert changes and rename keysPending to keyExchangeCompleted
7 years ago
Scott Nonnenberg
7532f397ea
Keep object stores after conversations migrate to SQLCipher
7 years ago
Scott Nonnenberg
8edfbdcee5
Longer timeout for orphaned file cleanup
7 years ago
sachaaaaa
ecd300d68d
Change keysPending flag to keyExchangeStatus in conversation model
7 years ago
Scott Nonnenberg
7d9711ba65
Restore iOS-specific theme; colors on left in android theme
7 years ago
Scott Nonnenberg
ca61c9cb85
Warnings for dangerous files
7 years ago
Scott Nonnenberg
3b8f934741
On startup, if we've just upgraded to a new version, contact sync
7 years ago
Scott Nonnenberg
59d58aaab5
Allow GIFs larger than 6MB
7 years ago
sachaaaaa
6fe70b9b85
Send outgoing messages as raw bytes (Uint8Array) and moved recipient & ttl to header
7 years ago
Scott Nonnenberg
584e932891
Close recorder on switch away, only send after finish clicked
7 years ago
Scott Nonnenberg
f38410976d
Delete conversation external files on deletion
7 years ago
Scott Nonnenberg
2cfbfe477a
Better handle large numbers of messages in cache on startup
7 years ago
Scott Nonnenberg
a8e12d0771
Add user's avatar to the top left of the screen
7 years ago
Scott Nonnenberg
8f3e3b7aaf
Update to new design for avatars: individual/group icons/colors
...
And two initials.
7 years ago
Scott Nonnenberg
10c53bddb0
Move to new colors, switch incoming/outgoing colors
7 years ago
Scott Nonnenberg
cd60bdd08a
Move conversations to SQLCipher
7 years ago
sachaaaaa
d521795cf8
add helper to set the keysPending flag for a discussion
7 years ago
sachaaaaa
22a86b5351
store key bundle status in conversation model
7 years ago
sachaaaaa
33ad509fbf
Merge branch 'master' of https://github.com/signalapp/Signal-Desktop into development
...
# Conflicts:
# _locales/ar/messages.json
# _locales/es_419/messages.json
# _locales/he/messages.json
# _locales/hi/messages.json
# _locales/hr/messages.json
# _locales/kn/messages.json
# _locales/ko/messages.json
# _locales/mk/messages.json
# _locales/sr/messages.json
# _locales/uk/messages.json
# _locales/vi/messages.json
# package.json
7 years ago
Scott Nonnenberg
3464eb65b8
Keep conversation.lastMessage in memory
7 years ago
Scott Nonnenberg
814b9cf26a
Only accept 'you left group' messages when group blocked
7 years ago
Scott Nonnenberg
9c399624cc
Support for blocking groups on mobile, via group/blocked syncs
7 years ago
Scott Nonnenberg
46dac94ab8
Pop toast on attempted attach if image attachment is too large
7 years ago
Scott Nonnenberg
d0c4152d99
backup.js: Remove references to nonexistent i18n strings
7 years ago
Scott Nonnenberg
ea8e76d9de
MessageView: Only re-render on change of key conversation fields
7 years ago
Scott Nonnenberg
8584a79352
Don't treat sends to a group with unregistered users as an error
7 years ago
Scott Nonnenberg
998c35dcb3
Split configuration into low and high traffic files
...
Also, we're now handling config ourselves instead of using
electron-config and config dependencies.
7 years ago
sachaaaaa
a6b4215b1f
changed sendMessage request from PUT to POST
7 years ago
sachaaaaa
8bb7185c7a
make loki_message_api::sendMessage use async/await
7 years ago
sachaaaaa
bb65115d7d
Ensure the unique object id is stored in the object to facilitate deleting it later.
7 years ago
sachaaaaa
2f562ce9e1
Change contact prekeys in db to allow multiple entries for each contact
7 years ago
sachaaaaa
9e0319acb0
fix encrypting message by returning fake localRegistrationID (not sure what it's for)
7 years ago
sachaaaaa
0832806bd9
wip: added helper to create mock contacts, almost got a session working
7 years ago
sachaaaaa
258a89bc21
create contactPreKeys and contactSignedPreKeys in database, with load/store helpers (rerun migrations required)
7 years ago
sachaaaaa
e3cbf1caeb
rename IndexedDB database to 'loki-messenger'
7 years ago
sachaaaaa
b84ff76faf
Fix error handling when sending message + clean up in loki_message_api
7 years ago
sachaaaaa
2ae91752d3
skip fetching profiles when clicking on contact
7 years ago
sachaaaaa
8ada6ce8ad
serialize message as base64
7 years ago
sachaaaaa
1e14022e2f
Add skeleton for Loki Message API. Wrap data in json (for now?)
7 years ago
sachaaaaa
8f33419b52
Change pubkey representation to hex instead of base64
7 years ago
jcktm
09a0c46637
added identity key above the conversation box
7 years ago
sachaaaaa
c1d6e6113f
ValidateNumber now accepts pubkeys instead of phone numbers. This allows starting a conversation with a pubkey.
7 years ago
sachaaaaa
b043a469a2
Change regex that filters potentially valid contacts in search bar to match a pub key
7 years ago
sachaaaaa
1866aed432
Accomodate for upcoming signature in websocket connection header
7 years ago
sachaaaaa
187424f84a
Change HTTP header from X-Signal-Agent to X-Loki-Messenger-Agent.
7 years ago
Scott Nonnenberg
57d13dad57
data/removeMessage: no need for additional model instantiation
7 years ago
Scott Nonnenberg
02fbea96c0
Move base64 conversions off of the main thread
7 years ago
Scott Nonnenberg
911bc63c67
Move all arrayBuffer<->base64 functions to be async
7 years ago
sachaaaaa
9638639045
Bypass SMS verification
7 years ago
Scott Nonnenberg
37f3054976
Both UI timer and database timer will remove expired message
7 years ago
Scott Nonnenberg
9f920aa35b
Re-enable orphaned attachment cleanup
7 years ago
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
7 years ago
Scott Nonnenberg
a247ffe5cf
When iOS device has been linked, use iOS color scheme
7 years ago
Scott Nonnenberg
0eb2c958a5
Handle contact: don't exit early if timer is 'invalid'
7 years ago
Scott Nonnenberg
621883a0ce
Disable drag and drop if it's not a file attachment
7 years ago
Scott Nonnenberg
516a729a45
Additional logging for sql commands in debug mode
7 years ago
Scott Nonnenberg
7983300f4a
Use base64 strings for incoming message cache instead of binary
7 years ago
Scott Nonnenberg
9eefc0c29b
SettingsView: Fix logging
7 years ago
Scott Nonnenberg
8c8475076b
Data layer: return null if id not in database, not empty model
7 years ago
Scott Nonnenberg
c88df69094
New SQL indices and query tweaks to eliminate table scans
...
Also: New logging on client side to track performance of db queries
7 years ago
Scott Nonnenberg
e086d521f1
Increase the timeout for database updates
7 years ago
Scott Nonnenberg
ae6876a153
Ensure that error in handleDataMessage is treated as error
7 years ago
Scott Nonnenberg
727925a266
Clean up old messages, better handle errors from sending
7 years ago
Scott Nonnenberg
6e193456f9
Eliminate orphaned external message files on startup
...
Attachments, visual attachment thumbnails, video attachment screenshots
Quote thumbnails
Contact avatars
7 years ago
Scott Nonnenberg
44dec45995
Ensure that all messages in cache are migrated properly
7 years ago
Scott Nonnenberg
9ff80469a5
In partially-successful group send, don't start expire timer
7 years ago
Scott Nonnenberg
9ed1ee90f8
Move expiring message time earlier if read sync has earlier time
7 years ago
Scott Nonnenberg
a01db40e27
Ensure that a SQL command timeout results in an error
7 years ago
Scott Nonnenberg
4b3ddef955
Allow for 'error' status on incoming messages not just outgoing
7 years ago
Scott Nonnenberg
8180417611
Update conversation first on timer change to eliminate flicker
7 years ago
Scott Nonnenberg
22613c8cc4
Set disappearing check timer reliably - on all message saves
7 years ago
Scott Nonnenberg
3961778e53
Fixes for Chrome app import in this new SQLCipher world
7 years ago
Scott Nonnenberg
1d7987108b
Show and log progress during the SQLCipher migration
7 years ago
Scott Nonnenberg
1e8f71f035
Make settings and debug log available during initial migrations
7 years ago
Scott Nonnenberg
b1c6a5fe19
When updating message schema pre-SQLCipher, use legacy save
7 years ago
Scott Nonnenberg
0d13d437fe
Delete before forced bulk insert to fix broken migrations
7 years ago
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
7 years ago
Scott Nonnenberg
53b1b73909
Ensure back button appears when safety number screen shows
7 years ago
Scott Nonnenberg
aa4339a69f
Preserve migration state when deleting config due to failed login
7 years ago
Scott Nonnenberg
e9926b3a2a
Fix reference to i18n key: Unlinked -> unlinked
7 years ago
Scott Nonnenberg
d51b2b48d1
Workaround for not ending up at bottom of conversation
7 years ago
Scott Nonnenberg
8860e4c7fb
Update delivered/read message if already in collection
7 years ago
Scott Nonnenberg
02675312c5
Introduce mandatary migration on startup, to minimum version
7 years ago
Scott Nonnenberg
61f7b8360b
Conversation: store lastMessage/lastMessageStatus in memory only
7 years ago
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.
7 years ago
Scott Nonnenberg
34231168a7
On message delete, ensure that all external files are deleted
7 years ago
Scott Nonnenberg
e80857562a
Disappearing messages: show 'disabled' instead of 'set to off'
7 years ago
Scott Nonnenberg
1a01e38d5c
Show 'group updated' in left pane when we get info-free update
7 years ago
Scott Nonnenberg
80dd25e995
Preload all icon images to reduce flickering when they are used
7 years ago
Scott Nonnenberg
b7d5013558
Add verified notification and sync the verified status as well
7 years ago
Scott Nonnenberg
bffa910c64
Remove too-verbose logging on contact sync
7 years ago
Scott Nonnenberg
4b3f9e969a
Ensure a theme is selected on initial load
7 years ago
Scott Nonnenberg
573a26021b
file_input_view: Use makeVideoThumbnail on attach of video
7 years ago
Scott Nonnenberg
5933a34a18
Use window.log in browser context, turn on console eslint rule
7 years ago
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
7 years ago
Scott Nonnenberg
f2a63c99ed
Streamline code to clean logs based on version number
7 years ago
Scott Nonnenberg
12f1932d02
Workaround for linux w/tmp mounted as noexec; spellcheck fails ( #2548 )
7 years ago
Scott Nonnenberg
cea38b7bc4
Log clear error if we fail to retrieve debug log upload key
7 years ago
Scott Nonnenberg
2ef2235317
Show error if debug log upload fails
7 years ago
Scott Nonnenberg
4ca674edb2
Remove User-Agent from form to upload debug log
7 years ago
Scott Nonnenberg
b159a8d7c7
Update the user agent for debug log requests
7 years ago
Scott Nonnenberg
c517e4193b
New option: Disable spell check
7 years ago
Scott Nonnenberg
d5d6cdb250
Automatically clean up old debug info, remove unneeded field
7 years ago
Scott Nonnenberg
66bd6c826d
Fix MediaGallery handling of videos - show thumbnail and overlay
7 years ago
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.
7 years ago
Scott Nonnenberg
5e64e4ef40
Remove verbose updateLastMessage logging, fix MediaGallery save
7 years ago
Scott Nonnenberg
0ac3517d51
On click of search result, show and focus conversation
...
Also: remove too-verbose logging on contact sync
7 years ago
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
7 years ago
Scott Nonnenberg
6e4b73ec0c
Fix lint errors in conversation_view.js
7 years ago
Scott Nonnenberg
db91560990
Fixes for quotes/schema upgrade, optimize media gallery load
...
Also: Fix for contact detail page; didn't show back button
7 years ago
Scott Nonnenberg
60f61c804b
Fix reply to message w/attachment, dark theme quoted attachment
7 years ago
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.
7 years ago
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
7 years ago
Scott Nonnenberg
43a44793c5
Remove jshint - move everything over to eslint
...
Also removed all hints of previous linters
7 years ago
Scott Nonnenberg
dc11db92f9
New React component: Message
...
Also: Use react to render contects on the 'show group members' screen
7 years ago
Scott Nonnenberg
fc5c52fbdf
Remove iOS theme in favor of plain light/dark themes
7 years ago
Scott Nonnenberg
5823ae3951
Ensure disabled timer notification is 'to off' not 'to seconds'
7 years ago
Scott Nonnenberg
f5852bb357
Be resilient to null thrown errors so we can surface to user
7 years ago
Scott Nonnenberg
c54ba8d1fa
Ensure that notifications and auto-hide window settings are saved
7 years ago
Scott Nonnenberg
d8e5e5fcf2
Open separate windows with theme, update settings theme on change
7 years ago
Scott Nonnenberg
61d8a694b7
Remove temporary test logging
7 years ago
Scott Nonnenberg
212ec8bb73
Whenever user opens conversation, update its last message
7 years ago
Matthias Beaupère
6a611cbecf
Auto-scroll to selected conversation when reordering them ( #2498 )
...
When conversations are reordered (last message time has changed), this commit leads to scrolling the shortest distance to the conversation.
7 years ago
Scott Nonnenberg
e30b34f424
Add 'newmessage' event handler to Conversation for reliablity
7 years ago
Scott Nonnenberg
ad4387803b
New media permission, show dialog when not enabled for voice msg
...
UI now in separate renderer:
- the permissions popup
- settings dialog
- debug log dialog
- about window
Couple bug fixes:
- About Window: Fix 'escape' to close window
- Remove outdated dist/copy tasks from Gruntfile
Eslintified settings_view.js
7 years ago
Scott Nonnenberg
9d9a797bda
Handle timer updates along with group updates
7 years ago
Scott Nonnenberg
67464774c3
eslintify expiring_messages.js
7 years ago
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.
7 years ago
Scott Nonnenberg
a40a39314a
Disable notifications on new 'reconnect' event for laptop resume
7 years ago
Scott Nonnenberg
125c3fafa8
Idle detector: Fix bug preventing it from ever turning off ( #2487 )
7 years ago
Scott Nonnenberg
0abdd5ead1
Add missing await for thumbnail creation in makeQuote()
7 years ago
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`.
7 years ago
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
7 years ago
Scott Nonnenberg
8eeaad8e18
Remove unused export/import functionality
7 years ago
Scott Nonnenberg
1c23c6a9d7
Remove window.config in favor of window.getXXX() accessors
7 years ago
Scott Nonnenberg
5fca44d1b1
Send message: Pull expireTimer, recipients, dest before queueJob
7 years ago
Scott Nonnenberg
dfa1f0797c
Ensure timer updates show in convo before initiating message
7 years ago
Scott Nonnenberg
71d873ccfe
Ensure message expire timer start times are never in the future
7 years ago
Scott Nonnenberg
f3bd0cf903
Refactor api.js into web_api, which encapsulates all web access
7 years ago
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.
7 years ago
Scott Nonnenberg
9400d1a538
eslintify background.js
7 years ago
Scott Nonnenberg
34f423b52c
Remove unused code; move signal.js to js/modules for eslint
...
(noticed as I was doing this that signal.js doesn't get eslint coverage)
7 years ago
Scott Nonnenberg
ec3e36824c
Remove jscs from the project
7 years ago
Scott Nonnenberg
cfe0bd0e79
Move to npm for several dependencies
...
mustache
jQuery
underscore
backbone
mocha
chai
intl-tel-input
7 years ago
Scott Nonnenberg
01be58acc2
Remove formatting in importError localization string
7 years ago
Scott Nonnenberg
548c8e69cf
Emojification now all done with react via a few new components
...
Three locations were changed:
1. a group update, which lists a set of contacts
2. the contact name in the left pane
3. the conversation title
Three new components were added to window.Signal.Components to support
these scenarios, respectively:
1. Emojify
2. ContactName
3. ConversationTitle
Note that there are a number of other places in the app that should be
emojified, but never have been before. Essentially any place that a
contact name might be shown. A non-exhaustive list:
- Show group members
- Show safety number
- Verified change notification
- Disappearing timer change notification
- Contact verification notification
- Quote contact name
7 years ago
Scott Nonnenberg
a5416e42c4
Refactor all emoji utility methods into window.Signal.Emoji
7 years ago
Scott Nonnenberg
e2d044e02b
Filter file scheme; disable http, https and ftp entirely
7 years ago
Scott Nonnenberg
e02887565b
Update to electron v2.0.1 ( #2401 )
...
* Remove extra parenthesis causing warnings on latest chromium
* Update to electron 2.0.1
* Move all @types dependencies to devDependencies
* Update electron-builder/electron-updater
* Update to Node.js 8.9.3 to match Electron 2.0.1
7 years ago
Scott Nonnenberg
d54aedcefa
A few fixes for the contact detail screen ( #2374 )
...
* Only show 'send message' on contact detail when user has account
* Make contact detail headers visible in dark mode
* Fix vertical scrolling for very large contact in detail pane
* Fix a couple comment typos
7 years ago
Scott Nonnenberg
4e5c8965ff
Move to react for newlines, emoji, and links in message body
7 years ago
Scott Nonnenberg
c00c939148
Update link handling
7 years ago
Scott Nonnenberg
b1a54c416f
Notifications: All calls are debounced except for shutdown clear
7 years ago
Scott Nonnenberg
18a76ffb49
Debounce notifications so we don't orphan them
...
Creating/destroying notifications too quickly in testing on macOS would
result in them sticking around forever, requiring manual user dismissal.
We want to dismiss them for the user when we close or our window is
activated. So now we debounce() calls to our notifications code.
7 years ago
Daniel Gasienica
24002149f6
Log read sync reception and remove notification
7 years ago
Daniel Gasienica
d434262540
Remove last notification before creating new one
7 years ago
Scott Nonnenberg
80b069e9b6
Move phone number format/parse into ts/types/PhoneNumber
7 years ago
Scott Nonnenberg
93d3abbf8d
Use contact name when updating last message for a conversation
7 years ago
Scott Nonnenberg
aa13a2c6f7
Parse phone numbers into e164 as part of schema upgrade
7 years ago
Scott Nonnenberg
d2293d9592
parseAndWriteAvatar: Do shallow copy before omit() call
...
Otherwise, we get all prototype props/functions, which we can't save in IndexedDB
7 years ago
Daniel Gasienica
3bf8a8966a
Notification improvements
...
- Remove on read, on focus, and on exit.
- Show multi-message notifications like '5 new messages'.
7 years ago
Daniel Gasienica
e723484498
Simplify closing emoji panel on escape key down
7 years ago
tommypacker
48708d5738
Close emoji panel on escape press
7 years ago
Daniel Gasienica
16bc1d34c6
Message schema 6: Change classification of media and documents
...
For an easier implementation, we change our original definition of
`initializeAttachmentMetadata`. This means we have to re-run it marked as
version 6 and mark schema version 5 as deprecated as its definition has changed.
7 years ago
Daniel Gasienica
101041f106
Derive `Message.CURRENT_SCHEMA_VERSION`
7 years ago
Scott Nonnenberg
26be658892
Remove 'Contact' from 'Contact.*' properties, clean->parse
7 years ago
Scott Nonnenberg
cda326ca45
Use protobuf enum values to eliminate magic numbers
7 years ago
Scott Nonnenberg
adbe989949
validateContact: Return error instead of logging
7 years ago
Scott Nonnenberg
bb01218e83
MessageView: Get rid of 'let' for hasSignalAccount
7 years ago
Scott Nonnenberg
d0efccd121
A couple renames in contact.js
7 years ago
Scott Nonnenberg
420f81ebcd
Move contact migrate code from message.js to contact.js
7 years ago
Scott Nonnenberg
8beeef4d10
Show contact name when you reply to message with a contact
7 years ago
Scott Nonnenberg
9d1847a7e5
Pull all setup in preload.js into signal.js. goal: webpackable
7 years ago
Scott Nonnenberg
37821e5a1b
Wire up all contact behaviors, refactor Contact type/selector
7 years ago
Scott Nonnenberg
41be7f126b
Visuals for embedded contacts as well as contact detail screen
7 years ago
Scott Nonnenberg
3ea3e4e256
Contact sharing: protos and data pipeline
...
As of this commit: 82b76ccf37
7 years ago
Scott Nonnenberg
b6a585a646
MessageView: Add id from database to DOM for outgoing messages ( #2350 )
7 years ago
Daniel Gasienica
38f3ad6518
Use `SignalService` vs `textsecure` for protobuf
7 years ago
Daniel Gasienica
a0ddab669b
Organize `global`s
7 years ago
Daniel Gasienica
a86056630f
Use `Attachment.isVoiceMessage`
7 years ago
Daniel Gasienica
0121dc7a5a
Log notification grouping support
7 years ago
Daniel Gasienica
c2407c8906
Disable notification grouping on Windows 7
7 years ago
Daniel Gasienica
13f1ec2e51
Use structured logs
...
Easier to search for static prefix and fields are named.
7 years ago
Daniel Gasienica
0ce56eed87
Use structured log
7 years ago
Daniel Gasienica
5c8f734e67
Remove newlines from group IDs
7 years ago
Daniel Gasienica
ae7d6aa900
Log `Conversation::updateLastMessage`
7 years ago
Daniel Gasienica
a102016ed8
Port `Settings` and `OS` to TypeScript
7 years ago
Daniel Gasienica
c591c3ca55
Use native notifications on all platforms
7 years ago
Daniel Gasienica
4e6a03a91c
Log whether OS supports native notifications
7 years ago
Daniel Gasienica
1f2a2e1d52
Use `Notifications.getStatus`
7 years ago
Daniel Gasienica
5fe5320760
Rename `SETTINGS` to `SettingNames`
7 years ago
Daniel Gasienica
0701768fd7
Declare globals for `drawAttention` and `isFocused`
7 years ago
Daniel Gasienica
06e3f09732
ESLint: Add `js/notifications`
7 years ago
Daniel Gasienica
b510916ef5
Split `global`s into third-party and own
7 years ago
Daniel Gasienica
c40bd7e235
Remove unused `retryDescription` localized string
7 years ago
Scott Nonnenberg
754d65ae2e
Let's make it all pretty, shall we?
...
We missed a couple directories with previous attempts to turn this on
globally: app/ and libtextsecure/
Not to mention files in places we didn't expect: ts files that weren't
in the ts directory!
This turns prettier on for every file we care about (js, ts, tsx, md)
everywhere in the project but for a few key parts.
7 years ago
Daniel Gasienica
6eca5ee940
Document that JPEG auto-orient strips EXIF metadata
7 years ago
Daniel Gasienica
95321e5d3e
Remove Vim mode lines
7 years ago
Daniel Gasienica
822850433e
Apply manual fixes for ESLint errors
7 years ago
Daniel Gasienica
1dd87ad197
Format all source code using Prettier
7 years ago
Daniel Gasienica
e4baf27fa7
Increase migration conversion speed by a factor of 3x
7 years ago
Daniel Gasienica
50a0048bf2
Skip attachment migration for new users
7 years ago
Daniel Gasienica
6671228028
🎨 Format using ESLint
7 years ago
Daniel Gasienica
d5fdf50fae
Remove unused reference
7 years ago
Daniel Gasienica
fccbf70d57
Pre-process media for `LightboxGallery`
7 years ago
Daniel Gasienica
d00fb560b0
Avoid exposing `AttachmentTS`
7 years ago
Daniel Gasienica
86e48a5713
Implement background migration using index
7 years ago
Daniel Gasienica
e1b620602d
Display attachments from disk
7 years ago
Daniel Gasienica
e2a2165d9c
Remove lightbox on unload
7 years ago
Daniel Gasienica
21db2e7182
Use `saveURLAsFile`
7 years ago
Daniel Gasienica
36c609c2c3
Persist `has*Attachments` properties for incoming messages
7 years ago
Daniel Gasienica
3df8c22e44
Alphabetize `Message` properties
7 years ago
Daniel Gasienica
45d6c7a5a8
Implement video support in lightbox
7 years ago
Daniel Gasienica
ac04f0648a
Load more documents than media
7 years ago
Daniel Gasienica
b86f9c0be8
Allow saving of attachments from media gallery lightbox
7 years ago
Daniel Gasienica
b74b761255
Implement click to save for document list
7 years ago
Daniel Gasienica
41fe50553f
Replace Backbone `saveFile` with `Attachment.save`
7 years ago
Daniel Gasienica
954433366e
Load documents for media gallery
7 years ago
Daniel Gasienica
2a5f513ebc
Organize `global`s
7 years ago
Scott Nonnenberg
84c7a4c293
Move to some of our global utility methods
7 years ago
Scott Nonnenberg
403fb1fd60
Make algorithm for finding thumbnails more efficient
7 years ago
Scott Nonnenberg
27a30b3267
Respond to PR feedback
...
- makeThumbnail -> makeImageThumbnail
- duplicate 'display: flex'
- remove no-longer-applicable comment
7 years ago
Scott Nonnenberg
ac0b50d20f
Generate thumbnails for new video attachments, video quotes
7 years ago
Scott Nonnenberg
0e99ca61a2
eslintify file_input_view.js
7 years ago
Daniel Gasienica
bf3a547a76
Organize `global`s
7 years ago
Daniel Gasienica
f36f206a01
Use `IndexablePresence` for `hasFileAttachments` and `hasVisualMediaAttachments`
...
Reduces index size, makes it easier to debug using IndexedDB inspector, and
hopefully improves lookup performance.
7 years ago
Daniel Gasienica
8e3c38d5fe
Fix formatting
7 years ago
Daniel Gasienica
b65370c8d7
Prefer `GoogleChrome.is*` over `MIME.is*`
7 years ago
Daniel Gasienica
96be0df8c7
Show lightbox controls based on presence of handlers
7 years ago
Daniel Gasienica
9134701f7c
Move `filesize` from Bower to npm
7 years ago
Daniel Gasienica
86a9923181
Remove TODOs
7 years ago
Daniel Gasienica
204de3aaea
Lazily bind `Signal.Components.MediaGallery`
7 years ago
Daniel Gasienica
146178f977
Update schema documentation
7 years ago
Daniel Gasienica
b4a4182613
Hide ‘Save As…’ button in media gallery
...
Wait until we support it.
7 years ago
Daniel Gasienica
0d676a65b8
Open media gallery item in lightbox
7 years ago
Daniel Gasienica
ce825fbd66
Rename `save` to `onSave`
7 years ago
Daniel Gasienica
b0e1cc49a5
Remove legacy Backbone lightbox
7 years ago
Daniel Gasienica
86da80fd23
Wire up attachment saving
7 years ago
Daniel Gasienica
593976fe21
Extract Backbone Lightbox view module
7 years ago
Daniel Gasienica
3acdeb90c3
Make `ReactWrapperView` globals explicit
7 years ago
Daniel Gasienica
4a5a2cb5c1
Replace Backbone with React lightbox
7 years ago
Daniel Gasienica
4ce0472b9f
Extract `Message.loadWithObjectURL`
7 years ago
Daniel Gasienica
2dc3877fd4
Integrate visual media attachment gallery
7 years ago
Daniel Gasienica
082ef98a56
Add type definition for `deferredToPromise`
7 years ago
Daniel Gasienica
9d84b2f420
Index messages with attachments using a boolean
...
When indexing message attachment metadata using numeric indexes such as:
```javascript
{
conversationId: '+12223334455',
received_at: 123,
attachments: […],
numAttachments: 2,
},
{
conversationId: '+12223334455',
received_at: 456,
attachments: [],
numAttachments: 0,
}
{
conversationId: '+12223334455',
received_at: 789,
attachments: [],
numAttachments: 1,
}
```
It creates an index as follows:
```
[conversationId, received_at, numAttachments]
['+12223334455', 123, 2]
['+12223334455', 456, 0]
['+12223334455', 789, 1]
```
This means a query such as…
```
lowerBound: ['+12223334455', 0, 1 ]
upperBound: ['+12223334455', Number.MAX_VALUE, Number.MAX_VALUE]
```
…will return all three original entries because they span the `received_at`
from `0` through `Number.MAX_VALUE`. One workaround is to index booleans using
`1 | undefined` where `1` is included in the index and `undefined` is not, but
that way we lose the ability to query for the `false` value. Instead, we flip
adjust the index to `[conversationId, hasAttachments, received_at]` and can
then query messages with attachments using
```
[conversationId, 1 /* hasAttachments */, 0 /* received_at */]
[conversationId, 1 /* hasAttachments */, Number.MAX_VALUE /* received_at */]
```
7 years ago
Daniel Gasienica
f367a9b059
Move `private` method below `public` ones
7 years ago
Daniel Gasienica
d7b21ef5dc
Render attachments grouped by date
7 years ago
Daniel Gasienica
ae419764bf
Use arrow function over `.bind`
7 years ago
Daniel Gasienica
272c49c5bf
Use existing `ReactWrapper`
7 years ago
Daniel Gasienica
32a3ef518b
Render media gallery placeholder panel
7 years ago
Daniel Gasienica
5f220a7b2c
Add migration for media gallery indices
7 years ago
Daniel Gasienica
273248d3fd
Wire up ‘View All Media’ menu item
7 years ago
Daniel Gasienica
d14761087a
Add schema version 4: Attachment metadata
7 years ago
Daniel Gasienica
df2e6e7864
Port `MIME` module to TypeScript
7 years ago
Daniel Gasienica
6a63e427c8
Use `is` instead of Lodash `is*`
7 years ago
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
7 years ago
Scott Nonnenberg
b0b1dc6be8
Apply iOS theme after link
7 years ago
Scott Nonnenberg
c614c3968b
Enable the sending of quoted replies
7 years ago
Scott Nonnenberg
ef1d568a80
Restore rendering of group update and end session messages
...
The previous work to refactor bubbles broke rendering for these message
types. :0/
7 years ago
Scott Nonnenberg
bf81c3db63
Document Message v4, remove data-free thumbnails
7 years ago
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
7 years ago
Scott Nonnenberg
ba4b033db9
Disable sending of quoted replies for now
7 years ago
Scott Nonnenberg
21713cbce7
Update quotes to render emoji just like normal messages
7 years ago
Scott Nonnenberg
a7d44d3344
Backup and end-to-end test!
7 years ago
Scott Nonnenberg
d0bcf506b4
Put focus in the message composition field on reply
7 years ago
Scott Nonnenberg
978ff0e2bb
Refactor: Use correct name for sanitized filename in backup.js
7 years ago
Scott Nonnenberg
26dd01c4fd
Make sent quote clickable - process after adding to conversation
7 years ago
Scott Nonnenberg
73edabfb17
Full pipeline to send quotes, including thumbnail upload
7 years ago
Scott Nonnenberg
13ce056830
Make thumbnails on quote load and on quote preview creation
7 years ago
Scott Nonnenberg
12257e1560
MessageView: Show menu w/ 'reply to message' on triple-dot click
7 years ago
Scott Nonnenberg
f4d9ab8ba0
Put quote preview in text box for Android, above it in iOS
7 years ago
Scott Nonnenberg
d4220e278d
MessageView: Remove logging
7 years ago
Scott Nonnenberg
afad1a8d77
conversation_view: Remove logging in quote handling
7 years ago
Scott Nonnenberg
c71dcf0139
Show current quoted message above composition field
...
Note that substantial changes will be required for the updated Android
mockups, putting the quotation into the text box next to the attachment
preview.
7 years ago
Scott Nonnenberg
e66f9faf33
MessageView refactor: reply -> quote
7 years ago
Scott Nonnenberg
b4ff223d18
Refactor: Push selector logic for quote props into Message model
7 years ago
Scott Nonnenberg
d0b11c59f5
Eslintify conversation_view.js
7 years ago
Scott Nonnenberg
26e4e97592
Tighten up CSS
...
- Remove extra padding at top of Android bubbles, via sibling selector
- Don't include .attachments, .quote-wrapper, .content in bubble unless
we actually need them. This allows for sibling selectors.
- This is a different technique for adding the ReactWrapperView for
quotes - it is now appended to the DOM instead of attaching to
something already in the DOM. This allows us to use .remove(), so it's
a bit cleaner.
- Users of ReactWrapperView can now specify tagName and className
7 years ago
Scott Nonnenberg
30957341e4
Show three dot icon next to message on hover
...
But only if it doesn't have an error.
Also: reformatted message template in legacy_templates.js to match what
is in background.html for easier diffing.
7 years ago
Scott Nonnenberg
a563dc8b37
Style Guide: Additional message examples, a few fixes to enable
7 years ago
Scott Nonnenberg
000dc3a159
Handle attachment load failure for quoted message
7 years ago
Scott Nonnenberg
f1ff040842
Finish type definition for _mapQuotedAttachments
7 years ago
Scott Nonnenberg
4e9abdf348
MessageView: Call the proper render method on change event
7 years ago
Scott Nonnenberg
04d186c05a
Conversation.loadQuoteThumbnail: Be resilient to no attachments
7 years ago
Scott Nonnenberg
a6467d4fda
Constrain 'start recording' event listener to capture-audio only
...
(it was firing when clicking on a microphone icon in quotation!)
7 years ago
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
7 years ago
Scott Nonnenberg
c283ba1a12
Remove pointer cursor when clicking on quote won't do anything
7 years ago
Scott Nonnenberg
9ad55c803f
Fix handling attachment thumbnails using thumbnail key
7 years ago
Scott Nonnenberg
fce9bb7342
Move to central MIME functions, remove some console.log
...
And generally address PR feedback.
7 years ago
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!
7 years ago
Scott Nonnenberg
0100e279f5
MessageView: Make Quotes resilient to re-renders
7 years ago
Scott Nonnenberg
087dd0f758
Support for iOS theme
7 years ago
Scott Nonnenberg
fc330ef854
Quote loading: Check for in-memory message until we get one
7 years ago
Scott Nonnenberg
0f8dd7e2db
Fix a number of lint failures
7 years ago
Scott Nonnenberg
1cc0633786
Full support for quotations in Android theme
7 years ago
Scott Nonnenberg
5602241a0c
Eliminate eslint-generated triple-parents
7 years ago
Scott Nonnenberg
5c2936bdd6
Turns out that we call validateNumber() on group conversations!
7 years ago
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!
7 years ago
Scott Nonnenberg
33ef967dd7
Unleash eslint on models/conversations.js
7 years ago
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
7 years ago
Scott Nonnenberg
21bf02c94d
Fixed examples in Quote.md, rough Android visuals
7 years ago
Scott Nonnenberg
2def6afe45
message_view.js: eslint fixes and a bit of fixup
7 years ago
Scott Nonnenberg
ae043bf239
In iOS theme, join attachment bubble with caption bubble
7 years ago
Daniel Gasienica
5f8148d3da
Bind to `Conversation` lazily to prevent style guide errors
7 years ago
Daniel Gasienica
0902c94093
Reset last message after message has expired
...
Fixes #980 .
7 years ago
Daniel Gasienica
d7b845326d
ESLint auto-fix `link_text`
7 years ago
Daniel Gasienica
9d41b86162
Remove escaping from `linkText`
...
We leverage jQuery’s HTML escaping in `$.html(…)`.
7 years ago
Daniel Gasienica
f04c65088b
Fork `link-text` module
7 years ago
Daniel Gasienica
ac50713f86
Improve auto-linking of URLs in messages
...
Fixes #598 .
7 years ago
Daniel Gasienica
24f4ad53bc
Use single quotes for identifiers
7 years ago
Daniel Gasienica
432a6ebd7f
Redact file paths with escaped slashes
7 years ago
Daniel Gasienica
a8a7525609
Redact stack traces with forward and backslashes
7 years ago
Daniel Gasienica
b0da7d965e
Redact URL encoded file paths in stack traces
7 years ago
Daniel Gasienica
f2c9ccae90
Prefer `is.*` over Lodash `is*` functions
7 years ago
Daniel Gasienica
2ee78ec556
Prefer `path` over `Path`
7 years ago
Scott Nonnenberg
8467352994
Rename file for Whisper.ReactWrapperView ( #2232 )
7 years ago
Scott Nonnenberg
c6c3b65bbc
Introduce React, TypeScript, TSLint and React-StyleGuidist ( #2219 )
...
Quite a bit of change here.
First, the basics:
- New dependencies were added: react, typescript, tslint, and react-styleguidist
- A new npm script: transpile. It uses typescript to process .tsx files in js/react, putting .js files next to the original file. It's part of the watch functionality of grunt dev as well as the default task run with just grunt (used to build the app prior to release). A lighter-weight to get watch behavior when just working on React components is to run yarn transpile --watch.
- yarn run clean-transpile will remove generated .js files
Style guide via react-styleguidist. Example site: https://react-styleguidist.js.org/examples/basic/
- Start with yarn styleguide
- Component.md files right next to the .tsx file
- jsdoc-style comments are picked up and added to the generated part of the styleguide - the overall summary and a table listing methods and properties of the component
- It has hot-reloading!
- It uses webpack, which means that our app now pulls in webpack though we don't use it to generate anything for the production app.
- I did a bunch of work to enable the use of Backbone views in this context, which will allow us to move smoothly from the old world to the new. First, add all the permutations in the old way, and then slowly start to re-render those same views with React.
A bit of dependency cleanup to enable use in React components:
- moment was moved from our Bower dependencies to our npm dependencies, so it can be used in React components not running in a browser window.
- i18n was moved into the new commonjs format, so it can be used in React components even if window is not available.
Lastly, a bit of Gruntfile cleanup:
- Removal of Chrome App-era modifications of background.js
- Make jshint/jscs watch more targeted, since more and more we'll be using other tools
7 years ago
Scott Nonnenberg
23537546fe
Big refactor: ts/ directory for all typescript, including react
...
Split out test-specific and general utility react components too.
And moved our test/legacy* files for the Style Guide into a styleguide/
subdirectory of test/.
I think we'll be able to live in this directory structure for a while.
7 years ago
Scott Nonnenberg
50d4dbaae7
Remove 'use strict' from i18n.js
7 years ago
Scott Nonnenberg
76be13552f
js/i18n.js -> js/modules/i18n.js
7 years ago
Scott Nonnenberg
e5322e8261
Finish rename of MessageParents, re-add moment to page
...
(we were getting crashes in the initial setup of a backbone view)
7 years ago
Scott Nonnenberg
cdd16c9780
Rename test-only MessageParents to ConversationContext
7 years ago
Scott Nonnenberg
61a7846149
Fix typo in index.ts
7 years ago
Scott Nonnenberg
2384092e9e
Use Array.isArray in i18n.js
7 years ago
Scott Nonnenberg
23293a3c00
New tslint rule: Interfaces must not start with I
7 years ago
Scott Nonnenberg
1052341d79
Fix tslint errors and add tslint to CI task in package.json
7 years ago
Scott Nonnenberg
be91a89d68
Parse theme from querystring, put on util. Moment from require()
...
We also fully set up i18n and put it on util as well as making
it available on windows.i18n for Backbone views.
7 years ago
Scott Nonnenberg
887abd75dd
Add missing shim, fix typo
7 years ago
Scott Nonnenberg
ed12e1b076
Add mp3 to project, make binary files available in rsg on util
7 years ago
Scott Nonnenberg
3899eb8d0b
Add 'use strict' to i18n.js
7 years ago
Daniel Gasienica
195e9b777c
Rename `willHaveAttachmentsSavedOnFileSystemDuringUpgrade`
...
New name: `willAttachmentsGoToFileSystemOnUpgrade`
7 years ago
Daniel Gasienica
4c4443390a
Rename `createImporter` to `createAttachmentDataWriter`
7 years ago
Scott Nonnenberg
1326b26585
Full styleguide now available via `yarn styleguide`
...
Due to a number of hacks, the style guide can be used to show Backbone
views. This will allow a smooth path from the old way of doing things to
the new.
7 years ago
Scott Nonnenberg
893fb1cb9e
Introduce React/TypeScript/TSLint into app for new UI components
...
npm run transpile
Works on files under js/react/
Outputs files right next to the .tsx file
This is part of our `grunt dev` task, as well as the default grunt task,
which does everything else necessary to get a raw git checkout ready to
run.
7 years ago
Scott Nonnenberg
f86a6ef752
Update style of i18n, pull it in via preload instead of .html
7 years ago
Daniel Gasienica
5ea1a305a6
Clarify error origin
7 years ago