Commit Graph

2467 Commits (17907dca10a5e1b614eb0ea7241a5cdaf13db04a)

Author SHA1 Message Date
Matthew Chen 4f77a2a504 Load GIFs progressively using stills.
// FREEBIE
8 years ago
Matthew Chen 2dfd7aa0e9 Actually send GIFs.
// FREEBIE

SQUASH ME.

SQUASH ME.
8 years ago
Matthew Chen c50ccf3eed Fix gif download cancellation.
// FREEBIE
8 years ago
Matthew Chen 789cea118d Pull out GifDownloader class.
// FREEBIE
8 years ago
Matthew Chen e9885af973 Sketch out the GIF picker.
// FREEBIE
8 years ago
Matthew Chen 4242001828 Sketch out the GIF picker.
// FREEBIE
8 years ago
Matthew Chen ee9101eb16 Sketch out the GIF picker.
// FREEBIE
8 years ago
Matthew Chen 3b9726a4fa Sketch out the GIF picker.
// FREEBIE
8 years ago
Matthew Chen 206f96c9af Sketch out GIF picker.
// FREEBIE
8 years ago
Matthew Chen 62ba5701f6 Sketch out GIF picker.
// FREEBIE
8 years ago
Matthew Chen 27e5a2f1b2 Sketch out GIF picker.
// FREEBIE
8 years ago
Matthew Chen 30a77c5977 Parse Giphy API responses.
// FREEBIE
8 years ago
Matthew Chen b4d29bd5d8 Parse Giphy API responses.
// FREEBIE
8 years ago
Matthew Chen 9710964e38 Sketch out the GIF manager.
// FREEBIE
8 years ago
Matthew Chen dbe2c6aa76 Fix scroll down button.
// FREEBIE
8 years ago
Matthew Chen f99ce23e69 Fix wrongful "add to contacts offer" issue.
// FREEBIE
8 years ago
Michael Kirk 175474e0d1 Read receipt update screen
// FREEBIE
8 years ago
Michael Kirk a2421d5b3e Fix "unknown attachment" notifications
The transaction in which the attachments were created hasn't been
committed yet.

// FREEBIE
8 years ago
Matthew Chen 6abc4bed90 Increase hot area of scroll down button.
// FREEBIE
8 years ago
Matthew Chen 34218feece Disable contact cells in message metadata view.
// FREEBIE
8 years ago
Matthew Chen 256b5ab446 Don't show recipient status group titles for 1:1 threads.
// FREEBIE
8 years ago
Matthew Chen ffea39abd0 Cap the flat button text size.
// FREEBIE
8 years ago
Michael Kirk e2445e6ed2 Fix RTL bubbles in conversation and message detail view
// FREEBIE
8 years ago
Michael Kirk c3bb8a0190 on main thread, per CR
// FREEBIE
8 years ago
Michael Kirk 5704bf1765 message bubbles for message detail view controller
// FREEBIE
8 years ago
Michael Kirk 344903fa5b Show proper thread from notification
// FREEBIE
8 years ago
Matthew Chen 9573e0e16d Move more work off the main thread.
// FREEBIE
8 years ago
Michael Kirk e77a7e09bb Fix assert for empty thread
// FREEBIE
8 years ago
Matthew Chen 5faeed4d59 Fix breakage.
// FREEBIE
8 years ago
Matthew Chen 2dce0e9b1b Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 26c8c4e1fa Rework message metadata view.
// FREEBIE
8 years ago
Matthew Chen de29b5a6ee Rework message metadata view.
// FREEBIE
8 years ago
Matthew Chen 29c4059049 Rework message metadata view.
// FREEBIE
8 years ago
Michael Kirk 655598d0a3 remove existing account button
// FREEBIE
8 years ago
Matthew Chen a231834a73 Use contact cells in message metadata view.
// FREEBIE
8 years ago
Matthew Chen d6e8849248 Rework "send read receipts" setting.
// FREEBIE
8 years ago
Matthew Chen d28a014e2d Respond to CR.
// FREEBIE
8 years ago
Matthew Chen cf4aeac0ec Modify message metadata view to observe DB changes.
// FREEBIE
8 years ago
Matthew Chen b3ab6d0602 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 3a39a1ba51 Format message statuses with date if possible.
// FREEBIE
8 years ago
Matthew Chen d557817bb4 Format message statuses with date if possible.
// FREEBIE
8 years ago
Matthew Chen a4d285f50d Respond to CR.
// FREEBIE
8 years ago
Matthew Chen aa7329013d Handle new-style delivery receipts.
// FREEBIE
8 years ago
Matthew Chen ee13084d5c Respond to CR.
// FREEBIE
8 years ago
Matthew Chen ffe44e68be Refactor linked device read receipts.
// FREEBIE
8 years ago
Matthew Chen 16d4256e99 Address deadlocks in profile manager.
// FREEBIE
8 years ago
Matthew Chen af7fd60d76 Fix NPE in conversation view.
// FREEBIE
8 years ago
Michael Kirk 4777335ffa Don't attempt to sync profile until registered.
Otherwise there's an unnecessary initial (innocuous) failed HTTP attempt
on first launch for unregistered users.

// FREEBIE
8 years ago
Matthew Chen 9dcc7e1ea0 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 57b5ccdc3f Address deadlocks in profile manager.
// FREEBIE
8 years ago
Matthew Chen cb365d0a58 Address deadlocks in profile manager.
// FREEBIE
8 years ago
Matthew Chen 19e010645e Respond to CR.
// FREEBIE
8 years ago
Michael Kirk bfaa7f2e0c On iOS11 doc picker requires system appearance.
Otherwise nav items are illegible.

// FREEBIE
8 years ago
Matthew Chen 9f9ac746d1 Sketch out message metadata view.
* Show message metadata view from conversation view.
* Pull out MediaMessageView class.
* Track recipient read timestamps.
* Add per-recipient status to message metadata view.
* Add share button to message metadata view.

// FREEBIE
8 years ago
Matthew Chen f001e8c225 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 315c1d7dc4 Hide all read receipts in UI if not enabled.
// FREEBIE
8 years ago
Matthew Chen b4312a5619 Merge remote-tracking branch 'origin/hotfix/2.16.1' 8 years ago
Matthew Chen 825503210b Remove extraneous database view.
// FREEBIE
8 years ago
Matthew Chen 11cadf4200 Send, receive & show read receipts to senders/from receivers.
* Send read receipts to senders.
* Honor "send read receipts" preference.
* Process read receipts from recipients.
* Refactor "mark as read" logic.
* Serialize and apply recipient read receipts received before sync transcript.
* Show recipient read receipts in conversation view.

// FREEBIE
8 years ago
Matthew Chen f2d19ffe09 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen c92c6de7b9 Add stress group to debug UI.
// FREEBIE
8 years ago
Matthew Chen 7268bde506 Add stress group to debug UI.
// FREEBIE
8 years ago
Matthew Chen bd416176ae Add stress group to debug UI.
// FREEBIE
8 years ago
Matthew Chen edd63164d7 Fix build breaks.
// FREEBIE
8 years ago
Matthew Chen bfb03c0db4 Fix message processing edge cases.
// FREEBIE
8 years ago
Matthew Chen 445f6dc6f8 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 35a2470cb7 Post notifications asynchronously.
// FREEBIE
8 years ago
Matthew Chen 1c8dbcd223 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 3eaeb4e0ec Add read receipts manager.
* Simplify read receipts plumbing.
* Rework incoming read receipts handling.
* Rework outgoing read receipts handling.
* Make "database view registration complete" check thread-safe.
* Don't send sync messages to self if no linked devices.

