Commit Graph

14405 Commits

Author SHA1 Message Date
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
Matthew Chen
67676dfd63 "Bump build to 2.44.0.12." 2019-10-04 16:31:56 -03:00
Matthew Chen
81010634fb "Bump build to 2.44.0.11." (Internal) 2019-10-04 16:31:56 -03:00
Matthew Chen
031eafe8fe Fix broken tests. 2019-10-04 16:31:50 -03:00
Matthew Chen
6fe4a8faa4 Fix build warning. 2019-10-04 15:52:03 -03:00
Matthew Chen
57dca2b7aa Update l10n strings. 2019-10-04 15:33:50 -03:00
Matthew Chen
1928e9fa36 Update feature flags for public beta. 2019-10-04 15:29:21 -03:00
Matthew Chen
da89c552e7 Merge branch 'charlesmchen/eagerlyAddSystemContactsToProfileWhitelist' into release/2.44.0 2019-10-04 15:12:15 -03:00
Matthew Chen
a9e36810b4 Eagerly add system contacts to profile whitelist. 2019-10-04 15:12:04 -03:00
Matthew Chen
1f78989cf1 Merge branch 'charlesmchen/cacheStickerPath' into release/2.44.0 2019-10-03 13:08:38 -03:00
Matthew Chen
f1536dea8e Respond to CR. 2019-10-03 13:08:24 -03:00
Matthew Chen
d4d5692af2 Cache the sticker manager's cache dir path. 2019-10-03 13:05:37 -03:00
Matthew Chen
e00470f236 "Bump build to 2.44.0.10." (Internal) 2019-10-02 21:43:31 -03:00
Matthew Chen
1aaa2e9790 "Bump build to 2.44.0.9." (Internal) 2019-10-02 15:41:35 -03:00
Matthew Chen
3100880c23 "Bump build to 2.44.0.8." (Internal) 2019-10-02 15:41:30 -03:00
Matthew Chen
de56d3d244 Respond to CR. 2019-10-02 14:26:35 -03:00
Matthew Chen
c2824e194c Merge branch 'charlesmchen/loadingViewDelay' into release/2.44.0 2019-10-02 14:26:09 -03:00
Matthew Chen
12f1f68ec8 Protect loading view animations from app activating immediately after that view appears. 2019-10-01 16:41:56 -03:00
Matthew Chen
a59c3ce2ce "Bump build to 2.44.0.7." (Internal) 2019-09-30 17:14:00 -03:00
Matthew Chen
11b2147680 "Bump build to 2.44.0.6." 2019-09-28 19:27:07 -03:00
Matthew Chen
1d3e25e9c6 Merge remote-tracking branch 'private/release/2.43.3' into release/2.44.0 2019-09-28 19:26:25 -03:00
Matthew Chen
5f8f39e99f "Bump build to 2.43.3.1." 2019-09-28 00:15:46 -03:00
Matthew Chen
a9fbff59b1 Set feature flags to production. 2019-09-28 00:15:38 -03:00
Matthew Chen
3737809185 "Bump build to 2.43.3.0." 2019-09-28 00:15:33 -03:00
Matthew Chen
bde3b39b0f Update l10n string. 2019-09-28 00:15:26 -03:00
Matthew Chen
1b5adb103e Upsert experience upgrades. 2019-09-28 00:14:51 -03:00
Matthew Chen
483747cae8 Refine build script to label internal tag commit messages as such. 2019-09-28 00:14:46 -03:00
Matthew Chen
929146b791 Add --internal command line flag. 2019-09-28 00:14:40 -03:00
Matthew Chen
d464aa43df Clean up call service. 2019-09-28 00:14:16 -03:00