Commit Graph

335 Commits (07076c27ae371ae1b0c3f179ce1ed372ea429299)

Author SHA1 Message Date
Scott Nonnenberg 19ff050b3a Show 'Off' text when disappearing messages are turned off 7 years ago
Scott Nonnenberg 3105b77475 Migrate to SQLCipher for messages/cache
Quite a few other fixes, including:
  - Sending to contact with no avatar yet (not synced from mobile)
  - Left pane doesn't update quickly or at all on new message
  - Left pane doesn't show sent or error status

Also:
 - Contributing.md: Ensure set of linux dev dependencies is complete
7 years ago
Scott Nonnenberg 8b92e6112c Add dir='auto' to Message and Quote body for RTL languages 7 years ago
Scott Nonnenberg f38647dfa5 ContactListItem: Add spacing above and below (for 'show members') 7 years ago
Scott Nonnenberg f39a96bc76 Move to centralized message/cache data layer
Also, ensure that conversation.messageCollection has nothing in it
unless it has an associated ConversationView.
7 years ago
Scott Nonnenberg e80857562a Disappearing messages: show 'disabled' instead of 'set to off' 7 years ago
Scott Nonnenberg 7dd931fb7e ConversationHeader: centered title, ConvoListItem: unbold name 7 years ago
Scott Nonnenberg 3a07e9ae73 Ensure that color mapping matches the spreadsheet 7 years ago
Scott Nonnenberg 5933a34a18 Use window.log in browser context, turn on console eslint rule 7 years ago
Scott Nonnenberg 643739f65d
Responding to feedback on the updated visuals (#2549)
* Conversation List Item: timestamp bold only when convo has unread

* Preserve the positioning of overlays on re-entry into convo

* ConversationListItem: Handle missing and broken thumbnails

* Shorten timestamp in left pane for better Android consistency

* Update convo last updated if last was expire timer change

But not if it was from a sync instead of from you or from a contact.

* Make links in quotes the same color as the text

* MediaGridItem: Update placeholder icon colors for dark theme

* Ensure turning off timer shows 'Timer set to off' in left pane

* ConversationListItem: Show unread count in blue circle

* Add one pixel margin to blue indicator for text alignment

* Ensure replies to voice message can bet sent successfully
7 years ago
Scott Nonnenberg 2384988b0a ConversationHeader: Ensure that profile has tilde before it 7 years ago
Scott Nonnenberg fa18e2ba77 LightBox: tslint exception for play() call which returns promise 7 years ago
Scott Nonnenberg 4fa6a785f4 Remove unused code 7 years ago
Scott Nonnenberg e90355dab5 Lightbox: Play video on open, play/pause on click of video itself 7 years ago
Scott Nonnenberg 66bd6c826d Fix MediaGallery handling of videos - show thumbnail and overlay 7 years ago
Scott Nonnenberg 0b9b738c88 Remove empty file: colorSVG.ts 7 years ago
Scott Nonnenberg 95976b10e7 Timestamp: Eliminate 'Invalid date' from potential output 7 years ago
Scott Nonnenberg 675e34fc8d New React component: ConversationListItem, installed in left pane
When collecting a conversation's last message, we grab that message's
status as well (if outgoing) and show it.
7 years ago
Scott Nonnenberg 7e2d7b5e60 Media Gallery: Support for dark theme 7 years ago
Scott Nonnenberg 3c69886320 Finish new Message component, integrate into application
Also:
- New schema version 8 with video/image thumbnails, screenshots, sizes
- Upgrade messages not at current schema version when loading messages
  to show in conversation
- New MessageDetail react component
- New ConversationHeader react component
7 years ago
Scott Nonnenberg 43a44793c5 Remove jshint - move everything over to eslint
Also removed all hints of previous linters
7 years ago
Scott Nonnenberg dc11db92f9 New React component: Message
Also: Use react to render contects on the 'show group members' screen
7 years ago
Scott Nonnenberg fc5c52fbdf Remove iOS theme in favor of plain light/dark themes 7 years ago
Scott Nonnenberg 445839770b
Fix width of message detail screen (#2478) 7 years ago
Scott Nonnenberg 951ae6d52c Disable inline rendering of SVG attachments
Like TIFF, they are now treated as binary files.
7 years ago
Scott Nonnenberg 925e02e397 Fix lint error in OS.ts 7 years ago
Scott Nonnenberg 34f423b52c Remove unused code; move signal.js to js/modules for eslint
(noticed as I was doing this that signal.js doesn't get eslint coverage)
7 years ago
Scott Nonnenberg 9dedda84e2 Add style guide examples for ContactName and ConversationTitle 7 years ago
Scott Nonnenberg 2988da0981 Turn on all of Microsoft's recommend lint rules
Biggest changes forced by this: alt tags for all images, resulting in
new strings added to messages.json, and a new i18n paramter/prop added
in a plot of places.

Another change of note is that there are two new tslint.json files under
ts/test and ts/styleguide to relax our rules a bit there. This required
a change to our package.json script, as manually specifying the config
file there made it ignore our tslint.json files in subdirectories
7 years ago
Scott Nonnenberg 23586be6b0 Add emojification to contact names shown in quotes 7 years ago
Scott Nonnenberg 548c8e69cf Emojification now all done with react via a few new components
Three locations were changed:
  1. a group update, which lists a set of contacts
  2. the contact name in the left pane
  3. the conversation title

Three new components were added to window.Signal.Components to support
these scenarios, respectively:
  1. Emojify
  2. ContactName
  3. ConversationTitle

Note that there are a number of other places in the app that should be
emojified, but never have been before. Essentially any place that a
contact name might be shown. A non-exhaustive list:
  - Show group members
  - Show safety number
  - Verified change notification
  - Disappearing timer change notification
  - Contact verification notification
  - Quote contact name
7 years ago
Scott Nonnenberg d9e5338dff Refactor link/emoji/newline components for composability 7 years ago
Scott Nonnenberg a5416e42c4 Refactor all emoji utility methods into window.Signal.Emoji 7 years ago
Scott Nonnenberg a328a70ba2
Update React-based emoji handling to fix skin tone modifiers (#2399) 7 years ago
jython234 84759d813e Modify OS.isWindows to check platform before version (#2407)
* Modify OS.isWindows to check if OS is Windows first before checking version.

Previously OS.isWindows checked if the windows version matched the one required. This worked fine, except for the fact that it would end up comparing a linux kernel version to a windows version as it didn't check if the platform was Windows in the first place before.

This caused issues as it would throw an error when comparing with non-semver linux kernels (such as Fedora). Now it checks if the current platform is Windows first, and if not, immediately returns false.

Resolves: #2396

* Fix formatting for OS.ts
7 years ago
Scott Nonnenberg 4e5c8965ff Move to react for newlines, emoji, and links in message body 7 years ago
Scott Nonnenberg 8f934251ae Fix a few types: relax contact, Email->Phone 7 years ago
Scott Nonnenberg 80b069e9b6 Move phone number format/parse into ts/types/PhoneNumber 7 years ago
Scott Nonnenberg aa13a2c6f7 Parse phone numbers into e164 as part of schema upgrade 7 years ago
Scott Nonnenberg 8cb1f1f532 Fall back on givenName/familyName if no displayName/organization 7 years ago
Scott Nonnenberg eafa038ba4 Use backup labels if custom contact type labels are missing 7 years ago
Daniel Gasienica 3bf8a8966a Notification improvements
- Remove on read, on focus, and on exit.
- Show multi-message notifications like '5 new messages'.
7 years ago
Daniel Gasienica d349dd903d Add `AttachmentSection` to style guide 7 years ago
Daniel Gasienica 121bb0ecef Style guide: Fix empty state 7 years ago
Daniel Gasienica f19e6ea93d Wrap JSX siblings in container 7 years ago
Daniel Gasienica a8cd0b782e Rename `DocumentListItem::isLast` to `shouldShowSeparator` 7 years ago
Daniel Gasienica 05f67dc04a Hide separator for last document list entry 7 years ago
Daniel Gasienica fd883b2896 Fix `LightboxGallery` style guide entry 7 years ago
Daniel Gasienica bfe7eb7d5e Consolidate styles 7 years ago
Daniel Gasienica 90329a2764 Display icon for unsupported file formats
Still allows users to download media.
7 years ago
Daniel Gasienica 623bdd9284 Port `colorSVG` from Sass to TypeScript (React) 7 years ago
Daniel Gasienica 16bc1d34c6 Message schema 6: Change classification of media and documents
For an easier implementation, we change our original definition of
`initializeAttachmentMetadata`. This means we have to re-run it marked as
version 6 and mark schema version 5 as deprecated as its definition has changed.
7 years ago
Daniel Gasienica f4a5bc9907 Add new MIME types 7 years ago
Daniel Gasienica 63bd9dcc61 Add tests for `Attachment.isVisualMedia` 7 years ago
Daniel Gasienica 53918d68de Add `Attachment.isFile` definition 7 years ago
Daniel Gasienica 20246c4d07 Classify all images and videos as visual media
Even if we can’t play it back. Handle that in the lightbox.

Also: Exclude voice messages.
7 years ago
Scott Nonnenberg 0282635142 Remove Object.assign still hanging around in typescript 7 years ago
Scott Nonnenberg 1918a88722 Drop ifTruthy suffix 7 years ago
Scott Nonnenberg 1fd487be3f Refactor to remove duplicated code, lint/prettier fixes 7 years ago
Scott Nonnenberg f628df1035 Eliminate arrows in the standalone Lightbox component examples 7 years ago
Scott Nonnenberg 8beeef4d10 Show contact name when you reply to message with a contact 7 years ago
Scott Nonnenberg 9d1847a7e5 Pull all setup in preload.js into signal.js. goal: webpackable 7 years ago
Scott Nonnenberg 30cb673405 Fix style guide for LightboxGallery component 7 years ago
Scott Nonnenberg 37821e5a1b Wire up all contact behaviors, refactor Contact type/selector 7 years ago
Scott Nonnenberg 41be7f126b Visuals for embedded contacts as well as contact detail screen 7 years ago
Daniel Gasienica daa4a3d63f Compile all protocol buffers 7 years ago
Daniel Gasienica 15759f0db5 Normalize package naming 7 years ago
Daniel Gasienica f88ebdf8b7 Compile protocol buffers as part of `yarn grunt dev` 7 years ago
Daniel Gasienica 38f3ad6518 Use `SignalService` vs `textsecure` for protobuf 7 years ago
Daniel Gasienica 6589247750 Expose `SignalService` to style guide 7 years ago
Daniel Gasienica 86346ee239 Expose `Signal.Types.Attachment` to style guide 7 years ago
Daniel Gasienica 5789b3eb75 Add `Attachment.isVoiceMessage` 7 years ago
Daniel Gasienica fa4c3fda2b Extract common MIME types 7 years ago
Daniel Gasienica 8a4f062120 Add `MIME.APPLICATION_OCTET_STREAM` 7 years ago
Daniel Gasienica 5d230d3778 Add `Settings.isNotificationGroupingSupported`
See: https://github.com/electron/electron/issues/11189
7 years ago
Daniel Gasienica ecf23b6b2e Disable audio notifications on Windows 7 and lower 7 years ago
Daniel Gasienica a102016ed8 Port `Settings` and `OS` to TypeScript 7 years ago
Daniel Gasienica c591c3ca55 Use native notifications on all platforms 7 years ago
Daniel Gasienica 4e6a03a91c Log whether OS supports native notifications 7 years ago
Daniel Gasienica d5b391757d Add `Notifications.getStatus` 7 years ago
Scott Nonnenberg 322d307655 Turn on prettier support for markdown files, update all files 7 years ago
Daniel Gasienica 87d374ea78 Remove `@prettier` pragmas 7 years ago
Daniel Gasienica 1dd87ad197 Format all source code using Prettier 7 years ago
Scott Nonnenberg 82e2fe93a5
Show 'You' in Android theme quotes instead of contact name (#2312)
Show 'You' in Android theme quotes instead of contact name
7 years ago
Scott Nonnenberg c5935eef5d Show 'You' in Android theme quotes instead of contact name 7 years ago
Daniel Gasienica fccbf70d57 Pre-process media for `LightboxGallery` 7 years ago
Daniel Gasienica 110b58230b Only revoke object URLs we created 7 years ago
Daniel Gasienica c6599d2e14 Add another permutation of `EmptyState` 7 years ago
Daniel Gasienica 9ca6fd6498 Center lightbox navigation controls 7 years ago
Daniel Gasienica fa45656e8e Wire up media gallery empty state 7 years ago
Daniel Gasienica 4d01264c09 Fix layout of media gallery 7 years ago
Daniel Gasienica 78f15b654d Add `EmptyState` component 7 years ago
Daniel Gasienica ea49f7a3b6 Implement keyboard navigation for `Lightbox` 7 years ago
Daniel Gasienica e1b620602d Display attachments from disk 7 years ago
Daniel Gasienica 407c77395b Add explicit boolean 7 years ago
Daniel Gasienica 9451dc5e41 Define `AttachmentSchemaVersion3` 7 years ago
Daniel Gasienica 21db2e7182 Use `saveURLAsFile` 7 years ago
Daniel Gasienica 307ab0d3a5 Extract `saveURLAsFile` 7 years ago
Daniel Gasienica 4c0c55082f Move navigation controls to the bottom 7 years ago
Daniel Gasienica fb8d4e2421 Implement basic lightbox with gallery support 7 years ago
Daniel Gasienica 43e19f3b06 Prevent default event on icon button clicks 7 years ago
Daniel Gasienica b3d0438537 Show hand cursor on media grid items 7 years ago
Daniel Gasienica 45d6c7a5a8 Implement video support in lightbox 7 years ago
Daniel Gasienica ac04f0648a Load more documents than media 7 years ago
Daniel Gasienica 6ee56b8445 Remove newlines 7 years ago
Daniel Gasienica b74b761255 Implement click to save for document list 7 years ago
Daniel Gasienica 8ca5a391af arrayBufferToObjectURL: Ensure `data` is `ArrayBuffer` 7 years ago
Daniel Gasienica b27fdd1559 Use `pointer` cursor for `DocumentListItem` 7 years ago
Daniel Gasienica 4a5e61eaf4 Implement `Attachment.save` 7 years ago
Daniel Gasienica f8119be97b Include videos in media gallery 7 years ago
Daniel Gasienica 37d73accde Show ‘Documents’ tab 7 years ago
Daniel Gasienica 96c44094e3 Implement `Conversation.fetchFileAttachments` 7 years ago
Scott Nonnenberg ccf14710a3 styleguide: Make filesize and Signal.Util.GoogleChrome available 7 years ago
Daniel Gasienica f36f206a01 Use `IndexablePresence` for `hasFileAttachments` and `hasVisualMediaAttachments`
Reduces index size, makes it easier to debug using IndexedDB inspector, and
hopefully improves lookup performance.
7 years ago
Daniel Gasienica b65370c8d7 Prefer `GoogleChrome.is*` over `MIME.is*` 7 years ago
Daniel Gasienica 64c3d604aa Fix type errors 7 years ago
Daniel Gasienica cd6912f0dd 🎨 Autoformat code 7 years ago
Daniel Gasienica 823a58f98a Prevent NPE 7 years ago
Daniel Gasienica 96be0df8c7 Show lightbox controls based on presence of handlers 7 years ago
Daniel Gasienica 59650035ec Use 🇺🇸 spelling 7 years ago
Daniel Gasienica feff820cd4 Prefer custom styles over `strong` 7 years ago
Daniel Gasienica fca8de16c8 Add required `Message.id: string` 7 years ago
Daniel Gasienica dd7e51e697 🎨 Fix formatting 7 years ago
Daniel Gasienica 74582de2d1 Clarify naming 7 years ago
Daniel Gasienica 6330a8d9f3 Simplify expression 7 years ago
Daniel Gasienica f99e6306c3 Simplify `withSection` 7 years ago
Daniel Gasienica d98d08a7e0 Remove obsolete TODO 7 years ago
Daniel Gasienica e97b078088 Use `componentWillUnmount` 7 years ago
Daniel Gasienica 9abf1f0fcd Use `dash-case` for CSS class names 7 years ago
Daniel Gasienica 2e121310e4 🎨 Fix lint error 7 years ago
Daniel Gasienica 4d04638358 Document changes for MVP 7 years ago
Daniel Gasienica c3e04ecf87 Remove use of `LoadingIndicator` 7 years ago
Daniel Gasienica 6d5d0df1c0 🎨 Fix TSLint errors 7 years ago
Daniel Gasienica 8b9516de72 Update test for attachment metadata 7 years ago
Daniel Gasienica f240269d7b MVP: Only show images in media gallery 7 years ago
Daniel Gasienica b4e3749c88 MVP: Only show media tab
Until we support showing documents.
7 years ago
Daniel Gasienica 60ed82b728 Show all lightbox controls in style guide 7 years ago
Daniel Gasienica a7ed21a811 Add `shouldShowSaveAsButton` option 7 years ago
Daniel Gasienica 0d676a65b8 Open media gallery item in lightbox 7 years ago
Daniel Gasienica a9f7f18721 Add `ItemClickEvent` 7 years ago
Daniel Gasienica d634a414c3 Make visibility of previous/next buttons opt-in 7 years ago
Daniel Gasienica 142236640e Click lightbox to close 7 years ago
Daniel Gasienica ce825fbd66 Rename `save` to `onSave` 7 years ago
Daniel Gasienica 1b9e581e90 Show lightbox image as large as possible 7 years ago
Daniel Gasienica 2cb0b0aeb1 Add arrow controls 7 years ago
Daniel Gasienica 246e0ca87b Add note about inline styles 7 years ago
Daniel Gasienica d797ede791 Close lightbox on escape key press 7 years ago
Daniel Gasienica 86da80fd23 Wire up attachment saving 7 years ago
Daniel Gasienica 593976fe21 Extract Backbone Lightbox view module 7 years ago
Daniel Gasienica 2474b42198 Port lightbox icon buttons 7 years ago