Commit Graph

14433 Commits

Author SHA1 Message Date
Matthew Chen
b60215709f "Bump build to 2.44.1.0." (Internal) 2019-10-23 17:38:37 -03:00
Matthew Chen
2dc9b1a274 "Bump build to 2.44.0.22." (Internal) 2019-10-23 17:36:40 -03:00
Matthew Chen
0a7ca9fdbe "Bump build to 2.44.0.21." (Internal) 2019-10-23 17:36:30 -03:00
Matthew Chen
8344f42fdd Use staging service. 2019-10-23 17:35:50 -03:00
Michael Kirk
ca6c22493e "Bump build to 2.44.0.20." 2019-10-11 19:41:39 -07:00
Michael Kirk
471109dce5 Set feature flags for beta 2019-10-11 19:41:32 -07:00
Michael Kirk
eddac82c6f "Bump build to 2.44.0.19." 2019-10-11 19:28:41 -07:00
Michael Kirk
94c7741f59 update info.plist for RingRTC 2019-10-11 19:28:31 -07:00
Michael Kirk
ced6788d51 Set feature flags for production 2019-10-11 19:22:56 -07:00
Michael Kirk
39758e513b Merge branch 'mkirk/dont-send-message-which-will-fail' into release/2.44.0 2019-10-11 19:22:09 -07:00
Michael Kirk
d9d6b0e128 Update RingRTC to v0.1.4 2019-10-11 19:20:17 -07:00
Michael Kirk
38ecb97a26 fix spurious "failed call"
RingRTC will fail the call when failing to send data messages. Don't send the
video status before the call is connected.
2019-10-11 18:06:46 -07:00
Matthew Chen
0daaf9887d "Bump build to 2.44.0.18." 2019-10-11 14:55:47 -03:00
Matthew Chen
20860603b9 Set feature flags for beta. 2019-10-11 14:55:45 -03:00
Matthew Chen
3a875b282a "Bump build to 2.44.0.17." 2019-10-11 14:55:22 -03:00
Matthew Chen
f494b0047b Set feature flags for production. 2019-10-11 14:55:16 -03:00
Matthew Chen
ae287587c4 Update l10n strings. 2019-10-11 14:53:52 -03:00
Matthew Chen
4a690669ee Merge branch 'charlesmchen/preventYdbReversion' into release/2.44.0 2019-10-11 14:42:33 -03:00
Matthew Chen
109d7e3e6f Respond to CR. 2019-10-11 14:40:50 -03:00
Matthew Chen
e8e839bc9e Prevent GRDB users from reverting to YDB. 2019-10-11 14:39:12 -03:00
Matthew Chen
c4376503ec Prevent GRDB users from reverting to YDB. 2019-10-11 14:39:12 -03:00
Matthew Chen
6af01de112 Update info plist to reflect WebRTC update. 2019-10-11 14:38:53 -03:00
Nora Trapp
9a3a4b20f0 Merge branch 'nt/accessibility-ids' into release/2.44.0 2019-10-10 15:25:43 -07:00
Nora Trapp
66cb8afb97 Add some accessibility identifiers 2019-10-10 15:18:40 -07:00
Michael Kirk
04bdc6fab6 Merge branch 'mkirk/view-once' into release/2.44.0 2019-10-10 06:24:43 -07:00
Michael Kirk
0300e08f85 View once copy 2019-10-10 06:24:32 -07:00
Matthew Chen
b41c4f4275 "Bump build to 2.44.0.16." 2019-10-09 10:14:44 -03:00
Matthew Chen
95d7ba9c7e Update RingRTC to v0.1.3. 2019-10-09 10:14:35 -03:00
Michael Kirk
2fbfa0f46e Merge branch 'mkirk/fix-repeat-gif' into release/2.44.0 2019-10-08 15:04:12 -07:00
Michael Kirk
55f518942c Fix "cannot send same Giphy twice"
When sending media, to avoid expensive copies during a write transaction we
pre-write the file and only do a move during the transaction, which is much
cheaper.

