Commit Graph

627 Commits (68f3334e77f8f842ac0071bfd0025c6d458211d9)

Author SHA1 Message Date
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
Matthew Chen 81522e4a23 Respond to CR. 7 years ago
Matthew Chen 888bf9256f Avoid deadlocks in message sender. 7 years ago
Matthew Chen 01496b2db8 Avoid deadlocks in message sender. 7 years ago
Matthew Chen a19882baaa Avoid deadlocks in message sender. 7 years ago
Collin B. Stuart cc94573e9b Constant time compare
- fix case when second part of the && conditional is skipped when data is not equal

- isEqual variable marked volatile to prevent case when it doesn't equal 0, the loop can break early since it can never be 0 again

- tested with Fastest O3 and Whole Module optimization (App Store Release)

// FREEBIE
7 years ago
Michael Kirk ea12ed4c23 Fix dynamic type check which was too restrictive
// FREEBIE
7 years ago
Michael Kirk ae2ddb25cc CR: add assert
// FREEBIE
7 years ago
Michael Kirk d6b3e191d1 Fix crash while searching when group somehow has nil members
This shouldn't normally happen, but seeing it on my device.

// FREEBIE
7 years ago
Michael Kirk a23f1b86ef nullability annotations for TSGroupModel
- add readonly where possible
- group members needn't be a mutable array

// FREEBIE
7 years ago
Joshua Lund 2c18a75d12 Update to the new GitHub organization name 7 years ago
Matthew Chen ba42ac73d8 Revisit TODOs in the SAE work. 7 years ago
Matthew Chen 9c8178653d Revisit TODOs in the SAE work. 7 years ago
Matthew Chen b64528e817 Respond to CR. 7 years ago
Matthew Chen 78c4c00eac Respond to CR. 7 years ago
Matthew Chen 862172072c Respond to CR. 7 years ago
Matthew Chen bd0f601792 Respond to CR. 7 years ago
Matthew Chen 38950ae2ed Respond to CR. 7 years ago
Matthew Chen 6b357f9445 Respond to CR. 7 years ago
Matthew Chen 43765ef3b5 Respond to CR. 7 years ago
Matthew Chen 51cec20c50 Clean up ahead of PR. 7 years ago
Matthew Chen 7d3f79440f Clean up ahead of PR. 7 years ago
Matthew Chen c8e7eb903c Add protocol context to protocol kit. 7 years ago
Matthew Chen bbd689bfd0 Add protocol context to protocol kit. 7 years ago
Matthew Chen d3e16583eb Add protocol context to protocol kit. 7 years ago
Matthew Chen 074046b98e Add protocol context to protocol kit. 7 years ago
Matthew Chen 7358f3053f Add protocol context to protocol kit. 7 years ago
Matthew Chen 218bb15ea7 Add protocol context to protocol kit. 7 years ago
Matthew Chen 39e353503f Add protocol context to protocol kit. 7 years ago
Matthew Chen 71782e0369 Add protocol context to protocol kit. 7 years ago
Matthew Chen 122ef91e57 Add protocol context to protocol kit. 7 years ago
Michael Kirk a1d3073705 Cannot open settings from share extension
// FREEBIE
7 years ago
Matthew Chen 799949e546 Refine sync messages. 7 years ago
Matthew Chen 59ff1561f5 Set the timestamp property on data messages. 7 years ago
Matthew Chen 4218af13d5 Send image width/height for image and video attachments. 7 years ago
Matthew Chen 3a4180214f Send image width/height for image and video attachments. 7 years ago
Matthew Chen 43ed8d9a5d Send "disappearing messages" state for groups. 7 years ago
Matthew Chen b16a65a4cd Sync block state for contacts. 7 years ago
Matthew Chen 742d4cabc2 Send "disappearing messages" state for contacts. 7 years ago
Matthew Chen 2dc37d598c Updates service proto schema to latest. 7 years ago
Michael Kirk 4f8db63fb3 Ensure keyspec is generated before DB is created
// FREEBIE
7 years ago
Michael Kirk 6f959ff292 CR: be more conservative about deriving key spec, clear old passphrase
after deriving key spec.

