Matthew Chen
14122dab54
Fix the storage failure alert.
2018-02-20 13:46:37 -05:00
Matthew Chen
6935298f6f
Improve handling of the not migrated case.
2018-02-16 15:19:24 -05:00
Michael Kirk
3d5f7e6bf3
Clean up logging
...
- tag all log lines for easier filtering
- use up-to-date database path
// FREEBIE
2018-02-14 09:16:42 -08:00
Matthew Chen
44cbf142a1
Respond to CR.
2018-02-12 22:41:52 -05:00
Matthew Chen
3e8b08e19b
Defer handling app delegate hooks until app is ready.
2018-02-12 22:37:37 -05:00
Matthew Chen
9c8178653d
Revisit TODOs in the SAE work.
2018-02-12 22:33:26 -05:00
Matthew Chen
7c199faf8f
Respond to CR.
2018-02-12 22:26:35 -05:00
Matthew Chen
98843cd45c
Let users submit debug logs if app launch fails.
2018-02-12 22:25:23 -05:00
Michael Kirk
6f959ff292
CR: be more conservative about deriving key spec, clear old passphrase
...
after deriving key spec.
// FREEBIE
2018-01-31 17:22:42 -08:00
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
2018-01-31 16:08:03 -08:00
Michael Kirk
938b9c85b8
Don't crash on clean install
...
Otherwise we'll error when retrieving non-existent password.
// FREEBIE
2018-01-31 13:28:14 -08:00
Matthew Chen
4bfdef520a
Respond to CR.
2018-01-30 12:39:27 -05:00
Matthew Chen
a30170b3b2
Prefer "app is ready" flag to "storage is ready" flag.
2018-01-30 11:34:00 -05:00
Matthew Chen
be1fde905c
Don't mark app as ready until all version migrations are done.
2018-01-30 11:27:44 -05:00
Matthew Chen
963d0547ad
Clean up ahead of PR.
2018-01-30 10:31:13 -05:00
Matthew Chen
8e427111ef
Clean up ahead of PR.
2018-01-30 10:31:13 -05:00
Matthew Chen
ebbe96a5d5
Clean up ahead of PR.
2018-01-30 10:31:13 -05:00
Matthew Chen
f9f60bc14f
Ensure app delegate hooks are ignored until app is ready.
2018-01-30 10:31:13 -05:00
Matthew Chen
6eddfae214
Improve post-migration testing tools.
2018-01-30 10:31:13 -05:00
Matthew Chen
02a972c9dc
Improve logging in database conversion; disable orphan cleanup.
2018-01-30 10:30:28 -05:00
Matthew Chen
100adae245
Register all database views asynchronously.
2018-01-30 10:30:28 -05:00
Matthew Chen
5cf89a0f3d
Register all database views asynchronously.
2018-01-30 10:30:28 -05:00
Matthew Chen
5d422e03d1
Add support for key specs.
2018-01-25 11:00:38 -05:00
Michael Kirk
c6cc497eaf
Don't migrate database until verifying keychain is accessible
...
// FREEBIE
2018-01-25 11:00:38 -05:00
Matthew Chen
dc73342573
Convert databases if necessary.
2018-01-25 11:00:38 -05:00
Matthew Chen
59933ce1d6
Fix rebase breakage.
2018-01-11 11:15:50 -05:00
Matthew Chen
16f7317579
Complete backup restore/import.
2018-01-11 10:44:03 -05:00
Matthew Chen
fe67cd924c
Rework database view registration.
2017-12-19 11:42:06 -05:00
Matthew Chen
9258b0883e
Clean up TSStorageManager usage.
2017-12-19 11:41:31 -05:00
Matthew Chen
85686d3144
Continue TSStorageManager refactor.
2017-12-19 11:41:30 -05:00
Matthew Chen
9a990b58e8
Respond to CR.
2017-12-19 11:38:25 -05:00
Matthew Chen
f9ce34f553
Improve background task logic.
2017-12-19 11:05:17 -05:00
Matthew Chen
bc7f4623cc
Update YapDatabase.
2017-12-15 11:11:04 -05:00
Michael Kirk
3affb07a11
post-merge formatting fixup
...
// FREEBIE
2017-12-14 11:43:27 -05:00
Michael Kirk
16448e2a0b
Merge tag '2.19.3.0'
2017-12-14 11:42:57 -05:00
Michael Kirk
42dc872c9a
use dedicated read connection to pre-populate cache
...
// FREEBIE
2017-12-13 19:08:47 -05:00
Michael Kirk
7ea4b85a2a
Persist signal accounts (and their embedded Contact)
...
// FREEBIE
2017-12-13 17:31:36 -05:00
Matthew Chen
911c4d380b
Rework thread safety in profile manager.
2017-12-11 12:28:28 -05:00
Michael Kirk
3ecf0a7537
Cancelling dismisses share extension, remove "import with signal"
...
Usinig the new ShareViewDelegate to dismiss the share extension, might
have broken the "import with signal" functionality. But because we
want to remove it anyway, I've done that now, rather than fix it up.
// FREEBIE
2017-12-07 17:12:03 -05:00
Matthew Chen
7a1e47cd26
Add asserts around Swift singletons.
2017-12-07 13:57:45 -05:00
Matthew Chen
8312614cf7
Respond to CR.
2017-12-07 13:53:13 -05:00
Matthew Chen
99f0b9d3e8
Fix issues around statics.
2017-12-07 12:34:02 -05:00
Matthew Chen
848f055da1
Add SAE error views.
2017-12-06 21:38:53 -05:00
Matthew Chen
310cf1330d
Continue conversion of app setup.
2017-12-06 10:38:57 -05:00
Matthew Chen
8d014f057e
Respond to CR.
2017-12-05 13:44:25 -05:00
Matthew Chen
f5353fc7d5
Clean up ahead of PR.
2017-12-05 11:35:43 -05:00
Matthew Chen
9da165b846
Continue conversion of app setup.
2017-12-05 11:19:11 -05:00
Matthew Chen
2eba371656
Clean up ahead of PR.
2017-12-05 10:29:29 -05:00
Matthew Chen
b4e8df79da
Migrate environment to SignalMessaging.
2017-12-05 10:29:29 -05:00
Matthew Chen
c817aa51b3
Migrate environment to SignalMessaging.
2017-12-05 10:28:46 -05:00
Matthew Chen
bf21d0c0ed
Enable logging in SAE; rework log file management to include multiple log directories.
2017-12-01 12:55:47 -05:00
Matthew Chen
66fae5bd54
Clean up ahead of PR.
2017-11-30 10:07:39 -05:00
Matthew Chen
ffa69b3502
Add application context class.
2017-11-30 10:07:20 -05:00
Matthew Chen
8d4e9b4565
Respond to CR.
2017-11-30 10:02:04 -05:00
Matthew Chen
7429e1968c
Clean up ahead of PR.
2017-11-30 09:49:01 -05:00
Matthew Chen
edaf65223a
Migrate to shared data NSUserDefaults.
2017-11-30 09:49:01 -05:00
Michael Kirk
2c4cf96515
Some proof of framework integration in the sample share extension
...
// FREEBIE
2017-11-29 13:58:27 -08:00
Michael Kirk
de028404bb
Shared framework between app and extension
...
// FREEBIE
2017-11-29 13:58:27 -08:00
Matthew Chen
a6bfc0a60e
Fix build warnings from XCode 9.
2017-11-09 02:52:44 -05:00
Matthew Chen
204902c111
Respond to CR.
...
// FREEBIE
2017-11-06 12:50:20 -05:00
Matthew Chen
03241128f6
Respond to CR.
...
// FREEBIE
2017-11-06 12:37:15 -05:00
Matthew Chen
1ea413ad48
Be more defensive about handling local notifications.
...
// FREEBIE
2017-11-06 11:14:31 -05:00
Matthew Chen
5af6b6f213
Respond to CR.
...
// FREEBIE
2017-10-26 11:53:35 -04:00
Michael Kirk
c5244e175e
orphan cleanup shouldn't happen until DB is registered
...
// FREEBIE
2017-10-21 18:16:52 -07:00
Michael Kirk
6a65ee6def
Pull to refresh on homeview fetches messages.
...
This is useful when you're using censorship circumvention and unable to
receive push notifications.
// FREEBIE
2017-10-16 12:25:07 -07:00
Michael Kirk
9a7e3cb9d8
Register for manual message fetching when unable to obtain push tokens
...
// FREEBIE
2017-10-12 12:02:22 -04:00
Michael Kirk
df15c904bc
Rework push registration
...
== Account Registration ==
Not complete until push tokens are uploaded
== Remote Notifications Registration ==
Extracted from PushManager
- wait for notification-settings registration to complete before
requesting push tokens, otherwise it's possible token requests will
be ignored.
- Less state required for push notification callbacks, specifically, we
no longer need to ensure we've created a promise before the
registration delegate methods get called.
- no more TOCFuture in Signal-iOS (still in SSK for now). It's not in
cases of inexplicable behavior - one a recently, push notification
premature free, in redphone, and more popular use, and I've seen two
futures inexplicably being nil. Instead, let's consolidate around
PromiseKit for popularly used, maintained, strongly-typed futures.
- separate logic for registering for vanilla push/voip notifications
(few dependencies) from responding to UILocalNotifications (lots of
dependencies). Ultimately I'd like to consolidate the remaining
UILocalNotifications logic with the existing NotificationsManager
== Misc ==
more debug logging
more uniform logging
remove stale logic around newly registered user
// FREEBIE
2017-10-12 12:02:22 -04:00
Michael Kirk
b5258be9b5
respond to code review
...
// FREEBIE
2017-10-10 11:33:40 -04:00
Michael Kirk
876521f4c3
Fetch messages sooner when launched from background
...
The only reason a notification wakes/launches the app is to fetch
messages.
However, upon launching, especially if the app had been killed, it can
take a second or two before being notified of the notification that woke
us. Rather than wait, just fetch messages ASAP.
// FREEBIE
2017-10-10 11:33:40 -04:00
Michael Kirk
c7cfe188ee
Sync push tokens on background launch as well
...
// FREEBIE
2017-10-10 11:33:40 -04:00
Matthew Chen
10c00501fd
Fix the "is contact" test.
...
// FREEBIE
2017-10-02 17:38:54 -04:00
Matthew Chen
f001e8c225
Respond to CR.
...
// FREEBIE
2017-09-25 17:22:27 -04:00
Matthew Chen
b4312a5619
Merge remote-tracking branch 'origin/hotfix/2.16.1'
2017-09-24 20:49:13 -04:00
Matthew Chen
825503210b
Remove extraneous database view.
...
// FREEBIE
2017-09-22 14:24:17 -04:00
Matthew Chen
11cadf4200
Send, receive & show read receipts to senders/from receivers.
...
* Send read receipts to senders.
* Honor "send read receipts" preference.
* Process read receipts from recipients.
* Refactor "mark as read" logic.
* Serialize and apply recipient read receipts received before sync transcript.
* Show recipient read receipts in conversation view.
// FREEBIE
2017-09-22 14:24:17 -04:00
Matthew Chen
1c8dbcd223
Respond to CR.
...
// FREEBIE
2017-09-21 16:58:07 -04:00
Matthew Chen
3eaeb4e0ec
Add read receipts manager.
...
* Simplify read receipts plumbing.
* Rework incoming read receipts handling.
* Rework outgoing read receipts handling.
* Make "database view registration complete" check thread-safe.
* Don't send sync messages to self if no linked devices.
// FREEBIE
2017-09-21 16:23:03 -04:00
Matthew Chen
b28c4b74b2
Pull out TSMessageDecrypter class.
...
// FREEBIE
2017-09-21 14:38:30 -04:00
Michael Kirk
73bdae3366
Fix 1-time crash when launching 2.16 from notification
...
didBecomeActive is too late in the case of launching from a
notification.
Also, start tracking when app setup is complete, and prevent certain
actions from occurring in that case. Eventually we'll enqueue these
actions rather than ignoring them, but we'll want to do more testing
before releasing that. In the meanwhile, if the environment isn't setup
at this point, a crash would be eminent anyway.
// FREEBIE
2017-09-20 13:26:32 -04:00
Matthew Chen
afc753e7ed
Add batch message processor.
...
// FREEBIE
2017-09-20 09:24:49 -04:00
Matthew Chen
c498e4b354
Decouple message decryption and processing.
...
// FREEBIE
2017-09-20 09:24:49 -04:00
Matthew Chen
65732af3da
New users opt-out of read receipts; legacy users opt-in.
...
// FREEBIE
2017-09-19 17:35:42 -04:00
Matthew Chen
80e5f281c6
Rename app preferences class.
...
// FREEBIE
2017-09-19 17:35:42 -04:00
Matthew Chen
3367292ba0
Merge branch 'hotfix/2.16.1'
2017-09-19 17:25:24 -04:00
Matthew Chen
f92b221e6b
Startup logging.
...
// FREEBIE
2017-09-19 17:22:56 -04:00
Matthew Chen
70602e3bca
Startup logging.
...
// FREEBIE
2017-09-19 17:22:56 -04:00
Matthew Chen
400f536e37
Respond to CR.
...
// FREEBIE
2017-09-19 09:30:01 -04:00
Matthew Chen
e222b9df68
Normalize conversation presentation logic.
...
// FREEBIE
2017-09-18 16:08:18 -04:00
Matthew Chen
b6d782046a
Normalize conversation presentation logic.
...
// FREEBIE
2017-09-18 16:08:18 -04:00
Matthew Chen
0b772b3a37
Move post-registration work from view to app delegate.
...
// FREEBIE
2017-09-14 15:29:59 -04:00
Matthew Chen
ab00342d67
Add modal activity indicator view.
...
// FREEBIE
2017-09-11 12:49:14 -04:00
Matthew Chen
9dfebb2d4b
Apply OWSFail() in more places.
...
// FREEBIE
2017-09-11 10:20:48 -04:00
Matthew Chen
c21a7673c8
Rework preservation of attachment filenames.
...
// FREEBIE
2017-09-11 10:20:48 -04:00
Matthew Chen
69816cdf0e
Convert DataSource to Objective-C.
...
// FREEBIE
2017-09-11 10:20:48 -04:00
Matthew Chen
2282733fa9
Add data source class.
...
// FREEBIE
2017-09-11 10:20:48 -04:00
Matthew Chen
948da2afbb
Merge remote-tracking branch 'origin/release/2.16.0'
2017-09-07 15:20:45 -04:00
Michael Kirk
04bf548a7b
Fix one-time crash when opening thread without having a local profile
...
// FREEBIE
2017-09-07 13:24:15 -04:00
Matthew Chen
928525c31e
Rename home view.
...
// FREEBIE
2017-09-06 13:59:39 -04:00
Matthew Chen
3c90c3361a
Respond to CR.
...
// FREEBIE
2017-08-29 16:31:27 -04:00
Matthew Chen
71d7490e35
Re-sync local profile state with service if necessary.
...
// FREEBIE
2017-08-29 16:29:54 -04:00
Michael Kirk
1f3d2d1ed6
Send any profile key in contact sync
...
// FREEBIE
2017-08-29 10:35:18 -04:00
Michael Kirk
b579ea5915
Use profile name when building avatar if contact name is unavailable
...
// FREEBIE
2017-08-25 12:40:19 -04:00
Matthew Chen
98eb4693c5
Rework the contact offers.
...
// FREEBIE
2017-08-21 17:05:42 -04:00
Matthew Chen
08347478a2
Implement alternative approach to veto-able back buttons.
...
// FREEBIE
2017-08-21 10:10:22 -04:00
Matthew Chen
d476bc286d
* Add debug UI tools for clearing and logging the profile whitelist.
...
* Auto-add new contact threads to profile whitelist when local user sends first message to that thread.
* Ensure dynamic interactions have a non-negative timestamp even if the conversation was empty.
* Only call updateMessageMappingRangeOptions _after_ beginLongLivedReadTransaction and updating messageMappings.
* Improve documentation around how to avoid corrupt mappings in conversation view.
* Fix edge cases around large initial range sizes.
* Always treat dynamic interactions as read.
* Rebuild the “unseen” database views to remove dynamic interactions (see above).
// FREEBIE
2017-08-17 11:22:25 -04:00
Michael Kirk
2e83643327
Don't consider registration complete until user registers their push
...
notification tokens.
// FREEBIE
2017-08-17 10:56:36 -04:00
Michael Kirk
ed4de7e8af
Simplify code / pre-cache localNumber
...
Now that localNumber is read from a dedicated dbConnection we don't have
to worry about it blocking.
// FREEBIE
2017-08-04 15:19:26 -04:00
Matthew Chen
6ec756de44
Move profile manager to Signal.
...
// FREEBIE
2017-08-04 09:45:33 -04:00
Matthew Chen
a3b16812ec
Add convenience category for YapDatabaseConnection.
...
// FREEBIE
2017-08-02 10:38:23 -04:00
Matthew Chen
03a4ebc4d8
Respond to CR.
...
// FREEBIE
2017-08-01 16:30:24 -04:00
Matthew Chen
c331788c06
Modify the profile view to update profile manager state.
...
// FREEBIE
2017-08-01 16:17:59 -04:00
Michael Kirk
a196693425
Make sure DB views are ready before kicking processing job
...
// FREEBIE
2017-07-28 17:12:47 -04:00
Michael Kirk
6a5c6a9fc9
didBecomeActive kicks the processing queue
...
// FREEBIE
2017-07-28 17:12:47 -04:00
Matthew Chen
1890039165
Hide empty conversations in home view.
...
// FREEBIE
2017-07-27 15:40:19 -04:00
Matthew Chen
bca736a2b7
Merge tag '2.13.4.0'
...
// FREEBIE
2017-07-27 15:04:03 -04:00
Matthew Chen
f1807cd709
Add script to extract and gather analytics event names.
...
// FREEBIE
2017-07-27 12:29:05 -04:00
Matthew Chen
f973af5a83
Streamline analytics properties.
...
// FREEBIE
2017-07-27 10:16:16 -04:00
Matthew Chen
013bf62f7c
Streamline analytics properties.
...
// FREEBIE
2017-07-27 10:16:16 -04:00
Matthew Chen
117bca7c48
Instrument errors in app delegate.
...
// FREEBIE
2017-07-24 16:05:39 -04:00
Matthew Chen
fdac0305cb
Update analytics macros.
...
// FREEBIE
2017-07-21 15:04:41 -04:00
Matthew Chen
54a5b960c7
Add a reminder that you are in archive view.
...
// FREEBIE
2017-07-11 16:01:19 -04:00
Matthew Chen
2e727a24b5
Convert home view to programmatic layout.
...
// FREEBIE
2017-07-11 16:01:19 -04:00
Matthew Chen
9cbc1e6a1b
Block device from sleeping while Debug UI is visible and during database upgrades.
...
// FREEBIE
2017-07-06 17:35:47 -04:00
Matthew Chen
9aa54cad63
Fix missing “database upgrade” label on launch screen.
...
// FREEBIE
2017-07-06 15:10:47 -04:00
Matthew Chen
ab9770c175
Fix missing “database upgrade” label on launch screen.
...
// FREEBIE
2017-07-06 15:05:09 -04:00
Matthew Chen
5038744811
Fix missing “database upgrade” label on launch screen.
...
// FREEBIE
2017-07-06 15:05:09 -04:00
Matthew Chen
944cd7beef
Show app update nag on launch if necessary.
...
// FREEBIE
2017-07-06 12:56:27 -04:00
Michael Kirk
8e891eb357
Merge branch 'hotfix/2.13.3.0'
...
// FREEBIE
2017-07-06 09:33:57 -05:00
Matthew Chen
c5bf85d0b3
Respond to CR.
...
// FREEBIE
2017-07-05 18:49:02 -04:00
Matthew Chen
ab3aa9d0ce
Respond to CR.
...
// FREEBIE
2017-07-05 18:12:06 -04:00
Matthew Chen
97169f521a
Move more initialization until after didBecomeActive is complete to avoid the “bad food” crash.
...
// FREEBIE
2017-07-05 17:54:22 -04:00
Michael Kirk
89260e843f
Unregistered users should have 0 badge count
...
// FREEBIE
2017-07-05 11:34:23 -05:00
Michael Kirk
a933fbf215
sync verifications with contact syncing
...
// FREEBIE
2017-06-22 15:21:25 -04:00
Matthew Chen
0738568b94
Fix upgrade launch screen.
...
// FREEBIE
2017-06-20 17:48:11 -04:00
Matthew Chen
5ae4b99f89
Refine observation of async registration completion.
...
// FREEBIE
2017-06-20 13:17:44 -04:00
Matthew Chen
9f2a2d1ee6
Don’t show “export with Signal” UI until async database view registration is complete.
...
// FREEBIE
2017-06-19 17:38:09 -04:00
Matthew Chen
3e38967590
Do not show database upgrade screen for unregistered users.
...
// FREEBIE
2017-06-16 12:07:15 -04:00
Matthew Chen
f9fcbad1aa
Add a “last app completed launch” version.
...
// FREEBIE
2017-06-16 12:07:15 -04:00
Matthew Chen
cf3101226b
Improve the upgrade screen.
...
// FREEBIE
2017-06-16 12:06:53 -04:00
Matthew Chen
16dd87a407
Use launch screen as root view controller while database views are loading.
...
// FREEBIE
2017-06-15 17:15:56 -04:00
Matthew Chen
c7426f9343
Avoid crashing on startup due to database view creation.
...
* Substitute unread view for unseen view until unseen view is ready.
* Register as many views as possible async.
* Perform blocking, safe migrations before async registration of views.
* Add debug settings view for internal app stats.
* Show blocking overlay until async registration of database views is complete.
* Convert version migrations to use AppVersions.
// FREEBIE
2017-06-15 13:44:30 -04:00
Matthew Chen
05e316381b
Remove “block on safety number changes” setting in preferences.
...
// FREEBIE
2017-06-14 14:36:21 -04:00
Matthew Chen
3a83f93099
Tweak appearance of registration views.
...
// FREEBIE
2017-05-30 09:29:19 -04:00
Matthew Chen
d065c95270
Hide the socket status view when censorship circumvention is active.
...
// FREEBIE
2017-05-26 20:41:27 -04:00
Michael Kirk
2c7ccbe5db
Make sure screen protection is applied before ending bg task
...
* code cleanup
* Prefer dispatch_async vs. dispatch_sync when possible
// FREEBIE
2017-05-26 09:45:51 -07:00
Michael Kirk
bb25d2beb6
IdentityKeyStore changes
...
1) Always accept keys from incoming messages
2) Block sending only if it's a recent change, or if always
block is enabled
// FREEBIE
// FREEBIE
2017-05-24 18:01:24 -07:00
Matthew Chen
2475406258
Respond to CR.
...
// FREEBIE
2017-05-24 17:47:56 -04:00
Matthew Chen
4680a2465a
Remove registration storyboard.
...
// FREEBIE
2017-05-24 17:46:32 -04:00
Michael Kirk
929ba06263
Merge branch 'hotfix/2.11.4' into mkirk/fix-push-sync-job
2017-05-10 16:56:41 -04:00
Matthew Chen
19b80d1f4b
Rework the “disappearing messages” logic.
...
// FREEBIE
2017-05-10 15:02:16 -04:00