Commit Graph

2712 Commits

Author SHA1 Message Date
Michael Kirk
e3faddedbc Disallow bluetooth when user has opted for local receiver
// FREEBIE
2017-07-15 17:11:41 -04:00
Michael Kirk
524ba80b75 WIP: have ensureAudioSession set preferred input
Call it all the time, but only mutate the AVAudioSession when necessary

TODO

Can't switch to iPhone

// FREEBIE
2017-07-15 17:11:41 -04:00
Michael Kirk
220cd345f6 add comments
// FREEBIE
2017-07-15 17:11:41 -04:00
Michael Kirk
ba97ff3f5f Label tweaks for device listing
// FREEBIE
2017-07-15 17:11:41 -04:00
Matthew Chen
be3001e4fa Merge branch 'charlesmchen/emptyHomeView' 2017-07-14 20:46:43 -04:00
Matthew Chen
d36e60b0e9 Respond to CR.
// FREEBIE
2017-07-14 20:46:36 -04:00
Matthew Chen
b6264383d3 Add possible fixes for the ‘empty home view’ issue.
// FREEBIE
2017-07-14 20:46:35 -04:00
Matthew Chen
90dabe1c81 Add possible fixes for the ‘empty home view’ issue.
// FREEBIE
2017-07-14 20:46:35 -04:00
Matthew Chen
f52814bb70 Add possible fixes for the ‘empty home view’ issue.
// FREEBIE
2017-07-14 20:46:35 -04:00
Matthew Chen
3f805cd4cd Add possible fixes for the ‘empty home view’ issue.
// FREEBIE
2017-07-14 20:46:35 -04:00
Matthew Chen
5e58079e13 Update l10n strings.
// FREEBIE
2017-07-14 20:44:44 -04:00
Matthew Chen
5633982262 Bump build from to 2.14.0.3.
// FREEBIE
2017-07-14 09:54:35 -04:00
Michael Kirk
914d2936a3 Merge branch 'mkirk/fix-unnecessary-session-changes' 2017-07-14 09:49:53 -04:00
Michael Kirk
b8ec353d77 Use recommended approach for speakerphone mode
From: https://developer.apple.com/library/content/qa/qa1754/_index.html

Q:  Can you explain the difference between calling the AVAudioSession method overrideOutputAudioPort: with the value AVAudioSessionPortOverrideSpeaker and using the category option AVAudioSessionCategoryOptionDefaultToSpeaker with setCategory:withOptions:error:.

A: The difference is that setting the AVAudioSessionPortOverride by calling overrideOutputAudioPort: is more transient than using the category option AVAudioSessionCategoryOptionDefaultToSpeaker.

Important: The use of both AVAudioSessionPortOverrideSpeaker and AVAudioSessionCategoryOptionDefaultToSpeaker are only applicable to the AVAudioSessionCategoryPlayAndRecord category.
Calling overrideOutputAudioPort: and setting the AVAudioSessionPortOverride to AVAudioSessionPortOverrideSpeaker is a way of temporarily overriding the output to play to the speaker. Any route change or interruption will cause the audio to be routed back to its normal route, following the last-in wins rule. Think of using overrideOutputAudioPort: in terms of what you might use to implement a Speakerphone button where you want to be able to toggle between the speaker (AVAudioSessionPortOverrideSpeaker) and the normal output route (AVAudioSessionPortOverrideNone).

Note: This property is intended to allow 3rd party applications to mimic the behavior of a Speakerphone button and therefore may change the input route as well as output route. For example, setting the AVAudioSessionPortOverride to AVAudioSessionPortOverrideSpeaker while a headset is plugged in will cause the route to change to built-in mic / built-in speaker.

// FREEBIE
2017-07-14 09:49:48 -04:00
Michael Kirk
847a0ff8ba Merge branch 'mkirk/disappear-from-lock-screen' 2017-07-14 09:48:53 -04:00
Michael Kirk
fa42b4a45b Respect disappearing message timer from lockscreen
// FREEBIE
2017-07-14 09:48:46 -04:00
Matthew Chen
235a842137 [SSK] Use existing transaction in cleanup.
// FREEBIE.
2017-07-14 09:27:48 -04:00
Matthew Chen
ab7c1698cf Merge branch 'charlesmchen/anotherCallLeak' 2017-07-14 09:16:47 -04:00
Matthew Chen
6c61e6040c Fix another call view leak.
// FREEBIE
2017-07-13 18:14:26 -04:00
Matthew Chen
90ad83d494 Bump build from to 2.14.0.2.
// FREEBIE
2017-07-13 17:23:28 -04:00
Matthew Chen
8884cb5a2b [SSK] Fix copy and paste of voice messages.
// FREEBIE
2017-07-13 17:23:11 -04:00
Michael Kirk
77fb1dbf45 Merge branch 'mkirk/bt-audio-2' 2017-07-13 17:19:34 -04:00
Michael Kirk
90c2324f99 pixel cleanup in bluetooth speaker image
// FREEBIE
2017-07-13 17:08:42 -04:00
Michael Kirk
b495b23420 more cleanup and commenting
// FREEBIE
2017-07-13 17:08:42 -04:00
Michael Kirk
03f1bbca62 Move state from CallViewController -> Call
I think whenever reasonable we prefer to consodlidate state on the call

// FREEBIE
2017-07-13 17:08:42 -04:00
Michael Kirk
4e11e90ebb cleanup
- remove dead code
- rename vars
- add coments

