Commit Graph

1147 Commits (c81e0a58bee926b15c57224da639c6f1d678612c)

Author SHA1 Message Date
Matthew Chen bd7c8e4a4b Add conversion methods between vcard, system contacts and ows contacts. 7 years ago
Matthew Chen 0d8cfc5403 Rename contact share class to contact. 7 years ago
Matthew Chen 796958d87f Elaborate contact conversion. 7 years ago
Matthew Chen e22e9a7842 Populate contact share protos. 7 years ago
Matthew Chen 757234d309 Populate contact share protos. 7 years ago
Matthew Chen 2a63423c3d Elaborate fake contact shares. 7 years ago
Matthew Chen 521013a674 Fix contact share property synthesis. 7 years ago
Matthew Chen 7490a55f61 Sketch out "contact share" model. 7 years ago
Matthew Chen 4b8a2fa8a3 Sketch out "contact share" model. 7 years ago
Matthew Chen 6005747856 Update protos to reflect 'share contact'. 7 years ago
Matthew Chen bb96454070 More outgoing message fixes. 7 years ago
Matthew Chen 752bca313c Fix glitches in outgoing messages. 7 years ago
Matthew Chen 8dbe4387b7 Update protos to reflect 'share contact'. 7 years ago
Matthew Chen f16e9a2920 Fix issues in outgoing messages status changes. 7 years ago
Matthew Chen 5c6f9ec088 Fix issues in outgoing messages status changes. 7 years ago
Michael Kirk 7a1d24a9ab Avatar updates when contact/profile/group photo changes
// FREEBIE
7 years ago
Matthew Chen 8f19622a89 Fix sync transcripts. 7 years ago
Matthew Chen 5773b45345 Respond to CR. 7 years ago
Matthew Chen c75c3d5f9e Respond to CR. 7 years ago
Matthew Chen 204d379603 Respond to CR. 7 years ago
Matthew Chen 4de4a4b229 Respond to CR. 7 years ago
Matthew Chen 40ac0daa9a Respond to CR. 7 years ago
Matthew Chen 6486b99415 Clean up ahead of PR. 7 years ago
Matthew Chen 9e6062f21c Rework outgoing message state. 7 years ago
Matthew Chen 9275c67818 Rework outgoing message state. 7 years ago
Matthew Chen aa35594ad5 Respond to CR. 7 years ago
Matthew Chen 67f2d6608f Detect and handle corrupt database views. 7 years ago
Matthew Chen 1a4c01ae29 Detect and handle corrupt database views. 7 years ago
Matthew Chen 212891c50d Detect and handle corrupt database views. 7 years ago
Matthew Chen f70a45ef1b Clean up ahead of PR. 7 years ago
Matthew Chen 50a59c907d Detect and handle corrupt database views. 7 years ago
Matthew Chen d3b484482c Detect and handle corrupt database views. 7 years ago
Matthew Chen d3fb5d321d Fix build break. 7 years ago
Matthew Chen c5981b164b Notify users of corrupt messages. 7 years ago
Matthew Chen fa9a4c808a Simplify usage of contacts framework. 7 years ago
Matthew Chen 7f23dfa258 Respond to CR. 7 years ago
Matthew Chen 2265ae08aa Don't start app version migrations until storage is ready. 7 years ago
Michael Kirk d1230abdc5 Fix type declaration
// FREEBIE
7 years ago
Michael Kirk 1f63ce02a0 Increase cache, remove dead code, add debug logging
// FREEBIE
7 years ago
Michael Kirk b3cd6a112b Add OWSJanksUI assertion
// FREEBIE
7 years ago
Michael Kirk 9c81eb44a1 Replace remaining UI usage of `interaction.description`
// FREEBIE
7 years ago
Michael Kirk 897d4a925b HomeView caches thread models
// FREEBIE
7 years ago
Michael Kirk 5f2b38c50b Introduce Thread view model
// FREEBIE
7 years ago
Michael Kirk 1fb1b5bbe2 WIP unjank home screen
verify `description` isn't used elsewhere (notifications? conversation
view?)

Probably want to remove overzealous asserts for now, but would be good
to work towards leaving them enabled.

