Commit graph

37 commits

Author SHA1 Message Date
Michael Kirk 64a0c4bfaa auto-migrate to Swift5 2019-04-04 13:44:42 -06:00
Matthew Chen 2a4b9426c3 Sketch out the 'onboarding phone number' view. 2019-02-14 08:54:27 -05:00
Michael Kirk 1bfe691895 In app notifications for iOS10+
Extract shared notification presention/response

Implement adapters which use that logic for modern UNUserNotification and
legacy UINotifications
2019-02-01 17:44:13 -07:00
Matthew Chen 63260ee94d Fix registration. 2019-01-08 15:38:08 -05:00
Matthew Chen 782fbe656c Add RegistrationController. 2018-11-29 15:45:17 -05:00
Matthew Chen 8110e0c765 Clean up usage of TSAccountManager. 2018-11-27 09:21:44 -05:00
Matthew Chen 544bdbd7f5 Fix edge cases around registration. 2018-11-26 09:58:59 -05:00
Matthew Chen 0b4ed1175d Create AppEnvironment. 2018-10-15 15:08:37 -04:00
Matthew Chen d7e52367ff Create AppEnvironment. 2018-10-15 15:08:37 -04:00
Michael Kirk d6a6024f37 Update PromiseKit 2018-10-13 16:04:20 -06:00
Matthew Chen c9922cda3e Respond to CR. 2018-10-12 17:38:13 -04:00
Matthew Chen eb7abdfc64 Account attributes updates. 2018-10-12 17:19:00 -04:00
Matthew Chen 4ab281346a Respond to CR. 2018-10-03 09:09:24 -04:00
Matthew Chen 39f1be65f3 Respond to CR. 2018-10-03 08:59:55 -04:00
Matthew Chen 1b1312c455 Clean up ahead of CR. 2018-10-03 08:59:55 -04:00
Matthew Chen 1d40cbfb41 Rework account attributes; persist manual message fetch; add "unrestricted UD" setting. 2018-10-03 08:59:55 -04:00
Matthew Chen cf6f3841a8 Apply new Swift logging. 2018-08-27 10:02:28 -04:00
Matthew Chen 26001e49d1 Unify log tags. 2018-08-15 10:24:29 -04:00
Matthew Chen 3964b78ff7 Reduce usage of JSQ. 2018-06-01 17:44:18 -04:00
Matthew Chen 28e26e1f75 Migrate to Swift 4. 2018-05-30 15:05:02 -04:00
Matthew Chen c17a819366 Elaborate request factory. 2018-03-02 15:05:14 -05:00
Matthew Chen baf6fcc535 Add 2FA registration view. 2018-03-02 10:55:00 -05:00
Matthew Chen 7a1e47cd26 Add asserts around Swift singletons. 2017-12-07 13:57:45 -05:00
Matthew Chen b4e8df79da Migrate environment to SignalMessaging. 2017-12-05 10:29:29 -05:00
Michael Kirk a11d83187b WIP: Framework-friendly - compiles but crashes on launch
// FREEBIE
2017-11-29 13:58:27 -08:00
Michael Kirk c0bcc40a6f Ensure we re-upload push tokens after re-registering.
// FREEBIE
2017-11-08 10:55:34 -05: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
Matthew Chen 80e5f281c6 Rename app preferences class.
// FREEBIE
2017-09-19 17:35:42 -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 f681712ea0 Code Cleanup
- make some logging clearer
- remove noisy unhelpful logging
- clearer method names

// FREEBIE
2017-07-10 11:09:39 -05:00
Matthew Chen 9db33a9651 Remove RedPhone code.
// FREEBIE
2017-03-29 12:25:33 -04:00
Matthew Chen f4453eb995 Enable WebRTC-based audio and video calls by default.
// FREEBIE
2017-02-21 11:10:57 -05:00
Michael Kirk b6f098bfa7 Log when receiving unknown call datachannel message
// FREEBIE
2017-02-02 15:51:07 -05:00
Matthew Chen 654bdb1a85 Add WebRTC setting.
// FREEBIE
2017-01-17 10:20:04 -05:00
Michael Kirk 647b2b37e9 WIP: WebRTC calling
* Ensure NotificationsManager has dependencies
    Otherwise it's easy to mess up the order of the required dependencies.
* move AccountManager into Environment, it's heavy to construct

// FREEBIE
2017-01-12 09:56:05 -05:00
Michael Kirk 1dd06a5e6c Fix registration flow / Keep push tokens in sync
* Separate registering an account from registering for push notifications
  * Allows us to complete registration without prompting user for
    notification settings.

UX Changes
----------
* Automatically keep push tokens in sync on startup.
  Push tokens *can* change, though they rarely do. It happens more often
  for people switching between appstore/beta builds.

  fixes #1174

* Show alert with registration failure
  * add secret 8-tap debug log gesture to registration flow

* Move registration to separate flow
  * don't see flash of inbox when first launching

* show useful error messages when given wrong code / no code

* remove background fetch
  We werent using it, but only relying on a side effect of it which is
  no longer necessary.

Code Changes
------------

* More registration logging.

* Install PromiseKit with carthage

  Our dependencies are not yet framework compatible, so we can't use
  cocoapods.

* Merge preferences util "category" into superclass.

  The immediate reason for this is Swift interop was assuming optional
  types were not optional, and exploding when a value was nil.

  This is clearer anyway, since we were treating it like a subclass, and
  it was the only thing using the class anyway.

* auto-genstrings now searches *.swift (and *.h, which was previously
  broken) for translateable strings.

// FREEBIE
2016-11-03 16:13:49 -04:00