Commit Graph

3287 Commits (44f61073dcf00e0869b681bde1a6f0c4b56b3f70)

Author SHA1 Message Date
Scott Nonnenberg 813924685e Link Previews 6 years ago
Scott Nonnenberg 51f1ef5725 Don't linkify quoted message contents 6 years ago
Mikunj 1a15ec9c15 Merge commit signal/master into signal-1.20 6 years ago
Mikunj 6bd2d3962e Linted files 6 years ago
Scott Nonnenberg 74bbdb88a5 Lint fixes 6 years ago
Scott Nonnenberg 0de54e125c Improve caption editor usability, new 'add attachment' affordance 6 years ago
Scott Nonnenberg 7db7a3ad44 Preserve scroll position when adding/removing staged quote 6 years ago
Beaudan 6863f7e51a Small fix for strange bug where timezone would be different in the past for regular user vs sudo 6 years ago
Scott Nonnenberg cba47668cd Increase contrast of typing indicator in iOS theme 6 years ago
Scott Nonnenberg 57abb8300f Upgrade Electron to 3.0.14 6 years ago
Scott Nonnenberg aab2a57b48 Some style and interaction fine-tuning 6 years ago
Scott Nonnenberg a900792a06 Use thumbnails for smaller cells in image grids 6 years ago
Scott Nonnenberg ba711d8985 Show just first image if we receive mixed multi-attachment msg 6 years ago
Scott Nonnenberg 52d3138958 Caption editor: add keyboard interaction, disable for single img 6 years ago
Scott Nonnenberg b08c10a547 FileInputView: Event on attachment change to hide/show microphone 6 years ago
Scott Nonnenberg 6eb8f5680c Preserve links with embedded emoji 6 years ago
Scott Nonnenberg f9ea7be61f Reintroduce single attachment limit 6 years ago
Scott Nonnenberg 985b1d6aa6 New staged attachments UI, multiple image attachments per message 6 years ago
Scott Nonnenberg e4babdaef0 Updates to backup infrastructure 6 years ago
Scott Nonnenberg 47f834cf5c Encrypt device name on account create, on first launch if needed 6 years ago
Mikunj f3367465d8 Fix menu items not triggering after conversation is removed and then added. 6 years ago
sachaaaaa 27674513ba
Merge branch 'development' into signal-v1.19 6 years ago
Mikunj a2f12ca18e Added option to copy conversation public key. 6 years ago
Mikunj 654b0dac84 Merge signal-master. 6 years ago
Scott Nonnenberg f45f8b190d Remove unused lint exceptions 6 years ago
sachaaaaa 7e612700f7 Handle session reset, Loki style 6 years ago
Beaudan eb7a0dbb3a Fix failing tests except for problematic spellcheck package 6 years ago
Mikunj 341c5e4ed8 Updated nickname display modal. 6 years ago
Mikunj 51e8bc40b6 Show public key tooltip when you hover over profile text. 6 years ago
Mikunj 14ecbc3f35 Moved MainHeader into its own Backbone View. 6 years ago
Mikunj a807b6eacd Show expand icon on main header. 6 years ago
Mikunj cb3599eea8 Removed IdentityKeyHeader. 6 years ago
Mikunj 1be63b52b2 Show contact name on main header. 6 years ago
Scott Nonnenberg 822ea9ae53 Improve sealed sender icon display logic 6 years ago
Scott Nonnenberg 313d08344a Request configuration sync on startup of new version 6 years ago
Scott Nonnenberg f5954db711 Ensure that multi-video lightbox scrolling changes video 6 years ago
Mikunj ac4e04912c Minor language fixes. 6 years ago
Mikunj 98c4b5d77b Added editing own nickname.
Fix dark theme support.
Fix notification titles.
6 years ago
Mikunj 449f44cc5a Added changing user nicknames. 6 years ago
Mikunj f1d18219ed Conversation UI update. 6 years ago
Scott Nonnenberg 9f1f4bf441 Lint fixes 6 years ago
Scott Nonnenberg bdec2d4781 Update icon-gen for Electron v3 compatibility 6 years ago
Scott Nonnenberg fc48b91efa Lint fixes 6 years ago
Scott Nonnenberg 79a861a870 Typing Indicators 6 years ago
Scott Nonnenberg 99252702e1 Support receiving multiple images in one messages 6 years ago
sachaaaaa dbdd52b4eb
Merge pull request #50 from Mikunj/fix/friend-request
Friend request fixes
6 years ago
Mikunj 484efd34a3 Added friend request message expiration. 6 years ago
Mikunj a82999818a Added blocking/unblocking from friend request.
Fixed incoming messages being deleted.
6 years ago
Mikunj ae2e2fa2ae Updated UI in conversation to support user blocking behaviour. 6 years ago
Mikunj 4d3fb17e61 Merge branch 'sig-development' into merge/signal 7 years ago
Mikunj 557fed11f3 Only display retry send button if the request is pending. 7 years ago
Mikunj 4d08a74d53 Updated FriendRequest to be more consistent with the other typescript components. 7 years ago
Mikunj f45e0030c4 Added status display and retry send to friend request. 7 years ago
Mikunj fc3cb9c46d Replace old pending messages with new one when adding a new incoming friend request.
More refactoring.
7 years ago
Mikunj a80d6bb868 Merged branch correctly. 7 years ago
Scott Nonnenberg 4610b63fb7 Lint fixes 7 years ago
Mikunj 0a23888875 Fix up friend request message layout 7 years ago
Mikunj 0cf616328e Fixed saving prekey bundle once friend request is accepted.
Added option to delete conversation after it is declined.
7 years ago
Mikunj 0a88f337d5 Merge branch 'sig-development' into merge/signal 7 years ago
Mikunj c150cbe34f Friend request message indicator. 7 years ago
Mikunj 9dc19044b9 Handle the case where the user is sending a friend request.
Fix up styling for outgoing message.
7 years ago
Mikunj 08ca779fe1 Fixed up friend request message display 7 years ago
Mikunj 5626cfe47d Added FriendRequest message 7 years ago
Scott Nonnenberg 2d48daa7b6 Refine Sealed Sender behaviors 7 years ago
Mikunj f589fdac5c Merge signal changes into branch. 7 years ago
Scott Nonnenberg fb670ad6b9 Remove IndexedDB files after removing IndexedDB database 7 years ago
Scott Nonnenberg 1755e0adfd Move all remaining stores to SQLCipher 7 years ago
sachaaaaa 4b9fcb98d4 Linting and other housekeeping stuff 7 years ago
Scott Nonnenberg a7d78c0e9b Sealed Sender support
https://signal.org/blog/sealed-sender/
7 years ago
Scott Nonnenberg 6656469f5f Update lint exceptions 7 years ago
Scott Nonnenberg 7789beec64 Calculate warning properly for all methods of attachment download 7 years ago
sachaaaaa 639c3e9a4f fix app name from previous merge 7 years ago
sachaaaaa 9370e2b74a Merge branch 'master' of https://github.com/signalapp/Signal-Desktop into development
* 'master' of https://github.com/signalapp/Signal-Desktop: (38 commits)
  v1.17.0
  v1.17.0-beta.4
  Ensure that blue group avatars are preserved in dark theme
  Android theme: Incoming quotes take color from containing message
  Conversations have blue avatar backgrounds if no image provided
  Fix lint errors
  Add ca language
  inboxView: Ensure Conversation exists for our own number
  Ensure that file is not attached if we've filtered it
  v1.17.0-beta.3
  Localization updates
  v1.16.3
  Lint fixes
  Lint fixes
  Better handle large numbers of messages in cache on startup
  Keep object stores after conversations migrate to SQLCipher
  Longer timeout for orphaned file cleanup
  Tests and increase consistency for isFileDangerous calls
  Longer timeout for orphaned file cleanup
  v1.17.0-beta.2
  ...

