Commit graph

1700 commits

Author SHA1 Message Date
Michael Kirk
4d8429186d Store undecrypted envelopes before doing any processing.
This lets us clear the server side queue immediately, and paves the way
for retry, give up logic.

// FREEBIE
2017-07-26 14:29:56 -04:00
Matthew Chen
d80f470c2c Respond to CR.
// FREEBIE
2017-07-26 12:39:43 -04:00
Matthew Chen
2e7fe5cfd5 Rework database observation in home and message views.
// FREEBIE
2017-07-26 12:17:08 -04:00
Matthew Chen
1f1a681180 Rework database observation in home and message views.
// FREEBIE
2017-07-26 12:17:08 -04:00
Matthew Chen
c1139a3a28 Fix many leaks in the view controllers.
// FREEBIE
2017-07-26 11:59:00 -04:00
Matthew Chen
f0cecfad11 Surface memory leaks by logging the deallocation of view controllers.
// FREEBIE
2017-07-26 11:59:00 -04:00
Matthew Chen
511cbbeaaf Make it easier to tap-to-edit group names in new group and update group vies.
// FREEBIE
2017-07-26 10:54:27 -04:00
Matthew Chen
863fd27abe Respond to CR.
// FREEBIE
2017-07-26 10:52:15 -04:00
Matthew Chen
8e51b5ade1 Clean up ahead of PR.
// FREEBIE
2017-07-26 10:01:43 -04:00
Matthew Chen
958a8b4c80 Instrument CallService.
// FREEBIE
2017-07-26 10:01:43 -04:00
Matthew Chen
9587aab37b Instrument network errors.
// FREEBIE
2017-07-24 16:05:39 -04:00
Matthew Chen
117bca7c48 Instrument errors in app delegate.
// FREEBIE
2017-07-24 16:05:39 -04:00
Michael Kirk
c74a5c0740 CR: strong reference to migration job, clarify variable
// FREEBIE
2017-07-24 13:01:43 -04:00
Michael Kirk
a5f067936c migration to fix any half-registered users
// FREEBIE
2017-07-24 13:01:43 -04:00
Matthew Chen
97772a32ff Respond to CR.
// FREEBIE
2017-07-24 12:55:05 -04:00
Matthew Chen
9eaeba9af3 Address yet another edge cases around pasteboards that contain both textual and non-textual content, e.g. a gif and the URL of that gif.
// FREEBIE
2017-07-24 10:06:30 -04:00
Matthew Chen
ceb243b30b Always reload home view table when changing grouping.
// FREEBIE
2017-07-24 09:12:54 -04:00
Matthew Chen
03aacbd682 [SSK] Try applying national prefixes when parsing phone numbers.
// FREEBIE
2017-07-21 15:21:22 -04:00
Matthew Chen
fdac0305cb Update analytics macros.
// FREEBIE
2017-07-21 15:04:41 -04:00
Matthew Chen
14621e1288 Respond to CR.
// FREEBIE
2017-07-21 14:49:24 -04:00
Matthew Chen
34f7cd1a47 Clean up ahead of PR.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
02c510691c Adapt number formatting to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
5edec99fd6 Adapt number formatting to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
04fb3642b2 Remove .xib for home view cells; adapter home view to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
eaacac9d8b DRY up common table cell patterns.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
96fd5e11e5 Adapt more UI elements to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
c799e18c74 Adapt voice messages UI to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
8005cf0227 Adapt conversation settings view to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
d4e62efce5 Adapt call view to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
e2125978de Adapt "new group" and "update group" views to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
693e74e868 Adapt conversation settings view to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
656cc47de5 Adapt registration views to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
d4f012fbb7 Fix contact table cell and “add to block list” view.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
e15432720c Add arabic translation; begin work on right-to-left layout.
// FREEBIE
2017-07-21 14:48:52 -04:00
Matthew Chen
a9ce1cde2f Simplify CallViewController.
// FREEBIE
2017-07-19 09:47:55 -04:00
Matthew Chen
149c64ce49 Refine call service.
// FREEBIE
2017-07-19 09:47:55 -04:00
Michael Kirk
46ddaa9cae fix: unregistered user shows "add to contacts"
// FREEBIE
2017-07-19 09:44:33 -04:00
Michael Kirk
17b1b70726 Remove verification debug UI
There is a more true-to-life way to set verification state - mark
someone as verified or default via the SN UI.

If they are marked as verified, you can mark them as no-longer-verified
by toggling a keychange in the debug UI

