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
fca40cb548
Disable keyboard shortcut for conversation archive
2019-04-17 14:19:32 -07:00
Scott Nonnenberg
b31fbcaa17
Don't send if message body is too long
2019-04-16 14:35:16 -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
Derek Meer
7727dc093e
Hides the "Hide menu bar" option on MacOS ( #2903 )
...
The "Hide menu bar" option is only applicable to Windows and some Linux distros,
where the menu bar is attached to the Signal window. Therefore, this commit
ensures that it doesn't show up on MacOS. It includes a setting,
isHideMenuBarSupported(), to control the option's appearance. This
commit also includes the tests to make sure isHideMenuBarSupported()
works correctly.
Fixes #2705
2019-04-08 10:25:14 -07:00
Scott Nonnenberg
629dc8737b
Fix issue where 'delete messages' was not clickable second time
2019-04-05 17:18:37 -07:00
Scott Nonnenberg
c8ea2e9463
Download and install updates without the help of electron-updater
2019-04-05 17:18:37 -07:00
Scott Nonnenberg
81de5f9a76
Introduce CTRL-E shortcut for archiving a conversation
2019-04-04 17:17:19 -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
0c69d725c3
Ensure that we have all conversations in redux store
2019-03-28 17:23:09 -07:00
Scott Nonnenberg
3b140d9b51
Update react-contextmenu to avoid event handler issues un unload
2019-03-20 13:43:24 -07:00
Scott Nonnenberg
7cfd3870d5
Escape XML delimiters for notifications on linux
...
Thanks to @whitequark for pointing out an inconsistency in the way that
some Linux desktop environments were displaying markup in notifications.
2019-03-18 16:30:53 -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
0e5f405b53
Remove unnecessary 'tag' from Notification construction
2019-03-14 12:32:51 -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
d72f89d776
Render only visible conversations in left pane
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
bf904ddd12
On attachment save include date, include album index
2019-03-12 17:44:14 -07:00
Scott Nonnenberg
782516186f
Move expiring message cleanup after ConversationController.load()
2019-03-12 17:44:14 -07:00
Scott Nonnenberg
e68367fe0d
Remove reference to nonexistent view
2019-03-12 17:44:14 -07:00
Scott Nonnenberg
009c58749b
Don't continue to log if socket is returning unknown status
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
ba501a6df6
Fix ASM warnings in MP3 library
2019-03-12 17:44:14 -07:00
Scott Nonnenberg
fbda313d09
Add job details to attachment download log warning
2019-03-12 17:44:14 -07:00
Scott Nonnenberg
ae161c6cf6
Update to Electron 4.x
2019-03-12 17:44:14 -07:00
Scott Nonnenberg
667b2e63f1
Ensure image lightbox is aware of its underlying message changes
2019-03-12 17:44:14 -07:00
Scott Nonnenberg
ae2db9f09a
Improve handling for URLs composed of mixed character sets
2019-03-12 17:44:14 -07:00
Scott Nonnenberg
3917ab940e
web_api: Fix caching of https.agent objects between requests
2019-02-20 16:51:30 -08: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
5165eb3bd4
On database error: show popup, allow user to delete and relaunch
2019-02-20 16:51:30 -08:00
Scott Nonnenberg
3fb6ab295f
Debug log optimizations and improvements
2019-02-20 16:51:30 -08:00
Scott Nonnenberg
9afea3ae2b
View All Media: Listen for updates to conversation, re-render
2019-02-20 16:51:30 -08:00
Scott Nonnenberg
d4eacda649
Disable import/export outside of test mode; not currently used
2019-02-20 16:51:30 -08:00
Scott Nonnenberg
77ae717b9b
Clean up shutdown handling - stop processing incoming messages
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
1b9959aca3
Ensure outgoing attachment size always matches resized image
2019-02-13 16:04:58 -08:00
Scott Nonnenberg
28f96fe893
Ensure that we capture sender even if thrown error is falsey
2019-02-13 16:04:58 -08:00
Scott Nonnenberg
291e8d80cb
Fix asm.js errors in emscripten-generated functions
2019-02-13 16:04:58 -08:00
Scott Nonnenberg
5b54c9554e
Remove groups table, conversation is single source of truth
2019-02-13 16:04:58 -08:00
Scott Nonnenberg
041fe4be05
Remove JSON column and Backbone Model for unprocessed
2019-02-13 16:04:58 -08:00
Scott Nonnenberg
9c540ab977
Add cache support to Signal Protocol Store
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
858c7e629f
Fine-tune linkification technique for link previews
2019-02-11 18:32:05 -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
1a7df91dbc
Fix: Navigation to message via quote click didn't always work
2019-02-08 11:54:22 -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
92c071e083
Use the proper method for pulling attachments off disk for retry
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
374b9db493
Ensure that dialog pops up when permissions denied for voice note
2019-01-29 13:53:14 -08:00
Scott Nonnenberg
813924685e
Link Previews
2019-01-29 13:53:14 -08:00
Scott Nonnenberg
0eb4760349
Show contact name on 'send anyway' dialog instead of $name$
...
Partial fix for #1914
2019-01-29 13:53:14 -08:00
Scott Nonnenberg
1e4b562922
Multiple images can now be selected in file chooser and drag/drop
2019-01-16 10:32:57 -08:00
Scott Nonnenberg
74bbdb88a5
Lint fixes
2019-01-15 10:51:49 -08:00
Scott Nonnenberg
16a821645f
Preserve scroll position on toggle emoji panel, add attachment
2019-01-15 10:51:49 -08:00
Scott Nonnenberg
0de54e125c
Improve caption editor usability, new 'add attachment' affordance
2019-01-15 10:51:49 -08:00
Scott Nonnenberg
ac1a6d197a
Enable sending multiple images in one message
2019-01-15 07:51:06 -08:00
Scott Nonnenberg
7db7a3ad44
Preserve scroll position when adding/removing staged quote
2019-01-14 19:20:45 -08:00
Scott Nonnenberg
b08c10a547
FileInputView: Event on attachment change to hide/show microphone
2019-01-14 17:35:01 -08:00
Scott Nonnenberg
43e5d16020
Support for web socket communication with no signaling key
2019-01-14 10:32:12 -08:00
Scott Nonnenberg
b816638dea
Fix some of the notification avatar colors
2019-01-04 12:25:48 -08:00
Scott Nonnenberg
dc9f9dabfd
Ensure that caption is shown even for single-image message
2019-01-04 12:25:48 -08:00
Scott Nonnenberg
c0be4718fc
Update delivered_to for outgoing with earlier delivery receipts
2019-01-04 12:25:48 -08:00
Scott Nonnenberg
f9ea7be61f
Reintroduce single attachment limit
2019-01-04 12:25:48 -08:00
Scott Nonnenberg
985b1d6aa6
New staged attachments UI, multiple image attachments per message
2019-01-04 12:21:26 -08:00
Scott Nonnenberg
e4babdaef0
Updates to backup infrastructure
2019-01-04 12:21:26 -08:00
Scott Nonnenberg
47f834cf5c
Encrypt device name on account create, on first launch if needed
2019-01-04 12:21:26 -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
Herohtar
0b60af1c84
Don't compare a numeric value with a string when using the identity operator ( #2989 )
...
Fix comparison for emoji injection at cursor location
2019-01-02 12:22:47 -08:00
Scott Nonnenberg
3851bf351f
Throttle typing events, fix profile logging, fix group typing
2018-12-10 14:06:43 -08:00
Scott Nonnenberg
313d08344a
Request configuration sync on startup of new version
2018-11-28 12:35:26 -08:00
Scott Nonnenberg
a291834301
Dismiss typing indicator when ConversationView is not loaded
2018-11-26 17:09:50 -08:00
Scott Nonnenberg
70eed938d9
Store arrayBuffers in database for remote identity keys
2018-11-26 16:22:49 -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
a780fa3bab
Fix reference to nonexistent variable
2018-11-14 15:25:03 -08:00
Scott Nonnenberg
55c3d9371e
Bump sender certificate timer after registration for re-link
2018-11-13 09:44:30 -08:00
Scott Nonnenberg
ecf3f18762
Improve our deletion of IndexedDB post-SQLCipher migration
2018-11-12 15:31:17 -08:00
Scott Nonnenberg
6300256a3e
Gracefully shut down database operations before app exit
2018-11-12 15:31:17 -08:00
Scott Nonnenberg
c5f9fae444
A few small bugfixes
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
fb670ad6b9
Remove IndexedDB files after removing IndexedDB database
2018-11-01 17:00:24 -07: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
e08c5e3307
Add current message counter to the log to help with debugging
2018-11-01 17:00:24 -07:00
Scott Nonnenberg
9f647f00d8
A couple fixes for the data layer, legacy message upgrade/migrate
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
41dd78c073
On fetch of profileAvatar, set it to convo's profileAvatar field
2018-10-31 19:13:08 -07:00
Scott Nonnenberg
6628b73911
Only show database log entries if task takes longer than 10ms
2018-10-31 17:36:51 -07:00
Scott Nonnenberg
1755e0adfd
Move all remaining stores to SQLCipher
2018-10-31 17:36:51 -07:00
Scott Nonnenberg
7aa9031c7f
Import: Be resilient to deletions from importObject
2018-10-31 09:44:18 -07:00
Scott Nonnenberg
a7d78c0e9b
Sealed Sender support
...
https://signal.org/blog/sealed-sender/
2018-10-29 14:49:18 -07:00
Scott Nonnenberg
739bd4dbda
Request contact sync only on the first connect after upgrade
2018-10-26 14:58:33 -07:00
Scott Nonnenberg
2060118e85
Remove messages/conversations/unprocessed IndexedDB object stores
2018-10-26 14:58:33 -07:00
Scott Nonnenberg
e39c999932
Import: Properly handle import with all empty non-convo stores
2018-10-26 10:52:38 -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
b9cc17b81a
inboxView: Ensure Conversation exists for our own number
2018-10-17 17:17:01 -07:00
Scott Nonnenberg
a24d9f9979
Ensure that file is not attached if we've filtered it
2018-10-17 14:30:19 -07:00
Scott Nonnenberg
7532f397ea
Keep object stores after conversations migrate to SQLCipher
2018-10-15 12:24:43 -07:00
Scott Nonnenberg
8edfbdcee5
Longer timeout for orphaned file cleanup
2018-10-15 11:57:00 -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
3b8f934741
On startup, if we've just upgraded to a new version, contact sync
2018-10-09 13:48:03 -07:00
Scott Nonnenberg
59d58aaab5
Allow GIFs larger than 6MB
2018-10-09 13:47:36 -07:00
Scott Nonnenberg
584e932891
Close recorder on switch away, only send after finish clicked
2018-10-05 15:16:22 -07:00
Scott Nonnenberg
f38410976d
Delete conversation external files on deletion
2018-10-01 18:18:37 -07:00
Scott Nonnenberg
2cfbfe477a
Better handle large numbers of messages in cache on startup
2018-10-01 18:18:37 -07:00
Scott Nonnenberg
a8e12d0771
Add user's avatar to the top left of the screen
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
814b9cf26a
Only accept 'you left group' messages when group blocked
2018-09-17 15:58:27 -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
46dac94ab8
Pop toast on attempted attach if image attachment is too large
2018-09-05 17:48:43 -07:00
Scott Nonnenberg
d0c4152d99
backup.js: Remove references to nonexistent i18n strings
2018-09-05 14:17:38 -07:00
Scott Nonnenberg
ea8e76d9de
MessageView: Only re-render on change of key conversation fields
2018-09-05 14:17:38 -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
998c35dcb3
Split configuration into low and high traffic files
...
Also, we're now handling config ourselves instead of using
electron-config and config dependencies.
2018-08-29 10:40:16 -07:00
Scott Nonnenberg
57d13dad57
data/removeMessage: no need for additional model instantiation
2018-08-16 17:39:30 -07:00
Scott Nonnenberg
02fbea96c0
Move base64 conversions off of the main thread
2018-08-16 17:39:30 -07:00
Scott Nonnenberg
911bc63c67
Move all arrayBuffer<->base64 functions to be async
2018-08-16 17:01:32 -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
9f920aa35b
Re-enable orphaned attachment cleanup
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
a247ffe5cf
When iOS device has been linked, use iOS color scheme
2018-08-15 11:22:45 -07:00
Scott Nonnenberg
0eb2c958a5
Handle contact: don't exit early if timer is 'invalid'
2018-08-15 11:20:53 -07:00
Scott Nonnenberg
621883a0ce
Disable drag and drop if it's not a file attachment
2018-08-15 11:17:52 -07:00
Scott Nonnenberg
516a729a45
Additional logging for sql commands in debug mode
2018-08-10 13:13:25 -07:00
Scott Nonnenberg
7983300f4a
Use base64 strings for incoming message cache instead of binary
2018-08-10 13:13:25 -07:00
Scott Nonnenberg
9eefc0c29b
SettingsView: Fix logging
2018-08-10 12:18:48 -07:00
Scott Nonnenberg
8c8475076b
Data layer: return null if id not in database, not empty model
2018-08-09 16:09:41 -07:00
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
2018-08-09 10:11:12 -07:00
Scott Nonnenberg
e086d521f1
Increase the timeout for database updates
2018-08-09 10:11:12 -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
6e193456f9
Eliminate orphaned external message files on startup
...
Attachments, visual attachment thumbnails, video attachment screenshots
Quote thumbnails
Contact avatars
2018-08-06 18:08:10 -07:00
Scott Nonnenberg
44dec45995
Ensure that all messages in cache are migrated properly
2018-08-06 18:08:10 -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
a01db40e27
Ensure that a SQL command timeout results in an error
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
3961778e53
Fixes for Chrome app import in this new SQLCipher world
2018-08-02 17:32:51 -07:00
Scott Nonnenberg
1d7987108b
Show and log progress during the SQLCipher migration
2018-08-02 17:25:51 -07:00
Scott Nonnenberg
1e8f71f035
Make settings and debug log available during initial migrations
2018-08-02 17:19:56 -07:00
Scott Nonnenberg
b1c6a5fe19
When updating message schema pre-SQLCipher, use legacy save
2018-08-01 12:38:48 -07:00
Scott Nonnenberg
0d13d437fe
Delete before forced bulk insert to fix broken migrations
2018-07-31 19:52:10 -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
53b1b73909
Ensure back button appears when safety number screen shows
2018-07-27 11:07:23 -07:00
Scott Nonnenberg
aa4339a69f
Preserve migration state when deleting config due to failed login
2018-07-27 10:55:10 -07:00
Scott Nonnenberg
e9926b3a2a
Fix reference to i18n key: Unlinked -> unlinked
2018-07-27 10:55:10 -07:00
Scott Nonnenberg
d51b2b48d1
Workaround for not ending up at bottom of conversation
2018-07-27 10:55:10 -07:00
Scott Nonnenberg
8860e4c7fb
Update delivered/read message if already in collection
2018-07-27 10:55:10 -07:00
Scott Nonnenberg
02675312c5
Introduce mandatary migration on startup, to minimum version
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
80dd25e995
Preload all icon images to reduce flickering when they are used
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
bffa910c64
Remove too-verbose logging on contact sync
2018-07-21 14:52:43 -07:00
Scott Nonnenberg
4b3f9e969a
Ensure a theme is selected on initial load
2018-07-21 14:52:43 -07:00
Scott Nonnenberg
573a26021b
file_input_view: Use makeVideoThumbnail on attach of video
2018-07-21 14:52:43 -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
f2a63c99ed
Streamline code to clean logs based on version number
2018-07-20 15:49:51 -07:00
Scott Nonnenberg
12f1932d02
Workaround for linux w/tmp mounted as noexec; spellcheck fails ( #2548 )
2018-07-20 14:01:36 -07:00
Scott Nonnenberg
cea38b7bc4
Log clear error if we fail to retrieve debug log upload key
2018-07-19 11:07:36 -07:00
Scott Nonnenberg
2ef2235317
Show error if debug log upload fails
2018-07-19 10:21:53 -07:00
Scott Nonnenberg
4ca674edb2
Remove User-Agent from form to upload debug log
2018-07-19 09:15:57 -07:00
Scott Nonnenberg
b159a8d7c7
Update the user agent for debug log requests
2018-07-18 20:00:10 -07:00
Scott Nonnenberg
c517e4193b
New option: Disable spell check
2018-07-18 19:41:16 -07:00
Scott Nonnenberg
d5d6cdb250
Automatically clean up old debug info, remove unneeded field
2018-07-18 19:41:16 -07:00
Scott Nonnenberg
66bd6c826d
Fix MediaGallery handling of videos - show thumbnail and overlay
2018-07-18 19:40:07 -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
0ac3517d51
On click of search result, show and focus conversation
...
Also: remove too-verbose logging on contact sync
2018-07-18 11:40:10 -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
6e4b73ec0c
Fix lint errors in conversation_view.js
2018-07-18 09:44:14 -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
dc11db92f9
New React component: Message
...
Also: Use react to render contects on the 'show group members' screen
2018-07-17 15:53:33 -07:00
Scott Nonnenberg
fc5c52fbdf
Remove iOS theme in favor of plain light/dark themes
2018-07-17 15:45:40 -07:00
Scott Nonnenberg
5823ae3951
Ensure disabled timer notification is 'to off' not 'to seconds'
2018-07-13 09:55:12 -07:00
Scott Nonnenberg
f5852bb357
Be resilient to null thrown errors so we can surface to user
2018-07-13 08:59:18 -07:00
Scott Nonnenberg
c54ba8d1fa
Ensure that notifications and auto-hide window settings are saved
2018-07-13 08:58:35 -07:00
Scott Nonnenberg
d8e5e5fcf2
Open separate windows with theme, update settings theme on change
2018-07-13 08:57:30 -07:00
Scott Nonnenberg
61d8a694b7
Remove temporary test logging
2018-07-12 14:20:49 -07:00
Scott Nonnenberg
212ec8bb73
Whenever user opens conversation, update its last message
2018-07-12 11:33:59 -07:00
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.
2018-07-05 09:52:24 -07:00
Scott Nonnenberg
e30b34f424
Add 'newmessage' event handler to Conversation for reliablity
2018-07-05 09:32:14 -07:00
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
2018-07-03 16:04:21 -07:00
Scott Nonnenberg
9d9a797bda
Handle timer updates along with group updates
2018-07-03 16:04:21 -07:00
Scott Nonnenberg
67464774c3
eslintify expiring_messages.js
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
a40a39314a
Disable notifications on new 'reconnect' event for laptop resume
2018-07-03 15:06:58 -07:00
Scott Nonnenberg
125c3fafa8
Idle detector: Fix bug preventing it from ever turning off ( #2487 )
2018-07-03 15:02:58 -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
8eeaad8e18
Remove unused export/import functionality
2018-06-21 11:54:01 -07:00
Scott Nonnenberg
1c23c6a9d7
Remove window.config in favor of window.getXXX() accessors
2018-06-14 17:03:53 -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
f3bd0cf903
Refactor api.js into web_api, which encapsulates all web access
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
9400d1a538
eslintify background.js
2018-05-24 18:50:49 -07:00
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)
2018-05-23 16:26:48 -07:00
Scott Nonnenberg
ec3e36824c
Remove jscs from the project
2018-05-23 16:26:48 -07:00
Scott Nonnenberg
cfe0bd0e79
Move to npm for several dependencies
...
mustache
jQuery
underscore
backbone
mocha
chai
intl-tel-input
2018-05-23 16:26:48 -07:00
Scott Nonnenberg
01be58acc2
Remove formatting in importError localization string
2018-05-23 16:26:48 -07:00
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
2018-05-23 16:26:47 -07:00
Scott Nonnenberg
a5416e42c4
Refactor all emoji utility methods into window.Signal.Emoji
2018-05-23 16:26:47 -07:00
Scott Nonnenberg
e2d044e02b
Filter file scheme; disable http, https and ftp entirely
2018-05-23 16:26:40 -07:00
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
2018-05-23 12:17:58 -07:00
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
2018-05-23 12:15:46 -07:00
Scott Nonnenberg
4e5c8965ff
Move to react for newlines, emoji, and links in message body
2018-05-14 16:09:37 -07:00
Scott Nonnenberg
c00c939148
Update link handling
2018-05-11 13:49:06 -07:00
Scott Nonnenberg
b1a54c416f
Notifications: All calls are debounced except for shutdown clear
2018-05-10 17:27:22 -07:00
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.
2018-05-10 17:07:42 -07:00
Daniel Gasienica
24002149f6
Log read sync reception and remove notification
2018-05-10 17:06:11 -04:00
Daniel Gasienica
d434262540
Remove last notification before creating new one
2018-05-10 17:06:11 -04:00
Scott Nonnenberg
80b069e9b6
Move phone number format/parse into ts/types/PhoneNumber
2018-05-10 11:54:58 -07:00
Scott Nonnenberg
93d3abbf8d
Use contact name when updating last message for a conversation
2018-05-10 11:54:58 -07:00
Scott Nonnenberg
aa13a2c6f7
Parse phone numbers into e164 as part of schema upgrade
2018-05-10 11:54:58 -07:00
Scott Nonnenberg
d2293d9592
parseAndWriteAvatar: Do shallow copy before omit() call
...
Otherwise, we get all prototype props/functions, which we can't save in IndexedDB
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
Daniel Gasienica
e723484498
Simplify closing emoji panel on escape key down
2018-05-08 17:30:11 -04:00
tommypacker
48708d5738
Close emoji panel on escape press
2018-05-08 17:25:20 -04:00
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.
2018-05-08 16:41:07 -04:00
Daniel Gasienica
101041f106
Derive Message.CURRENT_SCHEMA_VERSION
2018-05-08 16:41:06 -04:00
Scott Nonnenberg
26be658892
Remove 'Contact' from 'Contact.*' properties, clean->parse
2018-05-08 13:12:11 -07:00
Scott Nonnenberg
cda326ca45
Use protobuf enum values to eliminate magic numbers
2018-05-08 11:14:56 -07:00
Scott Nonnenberg
adbe989949
validateContact: Return error instead of logging
2018-05-08 10:31:16 -07:00
Scott Nonnenberg
bb01218e83
MessageView: Get rid of 'let' for hasSignalAccount
2018-05-08 10:11:40 -07:00
Scott Nonnenberg
d0efccd121
A couple renames in contact.js
2018-05-08 09:59:25 -07:00
Scott Nonnenberg
420f81ebcd
Move contact migrate code from message.js to contact.js
2018-05-08 09:48:47 -07: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
9d1847a7e5
Pull all setup in preload.js into signal.js. goal: webpackable
2018-05-07 19:30:49 -07:00
Scott Nonnenberg
37821e5a1b
Wire up all contact behaviors, refactor Contact type/selector
2018-05-07 19:11:35 -07:00
Scott Nonnenberg
41be7f126b
Visuals for embedded contacts as well as contact detail screen
2018-05-07 19:09:55 -07:00
Scott Nonnenberg
3ea3e4e256
Contact sharing: protos and data pipeline
...
As of this commit: 82b76ccf37
2018-05-07 19:09:55 -07:00
Scott Nonnenberg
b6a585a646
MessageView: Add id from database to DOM for outgoing messages ( #2350 )
2018-05-07 19:08:45 -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
a86056630f
Use Attachment.isVoiceMessage
2018-05-07 21:53:39 -04:00
Daniel Gasienica
0121dc7a5a
Log notification grouping support
2018-05-04 15:37:46 -04:00
Daniel Gasienica
c2407c8906
Disable notification grouping on Windows 7
2018-05-04 15:37:46 -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
5c8f734e67
Remove newlines from group IDs
2018-05-03 13:24:39 -04:00
Daniel Gasienica
ae7d6aa900
Log Conversation::updateLastMessage
2018-05-03 13:24:38 -04:00
Daniel Gasienica
a102016ed8
Port Settings
and OS
to TypeScript
2018-05-02 20:01:57 -04:00
Daniel Gasienica
c591c3ca55
Use native notifications on all platforms
2018-05-02 19:58:33 -04:00
Daniel Gasienica
4e6a03a91c
Log whether OS supports native notifications
2018-05-02 19:18:34 -04:00
Daniel Gasienica
1f2a2e1d52
Use Notifications.getStatus
2018-05-02 19:18:34 -04:00
Daniel Gasienica
5fe5320760
Rename SETTINGS
to SettingNames
2018-05-02 19:18:33 -04:00
Daniel Gasienica
0701768fd7
Declare globals for drawAttention
and isFocused
2018-05-02 19:18:33 -04:00
Daniel Gasienica
06e3f09732
ESLint: Add js/notifications
2018-05-02 19:18:33 -04:00
Daniel Gasienica
b510916ef5
Split global
s into third-party and own
2018-05-02 19:18:33 -04:00
Daniel Gasienica
c40bd7e235
Remove unused retryDescription
localized string
2018-05-02 18:11:13 -04:00
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.
2018-05-02 13:40:57 -07:00
Daniel Gasienica
6eca5ee940
Document that JPEG auto-orient strips EXIF metadata
2018-04-30 19:05:10 -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
e4baf27fa7
Increase migration conversion speed by a factor of 3x
2018-04-30 16:51:14 -04:00
Daniel Gasienica
50a0048bf2
Skip attachment migration for new users
2018-04-30 13:59:43 -04:00
Daniel Gasienica
6671228028
🎨 Format using ESLint
2018-04-30 13:59:43 -04:00
Daniel Gasienica
d5fdf50fae
Remove unused reference
2018-04-30 13:52:00 -04:00
Daniel Gasienica
fccbf70d57
Pre-process media for LightboxGallery
2018-04-30 11:59:26 -04:00
Daniel Gasienica
d00fb560b0
Avoid exposing AttachmentTS
2018-04-27 16:31:43 -04:00
Daniel Gasienica
86e48a5713
Implement background migration using index
2018-04-27 16:31:43 -04:00
Daniel Gasienica
e1b620602d
Display attachments from disk
2018-04-27 16:31:43 -04:00
Daniel Gasienica
e2a2165d9c
Remove lightbox on unload
2018-04-27 16:31:43 -04:00
Daniel Gasienica
21db2e7182
Use saveURLAsFile
2018-04-27 16:31:43 -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
Daniel Gasienica
45d6c7a5a8
Implement video support in lightbox
2018-04-27 16:31:42 -04:00
Daniel Gasienica
ac04f0648a
Load more documents than media
2018-04-27 16:31:42 -04:00
Daniel Gasienica
b86f9c0be8
Allow saving of attachments from media gallery lightbox
2018-04-27 16:31:42 -04:00
Daniel Gasienica
b74b761255
Implement click to save for document list
2018-04-27 16:31:42 -04:00
Daniel Gasienica
41fe50553f
Replace Backbone saveFile
with Attachment.save
2018-04-27 16:31:42 -04:00
Daniel Gasienica
954433366e
Load documents for media gallery
2018-04-27 16:31:42 -04:00
Daniel Gasienica
2a5f513ebc
Organize global
s
2018-04-27 16:31:42 -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
Scott Nonnenberg
0e99ca61a2
eslintify file_input_view.js
2018-04-25 15:06:27 -07:00
Daniel Gasienica
bf3a547a76
Organize global
s
2018-04-25 15:28:56 -04:00
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.
2018-04-25 15:25:12 -04:00
Daniel Gasienica
8e3c38d5fe
Fix formatting
2018-04-25 15:25:12 -04:00
Daniel Gasienica
b65370c8d7
Prefer GoogleChrome.is*
over MIME.is*
2018-04-25 15:25:12 -04:00
Daniel Gasienica
96be0df8c7
Show lightbox controls based on presence of handlers
2018-04-25 15:24:52 -04:00
Daniel Gasienica
9134701f7c
Move filesize
from Bower to npm
2018-04-25 15:24:52 -04:00
Daniel Gasienica
86a9923181
Remove TODOs
2018-04-25 15:24:52 -04:00
Daniel Gasienica
204de3aaea
Lazily bind Signal.Components.MediaGallery
2018-04-25 15:24:52 -04:00
Daniel Gasienica
146178f977
Update schema documentation
2018-04-25 15:24:51 -04:00
Daniel Gasienica
b4a4182613
Hide ‘Save As…’ button in media gallery
...
Wait until we support it.
2018-04-25 15:24:51 -04:00
Daniel Gasienica
0d676a65b8
Open media gallery item in lightbox
2018-04-25 15:24:51 -04:00
Daniel Gasienica
ce825fbd66
Rename save
to onSave
2018-04-25 15:24:51 -04:00
Daniel Gasienica
b0e1cc49a5
Remove legacy Backbone lightbox
2018-04-25 15:24:51 -04:00
Daniel Gasienica
86da80fd23
Wire up attachment saving
2018-04-25 15:24:51 -04:00
Daniel Gasienica
593976fe21
Extract Backbone Lightbox view module
2018-04-25 15:24:51 -04:00
Daniel Gasienica
3acdeb90c3
Make ReactWrapperView
globals explicit
2018-04-25 15:24:51 -04:00
Daniel Gasienica
4a5a2cb5c1
Replace Backbone with React lightbox
2018-04-25 15:24:51 -04:00
Daniel Gasienica
4ce0472b9f
Extract Message.loadWithObjectURL
2018-04-25 15:24:51 -04:00
Daniel Gasienica
2dc3877fd4
Integrate visual media attachment gallery
2018-04-25 15:24:51 -04:00
Daniel Gasienica
082ef98a56
Add type definition for deferredToPromise
2018-04-25 15:24:51 -04:00
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 */]
```
2018-04-25 15:24:51 -04:00
Daniel Gasienica
f367a9b059
Move private
method below public
ones
2018-04-25 15:24:51 -04:00
Daniel Gasienica
d7b21ef5dc
Render attachments grouped by date
2018-04-25 15:24:51 -04:00
Daniel Gasienica
ae419764bf
Use arrow function over .bind
2018-04-25 15:24:51 -04:00
Daniel Gasienica
272c49c5bf
Use existing ReactWrapper
2018-04-25 15:24:50 -04:00
Daniel Gasienica
32a3ef518b
Render media gallery placeholder panel
2018-04-25 15:24:50 -04:00
Daniel Gasienica
5f220a7b2c
Add migration for media gallery indices
2018-04-25 15:24:50 -04:00
Daniel Gasienica
273248d3fd
Wire up ‘View All Media’ menu item
2018-04-25 15:24:50 -04:00
Daniel Gasienica
d14761087a
Add schema version 4: Attachment metadata
2018-04-25 15:24:50 -04:00
Daniel Gasienica
df2e6e7864
Port MIME
module to TypeScript
2018-04-25 15:24:50 -04:00
Daniel Gasienica
6a63e427c8
Use is
instead of Lodash is*
2018-04-25 15:24:50 -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
b0b1dc6be8
Apply iOS theme after link
2018-04-24 18:32:47 -07:00
Scott Nonnenberg
c614c3968b
Enable the sending of quoted replies
2018-04-24 14:46:00 -07:00
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/
2018-04-23 19:16:00 -07:00
Scott Nonnenberg
bf81c3db63
Document Message v4, remove data-free thumbnails
2018-04-23 16:43:25 -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
ba4b033db9
Disable sending of quoted replies for now
2018-04-20 15:26:44 -07:00
Scott Nonnenberg
21713cbce7
Update quotes to render emoji just like normal messages
2018-04-20 15:24:05 -07:00
Scott Nonnenberg
a7d44d3344
Backup and end-to-end test!
2018-04-20 15:24:04 -07:00
Scott Nonnenberg
d0bcf506b4
Put focus in the message composition field on reply
2018-04-20 15:24:03 -07:00
Scott Nonnenberg
978ff0e2bb
Refactor: Use correct name for sanitized filename in backup.js
2018-04-20 15:24:02 -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
12257e1560
MessageView: Show menu w/ 'reply to message' on triple-dot click
2018-04-20 15:23:55 -07:00
Scott Nonnenberg
f4d9ab8ba0
Put quote preview in text box for Android, above it in iOS
2018-04-20 15:23:54 -07:00
Scott Nonnenberg
d4220e278d
MessageView: Remove logging
2018-04-20 15:23:53 -07:00
Scott Nonnenberg
afad1a8d77
conversation_view: Remove logging in quote handling
2018-04-20 15:23:52 -07:00
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.
2018-04-20 15:23:51 -07:00
Scott Nonnenberg
e66f9faf33
MessageView refactor: reply -> quote
2018-04-20 15:23:51 -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
d0b11c59f5
Eslintify conversation_view.js
2018-04-20 15:23:49 -07:00
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
2018-04-20 15:23:47 -07:00
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.
2018-04-20 15:23:47 -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
f1ff040842
Finish type definition for _mapQuotedAttachments
2018-04-16 12:16:34 -07:00
Scott Nonnenberg
4e9abdf348
MessageView: Call the proper render method on change event
2018-04-13 18:44:19 -07:00
Scott Nonnenberg
04d186c05a
Conversation.loadQuoteThumbnail: Be resilient to no attachments
2018-04-13 18:10:52 -07:00
Scott Nonnenberg
a6467d4fda
Constrain 'start recording' event listener to capture-audio only
...
(it was firing when clicking on a microphone icon in quotation!)
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
c283ba1a12
Remove pointer cursor when clicking on quote won't do anything
2018-04-13 18:10:51 -07:00
Scott Nonnenberg
9ad55c803f
Fix handling attachment thumbnails using thumbnail key
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
0100e279f5
MessageView: Make Quotes resilient to re-renders
2018-04-13 18:10:50 -07:00
Scott Nonnenberg
087dd0f758
Support for iOS theme
2018-04-13 18:10:49 -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
0f8dd7e2db
Fix a number of lint failures
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
Scott Nonnenberg
21bf02c94d
Fixed examples in Quote.md, rough Android visuals
2018-04-13 18:05:44 -07:00
Scott Nonnenberg
2def6afe45
message_view.js: eslint fixes and a bit of fixup
2018-04-13 18:05:43 -07:00
Scott Nonnenberg
ae043bf239
In iOS theme, join attachment bubble with caption bubble
2018-04-13 18:05:42 -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
d7b845326d
ESLint auto-fix link_text
2018-04-11 16:36:42 -04:00
Daniel Gasienica
9d41b86162
Remove escaping from linkText
...
We leverage jQuery’s HTML escaping in `$.html(…)`.
2018-04-11 16:36:42 -04:00
Daniel Gasienica
f04c65088b
Fork link-text
module
2018-04-11 16:36:42 -04:00
Daniel Gasienica
ac50713f86
Improve auto-linking of URLs in messages
...
Fixes #598 .
2018-04-11 16:36:42 -04:00
Daniel Gasienica
24f4ad53bc
Use single quotes for identifiers
2018-04-11 15:54:32 -04:00
Daniel Gasienica
432a6ebd7f
Redact file paths with escaped slashes
2018-04-11 15:30:59 -04:00
Daniel Gasienica
a8a7525609
Redact stack traces with forward and backslashes
2018-04-11 15:30:59 -04:00
Daniel Gasienica
b0da7d965e
Redact URL encoded file paths in stack traces
2018-04-11 15:30:59 -04:00
Daniel Gasienica
f2c9ccae90
Prefer is.*
over Lodash is*
functions
2018-04-11 15:30:59 -04:00
Daniel Gasienica
2ee78ec556
Prefer path
over Path
2018-04-11 15:30:59 -04:00
Scott Nonnenberg
8467352994
Rename file for Whisper.ReactWrapperView ( #2232 )
2018-04-11 09:30:28 -07:00
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
2018-04-06 08:13:00 -07:00
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.
2018-04-05 15:30:40 -07:00
Scott Nonnenberg
50d4dbaae7
Remove 'use strict' from i18n.js
2018-04-05 13:42:41 -07:00
Scott Nonnenberg
76be13552f
js/i18n.js -> js/modules/i18n.js
2018-04-05 12:51:29 -07:00
Scott Nonnenberg
e5322e8261
Finish rename of MessageParents, re-add moment to page
...
(we were getting crashes in the initial setup of a backbone view)
2018-04-05 12:50:52 -07:00
Scott Nonnenberg
cdd16c9780
Rename test-only MessageParents to ConversationContext
2018-04-05 12:41:48 -07:00
Scott Nonnenberg
61a7846149
Fix typo in index.ts
2018-04-05 12:39:34 -07:00
Scott Nonnenberg
2384092e9e
Use Array.isArray in i18n.js
2018-04-05 12:39:16 -07:00
Scott Nonnenberg
23293a3c00
New tslint rule: Interfaces must not start with I
2018-04-05 12:24:43 -07:00
Scott Nonnenberg
1052341d79
Fix tslint errors and add tslint to CI task in package.json
2018-04-05 08:37:04 -07:00
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.
2018-04-05 08:31:43 -07:00
Scott Nonnenberg
887abd75dd
Add missing shim, fix typo
2018-04-05 08:31:19 -07:00
Scott Nonnenberg
ed12e1b076
Add mp3 to project, make binary files available in rsg on util
2018-04-05 08:30:30 -07:00
Scott Nonnenberg
3899eb8d0b
Add 'use strict' to i18n.js
2018-04-04 16:30:52 -07:00
Daniel Gasienica
195e9b777c
Rename willHaveAttachmentsSavedOnFileSystemDuringUpgrade
...
New name: `willAttachmentsGoToFileSystemOnUpgrade`
2018-04-04 19:11:46 -04:00
Daniel Gasienica
4c4443390a
Rename createImporter
to createAttachmentDataWriter
2018-04-04 19:11:46 -04:00
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.
2018-04-04 16:08:38 -07:00
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.
2018-04-04 16:08:27 -07:00
Scott Nonnenberg
f86a6ef752
Update style of i18n, pull it in via preload instead of .html
2018-04-04 16:03:10 -07:00
Daniel Gasienica
5ea1a305a6
Clarify error origin
2018-04-04 18:41:50 -04:00
Daniel Gasienica
9dcb64b53c
Initialize schema version upon import
2018-04-04 18:41:50 -04:00
Daniel Gasienica
cfad983d08
Consistently use ciphertext
instead of encrypted
2018-04-04 18:41:50 -04:00
Daniel Gasienica
a61c905146
Impliclity decrypt data if key
is present
2018-04-04 18:41:50 -04:00
Daniel Gasienica
94c75762b5
Add Message.createAttachmentLoader
2018-04-04 18:41:50 -04:00
Daniel Gasienica
43ab320d31
Load attachments before writing them upon export
2018-04-04 18:41:50 -04:00
Daniel Gasienica
7eeabb5b1a
Add precondition for writeAttachment
2018-04-04 18:41:50 -04:00
Daniel Gasienica
0faaf52b71
Import and upgrade messages upon save
2018-04-04 18:41:50 -04:00
Daniel Gasienica
cf7355bd2f
Rename backupToDirectory
to exportToDirectory
...
For symmetry reasons.
2018-04-04 18:41:50 -04:00
Daniel Gasienica
bf67254cc5
Add Message.createImporter
2018-04-04 18:41:50 -04:00
Daniel Gasienica
efd673083d
Rename writeAttachmentData
to writeNewAttachmentData
2018-04-04 18:41:50 -04:00
Daniel Gasienica
bcbd526b99
Sync read receipt configuration upon relink
...
Fixes https://github.com/signalapp/Signal-Android/issues/7535 .
2018-04-04 18:12:25 -04:00
Daniel Gasienica
ce8fe0d345
Add Signal.Startup
module
2018-04-04 18:10:52 -04:00
colefranz
fe0306e6be
issue-2023: move opened event out of selected conversation check
...
Going through the git history the existing logic of "dont do this if
it's already selected" was just for audio or video QOL enhancements to
not stop playing when the same conversation is selected.
2018-04-04 15:42:13 -04:00
Daniel Gasienica
8474f3cf7f
Use create*
prefix to clarify curried functions
2018-04-03 15:25:24 -04:00
Daniel Gasienica
12cdeee7ec
Rename count
to numMessagesPerBatch
2018-04-03 14:43:17 -04:00
Daniel Gasienica
38ac9972e8
Improve termination condition
2018-04-03 13:16:05 -04:00
Daniel Gasienica
5b1a0c45df
Replace getAll
with cursor
...
This reduces the likelihood of IPC message size error.
2018-04-03 13:16:05 -04:00
Daniel Gasienica
ed77378293
Fix bug in termination condition
2018-04-03 12:30:13 -04:00
Daniel Gasienica
052fb841f6
Allow database name override in migrations
2018-04-03 11:45:10 -04:00
Daniel Gasienica
1e04083813
Support database upgrades in Database.open
2018-04-03 11:44:50 -04:00
Daniel Gasienica
f50ac1c99e
Reduce excessive logging about database status
2018-04-03 11:06:56 -04:00
Daniel Gasienica
77b1f3c505
Replace startup with attachment background migration
...
Iterates through `Message::id` index.
2018-04-02 20:07:07 -04:00
Daniel Gasienica
c853d1bccd
Remove whole database migrations
...
We should enable this when we are willing to run attachment migration
on startup.
2018-04-02 19:41:30 -04:00
Daniel Gasienica
057762806e
Add support for attachment background migration without index
2018-04-02 19:41:28 -04:00
Daniel Gasienica
32ac99b439
Prefer ISO date formatting
...
Previously, this was formatted using locale specific settings. This will allow
easier debugging by matching key rotation timestamps against log timestamps.
2018-04-02 18:57:58 -04:00
Daniel Gasienica
2e4893f4c1
Clarify implications of introducing new migrations
2018-04-02 18:54:51 -04:00
Daniel Gasienica
7413b787b6
Make migrations
private
2018-04-02 18:54:28 -04:00
Daniel Gasienica
b07c66eaa7
Generate attachments from local files
...
This ensures our benchmarking is closer to real-world usage, e.g. images, video,
etc. that are not compressible.
2018-04-02 17:58:37 -04:00
Daniel Gasienica
064a40544c
Fix error message formatting
2018-04-02 17:42:04 -04:00
Daniel Gasienica
442f5d7295
Use done
to match JavaScript iterators
...
See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators
2018-04-02 17:42:04 -04:00
Daniel Gasienica
a4f0c5242f
Document why batch size is one
2018-04-02 17:42:04 -04:00
Daniel Gasienica
d59fdddb43
Improve storage.fetch
error message
2018-04-02 17:42:04 -04:00
Daniel Gasienica
805031ade8
Conditionally run post-attachment migrations
...
Introduce placeholder migrations for Backbone models so they never implicitly
run migrations whenever they are `fetch`ed. We prefer to run our migrations
explicitly upon app startup and then let Backbone models be (slightly) dumb(er)
models, without inadvertently triggering migrations.
2018-04-02 17:42:04 -04:00
Daniel Gasienica
bfbeedab5c
Temporarily disable post-attachment migration migrations
2018-04-02 15:26:24 -04:00
Daniel Gasienica
d9be6a0f94
Destructure Lodash require
s
2018-04-02 15:12:04 -04:00
Daniel Gasienica
b7b6195cfc
Extract IIFE into separate function
2018-04-02 12:17:36 -04:00
Daniel Gasienica
11f98474ba
Capture how many messages we have to process
2018-04-02 12:17:36 -04:00
Daniel Gasienica
0fdc1140dd
Add Database.getCount
function
2018-04-02 12:17:36 -04:00
Daniel Gasienica
1f8556b049
Remove unused createCollection
2018-04-02 12:17:36 -04:00
Daniel Gasienica
c67c2a858a
Remove Backbone references for attachment migration
...
It has to run without any other migrations interfering.
2018-04-02 12:17:36 -04:00
Daniel Gasienica
0c40f35623
Document disadvantage of fetching messages without index
2018-04-02 12:17:36 -04:00
Daniel Gasienica
a4ecf1a9d6
Define constant after creating idle detector
2018-04-02 12:17:36 -04:00
Daniel Gasienica
d3c9de4712
Add debug module
...
Lets us generate large conversations with large attachments.
2018-04-02 12:17:36 -04:00
Daniel Gasienica
30037e5308
Reduce attachment migration batch size to 1
...
This prevents ‘Maximum IPC message size exceeded’ due to IDB `getAll` operation.
- https://github.com/zincbase/zincdb/issues/17
- https://cs.chromium.org/chromium/src/content/browser/indexed_db/indexed_db_database.cc?q=%22Maximum+IPC+message+size+exceeded%22&sq=package:chromium&l=1160
2018-04-02 12:17:36 -04:00
Daniel Gasienica
21147a20a0
Add sleep
module
2018-04-02 12:17:36 -04:00
Daniel Gasienica
08f73b8420
Remove last processed index after attachment migration
2018-04-02 12:17:36 -04:00
Daniel Gasienica
696a144ab7
Add settings.deleteItem
2018-04-02 12:17:36 -04:00
Daniel Gasienica
a18e462817
Move migrations to Signal.Migrations
2018-04-02 12:17:36 -04:00
Daniel Gasienica
5910f84af4
Remove outdated documentation
2018-04-02 12:17:36 -04:00
Daniel Gasienica
efe3cd67fc
Allow attachment migration run on higher database version
2018-04-02 12:17:36 -04:00
Daniel Gasienica
921c3dba7c
Skip migrations that have already been applied
2018-04-02 12:17:36 -04:00
Daniel Gasienica
417511ffd2
Add database.getVersion
2018-04-02 12:17:36 -04:00
Daniel Gasienica
c5c94bc3ab
Extract getMigrationVersions
2018-04-02 12:17:36 -04:00
Daniel Gasienica
6aea36240d
Rename closeDatabase
to closeDatabaseConnection
2018-04-02 12:17:36 -04:00
Daniel Gasienica
016432826b
Extract database
and settings
modules
2018-04-02 12:17:36 -04:00
Daniel Gasienica
5bea894abd
Close database connection via Backbone IDB adapter
2018-04-02 12:17:36 -04:00
Daniel Gasienica
f50e9ae364
Log closing connection of database
2018-04-02 12:17:36 -04:00
Daniel Gasienica
4ff8bc3357
Use camelCase
for non-constructors
2018-04-02 12:17:36 -04:00
Daniel Gasienica
3720c3f3bb
Improve log message
2018-04-02 12:17:36 -04:00
Daniel Gasienica
ce5b450fdb
Log targetSchemaVersion
2018-04-02 12:17:36 -04:00
Daniel Gasienica
f7f24b5822
Log total number of processed messages
2018-04-02 12:17:36 -04:00
Daniel Gasienica
eca930770c
Remove hard-coded database connection settings
2018-04-02 12:17:36 -04:00
Daniel Gasienica
1df6dc8378
Abort processing if there are no more messages
2018-04-02 12:17:36 -04:00
Daniel Gasienica
85490fbc98
Disable JSHint for background.js
...
It doesn’t recognize `async` and I couldn’t figure out how to ignore a top-level
`async` without cascading errors.
2018-04-02 12:17:36 -04:00
Daniel Gasienica
d5d0eabdfd
Remove usage of storage
module
2018-04-02 12:17:36 -04:00
Daniel Gasienica
8966e80284
Improve identifier names
2018-04-02 12:17:36 -04:00
Daniel Gasienica
3e2d575506
Document MessageDataMigrator
module design
2018-04-02 12:17:36 -04:00
Daniel Gasienica
3c57dbfb56
Extract NUM_MESSAGES_PER_BATCH
2018-04-02 12:17:36 -04:00
Daniel Gasienica
85788d3c4a
Match items
storage format to Backbone adapter
2018-04-02 12:17:36 -04:00
Daniel Gasienica
7de7fcf561
Avoid no-param-reassign
violation
2018-04-02 12:17:36 -04:00
Daniel Gasienica
070235b59b
Implement MessageDataMigrator.processAll
...
Upgrades schema of all messags upon startup.
2018-04-02 12:17:36 -04:00
Daniel Gasienica
b8a0bc3423
Run attachment to disk migration on startup
2018-04-02 12:17:36 -04:00
Daniel Gasienica
178a3cc262
Reduce work for verifying transaction completion
2018-04-02 12:17:36 -04:00
Daniel Gasienica
b6e978f74c
Implement MessagesDataMigrator.processAll
2018-04-02 12:17:36 -04:00
Daniel Gasienica
457bf7ab9d
Add createCollection
function
2018-04-02 12:17:36 -04:00
Daniel Gasienica
8ea257ad4d
Use double quotes for identifiers in error messages
2018-04-02 12:17:36 -04:00