Commit Graph

2638 Commits (ec12733dad6b9d62c695e8b5a2d224d1bf085be9)

Author SHA1 Message Date
Scott Nonnenberg e2d044e02b Filter file scheme; disable http, https and ftp entirely 7 years ago
Scott Nonnenberg e02887565b
Update to electron v2.0.1 (#2401)
* Remove extra parenthesis causing warnings on latest chromium

* Update to electron 2.0.1

* Move all @types dependencies to devDependencies

* Update electron-builder/electron-updater

* Update to Node.js 8.9.3 to match Electron 2.0.1
7 years ago
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
7 years ago
Scott Nonnenberg 4e5c8965ff Move to react for newlines, emoji, and links in message body 7 years ago
Scott Nonnenberg c00c939148 Update link handling 7 years ago
Scott Nonnenberg b1a54c416f Notifications: All calls are debounced except for shutdown clear 7 years ago
Scott Nonnenberg 18a76ffb49 Debounce notifications so we don't orphan them
Creating/destroying notifications too quickly in testing on macOS would
result in them sticking around forever, requiring manual user dismissal.
We want to dismiss them for the user when we close or our window is
activated. So now we debounce() calls to our notifications code.
7 years ago
Daniel Gasienica 24002149f6 Log read sync reception and remove notification 7 years ago
Daniel Gasienica d434262540 Remove last notification before creating new one 7 years ago
Scott Nonnenberg 80b069e9b6 Move phone number format/parse into ts/types/PhoneNumber 7 years ago
Scott Nonnenberg 93d3abbf8d Use contact name when updating last message for a conversation 7 years ago
Scott Nonnenberg aa13a2c6f7 Parse phone numbers into e164 as part of schema upgrade 7 years ago
Scott Nonnenberg d2293d9592 parseAndWriteAvatar: Do shallow copy before omit() call
Otherwise, we get all prototype props/functions, which we can't save in IndexedDB
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 e723484498 Simplify closing emoji panel on escape key down 7 years ago
tommypacker 48708d5738 Close emoji panel on escape press 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 101041f106 Derive `Message.CURRENT_SCHEMA_VERSION` 7 years ago
Scott Nonnenberg 26be658892 Remove 'Contact' from 'Contact.*' properties, clean->parse 7 years ago
Scott Nonnenberg cda326ca45 Use protobuf enum values to eliminate magic numbers 7 years ago
Scott Nonnenberg adbe989949 validateContact: Return error instead of logging 7 years ago
Scott Nonnenberg bb01218e83 MessageView: Get rid of 'let' for hasSignalAccount 7 years ago
Scott Nonnenberg d0efccd121 A couple renames in contact.js 7 years ago
Scott Nonnenberg 420f81ebcd Move contact migrate code from message.js to contact.js 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 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
Scott Nonnenberg 3ea3e4e256 Contact sharing: protos and data pipeline
As of this commit: 82b76ccf37
7 years ago
Scott Nonnenberg b6a585a646
MessageView: Add id from database to DOM for outgoing messages (#2350) 7 years ago
Daniel Gasienica 38f3ad6518 Use `SignalService` vs `textsecure` for protobuf 7 years ago
Daniel Gasienica a0ddab669b Organize `global`s 7 years ago
Daniel Gasienica a86056630f Use `Attachment.isVoiceMessage` 7 years ago
Daniel Gasienica 0121dc7a5a Log notification grouping support 7 years ago
Daniel Gasienica c2407c8906 Disable notification grouping on Windows 7 7 years ago
Daniel Gasienica 13f1ec2e51 Use structured logs
Easier to search for static prefix and fields are named.
7 years ago
Daniel Gasienica 0ce56eed87 Use structured log 7 years ago
Daniel Gasienica 5c8f734e67 Remove newlines from group IDs 7 years ago
Daniel Gasienica ae7d6aa900 Log `Conversation::updateLastMessage` 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 1f2a2e1d52 Use `Notifications.getStatus` 7 years ago
Daniel Gasienica 5fe5320760 Rename `SETTINGS` to `SettingNames` 7 years ago
Daniel Gasienica 0701768fd7 Declare globals for `drawAttention` and `isFocused` 7 years ago
Daniel Gasienica 06e3f09732 ESLint: Add `js/notifications` 7 years ago
Daniel Gasienica b510916ef5 Split `global`s into third-party and own 7 years ago
Daniel Gasienica c40bd7e235 Remove unused `retryDescription` localized string 7 years ago
Scott Nonnenberg 754d65ae2e Let's make it all pretty, shall we?
We missed a couple directories with previous attempts to turn this on
globally: app/ and libtextsecure/

Not to mention files in places we didn't expect: ts files that weren't
in the ts directory!

This turns prettier on for every file we care about (js, ts, tsx, md)
everywhere in the project but for a few key parts.
7 years ago
Daniel Gasienica 6eca5ee940 Document that JPEG auto-orient strips EXIF metadata 7 years ago
Daniel Gasienica 95321e5d3e Remove Vim mode lines 7 years ago
Daniel Gasienica 822850433e Apply manual fixes for ESLint errors 7 years ago
Daniel Gasienica 1dd87ad197 Format all source code using Prettier 7 years ago
Daniel Gasienica e4baf27fa7 Increase migration conversion speed by a factor of 3x 7 years ago
Daniel Gasienica 50a0048bf2 Skip attachment migration for new users 7 years ago
Daniel Gasienica 6671228028 🎨 Format using ESLint 7 years ago
Daniel Gasienica d5fdf50fae Remove unused reference 7 years ago
Daniel Gasienica fccbf70d57 Pre-process media for `LightboxGallery` 7 years ago
Daniel Gasienica d00fb560b0 Avoid exposing `AttachmentTS` 7 years ago
Daniel Gasienica 86e48a5713 Implement background migration using index 7 years ago
Daniel Gasienica e1b620602d Display attachments from disk 7 years ago
Daniel Gasienica e2a2165d9c Remove lightbox on unload 7 years ago
Daniel Gasienica 21db2e7182 Use `saveURLAsFile` 7 years ago
Daniel Gasienica 36c609c2c3 Persist `has*Attachments` properties for incoming messages 7 years ago
Daniel Gasienica 3df8c22e44 Alphabetize `Message` properties 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 b86f9c0be8 Allow saving of attachments from media gallery lightbox 7 years ago
Daniel Gasienica b74b761255 Implement click to save for document list 7 years ago
Daniel Gasienica 41fe50553f Replace Backbone `saveFile` with `Attachment.save` 7 years ago
Daniel Gasienica 954433366e Load documents for media gallery 7 years ago
Daniel Gasienica 2a5f513ebc Organize `global`s 7 years ago
Scott Nonnenberg 84c7a4c293 Move to some of our global utility methods 7 years ago
Scott Nonnenberg 403fb1fd60 Make algorithm for finding thumbnails more efficient 7 years ago
Scott Nonnenberg 27a30b3267 Respond to PR feedback
- makeThumbnail -> makeImageThumbnail
- duplicate 'display: flex'
- remove no-longer-applicable comment
7 years ago
Scott Nonnenberg ac0b50d20f
Generate thumbnails for new video attachments, video quotes 7 years ago
Scott Nonnenberg 0e99ca61a2
eslintify file_input_view.js 7 years ago
Daniel Gasienica bf3a547a76 Organize `global`s 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 8e3c38d5fe Fix formatting 7 years ago
Daniel Gasienica b65370c8d7 Prefer `GoogleChrome.is*` over `MIME.is*` 7 years ago
Daniel Gasienica 96be0df8c7 Show lightbox controls based on presence of handlers 7 years ago
Daniel Gasienica 9134701f7c Move `filesize` from Bower to npm 7 years ago
Daniel Gasienica 86a9923181 Remove TODOs 7 years ago
Daniel Gasienica 204de3aaea Lazily bind `Signal.Components.MediaGallery` 7 years ago
Daniel Gasienica 146178f977 Update schema documentation 7 years ago
Daniel Gasienica b4a4182613 Hide ‘Save As…’ button in media gallery
Wait until we support it.
7 years ago
Daniel Gasienica 0d676a65b8 Open media gallery item in lightbox 7 years ago
Daniel Gasienica ce825fbd66 Rename `save` to `onSave` 7 years ago
Daniel Gasienica b0e1cc49a5 Remove legacy Backbone lightbox 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 3acdeb90c3 Make `ReactWrapperView` globals explicit 7 years ago
Daniel Gasienica 4a5a2cb5c1 Replace Backbone with React lightbox 7 years ago
Daniel Gasienica 4ce0472b9f Extract `Message.loadWithObjectURL` 7 years ago
Daniel Gasienica 2dc3877fd4 Integrate visual media attachment gallery 7 years ago
Daniel Gasienica 082ef98a56 Add type definition for `deferredToPromise` 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 f367a9b059 Move `private` method below `public` ones 7 years ago
Daniel Gasienica d7b21ef5dc Render attachments grouped by date 7 years ago
Daniel Gasienica ae419764bf Use arrow function over `.bind` 7 years ago
Daniel Gasienica 272c49c5bf Use existing `ReactWrapper` 7 years ago
Daniel Gasienica 32a3ef518b Render media gallery placeholder panel 7 years ago
Daniel Gasienica 5f220a7b2c Add migration for media gallery indices 7 years ago
Daniel Gasienica 273248d3fd Wire up ‘View All Media’ menu item 7 years ago
Daniel Gasienica d14761087a Add schema version 4: Attachment metadata 7 years ago
Daniel Gasienica df2e6e7864 Port `MIME` module to TypeScript 7 years ago
Daniel Gasienica 6a63e427c8 Use `is` instead of Lodash `is*` 7 years ago
Scott Nonnenberg 9619e5b66d
Fix quote thumbnail flickering issue
Turns out that we reload thumbnails for every message when any new
message is added to the conversation. This fix prevents that by actually
checking for the proper sentinel on the message model
7 years ago
Scott Nonnenberg b0b1dc6be8
Apply iOS theme after link 7 years ago
Scott Nonnenberg c614c3968b
Enable the sending of quoted replies 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 bf81c3db63
Document Message v4, remove data-free thumbnails 7 years ago
Scott Nonnenberg c02860af5c
Responding to pull request review feedback
- messages.getQuoteObjectUrl: early return
- backup.js: explaining variables for long if statement
- types/messages.js: Log if thumbnail has neither data nor path
- sendmessage.js:
  - remove extraneous logging
  - fix indentation
  - upload attachments and thumbnails in parallel
- preload: don't load fs for tests, just fse
- _conversation.scss: split two selectors into two lines, 0px -> 0
- backup_test.js: use fse.existsSync and comment twoSlashes regex
- network_tests_view_test.js: Comment duplicate assignment to window.getSocketStatus
7 years ago
Scott Nonnenberg ba4b033db9
Disable sending of quoted replies for now 7 years ago
Scott Nonnenberg 21713cbce7
Update quotes to render emoji just like normal messages 7 years ago
Scott Nonnenberg a7d44d3344
Backup and end-to-end test! 7 years ago
Scott Nonnenberg d0bcf506b4
Put focus in the message composition field on reply 7 years ago
Scott Nonnenberg 978ff0e2bb
Refactor: Use correct name for sanitized filename in backup.js 7 years ago
Scott Nonnenberg 26dd01c4fd
Make sent quote clickable - process after adding to conversation 7 years ago
Scott Nonnenberg 73edabfb17
Full pipeline to send quotes, including thumbnail upload 7 years ago
Scott Nonnenberg 13ce056830
Make thumbnails on quote load and on quote preview creation 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 d4220e278d
MessageView: Remove logging 7 years ago
Scott Nonnenberg afad1a8d77
conversation_view: Remove logging in quote handling 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 e66f9faf33
MessageView refactor: reply -> quote 7 years ago
Scott Nonnenberg b4ff223d18
Refactor: Push selector logic for quote props into Message model 7 years ago
Scott Nonnenberg d0b11c59f5
Eslintify conversation_view.js 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 30957341e4
Show three dot icon next to message on hover
But only if it doesn't have an error.

Also: reformatted message template in legacy_templates.js to match what
is in background.html for easier diffing.
7 years ago
Scott Nonnenberg a563dc8b37
Style Guide: Additional message examples, a few fixes to enable 7 years ago
Scott Nonnenberg 000dc3a159
Handle attachment load failure for quoted message 7 years ago
Scott Nonnenberg f1ff040842
Finish type definition for _mapQuotedAttachments 7 years ago
Scott Nonnenberg 4e9abdf348
MessageView: Call the proper render method on change event 7 years ago
Scott Nonnenberg 04d186c05a
Conversation.loadQuoteThumbnail: Be resilient to no attachments 7 years ago
Scott Nonnenberg a6467d4fda
Constrain 'start recording' event listener to capture-audio only
(it was firing when clicking on a microphone icon in quotation!)
7 years ago
Scott Nonnenberg 3bbb9f535a
Load thumbnail even if we have the full message in hand
This is important for now, when we aren't generating our own thumbnails
7 years ago
Scott Nonnenberg c283ba1a12
Remove pointer cursor when clicking on quote won't do anything 7 years ago
Scott Nonnenberg 9ad55c803f
Fix handling attachment thumbnails using thumbnail key 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 32925ed026
Load attachment data for quotedMessages, processMessage on add
Not ideal that it loads it twice, but AttachmentView is so selfish with
its blob and objectUrl!
7 years ago
Scott Nonnenberg 0100e279f5
MessageView: Make Quotes resilient to re-renders 7 years ago
Scott Nonnenberg 087dd0f758
Support for iOS theme 7 years ago
Scott Nonnenberg fc330ef854
Quote loading: Check for in-memory message until we get one 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 5602241a0c
Eliminate eslint-generated triple-parents 7 years ago
Scott Nonnenberg 5c2936bdd6
Turns out that we call validateNumber() on group conversations! 7 years ago
Scott Nonnenberg e99192dca7
Unleash eslint on models/messages.js
Fun fact: eslint was not running on this file, despite the eslint
directives previously in the file!
7 years ago
Scott Nonnenberg 33ef967dd7
Unleash eslint on models/conversations.js 7 years ago
Scott Nonnenberg 054d3887a1
Quotes: The full pipeline into the database
1. MessageReceiver always pulls down thumbnails included in quotes
2. Message.upgradeSchema has a new schema that puts all thumbnails on
   disk just like happens with full attachments.
3. handleDataMessage pipes quote from dataMessage into the final message
   destined for the database
7 years ago
Scott Nonnenberg 21bf02c94d
Fixed examples in Quote.md, rough Android visuals 7 years ago
Scott Nonnenberg 2def6afe45
message_view.js: eslint fixes and a bit of fixup 7 years ago
Scott Nonnenberg ae043bf239
In iOS theme, join attachment bubble with caption bubble 7 years ago
Daniel Gasienica 5f8148d3da Bind to `Conversation` lazily to prevent style guide errors 7 years ago
Daniel Gasienica 0902c94093 Reset last message after message has expired
Fixes #980.
7 years ago
Daniel Gasienica d7b845326d ESLint auto-fix `link_text` 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 ac50713f86 Improve auto-linking of URLs in messages
Fixes #598.
7 years ago
Daniel Gasienica 24f4ad53bc Use single quotes for identifiers 7 years ago
Daniel Gasienica 432a6ebd7f Redact file paths with escaped slashes 7 years ago
Daniel Gasienica a8a7525609 Redact stack traces with forward and backslashes 7 years ago
Daniel Gasienica b0da7d965e Redact URL encoded file paths in stack traces 7 years ago
Daniel Gasienica f2c9ccae90 Prefer `is.*` over Lodash `is*` functions 7 years ago
Daniel Gasienica 2ee78ec556 Prefer `path` over `Path` 7 years ago
Scott Nonnenberg 8467352994
Rename file for Whisper.ReactWrapperView (#2232) 7 years ago
Scott Nonnenberg c6c3b65bbc
Introduce React, TypeScript, TSLint and React-StyleGuidist (#2219)
Quite a bit of change here.

First, the basics:

- New dependencies were added: react, typescript, tslint, and react-styleguidist
- A new npm script: transpile. It uses typescript to process .tsx files in js/react, putting .js files next to the original file. It's part of the watch functionality of grunt dev as well as the default task run with just grunt (used to build the app prior to release). A lighter-weight to get watch behavior when just working on React components is to run yarn transpile --watch.
- yarn run clean-transpile will remove generated .js files


Style guide via react-styleguidist. Example site: https://react-styleguidist.js.org/examples/basic/

- Start with yarn styleguide
- Component.md files right next to the .tsx file
- jsdoc-style comments are picked up and added to the generated part of the styleguide - the overall summary and a table listing methods and properties of the component
- It has hot-reloading!
- It uses webpack, which means that our app now pulls in webpack though we don't use it to generate anything for the production app.
- I did a bunch of work to enable the use of Backbone views in this context, which will allow us to move smoothly from the old world to the new. First, add all the permutations in the old way, and then slowly start to re-render those same views with React.

A bit of dependency cleanup to enable use in React components:

- moment was moved from our Bower dependencies to our npm dependencies, so it can be used in React components not running in a browser window.
- i18n was moved into the new commonjs format, so it can be used in React components even if window is not available.

Lastly, a bit of Gruntfile cleanup:

- Removal of Chrome App-era modifications of background.js
- Make jshint/jscs watch more targeted, since more and more we'll be using other tools
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
Scott Nonnenberg 50d4dbaae7
Remove 'use strict' from i18n.js 7 years ago
Scott Nonnenberg 76be13552f
js/i18n.js -> js/modules/i18n.js 7 years ago
Scott Nonnenberg e5322e8261
Finish rename of MessageParents, re-add moment to page
(we were getting crashes in the initial setup of a backbone view)
7 years ago
Scott Nonnenberg cdd16c9780
Rename test-only MessageParents to ConversationContext 7 years ago
Scott Nonnenberg 61a7846149
Fix typo in index.ts 7 years ago
Scott Nonnenberg 2384092e9e
Use Array.isArray in i18n.js 7 years ago
Scott Nonnenberg 23293a3c00
New tslint rule: Interfaces must not start with I 7 years ago
Scott Nonnenberg 1052341d79
Fix tslint errors and add tslint to CI task in package.json 7 years ago
Scott Nonnenberg be91a89d68
Parse theme from querystring, put on util. Moment from require()
We also fully set up i18n and put it on util as well as making
it available on windows.i18n for Backbone views.
7 years ago
Scott Nonnenberg 887abd75dd
Add missing shim, fix typo 7 years ago
Scott Nonnenberg ed12e1b076
Add mp3 to project, make binary files available in rsg on util 7 years ago
Scott Nonnenberg 3899eb8d0b
Add 'use strict' to i18n.js 7 years ago
Daniel Gasienica 195e9b777c Rename `willHaveAttachmentsSavedOnFileSystemDuringUpgrade`
New name: `willAttachmentsGoToFileSystemOnUpgrade`
7 years ago
Daniel Gasienica 4c4443390a Rename `createImporter` to `createAttachmentDataWriter` 7 years ago
Scott Nonnenberg 1326b26585
Full styleguide now available via `yarn styleguide`
Due to a number of hacks, the style guide can be used to show Backbone
views. This will allow a smooth path from the old way of doing things to
the new.
7 years ago
Scott Nonnenberg 893fb1cb9e
Introduce React/TypeScript/TSLint into app for new UI components
npm run transpile
  Works on files under js/react/
  Outputs files right next to the .tsx file

This is part of our `grunt dev` task, as well as the default grunt task,
which does everything else necessary to get a raw git checkout ready to
run.
7 years ago
Scott Nonnenberg f86a6ef752
Update style of i18n, pull it in via preload instead of .html 7 years ago
Daniel Gasienica 5ea1a305a6 Clarify error origin 7 years ago
Daniel Gasienica 9dcb64b53c Initialize schema version upon import 7 years ago
Daniel Gasienica cfad983d08 Consistently use `ciphertext` instead of `encrypted` 7 years ago
Daniel Gasienica a61c905146 Impliclity decrypt data if `key` is present 7 years ago
Daniel Gasienica 94c75762b5 Add `Message.createAttachmentLoader` 7 years ago
Daniel Gasienica 43ab320d31 Load attachments before writing them upon export 7 years ago
Daniel Gasienica 7eeabb5b1a Add precondition for `writeAttachment` 7 years ago
Daniel Gasienica 0faaf52b71 Import and upgrade messages upon save 7 years ago
Daniel Gasienica cf7355bd2f Rename `backupToDirectory` to `exportToDirectory`
For symmetry reasons.
7 years ago
Daniel Gasienica bf67254cc5 Add `Message.createImporter` 7 years ago
Daniel Gasienica efd673083d Rename `writeAttachmentData` to `writeNewAttachmentData` 7 years ago
Daniel Gasienica bcbd526b99 Sync read receipt configuration upon relink
Fixes https://github.com/signalapp/Signal-Android/issues/7535.
7 years ago