// FREEBIE
8 years ago
Matthew Chen b28c4b74b2 Pull out TSMessageDecrypter class.
// FREEBIE
8 years ago
Matthew Chen f1b7d895e2 Modify precommit script to clean up includes and forward declarations.
// FREEBIE
8 years ago
Michael Kirk 73bdae3366 Fix 1-time crash when launching 2.16 from notification
didBecomeActive is too late in the case of launching from a
notification.

Also, start tracking when app setup is complete, and prevent certain
actions from occurring in that case. Eventually we'll enqueue these
actions rather than ignoring them, but we'll want to do more testing
before releasing that. In the meanwhile, if the environment isn't setup
at this point, a crash would be eminent anyway.

// FREEBIE
8 years ago
Matthew Chen fa353259c3 Process messages in a single transaction (wherever possible).
// FREEBIE
8 years ago
Matthew Chen 6fce2c26b7 Process messages in a single transaction (wherever possible).
// FREEBIE
8 years ago
Matthew Chen afc753e7ed Add batch message processor.
// FREEBIE
8 years ago
Matthew Chen c498e4b354 Decouple message decryption and processing.
// FREEBIE
8 years ago
Matthew Chen 8a4d67a6e4 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 183f0f1ccd Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 83c21c6159 Add setting for read receipts in app settings.
// FREEBIE
8 years ago
Matthew Chen 65732af3da New users opt-out of read receipts; legacy users opt-in.
// FREEBIE
8 years ago
Matthew Chen 40d728e022 Add read receipts preference.
// FREEBIE
8 years ago
Matthew Chen 80e5f281c6 Rename app preferences class.
// FREEBIE
8 years ago
Matthew Chen 3367292ba0 Merge branch 'hotfix/2.16.1' 8 years ago
Matthew Chen f92b221e6b Startup logging.
// FREEBIE
8 years ago
Matthew Chen 70602e3bca Startup logging.
// FREEBIE
8 years ago
Michael Kirk 5e878b486e Show album organizer for profile picker
This is in line with attachment picking and let's the user find photos
outside of "moments".

// FREEBIE
8 years ago
Matthew Chen 2affcd934f Respond to CR.
// FREEBIE
8 years ago
Matthew Chen c0f5bda2be Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 400f536e37 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 872ce17dd6 Clean up data source temp files when complete.
// FREEBIE
8 years ago
Matthew Chen 92a2fd6b69 Avoid NPEs when entering conversation view.
// FREEBIE
8 years ago
Matthew Chen 541966aaf6 Fix NPEs when profiles change while entering conversation view.
// FREEBIE
8 years ago
Matthew Chen 2c68b06412 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen e222b9df68 Normalize conversation presentation logic.
// FREEBIE
8 years ago
Matthew Chen 04d452b074 Normalize conversation presentation logic.
// FREEBIE
8 years ago
Matthew Chen b6d782046a Normalize conversation presentation logic.
// FREEBIE
8 years ago
Matthew Chen 7b1b532b19 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 43370ffc3f Fix assert during calls without camera permission.
// FREEBIE
8 years ago
Matthew Chen e8daf9a8d3 Fix assert when missing camera permission during calls.
// FREEBIE
8 years ago
Matthew Chen 563753a4cb Force contacts intersection in pull-to-refresh from new thread view.
// FREEBIE
8 years ago
Matthew Chen 3aa90451f1 Restore pull-to-refresh in the "new contact thread" view.
// FREEBIE
8 years ago
Matthew Chen 05b1818874 Don't "scroll to bottom" when messages are sent from desktop.
// FREEBIE
8 years ago
Matthew Chen 48121e5eac Don't "scroll to bottom" when messages are sent from desktop.
// FREEBIE
8 years ago
Michael Kirk 4997b4e332 update to new support URL
// FREEBIE
8 years ago
Matthew Chen 0b772b3a37 Move post-registration work from view to app delegate.
// FREEBIE
8 years ago
Matthew Chen 9ee72756ae Create Flat UI rounded button class.
// FREEBIE
8 years ago
Matthew Chen 46d00383fd Create Flat UI rounded button class.
// FREEBIE
8 years ago
Matthew Chen 3993035d98 Create Flat UI rounded button class.
// FREEBIE
8 years ago
Matthew Chen 5be2014ec7 Create Flat UI rounded button class.
// FREEBIE
8 years ago
Matthew Chen ab00342d67 Add modal activity indicator view.
// FREEBIE
8 years ago
Matthew Chen bb2a822f3f Clean up the data source class.
// FREEBIE
8 years ago
Matthew Chen b8573d7323 Apply OWSFail() in more places.
// FREEBIE
8 years ago
Matthew Chen 9dfebb2d4b Apply OWSFail() in more places.
// FREEBIE
8 years ago
Matthew Chen c21a7673c8 Rework preservation of attachment filenames.
// FREEBIE
8 years ago
Matthew Chen 0746b1300d Apply DataSource to message sender.
// FREEBIE
8 years ago
Matthew Chen b95b5f69de Apply DataSource to message sender.
// FREEBIE
8 years ago
Matthew Chen 20e5013aae Convert DataSource to Objective-C.
// FREEBIE
8 years ago
Matthew Chen 69816cdf0e Convert DataSource to Objective-C.
// FREEBIE
8 years ago
Matthew Chen 2282733fa9 Add data source class.
// FREEBIE
8 years ago
riya e11a3bd180 change animation to linear
//FREEBIE
8 years ago
Michael Kirk 643f583fa6 Disable name marquee scrolling whenever local video is open
The marquee is distracting, and doubly so during a video call.

Plus because of the local video frame, the space is so small that
marqueeing will be enabled even for relatively short names on small
devices.

Also, at the point you enable local video - presumably you already know
who's on the other end.

// FREEBIE
8 years ago
Michael Kirk 0ec2ac862a Marquee label for callview controller
// FREEBIE
8 years ago
Michael Kirk bd6387d1df fit more of profile name on call screen
// FREEBIE
8 years ago
Michael Kirk c4139b0f3e Callkit ringer uses profile name
Also presents formatted number instead of e164

// FREEBIE
8 years ago
Matthew Chen 0c281cab95 Add "log user profiles" debug UI action.
// FREEBIE
8 years ago
Matthew Chen d8d3f36070 Add "delete all contacts" debug UI action.
// FREEBIE
8 years ago
Matthew Chen 948da2afbb Merge remote-tracking branch 'origin/release/2.16.0' 8 years ago
Matthew Chen df2bf63384 Fix back button width on iOS 11.
// FREEBIE
8 years ago
Michael Kirk 5d58f43837 More profile logging
// FREEBIE
8 years ago
Michael Kirk 04bf548a7b Fix one-time crash when opening thread without having a local profile
// FREEBIE
8 years ago
Michael Kirk 25a2646c8b Always present settings from OWSNavigationController
// FREEBIE
8 years ago
Matthew Chen 26a6e76f3c Rework conversation view header.
// FREEBIE
8 years ago
Matthew Chen b626fb5bf8 Rework conversation view header.
// FREEBIE
8 years ago
Matthew Chen 644f435b16 Rework conversation view header.
// FREEBIE
8 years ago
Matthew Chen c106794fe8 Rename conversation view.
// FREEBIE
8 years ago
Matthew Chen 928525c31e Rename home view.
// FREEBIE
8 years ago
Matthew Chen fd4f00fa4d Rename new contact thread view.
// FREEBIE
8 years ago
Matthew Chen fc92293da3 Fix build break.
// FREEBIE
8 years ago
Michael Kirk 6911c8047e validate push settings on main thread
// FREEBIE
8 years ago
Michael Kirk 2d13c49222 [iOS11] Support sending .heif filesS
// FREEBIE
8 years ago
Michael Kirk 83ca34edbe Fix sending images taken on iOS11 camera.
Convert .heic to .jpg upon sending