# Conflicts:
#	background.html
#	package.json
7 years ago
Scott Nonnenberg 2b5f6d8b5e Ensure that blue group avatars are preserved in dark theme 7 years ago
Scott Nonnenberg fbaef50c4a Android theme: Incoming quotes take color from containing message 7 years ago
Scott Nonnenberg f21f83a163 Conversations have blue avatar backgrounds if no image provided 7 years ago
Scott Nonnenberg 4514152320 Fix lint errors 7 years ago
Scott Nonnenberg 10bd12d622 Lint fixes 7 years ago
Scott Nonnenberg bc0ec92ad2 Tests and increase consistency for isFileDangerous calls 7 years ago
Scott Nonnenberg 0850dc368a Lint fixes 7 years ago
Scott Nonnenberg 7d9711ba65 Restore iOS-specific theme; colors on left in android theme 7 years ago
Scott Nonnenberg ca61c9cb85 Warnings for dangerous files 7 years ago
sachaaaaa 04b45f6aa1 Decrypt friend-request messages (the ones using fallback encryption). Moved logic into a new file libloki-protocol.js and concat loki code into js/libloki.js 7 years ago
Scott Nonnenberg 37822d2ef4 Update lint exceptions 7 years ago
Scott Nonnenberg a8e12d0771 Add user's avatar to the top left of the screen 7 years ago
Scott Nonnenberg 8f3e3b7aaf Update to new design for avatars: individual/group icons/colors
And two initials.
7 years ago
Scott Nonnenberg cf16ced91c Unread badge is now attached to avatar in left pane 7 years ago
Scott Nonnenberg 10c53bddb0 Move to new colors, switch incoming/outgoing colors 7 years ago
Scott Nonnenberg cd60bdd08a Move conversations to SQLCipher 7 years ago
sachaaaaa 22a86b5351 store key bundle status in conversation model 7 years ago
Scott Nonnenberg c13b91a790 Update linter exceptions after update 7 years ago
Scott Nonnenberg ecb126e74c
Custom linter to check code quality (#2753) 7 years ago
Scott Nonnenberg 9c399624cc Support for blocking groups on mobile, via group/blocked syncs 7 years ago
Scott Nonnenberg 8290146721 Show generic attachment for non-loading/too-large images/videos 7 years ago
Scott Nonnenberg 006700f9a2 Properly style countdown icon in iOS light/dark themes 7 years ago
Scott Nonnenberg 37f3054976 Both UI timer and database timer will remove expired message 7 years ago
Scott Nonnenberg b3d56276a8 Conversations now better take advantage of wide screens 7 years ago
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
7 years ago
Scott Nonnenberg a247ffe5cf When iOS device has been linked, use iOS color scheme 7 years ago
Scott Nonnenberg 727925a266 Clean up old messages, better handle errors from sending 7 years ago
Scott Nonnenberg b0b1e9b8e3 Message: video/image attachment borders inline, on top of image
Otherwise, its transparency will result in a distracting line between it
and its attached message bubble
7 years ago
Scott Nonnenberg 3b7ee3e2ce A couple copy changes: Show -> View, New Number -> Safety Number 7 years ago
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
Daniel Gasienica 4a5a2cb5c1 Replace Backbone with React lightbox 7 years ago
Daniel Gasienica cb94d09ef9 Rename media gallery items 7 years ago
Daniel Gasienica 5d0469adef Skip loading videos into memory for performance 7 years ago
Daniel Gasienica c6904476f4 Improve `IndexableBoolean` type 7 years ago
Daniel Gasienica 809e34b0f4 Load 50 attachments for media gallery 7 years ago
Daniel Gasienica 0a4be2e0f4 Remove unused `i18n` 7 years ago
Daniel Gasienica 4ce0472b9f Extract `Message.loadWithObjectURL` 7 years ago
Daniel Gasienica 45d89d1e44 Create `UserMessage` type
Describes user visible messages that can have attachments.
7 years ago
Daniel Gasienica 27c4bf90e3 Add `Signal.Backbone` 7 years ago
Daniel Gasienica 825980fbd1 Add `Collection.fetchVisualMediaAttachments` 7 years ago
Daniel Gasienica cad5e417f3 Add `arrayBufferToObjectURL` module 7 years ago
Daniel Gasienica e5d90775d0 Add `MapAsync` type definition 7 years ago
Daniel Gasienica 648a7ab1bb Autoformat using Prettier 7 years ago
Daniel Gasienica e07458d886 Add basic Backbone type definitions 7 years ago
Daniel Gasienica 9d84b2f420 Index messages with attachments using a boolean
When indexing message attachment metadata using numeric indexes such as:

```javascript
{
  conversationId: '+12223334455',
  received_at: 123,
  attachments: […],
  numAttachments: 2,
},
{
  conversationId: '+12223334455',
  received_at: 456,
  attachments: [],
  numAttachments: 0,
}
{
  conversationId: '+12223334455',
  received_at: 789,
  attachments: [],
  numAttachments: 1,
}
```

It creates an index as follows:

```
[conversationId, received_at, numAttachments]
['+12223334455', 123, 2]
['+12223334455', 456, 0]
['+12223334455', 789, 1]
```

This means a query such as…

```
lowerBound: ['+12223334455', 0,                1               ]
upperBound: ['+12223334455', Number.MAX_VALUE, Number.MAX_VALUE]
```

…will return all three original entries because they span the `received_at`
from `0` through `Number.MAX_VALUE`. One workaround is to index booleans using
`1 | undefined` where `1` is included in the index and `undefined` is not, but
that way we lose the ability to query for the `false` value. Instead, we flip
adjust the index to `[conversationId, hasAttachments, received_at]` and can
then query messages with attachments using

```
[conversationId, 1 /* hasAttachments */, 0                /* received_at */]
[conversationId, 1 /* hasAttachments */, Number.MAX_VALUE /* received_at */]
```
7 years ago
Daniel Gasienica c46e1a1519 Move top-level functions to `Signal.Util` 7 years ago
Daniel Gasienica a609c31a57 Style attachment section headers 7 years ago
Daniel Gasienica ae4c74dd5b Skip metadata initialization for `verified-change` messages 7 years ago
Daniel Gasienica b0fefdbb98 Implementing grouping messages by date 7 years ago
Daniel Gasienica 424965f876 🎨 Autoformat code 7 years ago
Daniel Gasienica f367a9b059 Move `private` method below `public` ones 7 years ago
Daniel Gasienica 3d70e46aea Calculate dates in UTC 7 years ago
Daniel Gasienica d7b21ef5dc Render attachments grouped by date 7 years ago
Daniel Gasienica e34347f290 Add `groupMessagesByDate` 7 years ago
Daniel Gasienica 9053b6acfc Remove unused style 7 years ago
Daniel Gasienica 66516fd36a Use short format for dates 7 years ago
Daniel Gasienica 923d5ff088 Add `missingCaseError` function 7 years ago
Daniel Gasienica fc1c3aabf5 Add scaffolding for media gallery 7 years ago
Daniel Gasienica a8be4f2d8d Expose Lodash in style guide 7 years ago
Daniel Gasienica 94ef3bab80 Move test file 7 years ago
Daniel Gasienica 32a3ef518b Render media gallery placeholder panel 7 years ago
Daniel Gasienica f9e4613395 Move TS test for message migration 7 years ago
Daniel Gasienica 867bece952 Add `Message.initializeAttachmentMetadata` 7 years ago
Daniel Gasienica c5352cf26c Separate required from optional `Message` keys 7 years ago
Daniel Gasienica fc12353bb8 Add `Attachment.isVisualMedia` 7 years ago
Daniel Gasienica 47cc701e72 Add `GoogleChrome` module
Helps us determine which media we can natively display / play back in Electron.
7 years ago
Daniel Gasienica 6ff82adf0a Add `MIME.isImage` and `MIME.isVideo` 7 years ago
Daniel Gasienica df2e6e7864 Port `MIME` module to TypeScript 7 years ago
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/
7 years ago
Scott Nonnenberg fdc13d0af3
Fix some tslint errors
I really need to get it running in my editor!
7 years ago
Scott Nonnenberg bd88407b78
iOS theme: Permanant background to attachment part of bubble
(this is to handle a quote making bubble wider, but a narrow image)
7 years ago
Scott Nonnenberg 21713cbce7
Update quotes to render emoji just like normal messages 7 years ago
Scott Nonnenberg 37cac717cb
Use fit: cover for non-square thumbnails, better movie icon
Also: Match Android's X button in the quote composition area
7 years ago
Scott Nonnenberg 12257e1560
MessageView: Show menu w/ 'reply to message' on triple-dot click 7 years ago
Scott Nonnenberg f4d9ab8ba0
Put quote preview in text box for Android, above it in iOS 7 years ago
Scott Nonnenberg c71dcf0139
Show current quoted message above composition field
Note that substantial changes will be required for the updated Android
mockups, putting the quotation into the text box next to the attachment
preview.
7 years ago
Scott Nonnenberg d29162f3b6
CSS Refactor: Pull quote CSS out from parent classes
This is to prepare for it to be shown in the message composition area.
7 years ago
Scott Nonnenberg 26e4e97592
Tighten up CSS
- Remove extra padding at top of Android bubbles, via sibling selector
- Don't include .attachments, .quote-wrapper, .content in bubble unless
  we actually need them. This allows for sibling selectors.
- This is a different technique for adding the ReactWrapperView for
  quotes - it is now appended to the DOM instead of attaching to
  something already in the DOM. This allows us to use .remove(), so it's
  a bit cleaner.
- Users of ReactWrapperView can now specify tagName and className
7 years ago
Scott Nonnenberg a563dc8b37
Style Guide: Additional message examples, a few fixes to enable 7 years ago
Scott Nonnenberg 5af5bbdb0f
Add style guide examples for portrait/landscape images 7 years ago
Scott Nonnenberg e3d15d80f6
Quote.md: Fix image example, add examples for attachment + reply 7 years ago
Scott Nonnenberg 7bd747a796
ConversationContext: conversationType => type
And a group conversation example to messages.md
7 years ago
Scott Nonnenberg 3bbbf65a6b
Fix iOS: tail, blue partial border, extra attachment space
Turns out that display: inline on the img tag resulted in a mysterious
3px of space added below it.
7 years ago
Scott Nonnenberg c283ba1a12
Remove pointer cursor when clicking on quote won't do anything 7 years ago
Scott Nonnenberg fce9bb7342
Move to central MIME functions, remove some console.log
And generally address PR feedback.
7 years ago
Scott Nonnenberg d91f40177e
Quote.tsx: Fix tslint errors
I really need to get tslint editor integration in place.
7 years ago
Scott Nonnenberg a0b1dea693
Introduce a bit of color to the message/attachment style guide 7 years ago
Scott Nonnenberg b458c7d449
android-dark: Constrain light play icon to with peer image 7 years ago
Scott Nonnenberg bdaebc24ae
A few tweaks for the android-dark theme 7 years ago
Scott Nonnenberg 087dd0f758
Support for iOS theme 7 years ago
Scott Nonnenberg 644bc9e6fb
Fix problem of squished quote icons and images 7 years ago
Scott Nonnenberg 2243e348f1
Wire up fake window.Signal.HTML because it's captured on load 7 years ago
Scott Nonnenberg 0f8dd7e2db
Fix a number of lint failures 7 years ago
Scott Nonnenberg 1cc0633786
Full support for quotations in Android theme 7 years ago
Scott Nonnenberg 21bf02c94d
Fixed examples in Quote.md, rough Android visuals 7 years ago
Scott Nonnenberg 6653123671
Move quote-related examples from Message.md to Quote.md 7 years ago
Scott Nonnenberg b4ce79cac0
Reply -> Quote 7 years ago
Scott Nonnenberg 09c3fbc5e2
Style guide: All permutations of text reply to diff. quote types 7 years ago
Scott Nonnenberg ae043bf239
In iOS theme, join attachment bubble with caption bubble 7 years ago
Scott Nonnenberg 3a76c3c86e
Styleguide: Incoming/outgoing attachments of all types 7 years ago
Daniel Gasienica 44debd123d Add basic implementation of `Conversation.updateFromLastMessage` 7 years ago
Daniel Gasienica cca5db3237 Remove unused import 7 years ago
Daniel Gasienica 1659354f51 Expand `Message` type definitions 7 years ago
Daniel Gasienica b50c55172d Add `MIME` type 7 years ago
Daniel Gasienica 65bf34d1b8 Add basic `Attachment` type definition 7 years ago
Daniel Gasienica f25a579f32 Add basic `Message` type definition 7 years ago
Daniel Gasienica bcd3e26377 Fix TS warning about `appendChild` 7 years ago
Daniel Gasienica 55fc21505e Rename `ts/test` to `ts/styleguide` 7 years ago
Daniel Gasienica 9d41b86162 Remove escaping from `linkText`
We leverage jQuery’s HTML escaping in `$.html(…)`.
7 years ago
Daniel Gasienica f04c65088b Fork `link-text` module 7 years ago
Daniel Gasienica 144cb58a47 Add `HTML` module for rendering messages 7 years ago
Daniel Gasienica f38370f40e Add custom type definition for `link-text` 7 years ago
Scott Nonnenberg 96bd90a4e0
Simplify assignment; add warning to preload.js about Style Guide 7 years ago
Scott Nonnenberg 05303233fb
window.Signal.React -> window.Signal.Components 7 years ago
Scott Nonnenberg 23537546fe
Big refactor: ts/ directory for all typescript, including react
Split out test-specific and general utility react components too.

And moved our test/legacy* files for the Style Guide into a styleguide/
subdirectory of test/.

I think we'll be able to live in this directory structure for a while.
7 years ago