Commit Graph

295 Commits (86aae78f1bddf76dcbd5e4cd21911bfc10fbfcbe)

Author SHA1 Message Date
Michael Kirk b8485b19bd Merge tag '2.21.0.15' into release/2.22.0 8 years ago
Michael Kirk c5fc671c31 Fix lost call transactions after rebuilding callUIAdapter
// FREEBIE
8 years ago
Michael Kirk 319e0d808f Merge tag '2.21.0.14' into release/2.22.0 8 years ago
Michael Kirk 3aebaefc31 A lighter touch for the fix-call connect.
Though it should be fine, reloading the callUIAdapter is a bit heavy
handed. And the current implementation is prone to being broken, since
we sometimes forget not to treat callUIAdapter as a singleton.

Longer term we can find a way to either: make callUIAdapter a true
singleton or possibly make callUIAdapter a private member of something
which *is* a true singleton.

Since we only *need* it to be reloaded the one time the migration runs
(or when a user changes settings which should be rare) it makes sense to
remove it from the happy path.

// FREEBIE
8 years ago
Michael Kirk bbdcd0c768 Call connection fixups
callUIAdapter is not a singleton (for better or for worse)

No one should hold a reference directly to it, but rather via the
CallService, which is a singleton

Wait a bit longer for initial call screen before terminating. Especially
first call can hit this limit.

When call *does* take too long to show, terminate properly to ensure
we're not left with a phantom call

// FREEBIE
8 years ago
Michael Kirk ec9538a3e4 Fix 2fa registration screen layout
Don't obscure message text on smaller form factors

Also, disable overzealous assert with non-callkit adapters. The adapter
is not a singleton, it gets rebuilt whenever call related privacy
settings are triggered.

// FREEBIE
8 years ago
Matthew Chen d6f4db1523 Rename TSStorageManager to OWSPrimaryStorage. 8 years ago
Matthew Chen 9db9409561 Share background tasks. 8 years ago
Michael Kirk 07ee3ea843 Merge tag '2.21.0.5' 8 years ago
Michael Kirk 1d3831eccd Registration Lock reminder view
Also fixed: Don't lose PIN across registrations

// FREEBIE
8 years ago
Michael Kirk 6077367e66 Notification sounds should respect silent switch
// FREEBIE
8 years ago
Michael Kirk 658b8c3223 CR: typos and doc changes
// FREEBIE
8 years ago
Michael Kirk 5959cdf070 Simplify call privacy settings
We've long allowed users to configure what shows up in message
notifications:

- name: content (by default)
- just name (no content)
- generic notification (no name nor content)

Now we're dual purposing that setting to apply to calls. If someone
doesn't want to show names in the message notifications, presumably also
don't want that name showing up in the call log.

Also, since the earlier CallKit/iCloud issues had been addressed before
iOS11, we upgrade all iOS11 users to the more intuitive CallKit
interface.

Also: introduce "use system call logs" toggle when available. It will be
enabled by default, but we disable it for legacy users who'd explicitly
opted *out* of CallKit.

// FREEBIE
8 years ago
Matthew Chen 5b9ab0cf5d Auto-disable CallKit privacy in iOS 11 and later. 8 years ago
Matthew Chen 38ff82ab97 Rebrand OWSAudioPlayer. 8 years ago
Matthew Chen 32b87d0e58 Remove custom ringtones. 8 years ago
Matthew Chen 99aedca45f Strip out special casing for pre-iOS 9 users. 8 years ago
Michael Kirk 5f305f844f Send ICE updates immediately after sending CallOffer for faster call
connection.

For legacy reasons, the call sender used to wait until after receiving
the call answer before sending the ICE updates. The primary motivation
was that if the receiving user hadn't accepted a new identity change,
rather than just seeing one "Tap to Accept New Safety Number" messages
for a call, they'd see one for the call offer and then a dozen more as
ICE updates trickled in.

We changed that behavior long ago, and effectively all clients will
avoid that case, while sending ICE updates immediately will allow calls
to connect without having to wait for an additional serialized round
trip between the caller and call recipient.

// FREEBIE
8 years ago
Michael Kirk e8c5509f3a Respect system contact ringtones
If CallKit privacy is enabled, we'll always use the system default
ringer.

If CallKit privacy is *not* enabled we'll use any ringtone specified in
the for that contact in the address book, else fall back to the default