// FREEBIE
8 years ago
Michael Kirk ecf8ca093f [JSQMVC] iOS11 compatability
// FREEBIE
8 years ago
Matthew Chen 0d04cf251b Ensure the crop view is WYSIWIG.
// FREEBIE
8 years ago
Michael Kirk 4e93bec230 black masking style for avatar cropper
- cancel/done buttons
- no navbar for modal edit
- vertically center image

// FREEBIE
8 years ago
Michael Kirk 59eb782d57 Optimize layout for profile upgrade, remove other upgrade screens
// FREEBIE
8 years ago
Michael Kirk 0244a82031 code cleanup for clarity
// FREEBIE
8 years ago
Michael Kirk 90b1db9eb4 new upgrade layout
// FREEBIE
8 years ago
Michael Kirk b7cc1e9f56 top margin iphone5c 8 years ago
Michael Kirk 73a441a28c introducing profiles
// FREEBIE
8 years ago
Matthew Chen 16dcc73b2d Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 2ce66527fb Add group members individual to profile whitelist when adding group.
// FREBIE
8 years ago
Matthew Chen 6a2d14ad2a Refine message view's initial range size.
// FREEBIE
8 years ago
Matthew Chen a1cb2c015e Refine message view's initial range size.
// FREEBIE
8 years ago
Michael Kirk cd4cfb50d3 clean up avatar icon
avatar outline was showing behind camera which had transparent center

// FREEBIE
8 years ago
Michael Kirk ae174d4a87 proper handling for multibyte characters
// FREEBIE
8 years ago
Michael Kirk 362b383785 Length-limit profile name field
// FREEBIE
8 years ago
Matthew Chen 3d0300242a Use "skip" not "stop" in profile upgrade nag.
// FREEBIE
8 years ago
Matthew Chen 94daccc78e Fix fake contacts.
// FREEBIE
8 years ago
Matthew Chen a35a21d5cc Batch the creation of fake contacts.
// FREEBIE
8 years ago
Michael Kirk 1cd51a8df2 Use existing isViewLoaded var
Defined in UIKit, this will actually already do what we need without
having to define a new var

// FREEBIE
8 years ago
Michael Kirk 3b85c5e495 crashfix: production crash when notification fired before view loaded
We're observing notifications in init that modify the view, which is
problematic if we receive a notification before the view has loaded.

// FREEBIE
8 years ago
Michael Kirk 2cd2596ddc crashfix: thread.uniqueId is sometimes nil in production
fail early and print diagnostics

// FREEBIE
8 years ago
Michael Kirk bb8f6c1b73 crashfix: crash while accessing image property
assert on blind cast

// FREEBIE
8 years ago
Michael Kirk 2eaaba9082 crashfix: on addObject, presumably it's nil.
I'm not sure how this is happening, but this will prevent the crash and
give us additional diagnostic data in the cases where it is happening.

// FREEBIE
8 years ago
Matthew Chen 95eaa2c3bb Preserve scroll state across conversation view layout changes, if possible.
// FREEBIE
8 years ago
Matthew Chen b2c8ad2d29 Restore scroll state after resetting the conversation view's mapping.
// FREEBIE
8 years ago
Matthew Chen 7d32491968 Preserve scroll state across conversation view layout changes, if possible.
// FREEBIE
8 years ago
Matthew Chen fce2ad2793 Refine the "is scrolled to bottom" logic to better handle new conversations.
// FREEBIE
8 years ago
Matthew Chen cc048b3971 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen ef21c6d50c Ignore "GIF of death."
// FREEBIE
8 years ago
Matthew Chen 7f15228aba Ignore "GIF of death."
// FREEBIE
8 years ago
Matthew Chen 5fcf89dff1 Ignore "GIF of death."
// FREEBIE
8 years ago
Matthew Chen b9908997c9 Remain scrolled to bottom after presenting the keyboard in messages view.
// FREEBIE
8 years ago
Matthew Chen d7b0b6a253 Fix build break in production builds.
// FREEBIE
8 years ago
Matthew Chen 3c90c3361a Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 71d7490e35 Re-sync local profile state with service if necessary.
// FREEBIE
8 years ago
Matthew Chen ac3743f810 Fix RTL layout of system message cells.
// FREEBIE
8 years ago
Matthew Chen 92a0fbe01b Fix yet another edge case around message view scroll state.
// FREEBIE
8 years ago
Matthew Chen 4a2ca15b70 Fix build break around parameter name.
// FREEBIE
8 years ago
Matthew Chen 997cd2ef2b Revisit the [UIScrollView _adjustContentOffsetIfNecessary] issue. Fix glitches in the initial scroll state in message view. Don't reset scroll state when returning to the message view.
// FREEBIE
8 years ago
Matthew Chen 7f717c0ca6 Revisit the [UIScrollView _adjustContentOffsetIfNecessary] issue. Fix glitches in the initial scroll state in message view. Don't reset scroll state when returning to the message view.
// FREEBIE
8 years ago
Michael Kirk 4c51f1810c sync local profile as soon as it's created
// FREEBIE
8 years ago
Michael Kirk ab84cbd670 use messageSender property now that the class relies on it in multiple
places.

(due to rebase)

// FREEBIE
8 years ago
Michael Kirk 42934e5fd4 remove retry logic per code review
the system naturally recovers anyway, upon sending messages, no need to
hit the user with another alert.

// FREEBIE
8 years ago
Michael Kirk d71b7684a6 cleanup logging
// FREEBIE
8 years ago
Michael Kirk 55d0db8c46 Disable profile-key sending with feature flag
// FREEBIE
8 years ago
Michael Kirk 4382f33618 Send blank PROFILE_MESSAGE after whitelisting someone
So they can immediately fetch your profile.
Note, we're going to put this behind a feature flag for initial release
since iOS prints an empty bubble when receiving a message like this.

