Commit graph

4094 commits

Author SHA1 Message Date
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
f693c00778
Close Emoji Panel on Escape Key Press (#2357)
Contributed by @tommypacker (#2354).

Closes #2354.
2018-05-08 17:37:39 -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
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