* custom behavior for round capture button to match iOS Camera app.
* custom behavior for zoom control to match iOS Camera app.
* proper descriptions for other elements.
OWSTableViewSheetViewController is inherited from InteractiveSheetViewController
and has additional size calculation logic that updates current sheet size based
on UITableView's contentSize. However, there's also a "max height" constraint
that also needs updating - this commits adds that.
- Use “nb” instead of “no” for Norwegian
- Use “fr” for both “fr-FR” and “fr-CA”
Also: Remove redundant `tx pull` for App Store metadata. The next
request forces a fetch of all the supported languages, so the first
fetch isn’t necessary.
_I recommend reviewing this with whitespace changes disabled._
`RemoteConfig.groupsV2InviteLinks` has been fully enabled for awhile
now. This removes it, and everything that depended on it. Even let us
remove a couple of strings!
This removes `FeatureFlags.giftBadgeReceiving` and
`FeatureFlags.giftBadgeSending`, replacing them with
`RemoteConfig.canReceiveGiftBadges` and
`RemoteConfig.canSendGiftBadges`.
If there are multiple requests, they’ll be merged into one. If a request
has already succeeded, it will be used until the app relaunches. If a
request fails, the next caller will kick off a new request.
Short story: we now properly decide whether the sheet is being resized
or scrolled, fixing the bug.
Long story:
Some users report that they can't scroll the forward message sheet
([example report 1][1], [example report 2][2]). This wasn't just a bug
with the forwarding sheet. It was a bug with all subclasses of
`InteractiveSheetViewController`.
When you gesture on the sheet, there are effectively two modes: "resize
the sheet mode", and "scroll the contents" mode. (See
`beginInteractiveTransitionIfNecessary` for a boolean that expresses
this.) The logic is effectively this:
def getMode():
if sheetHeight < maximumSheetHeight:
# Note: there are some other ways to get this mode, e.g. by
# grabbing the handle. But those aren't relevant for this bug.
return "resize the sheet mode"
else:
return "scroll the contents mode"
Unfortunately, there was a bug in how we computed the max sheet height
if that height was larger than the height of the screen (e.g., in
landscape mode or on a shorter device). That bad height caused you to
get into "resize the sheet mode" incorrectly. This fixes that, and does
a few other cleanups.
[1]: https://github.com/signalapp/Signal-iOS/issues/5366
[2]: https://community.signalusers.org/t/beta-feedback-for-the-upcoming-ios-5-44-release/45401/3
Co-Authored-By: Igor Solomennikov <igor@signal.org>
If DNS resolution fails, then it’s expected that there won’t be any
addresses. Fail gracefully in this case.
If DNS resolution succeeds and provides a non-nil but empty list of
addresses, report an error. This shouldn’t happen.
Here's a truncated sample of what it looks like:
[BadgeGiftingChooseBadgeViewController.swift:67 loadData()]: [Gifting] Fetching badge data...
[BadgeGiftingChooseBadgeViewController.swift:70 loadData()]: [Gifting] Populating badge assets...
[BadgeGiftingConfirmationViewController.swift:128 showSafetyNumberConfirmationIfNecessary()]: [Gifting] Not showing safety number confirmation sheet; it was not needed
[BadgeGiftingConfirmationViewController.swift:168 checkRecipientAndRequestApplePay()]: [Gifting] Requesting Apple Pay...
[BadgeGiftingConfirmationViewController.swift:128 showSafetyNumberConfirmationIfNecessary()]: [Gifting] Not showing safety number confirmation sheet; it was not needed
[SendGiftBadgeJobQueue.swift:87 addJob(_:transaction:)]: [Gifting] Adding a "send gift badge" job
[SendGiftBadgeJobQueue.swift:226 run()]: [Gifting] Ensuring we can still message recipient...
[SendGiftBadgeJobQueue.swift:232 run()]: [Gifting] Confirming payment intent...
[SendGiftBadgeJobQueue.swift:236 run()]: [Gifting] Charge succeeded! Getting receipt credential...
[SendGiftBadgeJobQueue.swift:239 run()]: [Gifting] Enqueueing messages...
[SendGiftBadgeJobQueue.swift:251 didSucceed()]: [Gifting] Gift sent! Finishing up...
This may be useful for debugging.
This fixes one violation of [SwiftLint's `block_based_kvo` rule][0] in
our video player view.
I also removed a method (`playbackTimeDidChange`) for consistency.
[0]: https://realm.github.io/SwiftLint/block_based_kvo.html
It looks like this was removed in
7f4a5f3f7b.
`git grep -w AttachmentCaptionDelegate` and `git grep -w
AttachmentCaptionViewController` both return no results after removing
this file.