Commit Graph

24 Commits

Author SHA1 Message Date
Matthew Chen
ad6bda8a44 Rename singleton accessors. 2020-09-17 21:11:07 -03:00
Nora Trapp
e88903a408 Allow app to be remotely expired 2020-09-08 15:11:03 -07:00
Matthew Chen
9aa17e833b Remote deprecation. 2020-09-02 16:51:58 -03:00
Matthew Chen
001d36f73a Merge remote-tracking branch 'private/release/3.13.3' 2020-07-30 22:25:57 -03:00
Michelle Linington
872ad2de76 IOS-362: new support flow
Most of the UI work for the new support flow. This still needs some
tuning, but I wanted to checkpoint some of this work. This adds a couple
new views and view controllers to facilitate the new support flow.

What's left to be done:
- Putting together the send-message infrastructure
- Attach actions to all of the buttons
- Make sure the colors all match up with the spec
- Reach out to design for feedback
- Testing with various accessibility settings
2020-07-30 13:02:00 -07:00
Matthew Chen
7b59452e54 Update account attributes after changes to long form of app version. 2020-07-27 09:42:41 -03:00
Matthew Chen
c87b32619d Update account attributes after changes to long form of app version. 2020-07-27 09:42:41 -03:00
Nora Trapp
88ac10de05 Notification Service Extension
The NSE should only run on iOS 13.3 or later where the "filtering" entitlement
is available since our notifications don't contain any content and will often
not trigger any user visible content. We control this by setting the deployment
target to iOS 13.3.

This does not handle calls as it's currently impossible to wake the main app or
launch CallKit from within the NSE. Should we reach a point where we need to use
this extension in production the service will need to be able to differentiate
between call and non-call messages and deliver them as VOIP or Vanilla pushes as
appropriate. Alternatively, Apple may introduce some way for us to signal the
main app that a call message has been received.

This does not currently address the potential for the NSE and the main app to be
running and trying to process messages at the same time. As long as the
websocket is connected and the main app is processing messages in a timely
fashion the NSE will never be called since the service will not send pushes for
these messages, but censorship circumvention users and users where the websocket
is disconnected for some reason will legitimately receive pushes and we will
want to process those messages. How we will handle these cases requires further
thought since just terminating the NSE when the app launches is not sufficient.
We could potentially do something like terminate the NSE everytime the main app
runs the message fetcher job which should only happen if either the user
pulls-to-refresh on the conversation list or the websocket is actively connected
and receiving messsages. I plan to address this in a follow-up pull request.

Currently this code will not ever be run since the service never sends vanilla
push notifications. Eventually we will need to add logic into the main app to:
a) detect we're on iOS 13.3 or later and b) update a flag on the service telling
it to stop using VOIP pushes for non-call messages. The API for requesting this
from the service does not yet exist.
2020-01-30 11:44:41 -08:00
Matthew Chen
a7d848ef7c Add missing nullability annotations. 2019-01-23 13:12:43 -05:00
Matthew Chen
1be757788b Prevent long version strings from being scrubbed in the logs. 2018-11-09 15:17:53 -05:00
Matthew Chen
27700ef78f Revert AppVersion singleton. 2018-10-11 09:36:47 -04:00
Matthew Chen
f24ccb3ce6 Hang more singletons on SSKEnv. 2018-10-11 08:56:50 -04:00
Matthew Chen
cc5a480baa Apply OWS log functions in Objective-C. 2018-08-27 12:58:52 -04:00
Matthew Chen
3a50377902 Apply OWS log functions in Objective-C. 2018-08-27 12:58:52 -04:00
Matthew Chen
1868c58037 Converge appLaunchTime. 2018-08-08 13:53:24 -04:00
Matthew Chen
45e782c243 Revamp orphan data cleaner. 2018-08-07 13:07:26 -04:00
Matthew Chen
ba42ac73d8 Revisit TODOs in the SAE work. 2018-02-12 22:33:26 -05:00
Matthew Chen
9c8178653d Revisit TODOs in the SAE work. 2018-02-12 22:33:26 -05:00
Matthew Chen
9ac2383a2c Retain changes from session database branch. 2018-01-10 12:18:29 -05:00
Matthew Chen
609536fcb1 Include build version in logging. 2017-12-15 11:11:04 -05:00
Matthew Chen
edaf65223a Migrate to shared data NSUserDefaults. 2017-11-30 09:49:01 -05:00
Matthew Chen
6e840ff956 Fix build warnings from XCode 9. 2017-11-09 02:52:44 -05: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
ccb4a88742 Import SSK (and history) into Signal-iOS
git remote add ssk ../SignalServiceKit
git remote update
git merge -s ours --allow-unrelated-histories --no-commit ssk/master
git read-tree --prefix=SignalServiceKit -u ssk/master
git commit
2017-07-21 13:55:01 -04:00