// FREEBIE
8 years ago
Michael Kirk 6c63009e9e Dedicated "Profile" debug section
// FREEBIE
8 years ago
Michael Kirk 9c56660618 profile key flag and debug action
// FREEBIE
8 years ago
Michael Kirk d8aa9b4a3d better comment per CR
// FREEBIE
8 years ago
Michael Kirk 0feb966a1c comment cleanup / code formatting
// FREEBIE
8 years ago
Michael Kirk 526d5e33b9 Sync profile key to sibling devices when updating contact
// FREEBIE
8 years ago
Michael Kirk 46919e4702 Add own profile key to multidevice provisioning message
// FREEBIE
8 years ago
Michael Kirk 1f3d2d1ed6 Send any profile key in contact sync
// FREEBIE
8 years ago
Matthew Chen d3d9e5dabc Fix scroll down button state.
// FREEBIE
8 years ago
Matthew Chen cdfdb80fd1 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 7e4859241a Clear the local profile avatar immediately when we request upload form.
// FREEBIE
8 years ago
Matthew Chen 0fa19b5269 Clear own avatar on service if necessary when updating local profile. Clear others' avatar when appropriate.
// FREEBIE
8 years ago
Matthew Chen 50a8d0f165 Clear own avatar on service if necessary when updating local profile. Clear others' avatar when appropriate.
// FREEBIE
8 years ago
Michael Kirk 1e51bf4899 extract event names
// FREEBIE
8 years ago
Michael Kirk 251e206b6d profiles vs. censorship circumvention
// FREEBIE
8 years ago
Matthew Chen f2ae73e156 Remove obsolete "scrollLaterTimer" hack in messages view.
// FREEBIE
8 years ago
Matthew Chen 8794880db8 Unbound message bubble cache size and DRY up cache logic.
// FREEBIE
8 years ago
Matthew Chen c90ca331e3 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 6b8e189f45 Add view to Crop and scale avatar.
// FREEBIE
8 years ago
Matthew Chen 728028563c Add double-tap to zoom out.
// FREEBIE
8 years ago
Matthew Chen e7b32f9fd1 Add double-tap to zoom out.
// FREEBIE
8 years ago
Matthew Chen 2b50eb5acc Add view to Crop and scale avatar.
// FREEBIE
8 years ago
Matthew Chen 2c301feeb7 Add view to Crop and scale avatar.
// FREEBIE
8 years ago
Matthew Chen 374a59e937 Remove an old TODO.
// FREEBIE
8 years ago
Matthew Chen e8a6ca1c22 Show an error when profile name is too long.
// FREEBIE
8 years ago
Michael Kirk bde40a1f9c Ensure avatar upates right after profile change.
// FREEBIE
8 years ago
Michael Kirk f6720f9afa properly clear all cached avatar images
// FREEBIE
8 years ago
Michael Kirk b579ea5915 Use profile name when building avatar if contact name is unavailable
// FREEBIE
8 years ago
Matthew Chen 89bacf5cce Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 65db75a91d Fix group profile whitelist check.
// FREEBIE
8 years ago
Matthew Chen 9bf80a215f Don't add avatar to new contacts.
// FREEBIE
8 years ago
Michael Kirk 903d792af4 Debug action to clobber local profile and key
// FREEBIE
8 years ago
Michael Kirk 041c5a4a11 CR: setNeedsLayout
// FREEBIE
8 years ago
Michael Kirk f49e122567 listen for profile names change notifications
// FREEBIE
8 years ago
Michael Kirk 96f0ab215c wip 8 years ago
Michael Kirk fd99354673 profile name vs. verified in ContactTableViewCell
// FREEBIE
8 years ago
Michael Kirk e54e1d11c0 show profile name snippet in inbox and conversation settings
// FREEBIE
8 years ago
Michael Kirk 279eb89023 Fix whitelist
whitelist cache are a bunch of NSNumber's, we need to check their
boolValue

// FREEBIE
8 years ago
Matthew Chen b28a6bab26 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 57b76b3411 Ensure message view range is properly truncated with view is configured.
// FREEBIE
8 years ago
Matthew Chen 15d2fd23d7 Rework save/cancel buttons in profile view.
// FREEBIE
8 years ago
Matthew Chen 68309eb00f Rework save/cancel buttons in profile view.
// FREEBIE
8 years ago
Michael Kirk 0a57e7db09 Fix slow start crash after upgrade to 2.16
We were opening a write transaction before our sync extensions were
registered. This seems to have caused our views to rebuild themselves
once they did register, which in turn can cause device timeout.

Instead of opening transcations in `init`, we only build the
localProfile once it's needed.

A future PR will ensure transactions
aren't being created before syncViews are registered.

// FREEBIE
8 years ago
Matthew Chen 5e6f5804c1 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 584ddab0b9 Show "share profile with group" banner.
// FREEBIE
8 years ago
Matthew Chen ae1908c40c Show "share profile with group" banner.
// FREEBIE
8 years ago
Matthew Chen 68ee56174a Pad empty profile names instead of nil.
// FREEBIE
8 years ago
Matthew Chen 7eeb326865 Fix minor build error.
// FREEBIE
8 years ago
Matthew Chen 6dda535f24 Rework the profile view.
// FREEBIE
8 years ago
Matthew Chen 313d06b31d Rework the profile view.
// FREEBIE
8 years ago
Matthew Chen 020d2c567a Rework the profile view.
// FREEBIE
8 years ago
Matthew Chen 3181ee7882 Rework the profile view.
// FREEBIE
8 years ago
Matthew Chen 9dfeb132cb Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 1e43e93371 Observe profile changes in conversation view.
// FREEBIE
8 years ago
Matthew Chen 14d472781f Respond to CR.
// FREEBIE
8 years ago
Matthew Chen a340c9ebdc Clean up ahead of CR.
// FREEBIE
8 years ago
Matthew Chen 4578a72ab2 Reorder where contact offers appear.
// FREEBIE
8 years ago
Matthew Chen 02c96b7b0e Rework the contact offers.
// FREEBIE
8 years ago
Matthew Chen 9e02524b0b Rework the contact offers.
// FREEBIE
8 years ago
Matthew Chen c2f9d7dcb2 Rework the contact offers.
// FREEBIE
8 years ago
Matthew Chen 265bdce0ba Start reworking the contact offers.
// FREEBIE
8 years ago
Matthew Chen a825fad47b Start reworking the contact offers.
// FREEBIE
8 years ago
Matthew Chen 98eb4693c5 Rework the contact offers.
// FREEBIE
8 years ago
Matthew Chen 5f2f8ec6d8 Start reworking the contact offers.
// FREEBIE
8 years ago
Michael Kirk 72fbb02028 aes-gcm via openssl
// FREEBIE
8 years ago
Matthew Chen 27e496ad06 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 1b055c485d Rework "cancel navigate back" logic.
// FREEBIE
8 years ago
Matthew Chen 25b0f79615 Rework "cancel navigate back" logic.
// FREEBIE
8 years ago
Matthew Chen 08347478a2 Implement alternative approach to veto-able back buttons.
// FREEBIE
8 years ago
Matthew Chen 9d8c396848 Add profile view to upgrade/nag workflow.
// FREEBIE
8 years ago
Matthew Chen ffb4b3f9d2 Add profile view to registration workflow.
// FREEBIE
8 years ago
Michael Kirk 7c386b1d1e CR: RTL, trim profile names, ensure not empty
- RTL support with localizable format strings
- Trim decrypted profile names
- more rigorous empty check

// FREEBIE
8 years ago
Michael Kirk 4511b4015f Clarify where we use the profile name
Add some hints to differentiate profile name usage from a name pulled
from the contacts.

// FREEBIE
8 years ago
Matthew Chen 164bf19b47 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen d476bc286d * Add debug UI tools for clearing and logging the profile whitelist.
* Auto-add new contact threads to profile whitelist when local user sends first message to that thread.
* Ensure dynamic interactions have a non-negative timestamp even if the conversation was empty.
* Only call updateMessageMappingRangeOptions _after_ beginLongLivedReadTransaction and updating messageMappings.
* Improve documentation around how to avoid corrupt mappings in conversation view.
* Fix edge cases around large initial range sizes.
* Always treat dynamic interactions as read.
* Rebuild the “unseen” database views to remove dynamic interactions (see above).

// FREEBIE
8 years ago
Matthew Chen 0b14f87575 Improve comments about mapping consistency in conversation view.
// FREEBIE
8 years ago
Michael Kirk e08fa4bcec Fix jolting animation after sending a message
When we send the nth message, we retain the footer for the n-1th message
until the nth message is successfully sent.

1. leave the footer on the n-1th message
2. draw the nth message with the "..." footer
3. update the nth message with the "sent" footer and hide the footer for
   the n-1th message

In the normal case this all happens very quickly, which results in some
unpleasant flicker every time you send a message.

The concession here is that we'll only print the n-1th footer if the
outgoing message *fails*. So until we implement a design more like
Android's double-check for sent/delivery, the user will not be able to
distinguish between a sent and delivered message *while* their message
is outgoing.

