[ios] fix crash on auth controller

This commit is contained in:
Aleksey Belousov 2018-05-23 21:09:31 +03:00 committed by yoksnod
parent bde74d7240
commit 3bcd71a269
4 changed files with 46 additions and 51 deletions

View file

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13771" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14109" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13772"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
@ -21,7 +21,7 @@
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT" propertyAccessControl="none">
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
@ -44,8 +44,9 @@
<constraint firstItem="2ia-hi-UhQ" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="zOH-o1-384"/>
</constraints>
<viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
<point key="canvasLocation" x="10" y="54"/>
</view>
<view contentMode="scaleToFill" id="JS4-5h-4t1" customClass="BMCPermissionsHeader" customModule="maps_me" customModuleProvider="target" propertyAccessControl="all">
<view contentMode="scaleToFill" id="JS4-5h-4t1" customClass="BMCPermissionsHeader" customModule="maps_me" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="375" height="48"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
@ -82,9 +83,10 @@
<constraints>
<constraint firstAttribute="bottom" secondItem="n2n-JX-PVD" secondAttribute="bottom" id="16J-5N-167"/>
<constraint firstAttribute="trailing" secondItem="n2n-JX-PVD" secondAttribute="trailing" id="1Kk-We-iJr"/>
<constraint firstItem="HgY-nM-JMn" firstAttribute="leading" secondItem="lfK-mr-B7Y" secondAttribute="leading" constant="16" id="AR8-Fj-h1S"/>
<constraint firstItem="cae-1g-tnD" firstAttribute="top" secondItem="lfK-mr-B7Y" secondAttribute="top" id="Abh-kc-zx4"/>
<constraint firstItem="n2n-JX-PVD" firstAttribute="leading" secondItem="lfK-mr-B7Y" secondAttribute="leading" id="DnB-7Y-lie"/>
<constraint firstItem="cae-1g-tnD" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="HgY-nM-JMn" secondAttribute="trailing" constant="4" id="JxT-EF-AfH"/>
<constraint firstItem="cae-1g-tnD" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="HgY-nM-JMn" secondAttribute="trailing" priority="999" constant="4" id="JxT-EF-AfH"/>
<constraint firstItem="HgY-nM-JMn" firstAttribute="centerY" secondItem="lfK-mr-B7Y" secondAttribute="centerY" id="NMx-gW-Qgc"/>
<constraint firstAttribute="trailing" secondItem="cae-1g-tnD" secondAttribute="trailing" id="hgt-qC-DUY"/>
<constraint firstAttribute="bottom" secondItem="cae-1g-tnD" secondAttribute="bottom" id="k7O-5e-giN"/>
@ -97,7 +99,6 @@
<constraint firstItem="lfK-mr-B7Y" firstAttribute="top" secondItem="qAR-ec-71L" secondAttribute="top" id="W1B-S9-ibc"/>
<constraint firstItem="qAR-ec-71L" firstAttribute="bottom" secondItem="lfK-mr-B7Y" secondAttribute="bottom" id="bKs-eE-2xZ"/>
<constraint firstItem="qAR-ec-71L" firstAttribute="trailing" secondItem="lfK-mr-B7Y" secondAttribute="trailing" id="ihj-Ul-4Pq"/>
<constraint firstItem="HgY-nM-JMn" firstAttribute="leading" secondItem="qAR-ec-71L" secondAttribute="leading" constant="16" id="j4b-bK-ETs"/>
</constraints>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<viewLayoutGuide key="safeArea" id="qAR-ec-71L"/>
@ -105,9 +106,9 @@
<outlet property="button" destination="cae-1g-tnD" id="hql-xY-t8w"/>
<outlet property="label" destination="HgY-nM-JMn" id="N0S-Nq-WPq"/>
</connections>
<point key="canvasLocation" x="483" y="-256"/>
<point key="canvasLocation" x="482.5" y="-256"/>
</view>
<view contentMode="scaleToFill" id="7vF-P7-dID" customClass="BMCCategoriesHeader" customModule="maps_me" customModuleProvider="target" propertyAccessControl="all">
<view contentMode="scaleToFill" id="7vF-P7-dID" customClass="BMCCategoriesHeader" customModule="maps_me" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="375" height="48"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
@ -134,6 +135,7 @@
<constraint firstAttribute="trailing" secondItem="JVu-ay-TFe" secondAttribute="trailing" id="KIx-2a-nNg"/>
<constraint firstItem="1W2-mD-BVK" firstAttribute="centerY" secondItem="sv4-Wg-K1m" secondAttribute="centerY" id="OAv-W6-rZH"/>
<constraint firstAttribute="bottom" secondItem="JVu-ay-TFe" secondAttribute="bottom" id="TkC-ge-8MO"/>
<constraint firstItem="1W2-mD-BVK" firstAttribute="leading" secondItem="sv4-Wg-K1m" secondAttribute="leading" constant="16" id="cad-o8-xir"/>
<constraint firstItem="JVu-ay-TFe" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="1W2-mD-BVK" secondAttribute="trailing" constant="4" id="gDO-lh-aI1"/>
</constraints>
</view>
@ -141,7 +143,6 @@
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="sv4-Wg-K1m" firstAttribute="leading" secondItem="8ge-Sy-Y71" secondAttribute="leading" id="5Lw-3V-bwA"/>
<constraint firstItem="1W2-mD-BVK" firstAttribute="leading" secondItem="8ge-Sy-Y71" secondAttribute="leading" constant="16" id="Siv-i4-TtA"/>
<constraint firstItem="8ge-Sy-Y71" firstAttribute="bottom" secondItem="sv4-Wg-K1m" secondAttribute="bottom" id="Sn0-II-lrv"/>
<constraint firstItem="8ge-Sy-Y71" firstAttribute="trailing" secondItem="sv4-Wg-K1m" secondAttribute="trailing" id="TX6-c7-3GF"/>
<constraint firstItem="sv4-Wg-K1m" firstAttribute="top" secondItem="8ge-Sy-Y71" secondAttribute="top" id="fpS-lQ-tKT"/>
@ -154,7 +155,7 @@
</connections>
<point key="canvasLocation" x="483" y="-148"/>
</view>
<view contentMode="scaleToFill" id="DhR-7O-ccQ" propertyAccessControl="all">
<view contentMode="scaleToFill" id="DhR-7O-ccQ">
<rect key="frame" x="0.0" y="0.0" width="375" height="24"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
@ -162,7 +163,7 @@
<viewLayoutGuide key="safeArea" id="Iuf-Mb-Pmk"/>
<point key="canvasLocation" x="483" y="-50"/>
</view>
<view contentMode="scaleToFill" id="G0o-Op-zPp" customClass="BMCNotificationsHeader" customModule="maps_me" customModuleProvider="target" propertyAccessControl="all">
<view contentMode="scaleToFill" id="G0o-Op-zPp" customClass="BMCNotificationsHeader" customModule="maps_me" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="375" height="48"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>