// FREEBIE
7 years ago
Michael Kirk d22fc664f2 more granular key access
// FREEBIE
7 years ago
Michael Kirk 426c9baa16 Key material changes
- For new installs, generate raw key-spec rather than derive it
- Adapt to separated concerns of the key derivation migration from the unencrypted header migration
- Reduce number of places where we delete/generate keying information
- Only store relevant keying material

// FREEBIE
7 years ago
Michael Kirk 938b9c85b8 Don't crash on clean install
Otherwise we'll error when retrieving non-existent password.

// FREEBIE
7 years ago
Matthew Chen 4bfdef520a Respond to CR. 7 years ago
Matthew Chen a30170b3b2 Prefer "app is ready" flag to "storage is ready" flag. 7 years ago
Matthew Chen be1fde905c Don't mark app as ready until all version migrations are done. 7 years ago
Matthew Chen 963d0547ad Clean up ahead of PR. 7 years ago
Matthew Chen 8e427111ef Clean up ahead of PR. 7 years ago
Matthew Chen ebbe96a5d5 Clean up ahead of PR. 7 years ago
Matthew Chen 6eddfae214 Improve post-migration testing tools. 7 years ago
matthew chen 8325c37191 Fix build breakage. 7 years ago
matthew chen 873c789132 Fix build breakage. 7 years ago
Matthew Chen b9ec7d96e9 Register all database views asynchronously. 7 years ago
Matthew Chen aeeef43416 Register all database views asynchronously. 7 years ago
Matthew Chen b21f793756 Register all database views asynchronously. 7 years ago
Matthew Chen eb180ba5c4 Register all database views asynchronously. 7 years ago
Matthew Chen 100adae245 Register all database views asynchronously. 7 years ago
Matthew Chen 5cf89a0f3d Register all database views asynchronously. 7 years ago
Matthew Chen 7ebeeda5f9 Clean up ahead of PR. 7 years ago
Matthew Chen 6f7f1b3b08 Improve pre-migration testing tools. 7 years ago
Matthew Chen 9d101c3f53 Elaborate Debug & Internal UI. 7 years ago
Matthew Chen b3e6278a45 Clean up ahead of PR. 7 years ago
Matthew Chen 9d909025c9 Handle UIImage shares. 7 years ago
Matthew Chen 5770a18b08 Handle text shares like URLs. 7 years ago
Matthew Chen 992e926142 Unpack oversize text messages if possible. 7 years ago
Matthew Chen 482ad08640 Handle unregistration in SAE. 7 years ago
Matthew Chen 6a81d8e5c2 Respond to CR. 7 years ago
Matthew Chen 7e769de5d2 Remove spurious warning. 7 years ago
Matthew Chen 0cc7f3e00e Clean up ahead of PR. 7 years ago
Matthew Chen 5d422e03d1 Add support for key specs. 7 years ago
Matthew Chen c5079ed3d7 Add support for key specs. 7 years ago
Matthew Chen a3e77019e2 Update storage to use database salts. 7 years ago
Matthew Chen 149199138c Clean up ahead of PR. 7 years ago
Matthew Chen 173da64bc4 Modify YapDatabase to read converted database, part 1. 7 years ago
Michael Kirk 71dc7f55d3 Copy DB setup / keying from Yap into conversion
// FREEBIE
7 years ago
Matthew Chen 1bff0f2b0e Incomplete commit starting work on loading databases for conversion. 7 years ago
Matthew Chen dc73342573 Convert databases if necessary. 7 years ago
Michael Kirk baa312f449 Timer button with duration label
// FREEBIE
7 years ago
Michael Kirk 5dde17d939 Show approval/caption view in app.
ApprovalView/Captioning is shown for:
- Images/Videos from Library
- Images/Video from Camera
- Document Picker
- GIFs

Voice notes are intentionally not captionable.

Also, in main app, hide status bar when ApprovalView is presented

// FREEBIE
7 years ago
Michael Kirk a423fe8a0e WIP Merge tag '2.19.4.4'
- restore video playback in fullscreen