In my opinion the lack of jank in the normal case makes the app
supercedes this use case.

// FREEBIE
8 years ago
Michael Kirk 2e83643327 Don't consider registration complete until user registers their push
notification tokens.

// FREEBIE
8 years ago
Matthew Chen 6c3662b944 Increase max conversation range length.
// FREEBIE
8 years ago
Matthew Chen ddd8c9ff5f Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 3ecd415b84 Show activity indicator during profile update; trim whitespace from profile names.
// FREEBIE
8 years ago
Matthew Chen 943945b4bd Fix “profiles not encoded” bug.
// FREEBIE
8 years ago
Matthew Chen 46d27cef30 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 1dd75a05ff Tweak concurrency in profile manager.
// FREEBIE
8 years ago
Matthew Chen 02f8b13f4f Rework concurrency in the profile manager.
// FREEBIE
8 years ago
Matthew Chen b2360ace6e Fix layout glitch in messages view.
// FREEBIE
8 years ago
Matthew Chen f618f87825 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 90f959d0ab Respond to CR.
// FREEBIE
8 years ago
Matthew Chen cdb181eadc Sketch out profile header in app settings view.
// FREEBIE
8 years ago
Matthew Chen 13aea66878 Sketch out profile header in app settings view.
// FREEBIE
8 years ago
Michael Kirk abec536729 simplify check for max file size per CR
// FREEBIE
8 years ago
Michael Kirk 2c3e99c372 better var name per code review
// FREEBIE
8 years ago
Michael Kirk fd02644ca7 resize profile avatar
// FREEBIE
8 years ago
Michael Kirk 9f72db44ac Avoid lossy re-encoding of profile image
// FREEBIE
8 years ago
Michael Kirk 0290f176c0 Use profile name/avatar when creating new contact
// FREEBIE
8 years ago
Michael Kirk 135243e383 CR: variable rename, better comments, fix up tests
// FREEBIE
8 years ago
Michael Kirk 7499b3aaf0 Avatar API integration / WIP crypto scheme
Crypto Scheme:

- Name (un)padding
- WIP AES-GCM (funtioning, but need to verify against android
  implementation, and tag functionality)

Changes to avatar API:

- hard code avatar domain (cdn.signal.org)
- avatar form hands out new avatar key, invalidating old avatar
- preliminary aes-gcm integration

Also:

- New type to represent AES128 keys, rather than passing around opaque
  data blobs everywhere, we can use the compiler to help us make sure
  we're passing compliant keying material.

- Started using factory pattern for API requests. This is intended to be
  a lighter weight way to implement new API requests, rather than the
  current 1-method class ceremony.

// FREEBIE
8 years ago
Michael Kirk 283d36c55b remove avatar digest.
For ease of CDN cache expiry, each new avatar will have a unique URL, so
no need for a separate digest. Contents of file at URL will be verified
by forthcoming crypto scheme.

// FREEBIE
8 years ago
Michael Kirk fc3f9ae396 Replace server sent avatar URL with hardcoded
// FREEBIE
8 years ago
Michael Kirk 3d9796db77 Debug actions for calling
For testing stale hangup/busy messages

Extracted MessageSender promise API
Moved call debug actions to their own page

// FREEBIE
8 years ago
Michael Kirk 1ee27996e4 Merge branch 'hotfix/2.15.3.1' 8 years ago
Michael Kirk 8da3108b53 Drop stale EndCall/BusyCall messages
// FREEBIE
8 years ago
Michael Kirk 0e241299d2 Discard GroupInfoRequest from unknown group
// FREEBIE
8 years ago
Michael Kirk a3ae22c84f Upload profile avatar to service
WIP, this currently lacks crypto pending further discussion.

// FREEBIE
8 years ago
Michael Kirk 72b3f3779b Discard GroupInfoRequest from unknown group
// FREEBIE
8 years ago
Michael Kirk 16c646a939 Use profile name/image when available.
Refactored the ContactAvatarBuilder to clarify intent of the two
methods. One is only used for non-signal contacts in the Invite flow.
The other should be used for any signal contacts so we have a single
consistent way of generating the avatar initials.

// FREEBIE
8 years ago
Matthew Chen e01fbc247e Refine profile logic.
// FREEBIE
8 years ago
Matthew Chen 09e65a674b Incomplete work to upload avatars.
// FREEBIE
8 years ago
Matthew Chen f6668d24c1 Download profile avatars.
// FREEBIE
8 years ago
Matthew Chen 9266c3a4f9 Clear profile state when a user’s profile key changes.
// FREEBIE
8 years ago
Matthew Chen 8b9749202d Load local user profile avatar if necessary.
// FREEBIE
8 years ago
Matthew Chen 823927685d Update profile on service.
// FREEBIE
8 years ago
Matthew Chen 83d01eed76 Don’t encrypt/decrypt avatar URL or digest.
// FREEBIE
8 years ago
Matthew Chen f6bcff5427 Fix rebase breakage.
// FREEBIE
8 years ago
Matthew Chen 37ce388eb6 Add “add to profile whitelist” offer.
// FREEBIE
8 years ago
Michael Kirk ed4de7e8af Simplify code / pre-cache localNumber
Now that localNumber is read from a dedicated dbConnection we don't have
to worry about it blocking.

// FREEBIE
8 years ago
Matthew Chen 03774216a0 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 6ac4d8e971 Delete profile avatars on disk when unregistering.
// FREEBIE
8 years ago
Matthew Chen ddf3929be1 Auto-add groups to profile whitelist groups when you make them.
// FREEBIE
8 years ago
Matthew Chen ba506bf092 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 49e65ba1b1 Update user profile update date on successful update.
// FREEBIE
8 years ago
Matthew Chen 9c0f94f1c0 Fetch profiles from profile manager. Update profile manager with profile fetch results.
// FREEBIE
8 years ago
Matthew Chen 6ec756de44 Move profile manager to Signal.
// FREEBIE
8 years ago
Matthew Chen 540a0a8e48 Refine UserProfile class. Move local user properties to UserProfile.
// FREEBIE
8 years ago
Matthew Chen a70bd3307d Show threads if possible.
// FREEBIE
8 years ago
Michael Kirk 8a4712bf4c Only access localNumber on AccountManager and cache it
// FREEBIE
8 years ago
Michael Kirk 357eb62502 [DEBUG-UI] Add avatar to (some) fake contacts
// FREEBIE
8 years ago
Matthew Chen 43b3abe321 Merge branch 'hotfix/2.15.2' 8 years ago
Matthew Chen 539490ee19 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen d9bc3ac806 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 9c5934359e Don’t dismiss call view controller to present other view.
// FREEBIE
8 years ago
Matthew Chen 138301975c Don’t dismiss call view controller to present other view.
// FREEBIE
8 years ago
Matthew Chen 791e270578 Terminate call if call view presentation is delayed.
// FREEBIE
8 years ago
Matthew Chen 634617b7d4 Terminate call if call view presentation is delayed.
// FREEBIE
8 years ago
Michael Kirk 81d7f28253 Timer to ensure call screen shown
// FREEBIE
8 years ago
Michael Kirk c6069376d8 more logging
// FREEBIE
8 years ago
Matthew Chen 282ac4bb29 Add “share profile” row to conversation settings.
// FREEBIE
8 years ago
Matthew Chen 26b668cce7 Add profile key to proto schema. Send and receive profile keys. Cache profile manager state.
// FREEBIE
8 years ago
Matthew Chen a3b16812ec Add convenience category for YapDatabaseConnection.
// FREEBIE
8 years ago
Matthew Chen a748987d72 Add option to clear profile avatar.
// FREEBIE
8 years ago
Matthew Chen 03a4ebc4d8 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 8a8f3d81fc Clean up ahead of PR.
// FREEBIE
8 years ago
Matthew Chen c331788c06 Modify the profile view to update profile manager state.
// FREEBIE
8 years ago
Matthew Chen 873f5208c4 Sketch out the profile view.
// FREEBIE
8 years ago
Matthew Chen 72ea096970 Sketch out the profile view.
// FREEBIE
8 years ago
Matthew Chen b62ab3f666 Merge remote-tracking branch 'origin/hotfix/2.15.1' 8 years ago
Matthew Chen 99c948568b Remove iOS 9-only APIs from layout code.
// FREEBIE
8 years ago
Michael Kirk 249a3fcabc Show proper setting for CallKitPrivacy
// FREEBIE
8 years ago
Michael Kirk 742f8cf902 Avoid unnecessariy flashing avatars
Make avatar building sync

