Commit graph

389 commits

Author SHA1 Message Date
Matthew Chen
2265ae08aa Don't start app version migrations until storage is ready. 2018-04-24 11:56:32 -04:00
Matthew Chen
e252447cfe Clean up ahead of PR. 2018-04-24 11:29:24 -04:00
Matthew Chen
af2539f473 Rework archived conversations mode of home view. 2018-04-24 11:29:24 -04:00
Matthew Chen
eb51ea42e3 Merge remote-tracking branch 'origin/hotfix/2.23.4' 2018-04-16 17:46:24 -04:00
Matthew Chen
85cb78ddfe Add mainWindow property to app context. 2018-04-16 17:31:00 -04:00
Matthew Chen
f7ea1678e7 Only resume lazy attachment restore in debug. 2018-04-02 15:06:48 -04:00
Matthew Chen
4602ad9014 Respond to CR. 2018-04-02 09:39:13 -04:00
Matthew Chen
d0c691bb7f Lazy attachment restores. 2018-04-02 09:27:34 -04:00
Matthew Chen
cf0e6fce09 Add screen lock feature. 2018-03-22 15:49:31 -04:00
Matthew Chen
b62736d7d4 Add screen lock feature. 2018-03-22 15:49:31 -04:00
Michael Kirk
96e5a8f4b7 One time thumbnail generation
// FREEBIE
2018-03-19 14:22:03 -04:00
Matthew Chen
c84bf81cf3 Export database for backup. 2018-03-12 16:40:07 -03:00
Matthew Chen
b296cfb893 Sketch out incremental backup manager and settings view. 2018-03-12 16:40:07 -03:00
Michael Kirk
319e0d808f Merge tag '2.21.0.14' into release/2.22.0 2018-03-08 10:40:56 -05:00
Michael Kirk
3aebaefc31 A lighter touch for the fix-call connect.
Though it should be fine, reloading the callUIAdapter is a bit heavy
handed. And the current implementation is prone to being broken, since
we sometimes forget not to treat callUIAdapter as a singleton.

Longer term we can find a way to either: make callUIAdapter a true
singleton or possibly make callUIAdapter a private member of something
which *is* a true singleton.

Since we only *need* it to be reloaded the one time the migration runs
(or when a user changes settings which should be rare) it makes sense to
remove it from the happy path.

// FREEBIE
2018-03-08 10:15:20 -05:00
Michael Kirk
bbdcd0c768 Call connection fixups
callUIAdapter is not a singleton (for better or for worse)

No one should hold a reference directly to it, but rather via the
CallService, which is a singleton

Wait a bit longer for initial call screen before terminating. Especially
first call can hit this limit.

When call *does* take too long to show, terminate properly to ensure
we're not left with a phantom call

// FREEBIE
2018-03-07 18:09:07 -05:00
Michael Kirk
2462ea0a3e Merge tag '2.21.0.10' into release/2.22.0 2018-03-07 07:10:41 -05:00
Michael Kirk
c7871b28d4 Make sure any new call migration settings take effect on first launch
// FREEBIE
2018-03-06 23:00:56 -05:00
Michael Kirk
8dfc584c2c Try to keep-alive registration lock w/ bg fetch
If a user hasn't launched or received a message on Signal in a week,
they could inadvertently lose their registration lock.

// FREEBIE
2018-03-06 16:55:35 -05:00
Matthew Chen
d6f4db1523 Rename TSStorageManager to OWSPrimaryStorage. 2018-03-06 17:12:13 -03:00
Michael Kirk
1d3831eccd Registration Lock reminder view
Also fixed: Don't lose PIN across registrations

// FREEBIE
2018-03-05 09:53:09 -05:00
Matthew Chen
7b84afaaf1 Integrate with logs service. 2018-03-02 17:44:14 -05:00
Matthew Chen
4bbf0d9e3d Integrate with logs service. 2018-03-02 17:44:14 -05:00
Matthew Chen
06d16bdec5 Revert "Revert "Merge branch 'charlesmchen/debugLogs' into hotfix/2.20.1""
This reverts commit b1dd325ce8.
2018-03-02 17:44:14 -05:00
Matthew Chen
5235f97953 Use background task while migrating. 2018-02-22 16:21:48 -05:00
Matthew Chen
a4855acf44 Don't clear legacy db password until conversion completes. 2018-02-21 16:20:13 -05:00
Matthew Chen
d91507d897 Improve the robustness of the migration logic. 2018-02-20 17:37:14 -05:00
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