This was a large merge, so I'm opting to make some changes in separate
commits.
7 years ago
Matthew Chen 0d5b5bc44c Respond to CR. 7 years ago
Matthew Chen 3de9a4ea55 Add debug UI actions around clearing and snapshotting session state. 7 years ago
Matthew Chen 2b528ad894 Don't use mainApplicationState in business logic. 7 years ago
Matthew Chen fec2410ac2 Respond to CR. 7 years ago
Matthew Chen 3f2bee8383 Respond to CR. 7 years ago
Matthew Chen d81d85c386 Respond to CR. 7 years ago
Matthew Chen c308e25115 Skip redundant sync messages. 7 years ago
Matthew Chen a2b67a17fd Skip redundant sync messages. 7 years ago
Matthew Chen 41e6eaeafc Skip redundant sync messages. 7 years ago
Matthew Chen 76676659f8 Respond to CR. 7 years ago
Matthew Chen 17907dca10 Clean up ahead of PR. 7 years ago
Matthew Chen 15b8e58324 Retain changes from session database branch. 7 years ago
Matthew Chen 59933ce1d6 Fix rebase breakage. 7 years ago
Matthew Chen 16f7317579 Complete backup restore/import. 7 years ago
Matthew Chen 272a90d269 Add import back up UI. Begin work on import backup logic. 7 years ago
Matthew Chen 980b3d25a7 Rework "export backup" UI. 7 years ago
Matthew Chen 89c7ebf74b Respond to CR. 7 years ago
Matthew Chen 77572bdaec Retain changes from session database branch. 7 years ago
Matthew Chen 1839b10550 Retain changes from session database branch. 7 years ago
Matthew Chen 9ac2383a2c Retain changes from session database branch. 7 years ago
Matthew Chen e77c3e6717 Retain changes from session database branch. 7 years ago
Michael Kirk 8d2934d86e CR: remove unnecessary code, comments
// FREEBIE
7 years ago
Matthew Chen d01ec57f0e Fix storage reset. 7 years ago
Michael Kirk 81268012e5 Better keyboard management.
- fixes problems on iOS11.2 where emoji keyboard sometimes obscures text
  input.
- better animation for interactive pan gesture when viewing message
  details
- more intuitive swipe-to-dismiss keyboard in conversation view
- converge on one mnethod for dismissing keyboard in conversation view

- [ ] Pop keyboard, then hit attachment, dismisses keyboard, which is
      fine, but the content should immediately scroll down with the
      keyboard, instead it stays up, and scrolls down only once the
      attachment action sheet has been dismissed.

// FREEBIE
7 years ago
sdkjfhsdkjhfsdlkjhfsdf 6e2d9c8141 identity change vs. share extension
// FREEBIE
7 years ago
sdkjfhsdkjhfsdlkjhfsdf 8141843f27 comment typo 7 years ago
sdkjfhsdkjhfsdlkjhfsdf 92477c78b7 cleanup before PR 7 years ago
Michael Kirk bce18637f0 render attachments with captions
// FREEBIE
7 years ago
Michael Kirk e20f44024c WIP: Support sending attachment captions
Looks fine on other clients, but locally we don't display the caption.

// FREEBIE
7 years ago
Matthew Chen 05100b1143 Respond to CR. 7 years ago
Matthew Chen 6b0e3508a5 Respond to CR. 7 years ago
Matthew Chen 245304116f Respond to CR. 7 years ago
Matthew Chen 085f8a6f64 Clean up ahead of PR. 7 years ago
Matthew Chen 70926d7f10 Clean up ahead of PR. 7 years ago
Matthew Chen 6b58b4cbde Rework database view registration. 7 years ago
Matthew Chen fe67cd924c Rework database view registration. 7 years ago
Matthew Chen f88b954ab5 Clean up TSStorageManager usage. 7 years ago
Matthew Chen d3efb2e1c9 Clean up TSStorageManager usage. 7 years ago
Matthew Chen d52eba739d Clean up TSStorageManager usage. 7 years ago
Matthew Chen 85686d3144 Continue TSStorageManager refactor. 7 years ago