// FREEBIE
2017-07-19 09:43:30 -04:00
Michael Kirk
df0cf76603 Assert that mapping is set whenever accessing
// FREEBIE
2017-07-19 09:42:14 -04:00
Michael Kirk
1c9ce5eaf3 CR: Don't just build, but present, alert controller
// FREEBIE
2017-07-19 09:39:50 -04:00
Michael Kirk
5c66e5584c Adding to existing contact requires contact access
Previously we'd show an empty "list" of existing contacts.

// FREEBIE
2017-07-19 09:38:48 -04:00
Matthew Chen
8b60765627 Respond to CR.
// FREEBIE
2017-07-19 09:36:43 -04:00
Matthew Chen
81a4ebdaf5 Apply OWSTableViewController to more views.
// FREEBIE
2017-07-19 09:34:55 -04:00
Matthew Chen
dc3f07cb54 Apply OWSTableViewController to more views.
// FREEBIE
2017-07-19 09:34:55 -04:00
Michael Kirk
9287b8560c clean up comments per code review
// FREEBIE
2017-07-15 17:11:41 -04:00
Michael Kirk
fb5c17a6b4 minimize sound overlap
Because there is some asynchrony involved, there may be a blip during
the switch between sounds/audio sessions

// FREEBIE
2017-07-15 17:11:41 -04:00
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
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
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
fa42b4a45b Respect disappearing message timer from lockscreen
// FREEBIE
2017-07-14 09:48:46 -04:00
Matthew Chen
6c61e6040c Fix another call view leak.
// FREEBIE
2017-07-13 18:14:26 -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
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
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
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
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
f584c4b434 Fix broken tests.
// FREEBIE
2017-07-12 12:14:15 -04:00
Matthew Chen
0b28285deb Fix broken tests.
// FREEBIE
2017-07-12 12:14:15 -04:00
Matthew Chen
69ba2811db Run orphan cleanup on startup.
// FREEBIE
2017-07-12 12:14:15 -04:00
Michael Kirk
d15da6e6d4 fix bubble calculator tests
// FREEBIE
2017-07-11 16:36:50 -04:00
Matthew Chen
c9355630c7 Respond to CR.
// FREEBIE
2017-07-11 16:21:17 -04:00
Matthew Chen
d639d6557e Add owsFail free function for swift.
// FREEBIE
2017-07-11 16:20:20 -04:00
Matthew Chen
669e0644ea Respond to CR.
// FREEBIE
2017-07-11 16:11:56 -04:00
Matthew Chen
5cf0441f55 Add a reminder that you are in archive view.
// FREEBIE
2017-07-11 16:01:19 -04:00
Matthew Chen
54a5b960c7 Add a reminder that you are in archive view.
// FREEBIE
2017-07-11 16:01:19 -04:00
Matthew Chen
8f3b837a65 Add a reminder that you are in archive view.
// FREEBIE
2017-07-11 16:01:19 -04:00
Matthew Chen
2e727a24b5 Convert home view to programmatic layout.
// FREEBIE
2017-07-11 16:01:19 -04:00
Michael Kirk
5223104566 respect system sort order for contacts
// FREEBIE
2017-07-10 13:08:40 -05:00
Michael Kirk
2dcfb4e3b8 Send ICE updates immediately.
Now that SN changes do not block incoming messages, the caller does not
need to enqueue outgoing ICE updates.

However this introduces the possibility that the call recipient could
recieve an ICE update before their peerConnectionClient is set up - so
now we ensure that call service waits for it's peerConnectionClient
before processing incoming ICE updates.

// FREEBIE
2017-07-10 11:49:38 -05:00
Matthew Chen
1a400f8414 Respond to CR.
// FREEBIE
2017-07-10 12:39:44 -04:00
Matthew Chen
b6531a8b5d If two users call each other at the same time, ensure they both see “busy”.
// FREEBIE
2017-07-10 12:25:22 -04:00
Michael Kirk
f681712ea0 Code Cleanup
- make some logging clearer
- remove noisy unhelpful logging
- clearer method names

// FREEBIE
2017-07-10 11:09:39 -05:00
markus.fassbender
422336db32 fixes compiler warnings FREEBIE 2017-07-08 17:24:22 -05:00
Matthew Chen
c817346ee3 Fix “timer circular reference” leaks.
// FREEBIE
2017-07-07 15:17:18 -04:00
Michael Kirk
d8330a2c4f Fix bluetooth audio for calls
Allow bluetooth in all call speaking modes. This was much simpler to fix
now that all call AudioSession mgmt happens in one method.

