Commit Graph

748 Commits (6ab48cec9715f9f99fea7fe5fb1027e9edeecea7)

Author SHA1 Message Date
Matthew Chen f230717b68 Modify attachment emojis. 7 years ago
Matthew Chen 30403be9ba Respond to CR. 7 years ago
Matthew Chen 5a17c5609f Quote reply to oversize text. 7 years ago
Matthew Chen 9085609087 Fix interaction initializers and tests. 7 years ago
Michael Kirk 52ea54ae64 Add thumbnail when available
MVP

- [x] populate from menu
- [x] send quoted message

TODO

- [x] thumbnail
- [] paperclip icon showing for text message
- [] cancel button asset
- [] fonts
- [] colors
- [] adjust content inset/offset when showing quote edit

NICE TO HAVE

- [] animate presentation
- [] animate dismiss
- [] non-paperclip icon for generic attachments

// FREEBIE
7 years ago
Michael Kirk cfbbeca7ac WIP: QuotedMessagePreviewView
MVP

- [] populate from menu
- [] send quoted message

TODO

- [] thumbnail
- [] paperclip icon showing for text message
- [] cancel button asset
- [] fonts
- [] colors
- [] adjust content inset/offset when showing quote edit

NICE TO HAVE

- [] animate presentation
- [] animate dismiss
- [] non-paperclip icon for generic attachments

// FREEBIE
7 years ago
Matthew Chen 2278cdd589 Modify cells to show quoted messages. 7 years ago
Matthew Chen 7cf169012c Elaborate conversation view items around quoted replies. 7 years ago
Matthew Chen c36297a9ad Elaborate 'quoted reply' variations in the Debug UI. 7 years ago
Matthew Chen c639a2c146 Fix flush of registration connections. 7 years ago
Matthew Chen 4240b517d0 Respond to CR. 7 years ago
Matthew Chen 4915c127cb Rework quoted reply debug UI. 7 years ago
Matthew Chen 8e4f2ca0ed Rework proto schema changes for quoted replies.
Sketch out model changes for quoted replies.

Sketch out quoted reply input preview.

Send quoted messages protos.

Update models to reflect quoted messages.

Rework interaction initializers.

Rework interaction initializers.

Add debug UI methods for generating quoted reply variations.

Add debug UI methods for generating quoted reply variations.
7 years ago
Matthew Chen 9dfc955ee5 Fix flush of registration connections. 7 years ago
Matthew Chen 684614013e Revert "Fix flush of registration connections."
This reverts commit 52b238c499.
7 years ago
Matthew Chen 52b238c499 Fix flush of registration connections. 7 years ago
Matthew Chen 31f062ed11 Bubble collapse. 7 years ago
Matthew Chen 8d74c68f9d Bubble collapse. 7 years ago
Matthew Chen 4a4e9d1ce2 Bubble collapse. 7 years ago
Matthew Chen 75177ef00f Bubble collapse. 7 years ago
Matthew Chen c2e31540d7 Elaborate debug UI for messages. 7 years ago
Matthew Chen 4602ad9014 Respond to CR. 7 years ago
Matthew Chen 8254052bb2 Lazy restore attachments. 7 years ago
Matthew Chen 1dced463cb Lazy restore attachments. 7 years ago
Matthew Chen b2ac8f10e2 Lazy restore attachments. 7 years ago
Matthew Chen 3406d1562e Add local cache of backup fragment metadata. 7 years ago
Matthew Chen 61dc2c0249 Add local cache of backup fragment metadata. 7 years ago
Matthew Chen e88f5643f7 Add local cache of backup fragment metadata. 7 years ago
Matthew Chen d0c691bb7f Lazy attachment restores. 7 years ago
Michael Kirk 875321cecc Reflector configuration supports per-country code
Also update reflector hosts/policy

