Commit graph

1029 commits

Author SHA1 Message Date
Scott Nonnenberg
ea8e76d9de MessageView: Only re-render on change of key conversation fields 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
37f3054976 Both UI timer and database timer will remove expired message 2018-08-15 17:45:24 -07:00
Scott Nonnenberg
fedfbed304 Copy quoted message contents into quote on receipt
Also:
  - visually distinguish any reference we couldn't verify on receipt
  - show toast on quote click if we can't scroll to message
  - toast visuals redesigned to match rest of app
2018-08-15 14:58:55 -07:00
Scott Nonnenberg
a247ffe5cf When iOS device has been linked, use iOS color scheme 2018-08-15 11:22:45 -07:00
Scott Nonnenberg
9eefc0c29b SettingsView: Fix logging 2018-08-10 12:18:48 -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
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
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
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
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
2ef2235317 Show error if debug log upload fails 2018-07-19 10:21:53 -07:00
Scott Nonnenberg
c517e4193b New option: Disable spell check 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
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
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
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
d8e5e5fcf2 Open separate windows with theme, update settings theme on change 2018-07-13 08:57:30 -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
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
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
1c23c6a9d7 Remove window.config in favor of window.getXXX() accessors 2018-06-14 17:03:53 -07:00
Scott Nonnenberg
dfa1f0797c Ensure timer updates show in convo before initiating message 2018-06-14 15:30:26 -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
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
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
Scott Nonnenberg
bb01218e83 MessageView: Get rid of 'let' for hasSignalAccount 2018-05-08 10:11:40 -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
b6a585a646
MessageView: Add id from database to DOM for outgoing messages (#2350) 2018-05-07 19:08:45 -07:00
Daniel Gasienica
a86056630f Use Attachment.isVoiceMessage 2018-05-07 21:53:39 -04:00
Daniel Gasienica
13f1ec2e51 Use structured logs
Easier to search for static prefix and fields are named.
2018-05-03 13:24:39 -04:00
Daniel Gasienica
c40bd7e235 Remove unused retryDescription localized string 2018-05-02 18:11:13 -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
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
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
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 globals 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 globals 2018-04-25 15:28:56 -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
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
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
273248d3fd Wire up ‘View All Media’ menu item 2018-04-25 15:24:50 -04: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