// FREEBIE
2017-07-13 17:08:41 -04:00
Michael Kirk
a59eb25aef extract dismiss string -> CommonStrings.dismissButton
// FREEBIE
2017-07-13 17:08:41 -04:00
Michael Kirk
20a8e72198 disable audio source images until we have icons
// FREEBIE
2017-07-13 17:08:41 -04:00
Michael Kirk
9bd68ed490 WIP: bluetooth shows audio route button instead of speakerphone
// FREEBIE

TODO

NEED
-[ ] icon in route picker
-[ ] commit cleanup

NICE
-[ ] present action sheet automatically when making outgoing bluetooth call
-[ ] left align icons
-[ ] audio is paused when switching between video mode (maybe existing behavior, not sure)
-[ ] Copy: iPhone/iPad/iPod instead of "iPhone Microphone"

DONE
-[x] remove "receiver" from options while in video mode
-[x] show available audio routes
-[x] select available audio routes
-[x] notification if availabe inputs change so we can update call screen
     mid call with available BT route
-[x] include speakerphone in choices
-[x] Enabled button shows active speakerphone. Should still show
     bluetooth picker.
-[x] toggle back and forth between audio devices
-[x] hide audio route button in video mode if no BT available
-[x] Fixed: When on speakerphone - switching to video mode goes back to bluetooth.
-[x] Fixed: When switching to video w/ bluetooth device connected there is no
     audio picker.
-[x] respect speakerphone/BT selection when in or toggling to/from video
-[x] do not hide audio route button when in video mode and bluetooth
     connected
-[x] Show which is currently selected audio route
-[x] switching to speakerphone no longer works
-[x] switching *back* to bluetooth no longer works
-[x] add proper bluetooth button for audio calls
-[x] add proper bluetooth button for video calls
2017-07-13 17:08:41 -04:00
Michael Kirk
109cb6cdb6 rename for clarity
// FREEBIE
2017-07-13 16:05:00 -04:00
Matthew Chen
ce048e21d2 Bump build from to 2.14.0.1.
// FREEBIE
2017-07-13 11:07:46 -04:00
Matthew Chen
3527df7ba0 Merge branch 'charlesmchen/leakCallView' 2017-07-12 19:29:12 -04:00
Matthew Chen
ac616d6936 Reject the “call connected” promise immediately when clearing a call.
// FREEBIE
2017-07-12 18:12:27 -04:00
Matthew Chen
a58c71f4b8 Fix leak of call view.
// FREEBIE
2017-07-12 18:04:49 -04:00
Michael Kirk
55ddce79bf Merge branch 'mkirk/call-connectivity-fixes' 2017-07-12 16:18:56 -04:00
Michael Kirk
d9dfc3d7c7 update fastlane ci
// FREEBIE
2017-07-12 16:18:43 -04:00
Michael Kirk
b82aedc3a0 Assertion failures for unexpected promise state
These don't currently result in failed calls, but we should at least
know about it in debug.

// FREEBIE
2017-07-12 16:15:22 -04:00
Michael Kirk
438635393b Don't send ICE updates until after the CallOffer has been sent.
This ensures message ordering for clients that can't handle out of order
call messages (legacy iOS and Android).

Even when we revert the previous commit, to send ICE Updates sooner,
we'll want to keep this (until we're confident all clients can receive
out of order call messages)

// FREEBIE
2017-07-12 16:15:22 -04:00
Michael Kirk
d910da0157 Partial revert of: Send ICE updates immediately - 2dcfb4e3b8
That change makes it more likely that the remote client will receive an
ICE update before their peer connection client is set.

We want to ship the robustness fix (waitForPeerConnection in
handleRemoteAddedIceCandidate) before we have the caller start sending
ICE updates immediately, in a future release.

At that time, we can simply revert this commit.

// FREEBIE
2017-07-12 16:15:22 -04:00
Michael Kirk
3769ce8337 Merge branch 'mkirk/scrub-log-data' 2017-07-12 16:13:49 -04:00
Michael Kirk
2067697ed4 Add comment and clearer tests per CR
// FREEBIE
2017-07-12 16:06:35 -04:00
Michael Kirk
4f1ee98489 scrub any data that slips through to logs
Similar to phone number scrubbing, we leave a short prefix of the data
to help with debugging without leaking much data.

// FREEBIE
2017-07-12 16:06:35 -04:00
Matthew Chen
86d494becb Merge branch 'charlesmchen/addToExistingContact' 2017-07-12 15:49:46 -04:00
Matthew Chen
b7c2512eac Respond to CR.
// FREEBIE
2017-07-12 13:47:29 -04:00
Matthew Chen
81555d1225 Add “new contact” and “add to existing contact” buttons in 1:1 conversation settings view.
// FREEBIE
2017-07-12 13:18:14 -04:00
Matthew Chen
1e67bb52e3 Respond to CR.
// FREEBIE
2017-07-12 13:18:03 -04:00
Matthew Chen
990978ac3b Merge branch 'charlesmchen/orphanCleanup' 2017-07-12 12:15:50 -04:00
Matthew Chen
0357081cc7 [SSK] Run orphan cleanup on startup.
// FREEBIE
2017-07-12 12:15:21 -04:00
Matthew Chen
2202fe70fe Fix broken tests.
// FREEBIE
2017-07-12 12:14:15 -04:00
Matthew Chen
f584c4b434 Fix broken tests.
// FREEBIE
2017-07-12 12:14:15 -04:00