Commit graph

4241 commits

Author SHA1 Message Date
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 cb0d60c80d
Media Gallery: Fix Media + Documents Attachment Classification (#2351)
* [x] Introduce schema version 6: Fix media gallery file type classifications:
  * [x] Exclude voice messages from **Documents**.
  * [x] Include all media (images + video), regardless of whether we can
        display it or not.
* [x] Fix lightbox layout for small screens.
* [x] Add support for unsupported file formats in lightbox:
  * [x] Show image icon for unsupported images, e.g. TIFF.
  * [x] Show video icon for unsupported videos, e.g. QuickTime.
  * [x] Show file icon for other unsupported files, e.g. JSON.
* [x] Show all lightbox variants in style guide.
* [x] Don’t show separator for last document list entry
* [x] **Infrastructure:** Port `colorSVG` to CSS-in-JS for React.
2018-05-08 17:19:12 -04:00
Daniel Gasienica d349dd903d Add AttachmentSection to style guide 2018-05-08 16:52:01 -04:00
Daniel Gasienica 121bb0ecef Style guide: Fix empty state 2018-05-08 16:52:01 -04:00
Daniel Gasienica f19e6ea93d Wrap JSX siblings in container 2018-05-08 16:52:01 -04:00
Daniel Gasienica a8cd0b782e Rename DocumentListItem::isLast to shouldShowSeparator 2018-05-08 16:52:01 -04:00
Daniel Gasienica 05f67dc04a Hide separator for last document list entry 2018-05-08 16:41:07 -04:00
Daniel Gasienica fd883b2896 Fix LightboxGallery style guide entry 2018-05-08 16:41:07 -04:00
Daniel Gasienica bfe7eb7d5e Consolidate styles 2018-05-08 16:41:07 -04:00
Daniel Gasienica 90329a2764 Display icon for unsupported file formats
Still allows users to download media.
2018-05-08 16:41:07 -04:00
Daniel Gasienica 623bdd9284 Port colorSVG from Sass to TypeScript (React) 2018-05-08 16:41:07 -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 f4a5bc9907 Add new MIME types 2018-05-08 16:41:06 -04:00
Daniel Gasienica 101041f106 Derive Message.CURRENT_SCHEMA_VERSION 2018-05-08 16:41:06 -04:00
Daniel Gasienica 63bd9dcc61 Add tests for Attachment.isVisualMedia 2018-05-08 16:41:06 -04:00
Daniel Gasienica 53918d68de Add Attachment.isFile definition 2018-05-08 16:41:06 -04:00
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.
2018-05-08 16:41:06 -04:00
Scott Nonnenberg 787d023557
Feature: Receive contact (#2349)
Feature: Receive contact
2018-05-08 13:27:22 -07:00
Scott Nonnenberg 375dc62c4a scss mixin: remove-button-styles -> button-reset 2018-05-08 13:14:28 -07: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 0282635142 Remove Object.assign still hanging around in typescript 2018-05-08 09:57:51 -07:00
Scott Nonnenberg 1918a88722 Drop ifTruthy suffix 2018-05-08 09:54:28 -07:00
Scott Nonnenberg b4bf9733ad Move CSS to remove button styling into mixins.scss 2018-05-08 09:51:19 -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 47adbe4358 Minify new svg files 2018-05-08 09:37:27 -07:00
Scott Nonnenberg 1fd487be3f Refactor to remove duplicated code, lint/prettier fixes 2018-05-07 19:30:50 -07:00
Scott Nonnenberg f628df1035 Eliminate arrows in the standalone Lightbox component examples 2018-05-07 19:30:50 -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 cdfe4d76b1 Update contacts for android dark theme 2018-05-07 19:30:50 -07:00
Scott Nonnenberg 202f5d5b7a Update contact bubbles for ios theme 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 30cb673405 Fix style guide for LightboxGallery component 2018-05-07 19:11:37 -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
Scott Nonnenberg b41cf47df6
Update translations for week of 5/7 (#2352) 2018-05-07 19:04:25 -07:00
Daniel Gasienica c7a502e2e1 Standalone Protocol Buffers (#2347)
This change introduces a standalone module for our protocol buffers as CommonJS
module incl. TypeScript type definitions.

**Rationale:** In order to exclude voice messages from the media gallery,
I needed to get a reference of `AttachmentPointer.Flags.VOICE_MESSAGE`.
Currently, the only way is to use `textsecure.protobuf` which is only accessible
as a global.

* [x] Add `Attachment.isVoiceMessage` as a way to test standalone
      Protocol Buffers.
* [x] Add latest version of `protobufjs`. Leave existing version in place to
      keep this change less disruptive and since it’s been stable. Hopefully we
      can move over to standalone protobufs over time to improve modularity and
      maybe even startup performance.
* [x] Add `yarn build-protobuf` command to compile `SignalService.proto` into
      standalone CommonJS module and accompanying TypeScript definitions.
      ~~Included compiled output for ease of use for other developers.
      Can revisit if changes become more frequent.~~
      Now built as part of `yarn grunt`.
* [x] Update style guide references and make sure they work!
* [x] ⚠️ Change type definition for `Attachment::file` to include `null` as
      that’s apparently a valid value for legacy Android voice messages.
2018-05-07 21:57:23 -04:00
Daniel Gasienica ba4d8952c6 Revert "Use protocol buffer module for libtextsecure"
This does not work with `ArrayBuffer` out of the box and will need to be
investigated and tested more before switching.

Some APIs also seemed to have changed:
- Before (OOP): `new textsecure.protobuf.WebSocketMessage(…).encode();`
- After (functional):
  ```
  textsecure.protobuf.WebSocketMessage.encode(
    new textsecure.protobuf.WebSocketMessage(…)
  );
  ```

This reverts commit d758119d9de4f99742ea941e86180b1d600c2f22.
2018-05-07 21:53:41 -04:00
Daniel Gasienica 60077d0b7b Use protocol buffer module for libtextsecure 2018-05-07 21:53:40 -04:00
Daniel Gasienica daa4a3d63f Compile all protocol buffers 2018-05-07 21:53:40 -04:00
Daniel Gasienica c8e1c29b16 Improve naming 2018-05-07 21:53:40 -04:00
Daniel Gasienica 4e39882afc Compile protocol buffers first 2018-05-07 21:53:40 -04:00
Daniel Gasienica 2810f26461 Remove unused WhisperTextProtocol.proto 2018-05-07 21:53:40 -04:00
Daniel Gasienica 086c64deb8 Add yarn clean-protobuf command 2018-05-07 21:53:40 -04:00