View file

@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13771" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14109" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13772"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="123" id="KGk-i7-Jjw" customClass="BMCPermissionsPendingCell" customModule="maps_me" customModuleProvider="target" propertyAccessControl="all">
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="123" id="KGk-i7-Jjw" customClass="BMCPermissionsPendingCell" customModule="maps_me" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="320" height="93"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
@ -37,7 +37,6 @@
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="bottom" secondItem="XML-iy-vLE" secondAttribute="bottom" constant="16" id="3Og-vq-u6d"/>
<constraint firstAttribute="bottom" secondItem="Myl-MN-cW3" secondAttribute="bottom" priority="500" constant="16" id="GFb-GN-jZJ"/>
<constraint firstItem="XML-iy-vLE" firstAttribute="top" secondItem="Myl-MN-cW3" secondAttribute="bottom" constant="16" id="Q0M-Au-m9X"/>
<constraint firstItem="Myl-MN-cW3" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="UBL-jH-CoQ"/>
<constraint firstItem="XML-iy-vLE" firstAttribute="centerX" secondItem="H2p-sc-9uM" secondAttribute="centerX" id="gav-SX-OOo"/>

View file

@ -21,14 +21,6 @@ final class AuthorizationViewController: MWMViewController {
}
}
@IBOutlet private weak var tapView: UIView! {
didSet {
iPadSpecific {
tapView.removeFromSuperview()
}
}
}
@IBOutlet private weak var contentView: UIView! {
didSet {
contentView.backgroundColor = UIColor.white()
@ -183,10 +175,14 @@ final class AuthorizationViewController: MWMViewController {
@IBOutlet private weak var latestNewsTextView: UITextView! {
didSet {
latestNewsTextView.text = L("sign_agree_news_gdpr")
latestNewsTextView.textColor = UIColor.blackPrimaryText()
let text = L("sign_agree_news_gdpr")
let attributes: [NSAttributedStringKey : Any] = [NSAttributedStringKey.font: UIFont.regular16(),
NSAttributedStringKey.foregroundColor: UIColor.blackPrimaryText()]
latestNewsTextView.attributedText = NSAttributedString(string: text, attributes: attributes)
}
}
@IBOutlet private weak var topToContentConstraint: NSLayoutConstraint!
typealias SuccessHandler = (MWMSocialTokenType) -> Void
typealias ErrorHandler = (MWMAuthorizationError) -> Void
@ -197,12 +193,6 @@ final class AuthorizationViewController: MWMViewController {
private let errorHandler: ErrorHandler?
private let completionHandler: CompletionHandler?
private func addConstraints(v1: UIView, v2: UIView) {
[NSLayoutAttribute.top, .bottom, .left, .right].forEach {
NSLayoutConstraint(item: v1, attribute: $0, relatedBy: .equal, toItem: v2, attribute: $0, multiplier: 1, constant: 0).isActive = true
}
}
@objc
init(barButtonItem: UIBarButtonItem?, sourceComponent: MWMAuthorizationSource, successHandler: SuccessHandler? = nil, errorHandler: ErrorHandler? = nil, completionHandler: CompletionHandler? = nil) {
self.sourceComponent = sourceComponent
@ -230,6 +220,13 @@ final class AuthorizationViewController: MWMViewController {
required init?(coder _: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func viewDidLoad() {
super.viewDidLoad()
iPadSpecific {
topToContentConstraint.isActive = false
}
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
@ -237,7 +234,9 @@ final class AuthorizationViewController: MWMViewController {
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
preferredContentSize = contentView.size
iPadSpecific {
preferredContentSize = contentView.systemLayoutSizeFitting(preferredContentSize, withHorizontalFittingPriority: .fittingSizeLevel, verticalFittingPriority: .fittingSizeLevel)
}
}
@IBAction func onCancel() {
@ -306,3 +305,9 @@ extension AuthorizationViewController: UITextViewDelegate {
return false;
}
}
extension AuthorizationViewController: UIGestureRecognizerDelegate {
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
return !contentView.point(inside: touch.location(in: contentView), with: nil)
}
}

View file

@ -20,30 +20,19 @@
<outlet property="privacyPolicyCheck" destination="33D-0u-y3N" id="kAN-wB-yUl"/>
<outlet property="privacyPolicyTextView" destination="LhW-gs-XN9" id="HWt-AO-vvH"/>
<outlet property="separator" destination="hWD-aE-jYh" id="myS-1z-Saw"/>
<outlet property="tapView" destination="5kf-Pd-KAZ" id="QD3-Pa-zgR"/>
<outlet property="termsOfUseCheck" destination="3cN-Qb-mdM" id="lk9-6H-kB5"/>
<outlet property="termsOfUseTextView" destination="PBR-9l-2Gh" id="aBv-qx-F9h"/>
<outlet property="textLabel" destination="0EA-1u-hvB" id="oDy-2V-Lrx"/>
<outlet property="titleLabel" destination="LFT-Lb-6jj" id="uQG-BI-EAe"/>
<outlet property="topToContentConstraint" destination="ISc-Du-Svk" id="BA2-22-dk0"/>
<outlet property="view" destination="iN0-l3-epB" id="6le-MR-NDK"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="iN0-l3-epB" customClass="SolidTouchView">
<view contentMode="scaleToFill" id="iN0-l3-epB">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<view contentMode="scaleToFill" verticalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="5kf-Pd-KAZ">
<rect key="frame" x="0.0" y="0.0" width="375" height="212.5"/>
<color key="backgroundColor" white="0.0" alpha="0.19983411815068494" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<gestureRecognizers/>
<constraints>
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="40" id="NYl-aG-vKs"/>
</constraints>
<connections>
<outletCollection property="gestureRecognizers" destination="h3R-bf-65K" appends="YES" id="el6-fa-sPv"/>
</connections>
</view>
<view contentMode="scaleToFill" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="mb9-vK-FLE">
<rect key="frame" x="0.0" y="212.5" width="375" height="454.5"/>
<subviews>
@ -60,7 +49,7 @@
<constraint firstAttribute="height" constant="1" id="KJA-Gs-fVA"/>
</constraints>
</view>
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" verticalHuggingPriority="750" verticalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="C1g-0v-suZ">
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" verticalHuggingPriority="750" verticalCompressionResistancePriority="250" bounces="NO" bouncesZoom="NO" translatesAutoresizingMaskIntoConstraints="NO" id="C1g-0v-suZ">
<rect key="frame" x="0.0" y="45" width="375" height="410"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eSu-cK-AZG">
@ -295,18 +284,19 @@
<gestureRecognizers/>
<constraints>
<constraint firstAttribute="bottom" secondItem="mb9-vK-FLE" secondAttribute="bottom" id="Dma-Bm-O11"/>
<constraint firstAttribute="trailing" secondItem="5kf-Pd-KAZ" secondAttribute="trailing" id="MP9-cM-ON8"/>
<constraint firstItem="mb9-vK-FLE" firstAttribute="top" relation="greaterThanOrEqual" secondItem="iN0-l3-epB" secondAttribute="top" constant="40" id="ISc-Du-Svk"/>
<constraint firstItem="mb9-vK-FLE" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="S7z-xe-BcP"/>
<constraint firstItem="5kf-Pd-KAZ" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="V7Y-js-5JA"/>
<constraint firstAttribute="trailing" secondItem="mb9-vK-FLE" secondAttribute="trailing" id="cjh-uT-fAL"/>
<constraint firstItem="5kf-Pd-KAZ" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="mhC-Cp-zLW"/>
<constraint firstItem="mb9-vK-FLE" firstAttribute="top" secondItem="5kf-Pd-KAZ" secondAttribute="bottom" id="pkl-0y-Ozq"/>
</constraints>
<connections>
<outletCollection property="gestureRecognizers" destination="h3R-bf-65K" appends="YES" id="8sz-cx-4Za"/>
</connections>
<point key="canvasLocation" x="33.5" y="53.5"/>
</view>
<tapGestureRecognizer id="h3R-bf-65K">
<tapGestureRecognizer cancelsTouchesInView="NO" id="h3R-bf-65K">
<connections>
<action selector="onCancel" destination="-1" id="xbp-Y6-A46"/>
<outlet property="delegate" destination="-1" id="CFc-rf-awe"/>
</connections>
</tapGestureRecognizer>
</objects>