// FREEBIE
8 years ago
Matthew Chen 5e8f3086de Update call sounds. 8 years ago
Matthew Chen a0f4723fa2 Update call sounds. 8 years ago
Michael Kirk d7f8c3e9d3 Ensure inputAccessory doesn't obscure the SN alert
This affects iOS 8, 9, and to a lesser degree iOS10.
On iOS11, presenting an alert causes the keyboard/inputAccessoryView to
temporarily dismiss.

// FREEBIE
8 years ago
Michael Kirk 8dfe06e3f2 Ensure audio session is default after call is terminated.
Previously, we were enabling PlayAndRecord when a call ended due to the
CallService observer's "updateVideoTrack" callbacks.

// FREEBIE
8 years ago
Michael Kirk 6eb1951ee6 Don't stop audio until after CallKit audio session is deactivated
// FREEBIE
8 years ago
Michael Kirk 707ab5f5a8 Minimize changes around call audio activity
// FREEBIE
8 years ago
Michael Kirk 4dd1c7813a Instrument calls to ensure audio session is maintained
// FREEBIE
8 years ago
Michael Kirk abb51b565a Don't de-activate audio sesion when other audio activities are happening
// FREEBIE
8 years ago
Michael Kirk c646f76335 Garther audio concerns, clean up session when done
- sync speakerphone state manipulated from system call screen
  - Revert audio session after call failure, ensures media plays out of
    speaker after placing a failing call.
  - Replace notification with delegate pattern since we're already using
    delegate pattern here.
- Fixes voiceover accessibility after voice memo
- Avoid audio blip after pressing hangup
- Rename CallAudioSession -> OWSAudioSession
  Going to start using it for other non-call things since we want to
  gather all our audio session concerns.
- Resume background audio when done playing video
  - Extract OWSVideoPlayer which ensures audio is in proper state before
    playback
  - Move recording session logic to shared OWSAudioSession
  - Deactivate audio session when complete

// FREEBIE
8 years ago
Michael Kirk e3469649f7 Fix receiving calls
// FREEBIE
8 years ago
Matthew Chen e77c3e6717 Retain changes from session database branch. 8 years ago
Matthew Chen f9ce34f553 Improve background task logic. 8 years ago
Matthew Chen 7a1e47cd26 Add asserts around Swift singletons. 8 years ago
Matthew Chen 9da165b846 Continue conversion of app setup. 8 years ago
Matthew Chen b4e8df79da Migrate environment to SignalMessaging. 8 years ago
Matthew Chen 8cc33b3de1 Refine loading view of share extension. 8 years ago
Michael Kirk a11d83187b WIP: Framework-friendly - compiles but crashes on launch
// FREEBIE
8 years ago
Michael Kirk 86c1a3d08a CR: use weak capture
// FREEBIE
8 years ago
Michael Kirk 30b50e1489 Activate audio at the proper time
// FREEBIE
8 years ago
Michael Kirk 81f097c1f5 Don't drop critical data messages
Assigning dataChannel sometimes happens after iceConnect.

Fixes symptom where Alice calls Bob.
Bob answers and sees the call UI as normal
but Alice sees call as continuing to ring

// FREEBIE
8 years ago
Michael Kirk 2e75e9df55 Don't ignore critical errors
// FREEBIE
8 years ago
Michael Kirk 91f25bec3c Remove overzealous assert
// FREEBIE
8 years ago
Michael Kirk abb57f2a15 App icon for system call screen
On iOS10 there was a default "..." button, but now we need our own.

// FREEBIE
8 years ago
Matthew Chen fc07c7c04f Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 5cc292fb6c Don't ask for camera permissions if app is not active.
// FREEBIE
8 years ago
Matthew Chen 5e61307ce3 Don't ask for microphone permissions if app is not active.
// FREEBIE
8 years ago
Matthew Chen f86882b5ff Don't ask for camera permissions if app is not active.
// FREEBIE
8 years ago
Michael Kirk b77e331732 Unify Mute/Hold audio handling
// FREEBIE
8 years ago
Michael Kirk c7642cc628 Fix volume burst when call connects
By centralizing AudioSession management onto the AudioService, we can
avoid enabling the RTCAudioSession while we're mid-ring.

Also allows us to centralize and remove redundant audio session logic.

// FREEBIE
8 years ago
Michael Kirk 402d4157c8 Uniform volume when ringing on speakerphone vs video
// FREEBIE
8 years ago
Michael Kirk 36a39caad6 Remove overzealous assert
// FREEBIE
8 years ago