// FREEBIE
7 years ago
Matthew Chen ef34cd5d58 Fix 'invalid auth can hang on launch' issue. 7 years ago
Michael Kirk 394cc6637c Backport comments from translations
// FREEBIE
7 years ago
Matthew Chen bb596dba98 Add screen lock feature. 7 years ago
Matthew Chen 2d6d375e82 Add screen lock feature. 7 years ago
Matthew Chen cf0e6fce09 Add screen lock feature. 7 years ago
Matthew Chen 1612642c26 Add screen lock feature. 7 years ago
Matthew Chen b067d81017 Don't log message send errors. 7 years ago
Matthew Chen 8d689ec090 Properly cleanup content. 7 years ago
Michael Kirk 9c57a1f7e1 Don't generate thumbnail until attachment has been saved
// FREEBIE
7 years ago
Matthew Chen ab720a3100 Move backup protos to their own proto schema. 7 years ago
Matthew Chen 08ba7c85ed Clean up ahead of PR. 7 years ago
Matthew Chen 610bbacd21 Clean up ahead of PR. 7 years ago
Matthew Chen 0c81d5656f Rework database snapshot representation, encryption, etc. 7 years ago
Matthew Chen ca7c75a081 Rework database snapshot representation, encryption, etc. 7 years ago
Matthew Chen 1bbd41f725 Improve perf of database snapshots. 7 years ago
Michael Kirk 267e85915a Avoid overflow
// FREEBIE
7 years ago
Michael Kirk 2465d6df00 CR: ensure image is safe before generating thumbnail
// FREEBIE
7 years ago
Michael Kirk 32bf9d52a1 CR: Delete thumbnail with directory
// FREEBIE
7 years ago
Michael Kirk 8e9eb6d212 CR: Use a less-likely-to-collide thumbnail name for legacy attachments
If you had a legacy file foo.jpg and a file foo-thumbnail.jpg, we'd use
the foo-thumbnail.jpg as the thumbnail for foo.

This isn't a problem with modern attachments as each is in it's own
directory.

// FREEBIE
7 years ago
Michael Kirk d9a2effff6 CR: remove "k" from non constant
// FREEBIE
7 years ago
Michael Kirk a0bd2c2324 OrphanDataCleaner shouldn't delete active thumbnails
// FREEBIE
7 years ago
Michael Kirk 4aeff7ba67 Thumbnail generation
// FREEBIE
7 years ago
Michael Kirk dfd628250d Gallery performance
- [x] share uiDatabaseConnection to share cache
- [x] increase cache size
- [x] load less initially
- [x] lazy loading
  - [x] slider view
  - [x] tile view

// FREEBIE
7 years ago
Michael Kirk 985af76d0b WIP: All Media view
TODO

- [ ] label video/gif
- [ ] reasonable load perf
- [ ] reasonable scroll perf
- [ ] select / delete
- [ ] cancel share action from media details returns signal style

NICE TO HAVE

- [ ] fancy in/out animation from All Media <-> tiles
- [ ] label video thumbnail with duration stamp
- [ ] Other perf?
- [ ] dbModified?
- [ ] select / send
- [ ] darken section header a shade once it's "active"

DONE

- [x] tap to refocus on new media
- [x] generate test data
- [x] section headers
- [x] equal spacing around cells

// FREEBIE

WIP WIP extract datasouce to GalleryViewController

- [x] swipe through is broken
- [x] present animation
- [x] dismiss animation

// FREEBIE
7 years ago
Michael Kirk e5b1c0c9b4 Fake media send
// FREEBIE
7 years ago
Matthew Chen 0ba47808a8 Clean up ahead of PR. 7 years ago
Matthew Chen cf13a780e9 Retry backup failures. 7 years ago
Matthew Chen d2f2dd273a Fix edge cases in migrations. 7 years ago
Michael Kirk 4ac9a1019b Media page view controller
First pass at a swipe-through media view for conversations.

Future work could include

- title label per item
  - sender name
  - date/time
- photo rail
- include caption

// FREEBIE
7 years ago
Matthew Chen 4746948dfe Respond to CR. 7 years ago
Matthew Chen 68ba8976c5 Clean up ahead of PR. 7 years ago
Matthew Chen 76b4deffe4 Respond to CR. 7 years ago
Matthew Chen 3f822e8ce3 Complete minimal backup MVP. 7 years ago
Matthew Chen 5035cb040e Implement backup import logic. 7 years ago
Matthew Chen aa546a02df Merge remote-tracking branch 'origin/release/2.22.0' 7 years ago
Matthew Chen c1169ce240 Fix typo in background task. 7 years ago
Matthew Chen 0971bad4b2 Upload database and manifest files to CloudKit. 7 years ago
Matthew Chen c84bf81cf3 Export database for backup. 7 years ago
Matthew Chen b296cfb893 Sketch out incremental backup manager and settings view. 7 years ago
Matthew Chen 46a89e89f0 Sketch out OWSBackupStorage. 7 years ago
Matthew Chen 792be8018f Incremental backup. 7 years ago
Michael Kirk a885fb5dee Fix first reminder too early, offset bugs.
Schedule first reminder date relative to now, handle overflow