// FREEBIE
7 years ago
Matthew Chen 7912598ccb Merge branch 'release/2.24.0' 7 years ago
Matthew Chen 08d36aa862 Add screen lock UI to SAE. 7 years ago
Michael Kirk eec7678979 Group's meta message defaults to "Delivery"
// FREEBIE
7 years ago
Matthew Chen 2c43d20ee8 Merge tag '2.24.0.9' 7 years ago
Matthew Chen 35ee8c1a0d Rework flush of registration connection(s). 7 years ago
Matthew Chen a264268253 Rework flush of registration connection(s). 7 years ago
Matthew Chen e1138df771 Rework flush of registration connection(s). 7 years ago
Matthew Chen 5bbce14020 Rework flush of registration connection(s). 7 years ago
Matthew Chen 5d627ee89f Rework flush of registration connection(s). 7 years ago
Matthew Chen 4f1f1a107f Rework flush of registration connection(s). 7 years ago
Michael Kirk c88ce07f66 CR: Clean up comments, use property setter instead of ivar
// FREEBIE
7 years ago
Michael Kirk eb140a6839 Timer info messages *before* the message which changed the timer
// FREEBIE
7 years ago
Michael Kirk a9e7c5e879 Cleanup: simplify migration, remove unused code
// FREEBIE
7 years ago
Michael Kirk 754549adf1 Start timer for expiring message based on when read receipt was sent
// FREEBIE
7 years ago
Michael Kirk dfb2a034af Use explicit transactions.
- Start expiration within scope of existing transaction when we're
  already in a transaction

// FREEBIE
7 years ago
Michael Kirk b7625689cb Simplify reasoning around disappearing messages
1. Max duration between runs is now a separate timer we set up once and
   don't touch, so we can separate any potential bugs in scheduling logic.
2. When we want to "run now" we just run now, rather than going through
   the scheduler.
3. Detect if messages aren't being deleted in a timely way.

// FREEBIE
7 years ago
Michael Kirk 57ae2b173f Clarify existing functionality, but no change in behavior
rename vars
use clearer date comparison method

// FREEBIE
7 years ago
Matthew Chen eb51ea42e3 Merge remote-tracking branch 'origin/hotfix/2.23.4' 7 years ago
Michael Kirk 66f028a3b3 Update nullability
If object is nil, which it can be, Swift freaks out, since we'd promised
it would never be nil.

// FREEBIE
7 years ago
Matthew Chen 85cb78ddfe Add mainWindow property to app context. 7 years ago
Matthew Chen 5ce39337ed Handle malformed protos. 7 years ago
Michael Kirk c926ca10a5 Update nullability
If object is nil, which it can be, Swift freaks out, since we'd promised
it would never be nil.

// FREEBIE
7 years ago
Matthew Chen 9c93099515 Fix incomplete asserts. 7 years ago
Matthew Chen 6caa5b87b6 Add more asserts around thread in SAE. 7 years ago
Michael Kirk e554884ab3 Use profile name in quoted messages, fix "multi account" label
// FREEBIE
7 years ago
Matthew Chen 829cfd0428 Reduce oversize text size. 7 years ago
Matthew Chen 45892e822b Move 'background' check in message processing logic off main thread. 7 years ago
Michael Kirk b2b70258f2 Make our protos backwards compatible with Signal-Android
Android doesn't have a flags field (yet?). We should make sure our
existing fields align with theirs.

// FREEBIE
7 years ago
Michael Kirk bd8e03fe8a Fix spurious "Group Updated" message
Regression introduced in Message factory method refactor (not in the wild).

// FREEBIE
7 years ago
Matthew Chen d95f2bdc66 Respond to CR. 7 years ago
Matthew Chen d561ba4c62 Reduce 0xdead10cc crashes. 7 years ago
Matthew Chen db6f1326bb Fix previews of oversize text messages. 7 years ago
Matthew Chen 83a470d441 Fix previews of oversize text messages. 7 years ago
Matthew Chen abba24988c Rework how dates are formatted in home view. 7 years ago
Michael Kirk d94709e13f Show label when captioning limit has been reached.
// FREEBIE
7 years ago
Michael Kirk 6b6f4f9336 Limit caption length
// FREEBIE
7 years ago
Matthew Chen c269add62f Respond to CR. 7 years ago
Matthew Chen 76995e4594 Enforce quoted reply edge cases. 7 years ago
Matthew Chen 6a07599e00 Respond to CR. 7 years ago
Matthew Chen 65015e686f Tap on quoted replies. 7 years ago
Michael Kirk 81b2b57703 CR: add comments, make atomic
// FREEBIE
7 years ago
Michael Kirk 88d6a83954 Add assertion canary so we know to re-test syncing once desktop
supports sending quoted replies

