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