Commit Graph

22799 Commits

Author SHA1 Message Date
Matthew Chen
a29e3674c4 Merge branch 'charlesmchen/webrtc/video5' into feature/webrtc 2017-01-27 13:25:06 -05:00
Matthew Chen
fe140b0da5 Updated the button icons in the call view’s “remote video” mode.
// FREEBIE
2017-01-27 13:21:58 -05:00
Matthew Chen
2a4170a32d Merge branch 'charlesmchen/webrtc/video4' into feature/webrtc 2017-01-27 13:19:24 -05:00
Matthew Chen
bc00b87783 Reply to CR.
// FREEBIE
2017-01-27 13:18:51 -05:00
Michael Kirk
6521a80c44 Lookup methods yield SignalRecipient (#102)
Let's us remove some otherwise redundant code to look up the recipient
from their ID.

// FREEBIE
2017-01-27 13:06:49 -05:00
Matthew Chen
9c3ecbc77d Clean up ahead of PR.
// FREEBIE
2017-01-27 11:17:35 -05:00
Matthew Chen
d560aa022a Reworked call view’s remote video mode. 2017-01-27 11:11:33 -05:00
Matthew Chen
e2d6c574df Fix guard syntax.
// FREEBIE
2017-01-26 17:42:32 -05:00
Matthew Chen
bba1f05dc0 Merge branch 'charlesmchen/webrtc/video3' into feature/webrtc 2017-01-26 17:01:54 -05:00
Matthew Chen
204aeab69c Respond to CR.
// FREEBIE
2017-01-26 17:01:31 -05:00
Matthew Chen
ec1f77c630 Polish video calls.
* Send and handle messages around video status.
* Fix handling of callee data channel.
* Fix layout of local video view.

// FREEBIE
2017-01-26 16:56:35 -05:00
Matthew Chen
8bdf03fa7d Merge branch 'charlesmchen/webrtc/video2_' into feature/webrtc 2017-01-26 16:55:19 -05:00
Matthew Chen
48ca4fe865 Respond to CR.
// FREEBIE
2017-01-26 16:41:59 -05:00
Matthew Chen
0c7f183ac8 Respond to CR.
// FREEBIE
2017-01-26 16:41:59 -05:00
Matthew Chen
a65d3b7c4e Add video-related views.
// FREEBIE
2017-01-26 16:41:59 -05:00
Michael Kirk
e556a369bb Include missing files to fix tests
// FREEBIE
2017-01-26 15:00:02 -05:00
Michael Kirk
814aec6cdd Recover CallKit state when remote client fails to hangup
Distinguish between localHangup, remoteHangup, and call failure.

This allows us to put CallKit in the proper state, ready to receive new
calls without having a backlog of phantom calls which haven't been
properly removed.

Note the "call error" occurs at the point ICE fails, which takes a
while. Anecdotally, like 10 seconds, which feels like a long to be
talking into the ether.

I briefly considered failing at 'disconnected', which happens much
sooner, but that's actually a recoverable state. E.g. if you toggle
airplane mode you can see that you bounce into `disconnected` and then
back to `connected`, so I don't think we'd want to fail the call as long
as WebRTC considers it "recoverable".

// FREEBIE
2017-01-26 13:18:06 -05:00
Michael Kirk
20e037ad8a bump build
// FREEBIE
2017-01-25 16:46:10 -05:00
Michael Kirk
ff7ae4f81b [SSK] Disable resetting unreadable storage (#1643)
// FREEBIE
2017-01-25 16:45:50 -05:00
Michael Kirk
fe3ec457fa Disable resetting unreadable storage
Until we have better data on why this occurs, we don't want to risk
blowing users message archive.

// FREEBIE
2017-01-25 16:39:26 -05:00
Michael Kirk
6c14f2f500 Fix "Answer" from iOS9 notification doesn't init audio
The removed code was from an older eon. CallService shouldn't be touched
except via the CallUIAdapter since only there is the omnipresent
distinction between CallKit vs. NonCallKit made.

i.e. when the RTCAudioSession get's started depends on the
CallUIAdaptee.

// FREEBIE
2017-01-25 12:32:36 -05:00
Michael Kirk
d3e6747499 Merge remote-tracking branch 'origin/master' into feature/webrtc 2017-01-25 12:13:37 -05:00
Matthew Chen
9fdbbb7f8b Merge branch 'charlesmchen/webrtc/video2' into mkirk/webrtc 2017-01-25 11:59:40 -05:00
Matthew Chen
5da4b3d122 Add assert macro that can be used in free functions.
// FREEBIE
2017-01-25 11:59:20 -05:00
Michael Kirk
5856e351ae Respect WebRTC calling preference (#1640)
TODO: this is going to be weird when two parties are *just* enabling
webrtc for the first time. We might want to do something as drastic as
refetch contact information before completing the call.

// FREEBIE
2017-01-25 11:41:30 -05:00
Michael Kirk
cf6f107f1e Merge remote-tracking branch 'origin/master' into mkirk/webrtc
Get session corruption fixes

// FREEBIE
2017-01-25 11:33:07 -05:00
Michael Kirk
1de5a51fea Pull latest translations
// FREEBIE
2017-01-25 11:25:09 -05:00
Michael Kirk
4e72ab92c8 Prevent session corruption by using a single serial queue for encrypt and decrypt
coordinate SignalProtocol encryption/decryption on a single serial
queue. Previously message sending encrypted on the sending thread, while
message receiving decrypted on the main thread.

// FREEBIE
2017-01-25 11:00:21 -05:00
Michael Kirk
c4eecb24d7 bump release target
// FREEBIE
2017-01-25 11:00:21 -05:00
Michael Kirk
32aad85a78 Merge pull request #98 from WhisperSystems/mkirk/session-corruption
Prevent session corruption by using same queue for encrypt vs. decrypt
2017-01-25 10:54:44 -05:00
Michael Kirk
a6029f2545 Merge remote-tracking branch 'origin/master' into feature/webrtc 2017-01-25 09:54:33 -05:00
Michael Kirk
f4a46fce08 Merge remote-tracking branch 'origin/master' into mkirk/webrtc 2017-01-24 17:38:29 -05:00
Michael Kirk
5d863418ea Narrow the scope of code run on SessionCipher queue
And run all non-cipher code on the main thread.

Note: Running encryption on the sessionCipher queue is more about
serializing access to session mutations than it is about any performance
gains.

// FREEBIE
2017-01-24 15:52:58 -05:00
Michael Kirk
3216fd3714 Prevent session corruption by using same queue for encrypt vs. decrypt
// FREEBIE
2017-01-24 15:00:38 -05:00
Michael Kirk
6af933c17d Merge branch 'release/2.6.13' 2017-01-24 14:40:44 -05:00
Michael Kirk
cabd85c854 Merge branch 'mkirk/webrtc/fix-non-callkit-ringer' into feature/webrtc 2017-01-24 14:18:53 -05:00
Michael Kirk
333fb6c60f assert on main thread
// FREEBIE
2017-01-24 14:13:29 -05:00
Michael Kirk
b2091431dc Fix retain cycle
// FREEBIE
2017-01-24 14:13:29 -05:00
Michael Kirk
87ed662116 Persist AudioService if CallViewController is dismissed
...in response to CR, move the AudioService off of the CallViewController

Adopt multiple observer pattern vs. a singular delegate. Doing so
required implementing some machinery to address the ARC (see:
Weak.swift)

// FREEBIE
2017-01-24 14:13:29 -05:00
Michael Kirk
3ee94d57d9 Only NonCallKit adaptee uses manual ringing
- stop executing ringer code on CallKit which manages ringing for us.
- Organize ringing code more clearly.

// FREEBIE
2017-01-24 12:57:02 -05:00
Michael Kirk
4c23b5e23f Remove dependency on AppAudioManager
Implement speakerphone toggle directly. Previously we were using
AppAudioManager for several things, but this is that last lingering bit.
Much of the AppAudioManager code is based on RedPhone calling, so by
removing the dependency we pave the way to throw that code away.

// FREEBIE
2017-01-24 12:57:02 -05:00
Michael Kirk
4374e431a2 Respect silent switch in and out of app.
// FREEBIE
2017-01-24 12:57:02 -05:00
Michael Kirk
a89bde933d Respect silent-switch pre-CallKit
8 Cases considered:

(Silent Switch toggled vs. Silent Switch not-toggled)
x (App in Foreground vs. App in Background)
x (CallKit vs. NonCallKit)

CallKit already does the "right thing"

// FREEBIE
2017-01-24 12:57:02 -05:00
Matthew Chen
e3a5451080 Merge branch 'feature/disableCallKitButtons' into feature/webrtc 2017-01-24 10:06:34 -05:00
Matthew Chen
d4dbe7f44f Disable unused CallKit buttons.
// FREEBIE
2017-01-24 10:04:37 -05:00
Matthew Chen
8639471494 Merge branch 'charlesmchen/webrtc/video' into feature/webrtc 2017-01-24 10:02:59 -05:00
Matthew Chen
229d95ecbf Respond to CR.
// FREEBIE
2017-01-24 10:02:03 -05:00
Matthew Chen
7ca8c0f28d Merge branch 'feature/improveAppDelegateLogging' 2017-01-24 09:30:22 -05:00
Michael Kirk
c2fae986f2 [SSK] better logging when we fail to get DB keys
// FREEBIE
2017-01-23 20:32:13 -05:00
Michael Kirk
a112930277 Merge branch 'mkirk/dont-reset-storage-before-first-unlock' 2017-01-23 20:28:53 -05:00