Commit graph

1003 commits

Author SHA1 Message Date
Matthew Chen 5232899b14 Update Carthage to reflect WebRTC release build.
// FREEBIE
2017-01-31 11:28:56 -05:00
Matthew Chen 47c2b03802 Merge branch 'charlesmchen/webrtc/textShadows' into feature/webrtc 2017-01-30 18:28:38 -05:00
Matthew Chen b5aab60985 Respond to CR.
// FREEBIE
2017-01-30 18:27:52 -05:00
Matthew Chen e947276f73 Add drop shadows to text in call view.
// FREEBIE
2017-01-30 18:27:20 -05:00
Matthew Chen 8aca1b87dc Merge branch 'charlesmchen/webrtc/disableLocalVideoInBackground' into feature/webrtc 2017-01-30 18:25:15 -05:00
Matthew Chen 40b3d038db Disable local video in background.
// FREEBIE
2017-01-30 18:25:04 -05:00
Michael Kirk ae1a97196e Merge pull request #1658 from WhisperSystems/mkirk/webrtc/call-mux
Better concurrent call handling
2017-01-30 18:05:21 -05:00
Michael Kirk 141a1bd176 Disable half-working call-holding feature all together
consolidated feature-disable logic for incoming/outgoing calls to make
it easier to document, and less likely to break when we *do* implement
CallHolding

// FREEBIE
2017-01-30 16:13:59 -05:00
Michael Kirk 969b73cad8 Implement call holding (call swapping still broken).
- Alice calls Bob on Signal and they start talking
- Charlie calls Alice on Not-Signal.
- Alice chooses to "Hold & Accept" putting Bob on Hold while the call with
  Charlie connects.
- If Alice ends the call with Charlie, we're back in Signal-iOS and
  talking to Bob, no problem.
- However, if, before ending the call with Charlie, Alice tries to swap
  *back* to bob, bob won't hear any audio in the callkit screen. Alice
  has to switch back to the Signal screen before the audio is transmitted.

// FREEBIE
2017-01-30 16:13:58 -05:00
Michael Kirk e425d351c7 WIP: incoming non-signal call while in outgoing signal call
Marking Signal-Call as started, changes the incoming call screen for
subsequent calls to show "Accept & End", "Send to VoiceMail" and "Accept
& Hold" instead of just "Accept" & "Decline"

Though - we don't support Holding. What we really want to see is just
"Accept & End" and "Decline | Send to Voicemail"

// FREEBIE
2017-01-30 16:13:55 -05:00
Matthew Chen 08a0853bd2 Merge branch 'charlesmchen/webrtc/videoRefinements_' into feature/webrtc 2017-01-30 15:54:53 -05:00
Matthew Chen c8e5884087 Respond to CR.
// FREEBIE
2017-01-30 15:54:31 -05:00
Matthew Chen 9a0a7bb6b1 Show alert when user tries to activate local video without camera permissions.
// FREEBIE
2017-01-30 14:08:53 -05:00
Matthew Chen da53368bc2 Show alert when user tries to activate local video without camera permissions.
// FREEBIE
2017-01-30 14:08:53 -05:00
Matthew Chen 2ef80e569d Improve thread safety in call ui adapter and adatapees.
// FREEBIE
2017-01-30 14:08:53 -05:00
Matthew Chen 50addfa4e8 Remove camera constraints.
// FREEBIE
2017-01-30 14:08:32 -05:00
Matthew Chen 6ce33381a8 Prevent screen from dimming or device from locking during video call.
// FREEBIE
2017-01-30 14:08:08 -05:00
Matthew Chen 410d5fbf7f Merge branch 'charlesmchen/webrtc/reworkVideoControls' into feature/webrtc 2017-01-30 14:07:23 -05:00
Matthew Chen 40d7944120 Respond to CR.
// FREEBIE
2017-01-30 14:06:57 -05:00
Matthew Chen 9e34f87f0d Fix issues around how remote/local video states affect call view.
// FREEBIE
2017-01-30 14:06:03 -05:00
Matthew Chen 3446923060 Merge branch 'feature/hideVideoControls' into feature/webrtc 2017-01-30 14:05:27 -05:00
Matthew Chen 699b364ec7 Show/hide call view controls in remote video mode if user taps screen.
// FREEBIE
2017-01-30 14:04:57 -05:00
Michael Kirk 459d0d6012 Working around a bizarre crash on iOS 9
Without this, I get a SEGFAULT on iOS 9.3 device 1 in 3 calls when
accessing the RTC extern constants. Swift bug?

Currently using XCode 8.2

// FREEBIE
2017-01-30 13:35:39 -05:00
Michael Kirk fff061ff3f Make sure WebRTC preferences are synced *every* call
This slows the UI, but only for people who have locally opted into
WebRTC calls, and the alternative is that users are likely to have stale
settings the first time a pair of people opt-in.

// FREEBIE
2017-01-27 14:33:12 -05:00
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
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 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
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 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 a6029f2545 Merge remote-tracking branch 'origin/master' into feature/webrtc 2017-01-25 09:54:33 -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