From 228e745d5906e386378564d1eafca934f6836d8a Mon Sep 17 00:00:00 2001 From: Kyle Hickinson Date: Tue, 29 Oct 2019 15:06:31 -0400 Subject: [PATCH] Fix #1808, Fix #1809: Fix tipping screen rotation & multitasking layout In iOS 13, `traitCollectionDidChange` no longer is called on `init` and instead is given a predicted trait collection therefore we need to make sure to use that predicted trait collection on `init` in case it never changes. --- BraveRewardsUI/Tipping/TippingOverviewView.swift | 5 +++++ BraveRewardsUI/Tipping/TippingSelectionView.swift | 5 +++++ BraveRewardsUI/Tipping/TippingView.swift | 14 +++++++++++--- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/BraveRewardsUI/Tipping/TippingOverviewView.swift b/BraveRewardsUI/Tipping/TippingOverviewView.swift index c0495be9a..69b17eb9c 100644 --- a/BraveRewardsUI/Tipping/TippingOverviewView.swift +++ b/BraveRewardsUI/Tipping/TippingOverviewView.swift @@ -152,6 +152,7 @@ class TippingOverviewView: UIView { $0.leading.trailing.equalTo(self).inset(25.0) $0.bottom.equalTo(self.scrollView.contentLayoutGuide).inset(25.0) } + updateForTraits() } @available(*, unavailable) @@ -161,6 +162,10 @@ class TippingOverviewView: UIView { override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { super.traitCollectionDidChange(previousTraitCollection) + updateForTraits() + } + + func updateForTraits() { grabberView.isHidden = traitCollection.horizontalSizeClass == .regular } } diff --git a/BraveRewardsUI/Tipping/TippingSelectionView.swift b/BraveRewardsUI/Tipping/TippingSelectionView.swift index 31681286a..27c0fdc0d 100644 --- a/BraveRewardsUI/Tipping/TippingSelectionView.swift +++ b/BraveRewardsUI/Tipping/TippingSelectionView.swift @@ -172,10 +172,15 @@ class TippingSelectionView: UIView { insufficientFundsButton.snp.makeConstraints { $0.edges.equalTo(self.sendTipButton) } + updateForTraits() } override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { super.traitCollectionDidChange(previousTraitCollection) + updateForTraits() + } + + func updateForTraits() { let isWideLayout = traitCollection.horizontalSizeClass == .regular layoutGuide.snp.remakeConstraints { if isWideLayout { diff --git a/BraveRewardsUI/Tipping/TippingView.swift b/BraveRewardsUI/Tipping/TippingView.swift index e6477e007..adb8ed445 100644 --- a/BraveRewardsUI/Tipping/TippingView.swift +++ b/BraveRewardsUI/Tipping/TippingView.swift @@ -138,11 +138,11 @@ extension TippingViewController { $0.top.leading.trailing.equalTo(contentView) $0.bottom.equalTo(self.optionSelectionView.snp.top) } + + updateForTraits() } - override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { - super.traitCollectionDidChange(previousTraitCollection) - + func updateForTraits() { let isWideLayout = traitCollection.horizontalSizeClass == .regular contentView.snp.remakeConstraints { if isWideLayout { @@ -160,6 +160,11 @@ extension TippingViewController { optionSelectionView.clipsToBounds = isWideLayout } + override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { + super.traitCollectionDidChange(previousTraitCollection) + updateForTraits() + } + @available(*, unavailable) required init(coder: NSCoder) { fatalError() @@ -173,6 +178,9 @@ extension TippingViewController { extension TippingViewController.View: BasicAnimationControllerDelegate { func animatePresentation(context: UIViewControllerContextTransitioning) { context.containerView.addSubview(self) + snp.makeConstraints { + $0.edges.equalToSuperview() + } frame = context.containerView.bounds let isWideLayout = context.containerView.traitCollection.horizontalSizeClass == .regular