// FREEBIE
7 years ago
Michael Kirk a1de99f1f1 Merge tag '2.21.0.9' 7 years ago
Michael Kirk 39b87b702b Fix debuglogs.org integration
// FREEBIE
7 years ago
Matthew Chen db430d6aa7 Revert unwanted changes. 7 years ago
Matthew Chen 692ef423be Rename TSStorageManager to OWSPrimaryStorage. 7 years ago
Matthew Chen d6f4db1523 Rename TSStorageManager to OWSPrimaryStorage. 7 years ago
Matthew Chen 3435be5aba Preserve registration lock when updating account attributes. 7 years ago
Matthew Chen 0f7b852953 Persist registration lock PIN. 7 years ago
Michael Kirk 60a1cc5682 Make 2FA registration screen look like the rest of registration
// FREEBIE
7 years ago
Matthew Chen 9499e684e7 Handle rate limits in registration flow. 7 years ago
Matthew Chen 7543a82858 Handle rate limits in registration flow. 7 years ago
Matthew Chen 2d6b9a7c81 Respond to CR. 7 years ago
Matthew Chen 9db9409561 Share background tasks. 7 years ago
Michael Kirk 1d3831eccd Registration Lock reminder view
Also fixed: Don't lose PIN across registrations

// FREEBIE
7 years ago
Michael Kirk 54792ff461 Fix overzealous assert.
Sometimes we set values to nil - e.g. when re-registering through
debugUI

// FREEBIE
7 years ago
Michael Kirk 1ff2f3f42e Merge tag '2.21.0.1' 7 years ago
Michael Kirk 17ed0f6100 dedupe git hooks
// FREEBIE
7 years ago
Matthew Chen 4bbf0d9e3d Integrate with logs service. 7 years ago
Matthew Chen 7fa7f95066 Cleanup ahead of PR. 7 years ago
Matthew Chen 3e6db43b24 Clean up ahead of PR. 7 years ago
Matthew Chen 2395dbf66b Fix redundant sync sends. 7 years ago
Matthew Chen 59c745756a Clean up codebase. 7 years ago
Matthew Chen c2f092018c Elaborate request factory. 7 years ago
Matthew Chen 3acdd84398 Elaborate request factory. 7 years ago
Matthew Chen 004479a2ce Elaborate request factory. 7 years ago
Matthew Chen c17a819366 Elaborate request factory. 7 years ago
Matthew Chen 0ca497846b Elaborate request factory. 7 years ago
Matthew Chen baf6fcc535 Add 2FA registration view. 7 years ago
Matthew Chen b9458fffef Respond to CR. 7 years ago
Matthew Chen dcf7f550ae Fix redundant sync sends. 7 years ago
Matthew Chen b07f466e08 Fix redundant sync sends. 7 years ago
Michael Kirk 60259a8a13 Merge branch 'release/2.21.0' 7 years ago
Matthew Chen caeb97b466 Respond to CR. 7 years ago
Matthew Chen 055061ff5e Clean up ahead of PR. 7 years ago
Matthew Chen 8c54297918 Sketch out 2FA settings views. 7 years ago
Matthew Chen 4afedac68c Clean up ahead of PR. 7 years ago
Matthew Chen e12a1e984a Work on two-factor auth settings UI. 7 years ago
Matthew Chen 1f6cbd399e Sketch out 2FA feature. 7 years ago
Matthew Chen 71972ebe2f Be more explicit about expire timer. 7 years ago
Michael Kirk d0bcd8d6c7 Merge tag '2.20.2.2' 7 years ago
Michael Kirk 28c30bbe5c Be explicit when disappearing messages are disabled
// FREEBIE
7 years ago
Michael Kirk 13b5336210 Merge tag '2.20.2.1' 7 years ago
Michael Kirk b48452a747 Fix group-sync disabling disappearing timer
Must add properties *before* build

// FREEBIE
7 years ago
Matthew Chen bf48ccd4ad Merge remote-tracking branch 'origin/hotfix/2.20.1' 7 years ago
Matthew Chen 47a6d844c9 Refine handling of unsafe filename characters. 7 years ago
Matthew Chen d32e90c3d1 Fix build break. 7 years ago
Matthew Chen 59f480d5c4 Use background tasks during storage registration and disappearing message jobs. 7 years ago
Michael Kirk e020b0ff99 Persist default sound so we can use it for fallback notifications
// FREEBIE
7 years ago
Matthew Chen ad78b1ea53 Convert duplicate timestamp fail to log. 7 years ago
Michael Kirk b79244affa Don't enqueue sender read receipts from self-sent messages
These messages are always already read.

Reminder, there are two types of read receipts:

1. One informs our linked devices that we've read a message on another
device.
2. The other informs the sender that we've read their message.