// FREEBIE
7 years ago
Michael Kirk 02efbd3069 Fix blip where thumbnail is initially missing from outgoing message
// FREEBIE
7 years ago
Michael Kirk 90486aa49c Inline method with one caller, fix formatting
// FREEBIE
7 years ago
Michael Kirk 8e4c6b8af6 Update protos for voice messages
// FREEBIE
7 years ago
Michael Kirk 941b7ec1bc clarify method signature
// FREEBIE
7 years ago
Michael Kirk c56e8acc51 QuotedReplyModel from SSK->SignalMessaging
// FREEBIE
7 years ago
Michael Kirk 1d4c0624be Clarify variable names
// FREEBIE
7 years ago
Michael Kirk a9459757f0 Lingering var renames QuotedReplyDraft -> QuotedReplyModel
// FREEBIE
7 years ago
Michael Kirk f1714bf252 Handle synced quotes
// FREEBIE
7 years ago
Michael Kirk 622f6bdf21 OrphanDataCleaner vs. QuotedAttachment thumbnails
// FREEBIE
7 years ago
Michael Kirk 4399967e99 Comment cleanup, remove unnecessary includes
// FREEBIE
7 years ago
Michael Kirk fa2e1ba89b Fetch thumbnail when not available locally
// FREEBIE
7 years ago
Michael Kirk 42f454b075 Generate thumbnail when quoted attachment is available locally
// FREEBIE
7 years ago
Michael Kirk 351f9ea263 Simplify attachment processor
We've accepted all attachment types for a long while now.

// FREEBIE
7 years ago
Michael Kirk 3252866727 remove unused params
// FREEBIE
7 years ago
Michael Kirk cb5d3d4f85 Use QuotedReplyModel to access attachment data
This view model loads the attachment when it's build.

// FREEBIE
7 years ago
Michael Kirk 3334f2a063 tentative proto changes
// FREEBIE
7 years ago
Michael Kirk 51a4298c14 WIP: Send attachment info in protobuf (no thumbnails yet)
// FREEBIE
7 years ago
Michael Kirk 55c6d99d98 populate draft toolbar
// FREEBIE
7 years ago
Michael Kirk 253435b27f extract QuotedReplyDraft model 7 years ago
Michael Kirk 0b8b3b4f16 WIP: towards avatar attachment streams
// FREEBIE
7 years ago
Michael Kirk 53af41fcc6 Reusable UploadOperation based on extracted OWSOperation
// FREEBIE
7 years ago
Michael Kirk 2975d4d5d2 Sync with android protos
// FREEBIE
7 years ago
Matthew Chen ca4757b8d1 Clean up ahead of PR. 7 years ago
Matthew Chen 2b3b08d7c5 Respond to CR. 7 years ago
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
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
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
Matthew Chen 9a990b58e8 Respond to CR. 7 years ago
Matthew Chen 1163e76dee Clean up ahead of PR. 7 years ago
Matthew Chen 9815bca825 Clean up ahead of PR. 7 years ago
Matthew Chen 5dcf4b3bbc Clean up ahead of PR. 7 years ago
Matthew Chen 137fe6fb8b Pull out OWSStorage base class for TSStorageManager. 7 years ago
Matthew Chen a29c4ce5d6 Pull out OWSStorage base class for TSStorageManager. 7 years ago
Matthew Chen a572285ad2 Respond to CR. 7 years ago
Matthew Chen 2cc3752901 Improve background task logic. 7 years ago
Matthew Chen c3b6de4f83 Improve background task logic. 7 years ago
Matthew Chen f9ce34f553 Improve background task logic. 7 years ago
Matthew Chen 5adf98788d Use background task during message processing. 7 years ago
Matthew Chen df8ded90b8 Use background task during attachment downloads. 7 years ago
Michael Kirk 157bf00410 Merge branch 'hotfix/2.19.3' 7 years ago
Michael Kirk e78edcde87 Only clear cache when user pulls-to-refresh
// FREEBIE
7 years ago
Michael Kirk f4e471e0db SignalAccount cache perf improvments
- only persist models that have changed
- remove duplicate contact SignalAccounts
- ensure serial execution of buildAccounts
- only buildSignalAccounts when intersection succeeds

// FREEBIE
7 years ago
Matthew Chen 3643414da1 Respond to CR. 7 years ago
Matthew Chen f57c12f34d Update YapDatabase. 7 years ago
Matthew Chen 571840b1dc Update YapDatabase. 7 years ago
Matthew Chen 609536fcb1 Include build version in logging. 7 years ago
Michael Kirk 16448e2a0b Merge tag '2.19.3.0' 7 years ago
Michael Kirk 64e90d29fd CR: extract method, more asserts and annotations
// FREEBIE
7 years ago
Michael Kirk 336c92ddab remove cached display name machinery, cleanup
// FREEBIE
7 years ago
Michael Kirk 7ea4b85a2a Persist signal accounts (and their embedded Contact)
// FREEBIE
7 years ago
Michael Kirk 56f1bf0305 cleanup 7 years ago
Matthew Chen b9b3eb0541 Clean up ahead of PR. 7 years ago
Matthew Chen 429312523f Simplify OWSUserProfile's "apply changes" logic using model diffing. 7 years ago
Matthew Chen f684482c54 Don't emit "user profile changed" notifications if nothing changed. 7 years ago
Matthew Chen 97ce1a6675 Rework user profile saves; block SAE if no local user profile key. 7 years ago
Matthew Chen 791743a5f0 Fix order of operations in SAE setup. 8 years ago
Matthew Chen f148003fb3 Convert logTag to property. 8 years ago
Matthew Chen 99f0b9d3e8 Fix issues around statics. 8 years ago
Michael Kirk 0429836ff9 CR: rename keyWindow -> keyReferenceView, split long line
// FREEBIE
8 years ago
Michael Kirk eca19e5874 Reconcile MediaMessageView zoom behavior with AppExtension
Previously it was predicated on UIApplication.shared

