Commit Graph

14525 Commits

Author SHA1 Message Date
Matthew Chen
fae0d44550 Add blur hashes to outgoing attachments. 2019-10-08 09:17:28 -03:00
Matthew Chen
e9952ddeec Add blur hashes to outgoing attachments. 2019-10-08 09:17:28 -03:00
Matthew Chen
ac45f06dae Add blurhash property to attachment pointer. 2019-10-08 09:17:28 -03:00
Matthew Chen
3389e96b93 Add blurhash to attachment protos. 2019-10-08 09:17:27 -03:00
Matthew Chen
cb081b63ca Add blurhash pod. 2019-10-08 09:17:27 -03:00
Matthew Chen
e4d942ef68 Add blurhash pod. 2019-10-08 09:17:27 -03:00
Matthew Chen
5b033fca31 Update info Plist. 2019-10-08 08:41:18 -03:00
Matthew Chen
1aa90143e2 Merge tag '2.44.0.13' 2019-10-08 08:35:35 -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
Matthew Chen
a84f35a799 "Bump build to 2.45.0.7." (Internal) 2019-10-07 09:16:13 -03:00
Nora Trapp
2ecb94a5ee Fix stale hash reference for YDB pod 2019-10-05 18:58:01 -07:00
Nora Trapp
280f15a54a Merge branch 'nt/ipad' 2019-10-05 18:51:21 -07:00
Nora Trapp
93004d1d1a PR Feedback 2019-10-05 18:50:51 -07:00
Nora Trapp
36cbf4cc61 Support iPad multi tasking 2019-10-05 16:57:44 -07:00
Nora Trapp
56a12393f4 Support RTL layout for audio waveforms 2019-10-04 17:15:39 -07:00
Matthew Chen
000b74d0ba Reduce redundant logging. 2019-10-04 19:46:01 -03:00
Matthew Chen
1c658468cd "Bump build to 2.45.0.6." (Internal) 2019-10-04 19:45:54 -03:00
Matthew Chen
bce98a56d0 Merge branch 'charlesmchen/fixMoreBrokenTests' 2019-10-04 19:34:19 -03:00
Matthew Chen
63c2cbf71b Fix broken tests. 2019-10-04 19:34:08 -03:00
Matthew Chen
7babdfca5b Merge branch 'mkirk/overzealous-assert-3' 2019-10-04 19:33:37 -03:00
Michael Kirk
27252ca1c2 fix overzealous assert 2019-10-04 19:33:28 -03:00
Matthew Chen
8b53f669ee Merge remote-tracking branch 'private/release/2.44.0' 2019-10-04 16:33:27 -03: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
Michael Kirk
cb810eeb85 Merge branch 'mkirk/homeview-perf' 2019-10-04 14:29:42 -04:00
Michael Kirk
c176c78ead remove unused index 2019-10-04 14:29:32 -04:00
Michael Kirk
a8e835a913 Faster homeview db query
- replace max aggregate with limit 1 order by to avoid crawling all interactions
- only select necessary fields for count
- order after filtering
2019-10-04 14:29:32 -04:00
Michael Kirk
480f07ddf0 bench ThreadView.mapping 2019-10-04 14:29:32 -04:00
Michael Kirk
fcbbd050c8 fix index order 2019-10-04 14:29:32 -04:00
Matthew Chen
d41188de1a Add missing indices. 2019-10-04 14:29:32 -04:00
Matthew Chen
1928e9fa36 Update feature flags for public beta. 2019-10-04 15:29:21 -03:00
Matthew Chen
88187afe5a Merge branch 'charlesmchen/ydbToGrdbMigrationLogFileSizes' 2019-10-04 15:12:56 -03:00
Matthew Chen
2ff2d7dd23 Log database file sizes after YDB-to-GRDB migration. 2019-10-04 15:12:45 -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
3777e958c0 Merge branch 'charlesmchen/threadViewHelperVsGrdb' 2019-10-04 15:09:57 -03:00
Matthew Chen
03fafd1802 Respond to CR. 2019-10-04 15:09:44 -03:00
Matthew Chen
ac24bbc0f5 Update ThreadViewHelper to support GRDB. 2019-10-04 15:01:01 -03:00