Tests on a iPhone5 with 1k threads, 3k contacts show no noticeable lag.

Profiling shows ~4% of usage goes to contact avatar building, but once
cached, even that goes towards zero.

// FREEBIE
8 years ago
Michael Kirk 092578045e [DEBUG-UI] create fake contact threads
// FREEBIE
8 years ago
Matthew Chen 63e20cd8bb Sketch out profile manager.
// FREEBIE
8 years ago
Matthew Chen 3c3bd3c914 Tweaks to registration views.
// FREEBIE
8 years ago
Matthew Chen a0eead37c7 Ensure size of message mappings range increases monotonically.
// FREEBIE
8 years ago
Michael Kirk a196693425 Make sure DB views are ready before kicking processing job
// FREEBIE
8 years ago
Michael Kirk 6a5c6a9fc9 didBecomeActive kicks the processing queue
// FREEBIE
8 years ago
Matthew Chen 31d65c3d77 Fix RTL alignment of message footers.
// FREEBIE
8 years ago
Michael Kirk feb1061c04 Fix spinner layout on iphone5
// FREEBIE
8 years ago
Matthew Chen 43f451e236 Remove errant assert.
// FREEBIE
8 years ago
Matthew Chen 5acb3714e9 Add debug UI to enable manual censorship circumvention.
// FREEBIE
8 years ago
Matthew Chen 75c7cc4abf Add debug UI to enable manual censorship circumvention.
// FREEBIE
8 years ago
Matthew Chen d22e29ec09 Include local number when creating debug groups.
// FREEBIE
8 years ago
Matthew Chen 8f17730d9b Modify “create groups” debug UI to use current 1:1 contact.
// FREEBIE
8 years ago
Matthew Chen 653f7faca8 Add debug UI for creating groups.
// FREEBIE
8 years ago
Matthew Chen 1890039165 Hide empty conversations in home view.
// FREEBIE
8 years ago
Matthew Chen 103a7fab36 Hide empty conversations in home view.
// FREEBIE
8 years ago
Matthew Chen bca736a2b7 Merge tag '2.13.4.0'
// FREEBIE
8 years ago
Matthew Chen dd13119f12 Add more instrumentation to CallService.
// FREEBIE
8 years ago
Matthew Chen 904515994f Add more instrumentation to CallService.
// FREEBIE
8 years ago
Matthew Chen 465711c2cb Add script to extract and gather analytics event names.
// FREEBIE
8 years ago
Matthew Chen f1807cd709 Add script to extract and gather analytics event names.
// FREEBIE
8 years ago
Matthew Chen 0cf9c01af2 Add script to extract and gather analytics event names.
// FREEBIE
8 years ago
Matthew Chen 8aff95c44e Add script to extract and gather analytics event names.
// FREEBIE
8 years ago
Matthew Chen b4f348ad14 Add script to extract and gather analytics event names.
// FREEBIE
8 years ago
Matthew Chen 31ab9a00da Add script to extract and gather analytics event names.
// FREEBIE
8 years ago
Matthew Chen 6858a1e944 Fix assert in conversation view around nil title.
// FREEBIE
8 years ago
Matthew Chen 803e91c3ce Fix assert in conversation view around nil title.
// FREEBIE
8 years ago
Matthew Chen 4ac7600c07 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen d4af62adcc Instrument registration happy path with analytics.
// FREEBIE
8 years ago
Matthew Chen f973af5a83 Streamline analytics properties.
// FREEBIE
8 years ago
Matthew Chen 013bf62f7c Streamline analytics properties.
// FREEBIE
8 years ago
Michael Kirk 3f4dcecf15 ensure blocking keychange message has identityKey before proceeding
This is increasingly irrelevant due to recent safety number changes, but
legacy clients with old messages can still run into this.

FIXES: https://github.com/WhisperSystems/Signal-iOS/issues/2346

// FREEBIE
8 years ago
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
8 years ago
Matthew Chen d80f470c2c Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 2e7fe5cfd5 Rework database observation in home and message views.
// FREEBIE
8 years ago
Matthew Chen 1f1a681180 Rework database observation in home and message views.
// FREEBIE
8 years ago
Matthew Chen c1139a3a28 Fix many leaks in the view controllers.
// FREEBIE
8 years ago
Matthew Chen f0cecfad11 Surface memory leaks by logging the deallocation of view controllers.
// FREEBIE
8 years ago
Matthew Chen 511cbbeaaf Make it easier to tap-to-edit group names in new group and update group vies.
// FREEBIE
8 years ago
Matthew Chen 863fd27abe Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 8e51b5ade1 Clean up ahead of PR.
// FREEBIE
8 years ago
Matthew Chen 958a8b4c80 Instrument CallService.
// FREEBIE
8 years ago
Matthew Chen 9587aab37b Instrument network errors.
// FREEBIE
8 years ago
Matthew Chen 117bca7c48 Instrument errors in app delegate.
// FREEBIE
8 years ago
Michael Kirk c74a5c0740 CR: strong reference to migration job, clarify variable
// FREEBIE
8 years ago
Michael Kirk a5f067936c migration to fix any half-registered users
// FREEBIE
8 years ago
Matthew Chen 97772a32ff Respond to CR.
// FREEBIE
8 years ago
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
8 years ago
Matthew Chen ceb243b30b Always reload home view table when changing grouping.
// FREEBIE
8 years ago
Matthew Chen 03aacbd682 [SSK] Try applying national prefixes when parsing phone numbers.
// FREEBIE
8 years ago
Matthew Chen fdac0305cb Update analytics macros.
// FREEBIE
8 years ago
Matthew Chen 14621e1288 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 34f7cd1a47 Clean up ahead of PR.
// FREEBIE
8 years ago
Matthew Chen 02c510691c Adapt number formatting to RTL.
// FREEBIE
8 years ago
Matthew Chen 5edec99fd6 Adapt number formatting to RTL.
// FREEBIE
8 years ago
Matthew Chen 04fb3642b2 Remove .xib for home view cells; adapter home view to RTL.
// FREEBIE
8 years ago
Matthew Chen eaacac9d8b DRY up common table cell patterns.
// FREEBIE
8 years ago
Matthew Chen 96fd5e11e5 Adapt more UI elements to RTL.
// FREEBIE
8 years ago
Matthew Chen c799e18c74 Adapt voice messages UI to RTL.
// FREEBIE
8 years ago
Matthew Chen 8005cf0227 Adapt conversation settings view to RTL.
// FREEBIE
8 years ago
Matthew Chen d4e62efce5 Adapt call view to RTL.
// FREEBIE
8 years ago
Matthew Chen e2125978de Adapt "new group" and "update group" views to RTL.
// FREEBIE
8 years ago
Matthew Chen 693e74e868 Adapt conversation settings view to RTL.
// FREEBIE
8 years ago
Matthew Chen 656cc47de5 Adapt registration views to RTL.
// FREEBIE
8 years ago
Matthew Chen d4f012fbb7 Fix contact table cell and “add to block list” view.
// FREEBIE
8 years ago
Matthew Chen e15432720c Add arabic translation; begin work on right-to-left layout.
// FREEBIE
8 years ago
Matthew Chen a9ce1cde2f Simplify CallViewController.
// FREEBIE
8 years ago
Matthew Chen 149c64ce49 Refine call service.
// FREEBIE
8 years ago
Michael Kirk 46ddaa9cae fix: unregistered user shows "add to contacts"
// FREEBIE
8 years ago
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
8 years ago
Michael Kirk df0cf76603 Assert that mapping is set whenever accessing
// FREEBIE
8 years ago
Michael Kirk 1c9ce5eaf3 CR: Don't just build, but present, alert controller
// FREEBIE
8 years ago
Michael Kirk 5c66e5584c Adding to existing contact requires contact access
Previously we'd show an empty "list" of existing contacts.