// FREEBIE
2017-07-06 17:54:14 -05:00
Matthew Chen
e3f2583b4a Respond to CR.
// FREEBIE
2017-07-06 17:40:37 -04:00
Matthew Chen
9cbc1e6a1b Block device from sleeping while Debug UI is visible and during database upgrades.
// FREEBIE
2017-07-06 17:35:47 -04:00
Matthew Chen
0244e134f5 Block device from sleeping during certain activities.
// FREEBIE
2017-07-06 17:35:47 -04:00
Matthew Chen
bfd04088bd Persist registration view’s “last registered” values in keychain so that they persist across clean installs.
// FREEBIE
2017-07-06 17:34:42 -04:00
Michael Kirk
1afc6525e5 selecting network status does not highlight
// FREEBIE
2017-07-06 15:25:10 -05:00
Matthew Chen
9aa54cad63 Fix missing “database upgrade” label on launch screen.
// FREEBIE
2017-07-06 15:10:47 -04:00
Matthew Chen
ab9770c175 Fix missing “database upgrade” label on launch screen.
// FREEBIE
2017-07-06 15:05:09 -04:00
Matthew Chen
5038744811 Fix missing “database upgrade” label on launch screen.
// FREEBIE
2017-07-06 15:05:09 -04:00
Matthew Chen
d94ee7ab11 Add options to send 3k debug messages.
// FREEBIE
2017-07-06 14:59:22 -04:00
Matthew Chen
9e5447f1d4 Respond to CR.
// FREEBIE
2017-07-06 13:20:21 -04:00
Matthew Chen
b400c0a327 Don’t show app upgrade nag unless we are at rest in home view or registration view.
// FREEBIE
2017-07-06 12:56:27 -04:00
Matthew Chen
944cd7beef Show app update nag on launch if necessary.
// FREEBIE
2017-07-06 12:56:27 -04:00
Michael Kirk
8e891eb357 Merge branch 'hotfix/2.13.3.0'
// FREEBIE
2017-07-06 09:33:57 -05:00
Matthew Chen
c5bf85d0b3 Respond to CR.
// FREEBIE
2017-07-05 18:49:02 -04:00
Matthew Chen
ab3aa9d0ce Respond to CR.
// FREEBIE
2017-07-05 18:12:06 -04:00
Matthew Chen
97169f521a Move more initialization until after didBecomeActive is complete to avoid the “bad food” crash.
// FREEBIE
2017-07-05 17:54:22 -04:00
Matthew Chen
73869b1eff Fix possible cause of crash on launch.
// FREEBIE
2017-07-05 17:26:27 -04:00
Matthew Chen
7135895c1c Modify TSStorageManager to use separate shared read and write connections.
// FREEBIE
2017-07-05 17:01:28 -04:00
Michael Kirk
906b307e1f remove unneccessary hack
Now that we have a nice system message design, we don't need to shoe
horn group updates into the TSCall adapter.

// FREEBIE
2017-07-05 16:55:11 -04:00
Michael Kirk
174706817c clearer comment
I erroneously thought this code was an error, maybe a better comment
would have saved me some time?

// FREEBIE
2017-07-05 12:58:04 -05:00
Michael Kirk
1f9f066fa9 print call record when declining a call
// FREEBIE
2017-07-05 12:45:34 -05:00
Michael Kirk
1e0cf89f7a Explanatory comment
// FREEBIE
2017-07-05 11:55:00 -05:00
Michael Kirk
43a3a4afaf play *after* stop
In theory this shouldn't make a difference, since we're not playing the
ringer twice, but in practice I fail to here ringer audio 50% of the
time (in DEBUG builds) while app is in the foreground.

// FREEBIE
2017-07-05 11:53:16 -05:00
Michael Kirk
8abde1dff8 Non-Callkit adapter plays audio from notification when app is in
background

// FREEBIE
2017-07-05 11:53:16 -05:00
Michael Kirk
ff10f52779 remove unneccessary hack
Now that we have a nice system message design, we don't need to shoe
horn group updates into the TSCall adapter.

// FREEBIE
2017-07-05 11:51:18 -05:00
Michael Kirk
c1881c02c8 constantize file name per CR
// FREEBIE
2017-07-05 11:45:31 -05:00
Michael Kirk
9b1695f28c Play audible alert for missed call
// FREEBIE
2017-07-05 11:37:01 -05:00
Michael Kirk
89260e843f Unregistered users should have 0 badge count
// FREEBIE
2017-07-05 11:34:23 -05:00
Michael Kirk
6335782568 Make sure we're requesting access for contacts before checking access
I'm actually not sure how I got my simulator wedged into this state -
but my contacts access was "undetermined" and I had several messages.