This change is about the latter, we'll continue to send the former to
ourself.

The proximate cause for this change was a failing assert in
OWSMessageSender#handleSendToMyself:(TSOutgoingMessage *)outgoingMessage

The assert was failing because we were sending a message to ourself
which had no body or attachment (the sender-read receipt). Rather than
filtering them out from the message sender, we should never ask the
message sender to do nonsense work (send a senderReadReceipt to ourself)

// FREEBIE
7 years ago
Matthew Chen 10ca369da8 Respond to CR. 7 years ago
Matthew Chen 6006d22870 Improve handling of attachments with captions. 7 years ago
Matthew Chen 8576da791c Improve handling of attachments with captions. 7 years ago
Matthew Chen 96b5f22799 Improve handling of attachments with captions. 7 years ago
Matthew Chen 4e1e232825 Flush writes from other processes. 7 years ago
Matthew Chen 1109158b5b Add comment. 7 years ago
Matthew Chen 70ba1720d9 Filter unicode ordering letters. 7 years ago
Matthew Chen 3bb802189c Use background tasks during db transactions. 7 years ago
Matthew Chen 706006539f Improve the robustness of the migration logic. 7 years ago
Matthew Chen d91507d897 Improve the robustness of the migration logic. 7 years ago
Matthew Chen 9295a56309 Elaborate logging around storage migration. 7 years ago
Matthew Chen 1a0f4bf928 Improve logging around network activity. 7 years ago
Michael Kirk 033505afd7 Remove slow file protection updates from launch path
To avoid blocking launch, file protection is now updated async for most
moved files. Out of paranoia, the database files are also update
redundantly on a sync code path.

It's still critical that we update permissions recursively for two
reasons:

1. Updating a containing directories FileProtection does not affect
   existing files in that directory.

2. Because we've changed the containers default file protection level
   (from unspecified to NSFileProtectionComplete), some existing files
   will have there file protection updated upon launching Signal 2.20.
   It's not clear to me which files this affects, and I haven't found
   any relevant documentation, but from observation, it seems to affect
   any top-level files in the container. Regardless, we're now doing the
   right thing: after launching 2.20, ensure all file permissions are
   what we expect.

Also removed no-op file protection on legacy db files. They've already
been moved by the time this method runs in AppSetup.

// FREEBIE
7 years ago
Matthew Chen 283fe17649 Apply Indic script fixes to SAE and master. 7 years ago
Matthew Chen 90b8ee4849 Merge remote-tracking branch 'origin/hotfix/2.19.7' 7 years ago
Matthew Chen 77bf0b66f5 Fix attachment MIME types. 7 years ago
Matthew Chen d648a258d1 Merge branch 'hotfix/2.19.7' 7 years ago
Matthew Chen abfd333a17 Address Indic script crash. 7 years ago
matthew chen 47aa29db25 Fix build breakage. 7 years ago
Michael Kirk da15f245cf CR: fix early return, assert on error
inline functions which were only used once

// FREEBIE
7 years ago
Michael Kirk b4359b33dd Fix "lose messages received while in background"
A moved legacy DB has the NSFileProtectionClassComplete, meaning it's
never accessible while the device is locked.

// FREEBIE
7 years ago
Matthew Chen d13511ca7d Exit SAE when complete. 7 years ago
Michael Kirk 5c432a2bc1 Fix crash on launch in debug.
OWSReadReceiptManager is not `init` on the main thread; however, because
it "schedules" it's own processing during init.

I considered dispatching to main, but since AppReadiness already *can*
resolve async if the app isn't yet ready, it should be no less safe to
also dispatch async when it's off the main thread.

// FREEBIE
7 years ago
Matthew Chen b7958262ba Respond to CR. 7 years ago
Matthew Chen 8930110efd Fix glitch in batch processing of incoming messages. 7 years ago
Matthew Chen 6f28c75257 Fix glitch in batch processing of incoming messages. 7 years ago
Matthew Chen 4b62faf2f8 Aggressively nag iOS 8 users to upgrade iOS. 7 years ago
Michael Kirk 3d5f7e6bf3 Clean up logging
- tag all log lines for easier filtering
- use up-to-date database path

// FREEBIE
7 years ago
Michael Kirk 4d0362f9a6 Don't create redundant caption for sync'd transcripts.
Note: For test devices running HEAD, there may have already been some
redundant captions created for sync'd transcripts.

However the existing `TSMessage#initWithCoder:` migration will address
this for our production users, so I'm not going to bother with a second
migration just for our test devices.

// FREEBIE
7 years ago