// FREEBIE
8 years ago
Matthew Chen 8b60765627 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 81a4ebdaf5 Apply OWSTableViewController to more views.
// FREEBIE
8 years ago
Matthew Chen dc3f07cb54 Apply OWSTableViewController to more views.
// FREEBIE
8 years ago
Michael Kirk 9287b8560c clean up comments per code review
// FREEBIE
8 years ago
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
8 years ago
Michael Kirk e3faddedbc Disallow bluetooth when user has opted for local receiver
// FREEBIE
8 years ago
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
8 years ago
Michael Kirk 220cd345f6 add comments
// FREEBIE
8 years ago
Michael Kirk ba97ff3f5f Label tweaks for device listing
// FREEBIE
8 years ago
Matthew Chen d36e60b0e9 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen b6264383d3 Add possible fixes for the ‘empty home view’ issue.
// FREEBIE
8 years ago
Matthew Chen 90dabe1c81 Add possible fixes for the ‘empty home view’ issue.
// FREEBIE
8 years ago
Matthew Chen f52814bb70 Add possible fixes for the ‘empty home view’ issue.
// FREEBIE
8 years ago
Matthew Chen 3f805cd4cd Add possible fixes for the ‘empty home view’ issue.
// FREEBIE
8 years ago
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
8 years ago
Michael Kirk fa42b4a45b Respect disappearing message timer from lockscreen
// FREEBIE
8 years ago
Matthew Chen 6c61e6040c Fix another call view leak.
// FREEBIE
8 years ago
Michael Kirk b495b23420 more cleanup and commenting
// FREEBIE
8 years ago
Michael Kirk 03f1bbca62 Move state from CallViewController -> Call
I think whenever reasonable we prefer to consodlidate state on the call

// FREEBIE
8 years ago
Michael Kirk 4e11e90ebb cleanup
- remove dead code
- rename vars
- add coments

// FREEBIE
8 years ago
Michael Kirk a59eb25aef extract dismiss string -> CommonStrings.dismissButton
// FREEBIE
8 years ago
Michael Kirk 20a8e72198 disable audio source images until we have icons
// FREEBIE
8 years ago
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
8 years ago
Michael Kirk 109cb6cdb6 rename for clarity
// FREEBIE
8 years ago
Matthew Chen ac616d6936 Reject the “call connected” promise immediately when clearing a call.
// FREEBIE
8 years ago
Matthew Chen a58c71f4b8 Fix leak of call view.
// FREEBIE
8 years ago
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
8 years ago
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
8 years ago
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
8 years ago
Michael Kirk 2067697ed4 Add comment and clearer tests per CR
// FREEBIE
8 years ago
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
8 years ago
Matthew Chen b7c2512eac Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 81555d1225 Add “new contact” and “add to existing contact” buttons in 1:1 conversation settings view.
// FREEBIE
8 years ago
Matthew Chen 1e67bb52e3 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen f584c4b434 Fix broken tests.
// FREEBIE
8 years ago
Matthew Chen 0b28285deb Fix broken tests.
// FREEBIE
8 years ago
Matthew Chen 69ba2811db Run orphan cleanup on startup.
// FREEBIE
8 years ago
Michael Kirk d15da6e6d4 fix bubble calculator tests
// FREEBIE
8 years ago
Matthew Chen c9355630c7 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen d639d6557e Add owsFail free function for swift.
// FREEBIE
8 years ago
Matthew Chen 669e0644ea Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 5cf0441f55 Add a reminder that you are in archive view.
// FREEBIE
8 years ago
Matthew Chen 54a5b960c7 Add a reminder that you are in archive view.
// FREEBIE
8 years ago
Matthew Chen 8f3b837a65 Add a reminder that you are in archive view.
// FREEBIE
8 years ago
Matthew Chen 2e727a24b5 Convert home view to programmatic layout.
// FREEBIE
8 years ago
Michael Kirk 5223104566 respect system sort order for contacts
// FREEBIE
8 years ago
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
8 years ago
Matthew Chen 1a400f8414 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen b6531a8b5d If two users call each other at the same time, ensure they both see “busy”.
// FREEBIE
8 years ago
Michael Kirk f681712ea0 Code Cleanup
- make some logging clearer
- remove noisy unhelpful logging
- clearer method names

// FREEBIE
8 years ago
markus.fassbender 422336db32 fixes compiler warnings FREEBIE 8 years ago
Matthew Chen c817346ee3 Fix “timer circular reference” leaks.
// FREEBIE
8 years ago
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
8 years ago
Matthew Chen e3f2583b4a Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 9cbc1e6a1b Block device from sleeping while Debug UI is visible and during database upgrades.
// FREEBIE
8 years ago
Matthew Chen 0244e134f5 Block device from sleeping during certain activities.
// FREEBIE
8 years ago
Matthew Chen bfd04088bd Persist registration view’s “last registered” values in keychain so that they persist across clean installs.
// FREEBIE
8 years ago
Michael Kirk 1afc6525e5 selecting network status does not highlight
// FREEBIE
8 years ago
Matthew Chen 9aa54cad63 Fix missing “database upgrade” label on launch screen.
// FREEBIE
8 years ago
Matthew Chen ab9770c175 Fix missing “database upgrade” label on launch screen.
// FREEBIE
8 years ago
Matthew Chen 5038744811 Fix missing “database upgrade” label on launch screen.
// FREEBIE
8 years ago
Matthew Chen d94ee7ab11 Add options to send 3k debug messages.
// FREEBIE
8 years ago
Matthew Chen 9e5447f1d4 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen b400c0a327 Don’t show app upgrade nag unless we are at rest in home view or registration view.
// FREEBIE
8 years ago
Matthew Chen 944cd7beef Show app update nag on launch if necessary.
// FREEBIE
8 years ago
Michael Kirk 8e891eb357 Merge branch 'hotfix/2.13.3.0'
// FREEBIE
8 years ago
Matthew Chen c5bf85d0b3 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen ab3aa9d0ce Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 97169f521a Move more initialization until after didBecomeActive is complete to avoid the “bad food” crash.
// FREEBIE
8 years ago
Matthew Chen 73869b1eff Fix possible cause of crash on launch.
// FREEBIE
8 years ago
Matthew Chen 7135895c1c Modify TSStorageManager to use separate shared read and write connections.
// FREEBIE
8 years ago
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
8 years ago
Michael Kirk 174706817c clearer comment
I erroneously thought this code was an error, maybe a better comment
would have saved me some time?