Maybe they appeared while the app was closed?

I verified that the banner appears as expected when access is denied.

// FREEBIE
2017-07-05 11:28:27 -05:00
Matthew Chen
1552c64777 Add “delete old messages” and “save all attachments” debug commands.
// FREEBIE
2017-07-04 11:57:13 -04:00
Matthew Chen
72faa5f82d Add clean up command to the “orphan audit” debug UI.
// FREEBIE
2017-07-04 11:57:13 -04:00
Matthew Chen
feb32fdf8e Find orphan and missing attachment stream files.
// FREEBIE
2017-07-04 11:57:13 -04:00
Matthew Chen
284d55ef6c Rework the debug UI.
* Move debug stats to the about view.
* Convert about view to OWSTableView.
* Add DebugUIPage.
* Add non-thread Debug UI.

// FREEBIE
2017-07-04 11:57:13 -04:00
Matthew Chen
07c8eb54b7 Prevent "scroll to button" button from blipping.
// FREEBIE
2017-07-04 11:15:21 -04:00
Michael Kirk
c6cd0bbcae Always show timestamp after unread indicator
// FREEBIE
2017-07-04 09:15:46 -04:00
Michael Kirk
bef3a56e50 DebugUI: create fake unread messages
helpful for printing unread indicator

// FREEBIE
2017-07-04 09:15:46 -04:00
Michael Kirk
964e558139 log when starting token sync in prod
// FREEBIE
2017-07-03 16:05:04 -05:00
Michael Kirk
d0d4e67615 update badge count when app is in background
// FREEBIE
2017-06-30 09:39:26 -10:00
Matthew Chen
e48d51d084 Respond to CR.
// FREEBIE
2017-06-23 14:18:17 -04:00
Matthew Chen
a462cba452 Don’t reply to “no longer verified”.
// FREEBIE
2017-06-23 13:55:21 -04:00
Matthew Chen
db3407853a Refine fake contact creation.
// FREEBIE
2017-06-23 09:37:22 -04:00
Matthew Chen
791c5bb89e Revise phone number length limit in registration view.
// FREEBIE
2017-06-23 09:34:02 -04:00
Matthew Chen
351c8c00f0 Remove phone number length limit in registration view.
// FREEBIE
2017-06-23 09:29:58 -04:00
Michael Kirk
a933fbf215 sync verifications with contact syncing
// FREEBIE
2017-06-22 15:21:25 -04:00
Michael Kirk
37b7bf18e9 clarify code and clean up code formatting
I think we hit some pathological cases in clang format, but this is
clearer anyway IMO

// FREEBIE
2017-06-22 15:20:34 -04:00
Matthew Chen
e814ae129d Fix crash in manual censorship circumvention logic on iOS 9.
// FREEBIE
2017-06-22 15:10:14 -04:00
Matthew Chen
f7c81bae9d Show the “scroll down” button if user scrolls up, even if there are no unread messages.
// FREEBIE
2017-06-22 15:08:35 -04:00
Matthew Chen
eff1974eeb [SSK] Reduce chattiness of logs; increase log file sizes.
// FREEBIE
2017-06-22 10:10:56 -04:00
Matthew Chen
15ecb03471 Respond to CR.
// FREEBIE
2017-06-22 09:37:30 -04:00
Matthew Chen
7726c68047 Persist registration values in the keychain for debug builds only.
// FREEBIE
2017-06-22 09:34:07 -04:00
Matthew Chen
3d0811c03f Respond to CR.
// FREEBIE
2017-06-21 18:06:29 -04:00
Matthew Chen
029da7e0ce Hang up current call if we receive a call offer from the same user.
// FREEBIE
2017-06-21 17:47:42 -04:00
Matthew Chen
9fc92990f5 Improve logging in CallService.
// FREEBIE
2017-06-21 17:47:42 -04:00
Matthew Chen
0855faabb4 Respond to CR.
// FREEBIE
2017-06-21 15:06:48 -04:00
Matthew Chen
efbda70764 Improve UX for multiple “no longer verified” members of a group.
// FREEBIE
2017-06-21 15:01:06 -04:00
Matthew Chen
afb83cfaaa Improve UX for multiple “no longer verified” members of a group.
// FREEBIE
2017-06-21 15:01:06 -04:00