Commit Graph

119 Commits

Author SHA1 Message Date
Nora Trapp
7ffcb089e4 Add haptic feedback to mention picker 2020-08-13 10:58:28 -03:00
Matthew Chen
a80eaf4ff2 Respond to CR. 2020-07-10 11:49:47 -03:00
Matthew Chen
1d2a1a2a26 Generate haptic feedback on main thread. 2020-07-10 11:29:16 -03:00
Nora Trapp
8a10d631f9 Add haptic feedback 2020-06-01 12:52:59 -07: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
Nora Trapp
31779b803e More specific reactions notifications 2020-01-27 11:59:30 -08:00
Matthew Chen
41f314ba1f Respond to CR. 2020-01-16 17:44:56 -03:00
Nora Trapp
61fe37de2b Hack around split view bug 2020-01-08 17:39:51 -08:00
Michael Kirk
f1dc3e564d expects to be called on main thread 2020-01-03 11:26:54 -07:00
Matthew Chen
ee819340c7 Always migrate to GRDB; show notification during background migrations. 2020-01-02 12:12:18 -08:00
Matthew Chen
c23ed76df0 Always migrate to GRDB; show notification during background migrations. 2020-01-02 12:12:18 -08:00
Michael Kirk
9d61e15685 Show info message context only when appropriate 2019-12-18 12:10:48 -08:00
Michael Kirk
997c93bc8e more logging around push registration failure checking 2019-12-13 07:55:33 -08:00
Nora Trapp
8d0a8ca3bd Notify for incoming reactions to your message 2019-12-03 15:26:01 -08:00
Nora Trapp
87ecf90bee Merge branch 'release/3.0.0' 2019-11-20 16:46:39 -08:00
Matthew Chen
35989761c2 Refine notifications.
Thanks to teor at The Tor Project.
2019-11-20 13:21:47 -03:00
Matthew Chen
e46eefe50e Remove readReturningResult(). 2019-11-14 10:39:33 -03:00
Nora Trapp
9148052cd6 Fix notification presentation over selected thread. 2019-10-21 10:49:19 -07:00
Michael Kirk
6fea78a6b3 Linking flow 2019-10-17 10:19:32 -06:00
Nora Trapp
90c562e94b Render conversation list + view in a side-by-side split on iPad 2019-10-08 20:10:01 -07:00
Michael Kirk
45c4066a80 Fix deadlock with thread.name
For contact threads, thread.name opened a sneaky transaction, which would
sometimes cause a deadlock.

This commit moves the name method to the contact manager and offers an explicit
transaction flavor. There is still a sneaky transaction flavor used in some
places where it's deemed dangerous to plumb through a transaction without
further scrutiny.
2019-08-23 18:45:23 -06:00
Michael Kirk
37468c4158 Fix missing: "you declined call" record for CallKit adapter
And fixes the corresponding debug assert that uncovered this bug.
2019-08-09 13:43:59 -06:00
Matthew Chen
bce0870d21 Fix rebase breakage. 2019-07-31 11:09:23 -03:00
Matthew Chen
1e363d2c65 Make uniqueId non-nil. 2019-07-31 10:50:59 -03:00
Michael Kirk
368dd7caf8 Merge tag '2.41.0.15' 2019-07-26 11:19:46 -06:00
Michael Kirk
ca554c4637 update notification copy 2019-07-24 11:22:19 -06:00
Matthew Chen
bdf5ca2645 Remove YDB connections. 2019-07-23 10:46:10 -03:00
Nora Trapp
3d1dd3dfe4 Remove rtlSafeAppend 2019-07-19 12:33:17 -07:00
Matthew Chen
ad49533e33 Make TSInteraction.thread non-nil. 2019-07-19 15:48:39 -03:00
Matthew Chen
8bd8cd89df Purify threads of YDB usage. 2019-07-16 13:50:49 -03:00
Matthew Chen
289b15f17f Convert threads to BaseModel. 2019-07-16 13:50:21 -03:00
Nora Trapp
c6688523c7 Address support for calling 2019-07-10 21:03:54 -07:00
Nora Trapp
c186755c66 Migrate IdentityManager and associated models to support UUIDs 2019-07-08 11:44:40 -07:00
Nora Trapp
a1f85fca30 Migrate profiles to support UUIDs 2019-07-02 11:19:50 -07:00
Michael Kirk
efafd6fb38 Create UUID message in DebugUI, rendering in homeview
ContactAvatarBuilder works with SignalServiceAddress

Currently this only functions with the GRDB adapter. There are other asserts
triggered in yap extensions.
2019-07-01 10:16:23 -06:00
Michael Kirk
0c944fe9f4 Incoming message has authorAddress 2019-06-27 14:22:13 -06:00
Nora Trapp
7d94af3287 Migrate TSContactThread to support UUIDs 2019-06-27 13:12:52 -07:00
Matthew Chen
c8359fc932 Convert message sending to use any transactions. 2019-06-25 16:00:58 -04:00
Nora Trapp
92f817d7fd Update callsites to use new contacts manager address interface 2019-06-25 10:30:52 -07:00
Michael Kirk
7d00ab2f82 CR: clarify comment 2019-06-24 12:00:50 -06:00
Mateo Hernandez
45d1e2db96 Only escape % signs in notifications on iOS 9
iOS 10+ uses UNUserNotifications, which doesn't require escaping

Fixes: #4195
2019-06-24 12:00:47 -06:00
Matthew Chen
72d9763405 Merge remote-tracking branch 'private/release/2.40.1' 2019-06-24 09:50:32 -04:00
Matthew Chen
11b7879d78 Add onlyModernNotificationClearance feature flag. 2019-06-21 16:07:05 -04:00
Michael Kirk
2749765e4c new user notifications are inaudible 2019-06-13 14:02:45 -05:00
Michael Kirk
13cdb2abb8 Surface when you discover a friend has registered 2019-06-13 09:20:50 -05:00
Nora Trapp
ce99b0e311 Add ImpactHapticFeedback helper 2019-06-10 12:35:06 -07:00
Nora Trapp
a8235a1759 Swipe to reply 2019-06-10 12:35:06 -07:00
Matthew Chen
95a4fb8110 Elaborate per-message expiration. 2019-06-10 11:41:39 -04:00
Michael Kirk
cb537f391b notification threading 2019-05-22 16:04:08 -04:00
Michael Kirk
fabd091567 fix in-app notifications on iOS10 2019-05-15 15:09:07 -06:00