// FREEBIE
8 years ago
Michael Kirk 1f9f066fa9 print call record when declining a call
// FREEBIE
8 years ago
Michael Kirk 1e0cf89f7a Explanatory comment
// FREEBIE
8 years ago
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
8 years ago
Michael Kirk 8abde1dff8 Non-Callkit adapter plays audio from notification when app is in
background

// FREEBIE
8 years ago
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
8 years ago
Michael Kirk c1881c02c8 constantize file name per CR
// FREEBIE
8 years ago
Michael Kirk 9b1695f28c Play audible alert for missed call
// FREEBIE
8 years ago
Michael Kirk 89260e843f Unregistered users should have 0 badge count
// FREEBIE
8 years ago
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
8 years ago
Matthew Chen 1552c64777 Add “delete old messages” and “save all attachments” debug commands.
// FREEBIE
8 years ago
Matthew Chen 72faa5f82d Add clean up command to the “orphan audit” debug UI.
// FREEBIE
8 years ago
Matthew Chen feb32fdf8e Find orphan and missing attachment stream files.
// FREEBIE
8 years ago
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
8 years ago
Matthew Chen 07c8eb54b7 Prevent "scroll to button" button from blipping.
// FREEBIE
8 years ago
Michael Kirk c6cd0bbcae Always show timestamp after unread indicator
// FREEBIE
8 years ago
Michael Kirk bef3a56e50 DebugUI: create fake unread messages
helpful for printing unread indicator

// FREEBIE
8 years ago
Michael Kirk 964e558139 log when starting token sync in prod
// FREEBIE
8 years ago
Michael Kirk d0d4e67615 update badge count when app is in background
// FREEBIE
8 years ago
Matthew Chen e48d51d084 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen a462cba452 Don’t reply to “no longer verified”.
// FREEBIE
8 years ago
Matthew Chen db3407853a Refine fake contact creation.
// FREEBIE
8 years ago
Matthew Chen 791c5bb89e Revise phone number length limit in registration view.
// FREEBIE
8 years ago
Matthew Chen 351c8c00f0 Remove phone number length limit in registration view.
// FREEBIE
8 years ago
Michael Kirk a933fbf215 sync verifications with contact syncing
// FREEBIE
8 years ago
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
8 years ago
Matthew Chen e814ae129d Fix crash in manual censorship circumvention logic on iOS 9.
// FREEBIE
8 years ago
Matthew Chen f7c81bae9d Show the “scroll down” button if user scrolls up, even if there are no unread messages.
// FREEBIE
8 years ago
Matthew Chen eff1974eeb [SSK] Reduce chattiness of logs; increase log file sizes.
// FREEBIE
8 years ago
Matthew Chen 15ecb03471 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 7726c68047 Persist registration values in the keychain for debug builds only.
// FREEBIE
8 years ago
Matthew Chen 3d0811c03f Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 029da7e0ce Hang up current call if we receive a call offer from the same user.
// FREEBIE
8 years ago
Matthew Chen 9fc92990f5 Improve logging in CallService.
// FREEBIE
8 years ago
Matthew Chen 0855faabb4 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen efbda70764 Improve UX for multiple “no longer verified” members of a group.
// FREEBIE
8 years ago
Matthew Chen afb83cfaaa Improve UX for multiple “no longer verified” members of a group.
// FREEBIE
8 years ago
Matthew Chen f1e5be4c17 Improve UX for multiple “no longer verified” members of a group.
// FREEBIE
8 years ago
Matthew Chen a039aac36d Improve UX for multiple “no longer verified” members of a group.
// FREEBIE
8 years ago
Matthew Chen f3f832557f Respond to CR.
// FREEBIE
8 years ago
Matthew Chen ec077235ba Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 6a5fe94d59 Improve perf of attachment stream file path upgrade.
// FREEBIE
8 years ago
Matthew Chen b39c4905c3 Invalid message adapter cache when app becomes visible.
// FREEBIE
8 years ago
Matthew Chen 0738568b94 Fix upgrade launch screen.
// FREEBIE
8 years ago
Michael Kirk 11fa08470d [JSQ] Fix: can't dismiss keyboard after sending
// FREEBIE
8 years ago
Michael Kirk 8898f4a6d4 CR: future proof view placement if we change hierarchy
// FREEBIE
8 years ago
Michael Kirk da7dae8163 CR: rename longpress->longPress
// FREEBIE
8 years ago
Michael Kirk c70b1e9681 Make system messages deletable
// FREEBIE
8 years ago
Michael Kirk fbba2f5dd7 colocate CollectionViewDelegate methods
// FREEBIE
8 years ago
Michael Kirk 39563ab8c2 present from signalsViewController so users don't get confused by being
dropped into a different thread when the call is over.

e.g. chatting with Alice, but Bob calls. When I end the call with Bob It
would be too easy to fire off a message assuming it's going to Bob.

// FREEBIE
8 years ago
Michael Kirk 982433c2bf update call screen avatar when contacts change
in particular this is a problem when initiating a call from a cold app
state. The call screen renders before the contacts have completely
loaded.

// FREEBIE
8 years ago
Michael Kirk 36c09aeb84 cleanup ahead of PR
// FREEBIE
8 years ago
Michael Kirk ff93732ed7 WIP: fix call from contacts when signal hasn't been launched yet 8 years ago
Matthew Chen 5ae4b99f89 Refine observation of async registration completion.
// FREEBIE
8 years ago
Matthew Chen de453b2960 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 5796bbd858 Max out the unread count at 99.
// FREEBIE
8 years ago
Michael Kirk bee4b118e6 remove unneccessary explanation of UI
// FREEBIE
8 years ago
Michael Kirk 0419d35f12 CR: rename method
not always resized when used

// FREEBIE
8 years ago
Michael Kirk 8fc2289152 prefer becomeFirstResponder
Feels a little more reasonable than interecepting canBecomeFirstResponder

// FREEBIE
8 years ago
Michael Kirk b4d3e8e744 Fix: tapping input obscures last messages
// FREEBIE
8 years ago
Matthew Chen d01a52758b Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 0d07e0222f Avoid stale mapping in conversation view.
// FREEBIE
8 years ago
Matthew Chen 331a1e90e3 Avoid stale mapping in conversation view.
// FREEBIE
8 years ago
Matthew Chen f6f08891eb Avoid stale mapping in conversation view.
// FREEBIE
8 years ago
Matthew Chen d4a6a35ee3 Avoid stale mapping in conversation view.
// FREEBIE
8 years ago
Matthew Chen 9f2a2d1ee6 Don’t show “export with Signal” UI until async database view registration is complete.
// FREEBIE
8 years ago
Michael Kirk b404fa3c2b Save identity from profile fetch even if there's no pre-existing
identity.

This allows us to view someone's SN before messaging them.

// FREEBIE
8 years ago
Matthew Chen fa58977683 Prevent layout from jumping around in fingerprint view.
// FREEBIE
8 years ago
Michael Kirk 4f3278db1e Fix layout of timestamp for system messages
Incorporate topLabelSize into cell size for system messages.

We are using the term "bubble size" to describe the interaction specific
views of a collection cell. It's a crappy name, but coincides with other
usage.

// FREEBIE
8 years ago
Michael Kirk 1125e2ac99 System messsages can show timestamp
added the JSQCollectionViewCell cellTopLabel to the system message
layout

// FREEBIE
8 years ago