// FREEBIE
8 years ago
Michael Kirk 3eceb86371 Show alert if we fail to build the attachment
// FREEBIE
8 years ago
Michael Kirk 89b9887f1d Make DeviceSleepManager extension compatible
// FREEBIE
8 years ago
Michael Kirk a58f1f385c Share a photo from photos app
Shows the conversation picker, and sends the attachment to that
conversation.

There's still a lot TODO

-[ ] resolve JSQ dependency
-[ ] properly wait for app to load
-[ ] dismiss share extension after send is complete
-[ ] support non jpeg file types
-[ ] Fix device sleep manager

// FREEBIE
8 years ago
Matthew Chen 69e0bcd308 Fix tests. 8 years ago
Matthew Chen f5353fc7d5 Clean up ahead of PR. 8 years ago
Matthew Chen 150f417a5e Clean up ahead of PR. 8 years ago
Matthew Chen 022b2f93dd Respond to CR. 8 years ago
Matthew Chen e94ef01d72 Respond to CR. 8 years ago
Matthew Chen 9da165b846 Continue conversion of app setup. 8 years ago
Matthew Chen ce899edf10 Respond to CR. 8 years ago
Matthew Chen b4e8df79da Migrate environment to SignalMessaging. 8 years ago
Matthew Chen a16058e477 Migrate environment to SignalMessaging. 8 years ago
Matthew Chen 6d87df88aa Migrate environment to SignalMessaging. 8 years ago
Matthew Chen c817aa51b3 Migrate environment to SignalMessaging. 8 years ago
Michael Kirk 06f52deaf9 address some additional compiler warnings 8 years ago
Michael Kirk 23d3006fd8 remove unused code
// FREEBIE
8 years ago
Michael Kirk 08c324f948 Fix compiler warnings around ambiguous macro redefinition.
LMK if there's a better way to do this, which doesn't involve requiring
modules.

// FREEBIE
8 years ago
Michael Kirk 2af818b3ba Make SignalMessaging AppExtension safe
// FREEBIE
8 years ago
Michael Kirk 0138777343 New @available syntax avoids compiler warnings
// FREEBIE
8 years ago
Michael Kirk f96b7bc27c CNContact doesn't exist before iOS9
// FREEBIE
8 years ago
Michael Kirk 0dec643b94 update header to match implementation atomicity
// FREEBIE
8 years ago
Michael Kirk 5e7ca89930 Proper function prototypes
// FREEBIE
8 years ago
Matthew Chen bf21d0c0ed Enable logging in SAE; rework log file management to include multiple log directories. 8 years ago
Michael Kirk 336d59a6ce restore chrono timestamp
make SSK compatible with c++ by using non-modular imports, which
requires disambiguating our ddLog variable.

// FREEBIE
8 years ago
Matthew Chen e7df2511a4 Register CrossProcessNotifier. 8 years ago
Matthew Chen 64762eb427 Observe YapDatabaseModifiedExternallyNotification. 8 years ago
Matthew Chen 62cf9b1dd5 Respond to CR. 8 years ago
Matthew Chen d17ccadea2 Use AppContext to resolve share extension FIXMEs. 8 years ago
Matthew Chen e712e8bfc4 Use AppContext to resolve share extension FIXMEs. 8 years ago
Matthew Chen 4c31d99498 Respond to CR. 8 years ago
Matthew Chen ffa69b3502 Add application context class. 8 years ago
Matthew Chen 8d4e9b4565 Respond to CR. 8 years ago
Matthew Chen 779e89fe74 Clean up ahead of PR. 8 years ago
Matthew Chen 7429e1968c Clean up ahead of PR. 8 years ago
Matthew Chen edaf65223a Migrate to shared data NSUserDefaults. 8 years ago
Matthew Chen cd11ec5698 Add app group, share keychain. Take a first pass at file migration to shared data directory. 8 years ago
Michael Kirk 336aa13520 Avoid overzealous assert
// FREEBIE
8 years ago