However, the asset.filePath is not safely moveable, it's the path of the cached
asset. So future attempts to send the asset will fail because the underlying
cached file had been moved.
2019-10-08 15:04:05 -07:00
Matthew Chen
f7b9252d9c "Bump build to 2.44.0.15." 2019-10-08 17:10:11 -03:00
Matthew Chen
48bde37956 "Bump build to 2.44.0.14." 2019-10-08 17:10:07 -03:00
Matthew Chen
1649d96cad Update l10n strings. 2019-10-08 16:23:47 -03:00
Matthew Chen
9287e874f6 Update to Production build of RingRTC. 2019-10-08 16:19:19 -03:00
Matthew Chen
2d987b4634 Merge branch 'charlesmchen/scrubUUIDs' into release/2.44.0 2019-10-08 16:14:23 -03:00
Matthew Chen
0b66346efa Retain last 2 digits of UUIDs. 2019-10-08 16:12:47 -03:00
Matthew Chen
c6a5e137f2 Scrub UUIDs from logs. 2019-10-08 15:49:33 -03:00
Matthew Chen
8630fbeb22 Remove PeerConnectionClientTest. 2019-10-08 15:48:55 -03:00
Matthew Chen
3a137fefc0 Update info Plist. 2019-10-08 12:38:45 -03:00
Matthew Chen
13193664cb "Bump build to 2.44.0.13." 2019-10-07 18:12:59 -03:00
Matthew Chen
4aff7699df Merge branch 'charlesmchen/ringRTC' into release/2.44.0 2019-10-07 18:12:40 -03:00
Matthew Chen
cc37a11eea RingRTC v0.1.2 2019-10-07 18:05:52 -03:00
Matthew Chen
48dfd5e940 Remove convenience accessors from call service. Improve coherence. 2019-10-07 18:05:52 -03:00
Jim Gustafson
28609b3184 PeerConnectionClient removal and hangup hardening
This commit removes the PeerConnectionClient which had become a thin
wrapper between CallService and CallConnection (RingRTC). Now, the
handling is moved mostly to CallConnection and CallService directly
interfaces with it.

Also adds some guards to handle quick call/hangup scenarios on the
caller side. There is also some optimization, in that we try to avoid
sending hangups to the peer if no offer has been sent.
2019-10-07 18:05:52 -03:00
Jim Gustafson
185e787fce Fix some error check handling
For unexpected conditions, invoke owsFailDebug to trip the debugger.

CHeck that callConnection is nil before setting it.
2019-10-07 18:05:52 -03:00
Jim Gustafson
820deae787 Integrate RingRTC
This commit integrates RingRTC in to Signal-iOS. Only two source code
files are affected, CallService.swift and PeerConnection.swift, as well
as the Xcode project. Other code, related to the WebRTC protocol
buffers, has been removed since it is now handled by RingRTC.

RingRTC is provided as a framework named SignalRingRTC.framework. This
works in tandem with WebRTC, and hence currently requires that as well,
WebRTC.framework. To make integration easier, avoid a zombie repository
on GitHub, and keep the integrity of older versions, we re-use the
signal-webrtc-ios-artifacts repository. We simply add the new framework
for SignalRingRTC in the Build directory.

The Xcode project is adjusted to include the new SignalRingRTC
framework. Please note that the WebRTC.framework is also modified for
RingRTC, and is itself updated and part of the delivery. Both of the
framework artifacts come from the ringrtc repository.

The PeerConnectionClient.swift implementation is very different than
the previous version. It now serves as a thin wrapper around the
RingRTC CallConnection class. It provides some fundamental
serialization and helps with overall stability, although it could be
deprecated eventually.

For the CallService, the basic callflow is changed. Previously, it
would use promise chains to go through RTC negotiation until a message
was created for signaling to the peer. Now, RingRTC itself handles
this, and those promise chains are replaced with singular calls in to
the CallConnection (via PeerConnectionClient), with asynchronous
callbacks coming in the future for the signaling parts and other key
notifications.

In summary, other aspects of the integration on CallService include:
- The removal of the call timeout and associated callConnectedPromise.
  Timeouts are handled within RingRTC.
- For incoming calls, the 'backgroundTask' is now a variable in the
  CallData class and cleared on call connect or eventual deinit.
- When receiving Ice candidates, the existing behavior of queueing them
  until the PeerConnectionClient is valid is maintained.
- When sending Ice candidates, the existing behavior of queueing them
  so they are sent in batches in cadence with the actual sending speed
  is maintained.
- All signaling handlers, to send messages such as offer, answer, etc.,
  are handled asynchronously and in a consistent way, with call
  failures being issued for any negative result.
2019-10-07 18:05:52 -03:00
Matthew Chen
4c8c11863a Merge remote-tracking branch 'private/nt/waveform-android-workaround' into release/2.44.0 2019-10-07 18:02:16 -03:00
Nora Trapp
ea808e7bd8 Fix audio waveform for android originated voice notes 2019-10-07 13:54:26 -07:00
Nora Trapp
24698956db Merge branch 'nt/audo-view-fix' into release/2.44.0 2019-10-07 09:49:26 -07:00
Nora Trapp
56a12393f4 Support RTL layout for audio waveforms 2019-10-04 17:15:39 -07:00