Merge pull request #2500 from VladiMihaylenko/vm-master

[ios] Osm auth alert and removed legacy code.
This commit is contained in:
igrechuhin 2016-03-24 17:16:54 +03:00
commit ea4ef7f4fd
60 changed files with 547 additions and 574 deletions

View file

@ -34,6 +34,7 @@
- (void)presentDownloaderInternalErrorAlertWithOkBlock:(nonnull TMWMVoidBlock)okBlock cancelBlock:(nonnull TMWMVoidBlock)cancelBlock;
- (void)presentDownloaderNeedUpdateAlertWithOkBlock:(nonnull TMWMVoidBlock)okBlock;
- (void)presentEditorViralAlert;
- (void)presentOsmAuthAlert;
- (void)closeAlertWithCompletion:(nullable TMWMVoidBlock)completion;
- (nonnull instancetype)init __attribute__((unavailable("call -initWithViewController: instead!")));

View file

@ -195,6 +195,11 @@ static NSString * const kAlertControllerNibIdentifier = @"MWMAlertViewController
[self displayAlert:[MWMAlert editorViralAlert]];
}
- (void)presentOsmAuthAlert
{
[self displayAlert:[MWMAlert osmAuthAlert]];
}
- (void)closeAlertWithCompletion:(nullable TMWMVoidBlock)completion
{
MWMAlert * alert = self.view.subviews.firstObject;

View file

@ -32,6 +32,7 @@
+ (MWMAlert *)downloaderInternalErrorAlertWithOkBlock:(TMWMVoidBlock)okBlock cancelBlock:(TMWMVoidBlock)cancelBlock;
+ (MWMAlert *)downloaderNeedUpdateAlertWithOkBlock:(TMWMVoidBlock)okBlock;
+ (MWMAlert *)editorViralAlert;
+ (MWMAlert *)osmAuthAlert;
- (void)close;
- (void)setNeedsCloseAlertAfterEnterBackground;

View file

@ -6,6 +6,7 @@
#import "MWMEditorViralAlert.h"
#import "MWMFacebookAlert.h"
#import "MWMLocationAlert.h"
#import "MWMOsmAuthAlert.h"
#import "MWMPedestrianShareAlert.h"
#import "MWMRateAlert.h"
#import "MWMRoutingDisclaimerAlert.h"
@ -156,6 +157,11 @@
return [MWMEditorViralAlert alert];
}
+ (MWMAlert *)osmAuthAlert
{
return [MWMOsmAuthAlert alert];
}
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)orientation
{
// Should override this method if you want custom relayout after rotation.

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9532" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10116" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<deployment version="2048" identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9530"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
</dependencies>
<customFonts key="customFonts">
<mutableArray key="HelveticaNeue.ttc">

View file

@ -0,0 +1,7 @@
#import "MWMAlert.h"
@interface MWMOsmAuthAlert : MWMAlert
+ (instancetype)alert;
@end

View file

@ -0,0 +1,54 @@
#import "MWMAlertViewController.h"
#import "MWMOsmAuthAlert.h"
#import "Statistics.h"
#include "editor/osm_auth.hpp"
extern NSString * const kMap2OsmLoginSegue;
extern NSString * const kMap2FBLoginSegue;
extern NSString * const kMap2GoogleLoginSegue;
@implementation MWMOsmAuthAlert
+ (instancetype)alert
{
MWMOsmAuthAlert * alert = [[[NSBundle mainBundle] loadNibNamed:[MWMOsmAuthAlert className] owner:nil options:nil] firstObject];
return alert;
}
- (IBAction)facebookTap
{
[Statistics logEvent:kStatEditorAuthRequets withParameters:@{kStatValue : kStatFacebook}];
[self close];
[self.alertController.ownerViewController performSegueWithIdentifier:kMap2FBLoginSegue sender:nil];
}
- (IBAction)googleTap
{
[Statistics logEvent:kStatEditorAuthRequets withParameters:@{kStatValue : kStatGoogle}];
[self close];
[self.alertController.ownerViewController performSegueWithIdentifier:kMap2GoogleLoginSegue sender:nil];
}
- (IBAction)osmTap
{
[Statistics logEvent:kStatEditorAuthRequets withParameters:@{kStatValue : kStatOSM}];
[self close];
[self.alertController.ownerViewController performSegueWithIdentifier:kMap2OsmLoginSegue sender:nil];
}
- (IBAction)signUpTap
{
[self close];
[Statistics logEvent:kStatEditorRegRequest];
NSURL * url = [NSURL URLWithString:@(osm::OsmOAuth::ServerAuth().GetRegistrationURL().c_str())];
[[UIApplication sharedApplication] openURL:url];
}
- (IBAction)closeTap
{
[Statistics logEvent:kStatEditorAuthDeclinedByUser];
[self close];
}
@end

View file

@ -0,0 +1,169 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10116" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<deployment version="2048" identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
<capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
</dependencies>
<customFonts key="customFonts">
<mutableArray key="HelveticaNeue.ttc">
<string>HelveticaNeue-Medium</string>
</mutableArray>
</customFonts>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="J1a-qv-gDF" customClass="MWMOsmAuthAlert">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TM8-yS-nAN" userLabel="ContainerView">
<rect key="frame" x="20" y="87" width="280" height="393"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zn5-ic-jDO" userLabel="Done" customClass="MWMButton">
<rect key="frame" x="240" y="0.0" width="40" height="40"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="G1f-X1-bIC"/>
<constraint firstAttribute="width" constant="40" id="H82-kb-Oje"/>
</constraints>
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/>
<state key="normal" image="ic_cancel">
<color key="titleColor" red="0.01176470588" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/>
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="coloringName" value="MWMBlack"/>
</userDefinedRuntimeAttributes>
<connections>
<action selector="closeTap" destination="J1a-qv-gDF" eventType="touchUpInside" id="vUi-Os-Czy"/>
</connections>
</button>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="img_login" translatesAutoresizingMaskIntoConstraints="NO" id="RxI-RO-UVT">
<rect key="frame" x="80" y="20" width="120" height="120"/>
<constraints>
<constraint firstAttribute="width" constant="120" id="2hS-zF-nc0"/>
<constraint firstAttribute="width" secondItem="RxI-RO-UVT" secondAttribute="height" multiplier="1:1" id="FhS-SS-k9B"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iX9-ov-Ks7" userLabel="Title">
<rect key="frame" x="20" y="140" width="240" height="61"/>
<constraints>
<constraint firstAttribute="width" constant="240" id="6y2-gu-OZJ"/>
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="30" id="uAq-DT-bJU"/>
</constraints>
<string key="text">Войдите, чтобы ваши изменения увидели
другие пользователи</string>
<fontDescription key="fontDescription" name="HelveticaNeue-Medium" family="Helvetica Neue" pointSize="17"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackPrimaryText"/>
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="medium17"/>
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="login_to_make_edits_visible"/>
</userDefinedRuntimeAttributes>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="1Oa-Ks-27P" userLabel="Google">
<rect key="frame" x="20" y="221" width="115" height="44"/>
<constraints>
<constraint firstAttribute="width" constant="115" id="Wxi-Ef-iFz"/>
<constraint firstAttribute="height" constant="44" id="jZt-Vg-20q"/>
</constraints>
<state key="normal" image="google_btn"/>
<state key="highlighted" image="google_btn_highlighted"/>
<connections>
<action selector="googleTap" destination="J1a-qv-gDF" eventType="touchUpInside" id="W4r-Gx-ylI"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="o9z-GX-feY" userLabel="Facebook">
<rect key="frame" x="145" y="221" width="115" height="44"/>
<constraints>
<constraint firstAttribute="width" constant="115" id="OxE-Ml-Dmd"/>
<constraint firstAttribute="height" constant="44" id="fmf-GO-Qsi"/>
</constraints>
<state key="normal" image="facebook_btn"/>
<state key="highlighted" image="facebook_btn_highlighted"/>
<connections>
<action selector="facebookTap" destination="J1a-qv-gDF" eventType="touchUpInside" id="l5P-Sg-dHo"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Gt7-p9-qTx" userLabel="OSM" customClass="MWMButton">
<rect key="frame" x="20" y="275" width="240" height="44"/>
<constraints>
<constraint firstAttribute="width" constant="240" id="FrF-vf-pus"/>
<constraint firstAttribute="height" constant="44" id="U6r-o8-OzE"/>
</constraints>
<state key="normal" image="osm_btn_light"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="imageName" value="osm_btn"/>
</userDefinedRuntimeAttributes>
<connections>
<action selector="osmTap" destination="J1a-qv-gDF" eventType="touchUpInside" id="6yw-kg-9NC"/>
</connections>
</button>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="y0p-Db-vW6">
<rect key="frame" x="20" y="329" width="240" height="44"/>
<constraints>
<constraint firstAttribute="height" constant="44" id="I2g-A3-lui"/>
<constraint firstAttribute="width" constant="240" id="UMB-F0-ZFe"/>
</constraints>
<state key="normal" title="Sign Up Now"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="linkBlue"/>
<userDefinedRuntimeAttribute type="string" keyPath="textColorHighlightedName" value="linkBlueHighlighted"/>
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="clearColor"/>
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="register_at_openstreetmap"/>
<userDefinedRuntimeAttribute type="color" keyPath="layer.borderUIColor">
<color key="value" red="0.11764705882352941" green="0.58823529411764708" blue="0.94117647058823528" alpha="1" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<connections>
<action selector="signUpTap" destination="J1a-qv-gDF" eventType="touchUpInside" id="hOM-N1-C34"/>
</connections>
</button>
</subviews>
<constraints>
<constraint firstAttribute="trailing" secondItem="o9z-GX-feY" secondAttribute="trailing" constant="20" id="1gG-1g-DTw"/>
<constraint firstItem="RxI-RO-UVT" firstAttribute="centerX" secondItem="TM8-yS-nAN" secondAttribute="centerX" id="60Z-9U-HTk"/>
<constraint firstItem="Gt7-p9-qTx" firstAttribute="top" secondItem="1Oa-Ks-27P" secondAttribute="bottom" constant="10" id="7Q2-cf-yXi"/>
<constraint firstItem="Gt7-p9-qTx" firstAttribute="centerX" secondItem="TM8-yS-nAN" secondAttribute="centerX" id="80J-3h-oMs"/>
<constraint firstItem="y0p-Db-vW6" firstAttribute="centerX" secondItem="TM8-yS-nAN" secondAttribute="centerX" id="8nN-We-KX6"/>
<constraint firstItem="RxI-RO-UVT" firstAttribute="top" secondItem="TM8-yS-nAN" secondAttribute="top" constant="20" id="9pC-3a-sLm"/>
<constraint firstItem="iX9-ov-Ks7" firstAttribute="top" secondItem="RxI-RO-UVT" secondAttribute="bottom" id="DqY-Hq-3rT"/>
<constraint firstItem="y0p-Db-vW6" firstAttribute="top" secondItem="Gt7-p9-qTx" secondAttribute="bottom" constant="10" id="FXY-gL-ECF"/>
<constraint firstItem="1Oa-Ks-27P" firstAttribute="leading" secondItem="TM8-yS-nAN" secondAttribute="leading" constant="20" id="GWt-23-wjh"/>
<constraint firstItem="zn5-ic-jDO" firstAttribute="top" secondItem="TM8-yS-nAN" secondAttribute="top" id="QZf-zp-tkp"/>
<constraint firstAttribute="trailing" secondItem="zn5-ic-jDO" secondAttribute="trailing" id="aRL-nT-g07"/>
<constraint firstAttribute="width" constant="280" id="b3y-ro-3LQ"/>
<constraint firstItem="iX9-ov-Ks7" firstAttribute="centerX" secondItem="TM8-yS-nAN" secondAttribute="centerX" id="fJQ-Dc-Lx5"/>
<constraint firstItem="o9z-GX-feY" firstAttribute="top" secondItem="iX9-ov-Ks7" secondAttribute="bottom" constant="20" id="qRG-5y-Aup"/>
<constraint firstAttribute="bottom" secondItem="y0p-Db-vW6" secondAttribute="bottom" constant="20" id="rjz-5m-l3e"/>
<constraint firstItem="1Oa-Ks-27P" firstAttribute="top" secondItem="iX9-ov-Ks7" secondAttribute="bottom" constant="20" id="ucL-aV-J1p"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="12"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="alertBackground"/>
</userDefinedRuntimeAttributes>
</view>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="TM8-yS-nAN" firstAttribute="centerX" secondItem="J1a-qv-gDF" secondAttribute="centerX" id="rY8-Ie-aSn"/>
<constraint firstItem="TM8-yS-nAN" firstAttribute="centerY" secondItem="J1a-qv-gDF" secondAttribute="centerY" id="t5z-q7-9wM"/>
</constraints>
<point key="canvasLocation" x="305" y="172"/>
</view>
</objects>
<resources>
<image name="facebook_btn" width="115" height="44"/>
<image name="facebook_btn_highlighted" width="115" height="44"/>
<image name="google_btn" width="115" height="44"/>
<image name="google_btn_highlighted" width="115" height="44"/>
<image name="ic_cancel" width="40" height="40"/>
<image name="img_login" width="120" height="120"/>
<image name="osm_btn_light" width="240" height="44"/>
</resources>
</document>

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9531" systemVersion="15A284" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10116" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
<dependencies>
<deployment version="2048" identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
</dependencies>
<customFonts key="customFonts">
<mutableArray key="HelveticaNeue.ttc">
@ -15,7 +15,7 @@
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
<subviews>
<view opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pGZ-bY-bgx" userLabel="ContainerView">
<view opaque="NO" contentMode="scaleToFill" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="pGZ-bY-bgx" userLabel="ContainerView">
<rect key="frame" x="156" y="128" width="288" height="345"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="В MAPS.ME появилась пешеходная навигация!" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9PB-XH-zjT">
@ -63,7 +63,7 @@
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="rating_do_like_maps"/>
</userDefinedRuntimeAttributes>
</label>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WnY-H8-xZB" userLabel="Share">
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WnY-H8-xZB" userLabel="Share">
<rect key="frame" x="20" y="281" width="248" height="44"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<constraints>
@ -93,7 +93,7 @@
<action selector="shareButtonTap" destination="pWH-NL-pHM" eventType="touchUpInside" id="5Kn-q1-1CP"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="IhW-S4-r6g" userLabel="Done">
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="IhW-S4-r6g" userLabel="Done" customClass="MWMButton">
<rect key="frame" x="248" y="0.0" width="40" height="40"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/>
@ -101,6 +101,9 @@
<color key="titleColor" red="0.011764705882352941" green="0.47843137254901957" blue="1" alpha="1" colorSpace="calibratedRGB"/>
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="coloringName" value="MWMBlack"/>
</userDefinedRuntimeAttributes>
<connections>
<action selector="doneButtonTap" destination="pWH-NL-pHM" eventType="touchUpInside" id="LRz-Yf-PM8"/>
</connections>

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9531" systemVersion="15A284" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10116" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<deployment version="2048" identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
</dependencies>
<customFonts key="customFonts">
<mutableArray key="HelveticaNeue.ttc">
@ -19,7 +19,7 @@
<view opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ecm-mK-5iV" userLabel="ContainerView">
<rect key="frame" x="20" y="141" width="280" height="284"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8dQ-Vo-xwe" userLabel="Done">
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8dQ-Vo-xwe" userLabel="Done" customClass="MWMButton">
<rect key="frame" x="240" y="0.0" width="40" height="40"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<constraints>
@ -31,6 +31,9 @@
<color key="titleColor" red="0.01176470588" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/>
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="coloringName" value="MWMBlack"/>
</userDefinedRuntimeAttributes>
<connections>
<action selector="doneTap" destination="xqS-d4-Cm7" eventType="touchUpInside" id="l7v-bf-FLp"/>
</connections>

View file

@ -19,8 +19,6 @@ BOOL AuthorizationHaveCredentials();
// Returns empty key and secret if user has not beed authorized.
osm::TKeySecret AuthorizationGetCredentials();
void AuthorizationSetUserSkip();
BOOL AuthorizationIsUserSkip();
void AuthorizationSetNeedCheck(BOOL needCheck);
BOOL AuthorizationIsNeedCheck();
NSString * OSMUserName();

View file

@ -11,7 +11,6 @@ namespace osm_auth_ios
NSString * const kOSMRequestToken = @"OSMRequestToken";
NSString * const kOSMRequestSecret = @"OSMRequestSecret";
NSString * const kAuthUserSkip = @"AuthUserSkip";
NSString * const kAuthNeedCheck = @"AuthNeedCheck";
NSString * const kOSMUserName = @"UDOsmUserName";
@ -118,18 +117,6 @@ osm::TKeySecret AuthorizationGetCredentials()
return {};
}
void AuthorizationSetUserSkip()
{
NSUserDefaults * ud = [NSUserDefaults standardUserDefaults];
[ud setObject:[NSDate date] forKey:kAuthUserSkip];
[ud synchronize];
}
BOOL AuthorizationIsUserSkip()
{
return [[NSUserDefaults standardUserDefaults] objectForKey:kAuthUserSkip] != nil;
}
void AuthorizationSetNeedCheck(BOOL needCheck)
{
NSUserDefaults * ud = [NSUserDefaults standardUserDefaults];

View file

@ -2,6 +2,4 @@
@interface MWMAuthorizationLoginViewController : MWMViewController
@property (nonatomic) BOOL isCalledFromSettings;
@end

View file

@ -40,8 +40,6 @@ using namespace osm_auth_ios;
@property (weak, nonatomic) IBOutlet UIImageView * googleImage;
@property (weak, nonatomic) IBOutlet UIImageView * facebookImage;
@property (weak, nonatomic) IBOutlet UIBarButtonItem * leftBarButton;
@property (weak, nonatomic) IBOutlet UIView * profileView;
@property (weak, nonatomic) IBOutlet UIView * localChangesView;
@property (weak, nonatomic) IBOutlet UILabel * localChangesLabel;
@ -75,16 +73,9 @@ using namespace osm_auth_ios;
if (AuthorizationHaveCredentials())
[self configHaveAuth];
else
[self configNoAuth:AuthorizationIsNeedCheck() && !AuthorizationIsUserSkip()];
[self configNoAuth];
[self configChanges];
UINavigationBar * navBar = self.navigationController.navigationBar;
navBar.barStyle = UIBarStyleBlack;
navBar.tintColor = [UIColor clearColor];
navBar.barTintColor = [UIColor clearColor];
navBar.shadowImage = [[UIImage alloc] init];
[navBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
navBar.translucent = YES;
AuthorizationSetNeedCheck(NO);
}
@ -130,10 +121,9 @@ using namespace osm_auth_ios;
self.googleImage.hidden = YES;
self.facebookImage.hidden = YES;
self.logoutButton.hidden = NO;
self.leftBarButton.image = [UIImage imageNamed:@"ic_nav_bar_back"];
}
- (void)configNoAuth:(BOOL)isAfterFirstEdit
- (void)configNoAuth
{
self.message.hidden = NO;
self.loginGoogleButton.hidden = NO;
@ -144,18 +134,8 @@ using namespace osm_auth_ios;
self.googleImage.hidden = NO;
self.facebookImage.hidden = NO;
self.logoutButton.hidden = YES;
if (isAfterFirstEdit)
{
self.title = L(@"thank_you").capitalizedString;
self.message.text = L(@"you_have_edited_your_first_object");
self.leftBarButton.image = [UIImage imageNamed:@"ic_nav_bar_close"];
}
else
{
self.title = L(@"profile").capitalizedString;
self.message.text = L(@"login_and_edit_map_motivation_message");
self.leftBarButton.image = [UIImage imageNamed:@"ic_nav_bar_back"];
}
self.title = L(@"profile").capitalizedString;
self.message.text = L(@"login_and_edit_map_motivation_message");
}
- (void)configChanges
@ -218,40 +198,36 @@ using namespace osm_auth_ios;
- (IBAction)loginGoogle
{
[Statistics logEvent:kStatEditorAuthRequets withParameters:@{kStatValue : kStatGoogle}];
[self performOnlineAction:^
{
[Statistics logEvent:kStatEventName(kStatAuthorization, kStatGoogle)];
[Statistics logEvent:kStatEditorAuthRequets withParameters:@{kStatValue : kStatGoogle}];
[self performSegueWithIdentifier:kWebViewAuthSegue sender:self.loginGoogleButton];
}];
}
- (IBAction)loginFacebook
{
[Statistics logEvent:kStatEditorAuthRequets withParameters:@{kStatValue : kStatFacebook}];
[self performOnlineAction:^
{
[Statistics logEvent:kStatEventName(kStatAuthorization, kStatFacebook)];
[Statistics logEvent:kStatEditorAuthRequets withParameters:@{kStatValue : kStatFacebook}];
[self performSegueWithIdentifier:kWebViewAuthSegue sender:self.loginFacebookButton];
}];
}
- (IBAction)loginOSM
{
[Statistics logEvent:kStatEditorAuthRequets withParameters:@{kStatValue : kStatOSM}];
[self performOnlineAction:^
{
[Statistics logEvent:kStatEventName(kStatAuthorization, kStatOSM)];
[Statistics logEvent:kStatEditorAuthRequets withParameters:@{kStatValue : kStatOSM}];
[self performSegueWithIdentifier:kOSMAuthSegue sender:self.loginOSMButton];
}];
}
- (IBAction)signup
{
[Statistics logEvent:kStatEditorRegRequest];
[self performOnlineAction:^
{
[Statistics logEvent:kStatEventName(kStatAuthorization, kStatSignup)];
[Statistics logEvent:kStatEditorRegRequest];
OsmOAuth const auth = OsmOAuth::ServerAuth();
NSURL * url = [NSURL URLWithString:@(auth.GetRegistrationURL().c_str())];
[[UIApplication sharedApplication] openURL:url];
@ -271,11 +247,6 @@ using namespace osm_auth_ios;
- (IBAction)cancel
{
if (!self.isCalledFromSettings)
{
[Statistics logEvent:kStatEditorAuthDeclinedByUser];
AuthorizationSetUserSkip();
}
UINavigationController * parentNavController = self.navigationController.navigationController;
if (parentNavController)
[parentNavController popViewControllerAnimated:YES];

View file

@ -1,5 +0,0 @@
#import "MWMViewController.h"
@interface MWMAuthorizationSignupViewController : MWMViewController
@end

View file

@ -1,160 +0,0 @@
#import "MWMAuthorizationCommon.h"
#import "MWMAuthorizationSignupViewController.h"
#import "MWMAuthorizationWebViewLoginViewController.h"
#import "UITextField+RuntimeAttributes.h"
typedef NS_OPTIONS(NSUInteger, MWMFieldCorrect)
{
MWMFieldCorrectNO = 0,
MWMFieldCorrectEmail = 1 << 0,
MWMFieldCorrectLogin = 1 << 1,
MWMFieldCorrectPassword = 1 << 2,
MWMFieldCorrectAll = MWMFieldCorrectEmail | MWMFieldCorrectLogin | MWMFieldCorrectPassword
};
using namespace osm_auth_ios;
@interface MWMAuthorizationSignupViewController () <UITextFieldDelegate>
@property (weak, nonatomic) IBOutlet UIButton * signupGoogleButton;
@property (weak, nonatomic) IBOutlet UIButton * signupFacebookButton;
@property (weak, nonatomic) IBOutlet UIButton * signupOSMButton;
@property (weak, nonatomic) IBOutlet UIButton * signupOSMSiteButton;
@property (weak, nonatomic) IBOutlet UITextField * emailTextField;
@property (weak, nonatomic) IBOutlet UITextField * loginTextField;
@property (weak, nonatomic) IBOutlet UITextField * passwordTextField;
@property (nonatomic) MWMFieldCorrect isCorrect;
@end
@implementation MWMAuthorizationSignupViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.title = L(@"sign_up");
AuthorizationConfigButton(self.signupGoogleButton, AuthorizationButtonType::AuthorizationButtonTypeGoogle);
AuthorizationConfigButton(self.signupFacebookButton, AuthorizationButtonType::AuthorizationButtonTypeFacebook);
AuthorizationConfigButton(self.signupOSMButton, AuthorizationButtonType::AuthorizationButtonTypeOSM);
self.isCorrect = MWMFieldCorrectNO;
}
- (BOOL)shouldAutorotate
{
return NO;
}
- (void)setSignupOSMButtonEnabled:(BOOL)enabled
{
self.signupOSMButton.enabled = enabled;
CALayer * layer = self.signupOSMButton.layer;
layer.borderColor =
(enabled ? AuthorizationButtonBackgroundColor(AuthorizationButtonType::AuthorizationButtonTypeOSM)
: [UIColor clearColor])
.CGColor;
}
#pragma mark - UITextFieldDelegate
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString * newString =
[textField.text stringByReplacingCharactersInRange:range withString:string];
BOOL const isValid = [textField.validator validateString:newString];
if ([textField isEqual:self.emailTextField])
{
if (isValid)
self.isCorrect |= MWMFieldCorrectEmail;
else
self.isCorrect &= ~MWMFieldCorrectEmail;
}
if ([textField isEqual:self.loginTextField])
{
if (isValid)
self.isCorrect |= MWMFieldCorrectLogin;
else
self.isCorrect &= ~MWMFieldCorrectLogin;
}
else if ([textField isEqual:self.passwordTextField])
{
if (isValid)
self.isCorrect |= MWMFieldCorrectPassword;
else
self.isCorrect &= ~MWMFieldCorrectPassword;
}
return YES;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
if ([textField isEqual:self.emailTextField])
{
[self.loginTextField becomeFirstResponder];
}
else if ([textField isEqual:self.loginTextField])
{
[self.passwordTextField becomeFirstResponder];
}
else if ([textField isEqual:self.passwordTextField])
{
[textField resignFirstResponder];
[self signupOSM];
}
return YES;
}
#pragma mark - Actions
- (IBAction)signupGoogle
{
// TODO: Add signup
}
- (IBAction)signupFacebook
{
// TODO: Add signup
}
- (IBAction)signupOSM
{
if (!self.signupOSMButton.enabled)
return;
// TODO: Add signup
}
- (IBAction)signupOSMSite
{
// TODO: Add signup
}
- (IBAction)cancel
{
[self.navigationController popViewControllerAnimated:YES];
}
#pragma mark - Properties
- (void)setIsCorrect:(MWMFieldCorrect)isCorrect
{
_isCorrect = isCorrect;
[self setSignupOSMButtonEnabled:isCorrect == MWMFieldCorrectAll];
}
#pragma mark - Segue
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
MWMAuthorizationWebViewLoginViewController * dvc = segue.destinationViewController;
if ([self.signupGoogleButton isEqual:sender])
dvc.authType = MWMWebViewAuthorizationTypeGoogle;
else if ([self.signupFacebookButton isEqual:sender])
dvc.authType = MWMWebViewAuthorizationTypeFacebook;
}
@end

View file

@ -8,6 +8,7 @@
#import "MWMAPIBar.h"
#import "MWMAuthorizationCommon.h"
#import "MWMAuthorizationLoginViewController.h"
#import "MWMAuthorizationWebViewLoginViewController.h"
#import "MWMEditorViewController.h"
#import "MWMFirstLaunchController.h"
#import "MWMFrameworkListener.h"
@ -49,6 +50,9 @@
#import "../../../private.h"
extern NSString * const kAlohalyticsTapEventKey = @"$onClick";
extern NSString * const kMap2OsmLoginSegue = @"Map2OsmLogin";
extern NSString * const kMap2FBLoginSegue = @"Map2FBLogin";
extern NSString * const kMap2GoogleLoginSegue = @"Map2GoogleLogin";
extern char const * kAdForbiddenSettingsKey;
extern char const * kAdServerForbiddenKey;
@ -68,7 +72,6 @@ typedef NS_ENUM(NSUInteger, UserTouchesAction)
namespace
{
NSString * const kAuthorizationSegue = @"Map2AuthorizationSegue";
NSString * const kDownloaderSegue = @"Map2MapDownloaderSegue";
NSString * const kMigrationSegue = @"Map2MigrationSegue";
NSString * const kEditorSegue = @"Map2EditorSegue";
@ -686,12 +689,15 @@ NSString * const kReportSegue = @"Map2ReportSegue";
- (void)checkAuthorization
{
using namespace osm_auth_ios;
BOOL const isAfterFirstEdit = AuthorizationIsNeedCheck() && !AuthorizationHaveCredentials() && !AuthorizationIsUserSkip();
if (isAfterFirstEdit)
BOOL const isAfterEditing = AuthorizationIsNeedCheck() && !AuthorizationHaveCredentials();
if (isAfterEditing)
{
AuthorizationSetNeedCheck(NO);
if (!Platform::IsConnected())
return;
[Statistics logEvent:kStatEventName(kStatPlacePage, kStatEditTime)
withParameters:@{kStatValue : kStatAuthorization}];
[self performSegueWithIdentifier:kAuthorizationSegue sender:nil];
[self.alertController presentOsmAuthAlert];
}
}
@ -829,12 +835,6 @@ NSString * const kReportSegue = @"Map2ReportSegue";
MWMEditorViewController * dvc = segue.destinationViewController;
[dvc setFeatureToEdit:static_cast<MWMPlacePageEntity *>(sender).featureID];
}
else if ([segue.identifier isEqualToString:kAuthorizationSegue])
{
UINavigationController * dvc = segue.destinationViewController;
MWMAuthorizationLoginViewController * authVC = (MWMAuthorizationLoginViewController *)[dvc topViewController];
authVC.isCalledFromSettings = NO;
}
else if ([segue.identifier isEqualToString:kDownloaderSegue])
{
MWMMapDownloaderViewController * dvc = segue.destinationViewController;
@ -845,6 +845,16 @@ NSString * const kReportSegue = @"Map2ReportSegue";
MWMReportBaseController * dvc = segue.destinationViewController;
dvc.point = static_cast<MWMPlacePageEntity *>(sender).mercator;
}
else if ([segue.identifier isEqualToString:kMap2FBLoginSegue])
{
MWMAuthorizationWebViewLoginViewController * dvc = segue.destinationViewController;
dvc.authType = MWMWebViewAuthorizationTypeFacebook;
}
else if ([segue.identifier isEqualToString:kMap2GoogleLoginSegue])
{
MWMAuthorizationWebViewLoginViewController * dvc = segue.destinationViewController;
dvc.authType = MWMWebViewAuthorizationTypeGoogle;
}
}
#pragma mark - Properties

View file

@ -2,22 +2,25 @@
"images" : [
{
"idiom" : "universal",
"scale" : "1x",
"filename" : "ic_cancel.png"
"filename" : "ic_cancel.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x",
"filename" : "ic_cancel@2x.png"
"filename" : "ic_cancel@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x",
"filename" : "ic_cancel@3x.png"
"filename" : "ic_cancel@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
},
"properties" : {
"template-rendering-intent" : "template"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 B

After

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 B

After

Width:  |  Height:  |  Size: 597 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 B

After

Width:  |  Height:  |  Size: 985 B

View file

@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "facebook_btn.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "facebook_btn@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "facebook_btn@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 917 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "facebook_btn_highlighted.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "facebook_btn_highlighted@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "facebook_btn_highlighted@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 842 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View file

@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "google_btn.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "google_btn@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "google_btn@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

View file

@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "google_btn_highlighted.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "google_btn_highlighted@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "google_btn_highlighted@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 KiB

View file

@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "img_login.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "img_login@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "img_login@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

View file

@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "osm_btn_dark.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "osm_btn_dark@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "osm_btn_dark@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

View file

@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "osm_btn_highlighted_dark.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "osm_btn_highlighted_dark@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "osm_btn_highlighted_dark@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

View file

@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "osm_btn_highlighted_light.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "osm_btn_highlighted_light@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "osm_btn_highlighted_light@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

View file

@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "osm_btn_light.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "osm_btn_light@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "osm_btn_light@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View file

@ -87,8 +87,6 @@
3438CDF81B8616760051AA78 /* MWMSearchShowOnMapCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3438CDF61B8616760051AA78 /* MWMSearchShowOnMapCell.mm */; };
3438CDF91B8616760051AA78 /* MWMSearchShowOnMapCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3438CDF71B8616760051AA78 /* MWMSearchShowOnMapCell.xib */; };
3438CDFC1B862F5C0051AA78 /* MWMSearchContentView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3438CDFB1B862F5C0051AA78 /* MWMSearchContentView.mm */; };
3445CEAE1C2D9E08006F4226 /* MWMAuthorizationSignupViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3445CEAD1C2D9E08006F4226 /* MWMAuthorizationSignupViewController.mm */; };
3445CEAF1C2D9E08006F4226 /* MWMAuthorizationSignupViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3445CEAD1C2D9E08006F4226 /* MWMAuthorizationSignupViewController.mm */; };
34479C7C1C60C6130065D261 /* MWMFrameworkListener.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34479C781C60C6130065D261 /* MWMFrameworkListener.mm */; };
34479C7D1C60C6130065D261 /* MWMFrameworkListener.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34479C781C60C6130065D261 /* MWMFrameworkListener.mm */; };
344825931B8DBADF00757B1B /* MWMSearchDownloadViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 344825911B8DBADF00757B1B /* MWMSearchDownloadViewController.mm */; };
@ -760,6 +758,10 @@
F6BC1E4E1ACBE96100EF0360 /* FBSDKShareKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F6BC1E4C1ACBE96100EF0360 /* FBSDKShareKit.framework */; settings = {ATTRIBUTES = (Required, ); }; };
F6BC1E521ACBF98600EF0360 /* MWMFacebookAlert.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6BC1E511ACBF98600EF0360 /* MWMFacebookAlert.mm */; };
F6BC1E541ACBF9AB00EF0360 /* MWMFacebookAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6BC1E531ACBF9AB00EF0360 /* MWMFacebookAlert.xib */; };
F6BD1D201CA412920047B8E8 /* MWMOsmAuthAlert.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6BD1D1F1CA412920047B8E8 /* MWMOsmAuthAlert.mm */; };
F6BD1D211CA412920047B8E8 /* MWMOsmAuthAlert.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6BD1D1F1CA412920047B8E8 /* MWMOsmAuthAlert.mm */; };
F6BD1D231CA412E30047B8E8 /* MWMOsmAuthAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6BD1D221CA412E30047B8E8 /* MWMOsmAuthAlert.xib */; };
F6BD1D241CA412E40047B8E8 /* MWMOsmAuthAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6BD1D221CA412E30047B8E8 /* MWMOsmAuthAlert.xib */; };
F6BD33781B62400E00F2CE18 /* MWMLandscapeNavigationDashboard.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6BD33741B62400E00F2CE18 /* MWMLandscapeNavigationDashboard.xib */; };
F6BD33791B62400E00F2CE18 /* MWMNavigationDashboard.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6BD33761B62400E00F2CE18 /* MWMNavigationDashboard.mm */; };
F6BD337A1B62400E00F2CE18 /* MWMPortraitNavigationDashboard.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6BD33771B62400E00F2CE18 /* MWMPortraitNavigationDashboard.xib */; };
@ -944,8 +946,6 @@
3438CDF71B8616760051AA78 /* MWMSearchShowOnMapCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMSearchShowOnMapCell.xib; sourceTree = "<group>"; };
3438CDFA1B862F5C0051AA78 /* MWMSearchContentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMSearchContentView.h; sourceTree = "<group>"; };
3438CDFB1B862F5C0051AA78 /* MWMSearchContentView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMSearchContentView.mm; sourceTree = "<group>"; };
3445CEAC1C2D9E08006F4226 /* MWMAuthorizationSignupViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMAuthorizationSignupViewController.h; sourceTree = "<group>"; };
3445CEAD1C2D9E08006F4226 /* MWMAuthorizationSignupViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMAuthorizationSignupViewController.mm; sourceTree = "<group>"; };
34479C751C60C6130065D261 /* Framework.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Framework.cpp; sourceTree = "<group>"; };
34479C761C60C6130065D261 /* Framework.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Framework.h; sourceTree = "<group>"; };
34479C771C60C6130065D261 /* MWMFrameworkListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMFrameworkListener.h; sourceTree = "<group>"; };
@ -1444,6 +1444,9 @@
F6BC1E501ACBF98600EF0360 /* MWMFacebookAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMFacebookAlert.h; sourceTree = "<group>"; };
F6BC1E511ACBF98600EF0360 /* MWMFacebookAlert.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMFacebookAlert.mm; sourceTree = "<group>"; };
F6BC1E531ACBF9AB00EF0360 /* MWMFacebookAlert.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMFacebookAlert.xib; sourceTree = "<group>"; };
F6BD1D1E1CA412920047B8E8 /* MWMOsmAuthAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMOsmAuthAlert.h; sourceTree = "<group>"; };
F6BD1D1F1CA412920047B8E8 /* MWMOsmAuthAlert.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMOsmAuthAlert.mm; sourceTree = "<group>"; };
F6BD1D221CA412E30047B8E8 /* MWMOsmAuthAlert.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMOsmAuthAlert.xib; sourceTree = "<group>"; };
F6BD33741B62400E00F2CE18 /* MWMLandscapeNavigationDashboard.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMLandscapeNavigationDashboard.xib; sourceTree = "<group>"; };
F6BD33751B62400E00F2CE18 /* MWMNavigationDashboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMNavigationDashboard.h; sourceTree = "<group>"; };
F6BD33761B62400E00F2CE18 /* MWMNavigationDashboard.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMNavigationDashboard.mm; sourceTree = "<group>"; };
@ -2113,8 +2116,6 @@
34ABA6151C2D185B00FE1BEC /* MWMAuthorizationOSMLoginViewController.mm */,
34ABA6321C2D64D300FE1BEC /* MWMAuthorizationForgottenPasswordViewController.h */,
34ABA6331C2D64D400FE1BEC /* MWMAuthorizationForgottenPasswordViewController.mm */,
3445CEAC1C2D9E08006F4226 /* MWMAuthorizationSignupViewController.h */,
3445CEAD1C2D9E08006F4226 /* MWMAuthorizationSignupViewController.mm */,
34BF0CC81C31306300D097EB /* MWMAuthorizationCommon.h */,
34BF0CC51C31304A00D097EB /* MWMAuthorizationCommon.mm */,
342EE40F1C43DAA7009F6A49 /* MWMAuthorizationWebViewLoginViewController.h */,
@ -2625,6 +2626,7 @@
F64F195F1AB8125C006EAF7E /* CustomAlert */ = {
isa = PBXGroup;
children = (
F6BD1D1D1CA412700047B8E8 /* AuthAlert */,
F64D9C9C1C899BEA0063FA30 /* EditorAlert */,
F63774E51B59374F00BCF54D /* RoutingDisclaimerAlert */,
F6BBF2C31B4FFB56000CF8E2 /* LocationAlert */,
@ -2852,6 +2854,16 @@
path = FacebookAlert;
sourceTree = "<group>";
};
F6BD1D1D1CA412700047B8E8 /* AuthAlert */ = {
isa = PBXGroup;
children = (
F6BD1D1E1CA412920047B8E8 /* MWMOsmAuthAlert.h */,
F6BD1D1F1CA412920047B8E8 /* MWMOsmAuthAlert.mm */,
F6BD1D221CA412E30047B8E8 /* MWMOsmAuthAlert.xib */,
);
name = AuthAlert;
sourceTree = "<group>";
};
F6BD33731B62400E00F2CE18 /* Dashboard */ = {
isa = PBXGroup;
children = (
@ -3301,6 +3313,7 @@
671182E11C7F0DD400CB8177 /* countries_obsolete.txt in Resources */,
4A300ED41C6DCFD400140018 /* countries-strings in Resources */,
34BAB6EE1BB2DFCE00DB941B /* MWMBottomMenuCollectionViewPortraitCell.xib in Resources */,
F6BD1D231CA412E30047B8E8 /* MWMOsmAuthAlert.xib in Resources */,
3401CD7F1C3CF1BE0028C6F8 /* MWMEditorSwitchTableViewCell.xib in Resources */,
9DA46A121C47E95700EF52BA /* drules_proto_legacy.bin in Resources */,
4A23D15B1B8B4DD700D4EB6F /* drules_proto_clear.bin in Resources */,
@ -3468,6 +3481,7 @@
6741A9941BF340DE002C974C /* MWMPortraitNavigationDashboard.xib in Resources */,
6741A9951BF340DE002C974C /* MWMDownloaderDialogCell.xib in Resources */,
6741A9961BF340DE002C974C /* MWMSearchTableViewController.xib in Resources */,
F6BD1D241CA412E40047B8E8 /* MWMOsmAuthAlert.xib in Resources */,
6741A9971BF340DE002C974C /* MWMBookmarkDescriptionViewController.xib in Resources */,
6741A9981BF340DE002C974C /* resources-xhdpi_clear in Resources */,
347FD87E1C60B2CE002FB65E /* MWMOpeningHoursDeleteScheduleTableViewCell.xib in Resources */,
@ -3549,7 +3563,6 @@
EED10A4511F78D120095FAD4 /* MapViewController.mm in Sources */,
34CCFDD11C21945500F28959 /* MWMPlacePageOpeningHoursDayView.mm in Sources */,
F60F02E41C904E3E003A0AF6 /* MWMReportProblemExtendedController.mm in Sources */,
3445CEAE1C2D9E08006F4226 /* MWMAuthorizationSignupViewController.mm in Sources */,
F61579341AC2CE9A0032D8E9 /* MWMRateAlert.mm in Sources */,
F6BB6CC61BB18C0900DF1DF2 /* MWMRoutePointCell.m in Sources */,
A3CC2CD41A1C723900B832E1 /* LocationPredictor.mm in Sources */,
@ -3672,6 +3685,7 @@
F6B2E61F1C3D5F31005562DF /* MWMNightModeController.mm in Sources */,
F6BD33791B62400E00F2CE18 /* MWMNavigationDashboard.mm in Sources */,
F60F02E91C904F40003A0AF6 /* MWMReportBaseController.mm in Sources */,
F6BD1D201CA412920047B8E8 /* MWMOsmAuthAlert.mm in Sources */,
347FD8891C60B2CE002FB65E /* MWMOpeningHoursTimeSpanTableViewCell.mm in Sources */,
34CD81C31C91C281007D2A60 /* MWMWhatsNewNightModeController.mm in Sources */,
974D041D1977DE430081D0A7 /* LocalNotificationManager.mm in Sources */,
@ -3763,7 +3777,6 @@
6741A9B81BF340DE002C974C /* MapViewController.mm in Sources */,
34F9FB8C1C438ADB00F71201 /* MWMStreetEditorViewController.mm in Sources */,
34CCFDD21C21945500F28959 /* MWMPlacePageOpeningHoursDayView.mm in Sources */,
3445CEAF1C2D9E08006F4226 /* MWMAuthorizationSignupViewController.mm in Sources */,
6741A9B91BF340DE002C974C /* MWMRateAlert.mm in Sources */,
6741A9BA1BF340DE002C974C /* MWMRoutePointCell.m in Sources */,
6741A9BB1BF340DE002C974C /* LocationPredictor.mm in Sources */,
@ -3889,6 +3902,7 @@
F60F02E51C904E3E003A0AF6 /* MWMReportProblemExtendedController.mm in Sources */,
F60F02EA1C904F40003A0AF6 /* MWMReportBaseController.mm in Sources */,
6741AA0E1BF340DE002C974C /* AppInfo.mm in Sources */,
F6BD1D211CA412920047B8E8 /* MWMOsmAuthAlert.mm in Sources */,
6741AA0F1BF340DE002C974C /* MWMSearchHistoryMyPositionCell.mm in Sources */,
34CD81C41C91C281007D2A60 /* MWMWhatsNewNightModeController.mm in Sources */,
6741AA101BF340DE002C974C /* SelectableCell.mm in Sources */,

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10116" systemVersion="15E65" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="Wns-nH-AQU">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10116" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="Wns-nH-AQU">
<dependencies>
<deployment version="2048" identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
@ -30,10 +30,12 @@
<connections>
<segue destination="eCI-mf-eCv" kind="custom" identifier="Map2MapDownloaderSegue" customClass="MWMSegue" id="Z0Z-aU-Vrq"/>
<segue destination="F1F-MH-A36" kind="custom" identifier="Map2MigrationSegue" customClass="MWMSegue" id="iqY-sY-TLu"/>
<segue destination="2fX-ws-Tuc" kind="custom" identifier="Map2AuthorizationSegue" customClass="MWMSegue" id="CJ1-sY-Il4"/>
<segue destination="Lfa-Zp-orR" kind="custom" identifier="Map2EditorSegue" customClass="MWMSegue" id="OEF-kR-jKi"/>
<segue destination="Lgr-ZK-lGB" kind="custom" identifier="Map2ReportSegue" customClass="MWMSegue" id="gCh-Ix-flI"/>
<segue destination="QlF-CJ-cEG" kind="custom" identifier="MapToCategorySelectorSegue" customClass="MWMSegue" id="4Cc-99-mlN"/>
<segue destination="4R7-Vk-fQr" kind="custom" identifier="Map2OsmLogin" customClass="MWMSegue" id="7YC-t5-0WN"/>
<segue destination="anB-7S-ebY" kind="custom" identifier="Map2FBLogin" customClass="MWMSegue" id="nCr-QR-kY7"/>
<segue destination="anB-7S-ebY" kind="custom" identifier="Map2GoogleLogin" customClass="MWMSegue" id="sMq-pa-AId"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="cKg-Q7-bFd" userLabel="First Responder" sceneMemberID="firstResponder"/>
@ -1890,7 +1892,7 @@
<!--Authorization Login View Controller-->
<scene sceneID="brg-EE-ML1">
<objects>
<viewController id="iZ6-Zi-bkZ" customClass="MWMAuthorizationLoginViewController" sceneMemberID="viewController">
<viewController storyboardIdentifier="AuthorizationLoginViewController" id="iZ6-Zi-bkZ" customClass="MWMAuthorizationLoginViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="Yup-ms-er9"/>
<viewControllerLayoutGuide type="bottom" id="y41-VX-XhB"/>
@ -1900,10 +1902,10 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="7X8-ED-Si4">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<rect key="frame" x="0.0" y="-44" width="600" height="644"/>
</imageView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="NhV-I9-K6M">
<rect key="frame" x="16" y="66" width="568" height="112"/>
<rect key="frame" x="16" y="2" width="568" height="112"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="76x-zf-kIz">
<rect key="frame" x="0.0" y="0.0" width="568" height="44"/>
@ -2030,7 +2032,7 @@
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="300" translatesAutoresizingMaskIntoConstraints="NO" id="tzz-yF-441">
<rect key="frame" x="16" y="196" width="568" height="82"/>
<rect key="frame" x="16" y="132" width="568" height="82"/>
<string key="text">OpenStreetMap is built by a community of mappers that contribute and maintain data about roads, trails, cafés, railway stations, and much more, all over
the world. Join us!</string>
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="14"/>
@ -2042,7 +2044,7 @@ the world. Join us!</string>
</userDefinedRuntimeAttributes>
</label>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cT8-b7-zTj">
<rect key="frame" x="16" y="302" width="568" height="44"/>
<rect key="frame" x="16" y="238" width="568" height="44"/>
<constraints>
<constraint firstAttribute="height" constant="44" id="sre-fS-1iA"/>
</constraints>
@ -2067,14 +2069,14 @@ the world. Join us!</string>
</connections>
</button>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_google" translatesAutoresizingMaskIntoConstraints="NO" id="VTY-T1-l6q">
<rect key="frame" x="32" y="310" width="28" height="28"/>
<rect key="frame" x="32" y="246" width="28" height="28"/>
<constraints>
<constraint firstAttribute="height" constant="28" id="3pO-7k-3b7"/>
<constraint firstAttribute="width" constant="28" id="hdo-64-JVl"/>
</constraints>
</imageView>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="U4B-pb-aFf">
<rect key="frame" x="16" y="362" width="568" height="44"/>
<rect key="frame" x="16" y="298" width="568" height="44"/>
<constraints>
<constraint firstAttribute="height" constant="44" id="Mm9-WB-LKh"/>
</constraints>
@ -2097,14 +2099,14 @@ the world. Join us!</string>
</connections>
</button>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_facebook" translatesAutoresizingMaskIntoConstraints="NO" id="bGN-fy-oFg">
<rect key="frame" x="32" y="370" width="28" height="28"/>
<rect key="frame" x="32" y="306" width="28" height="28"/>
<constraints>
<constraint firstAttribute="width" constant="28" id="5HC-P5-MxA"/>
<constraint firstAttribute="height" constant="28" id="z1G-WV-nDv"/>
</constraints>
</imageView>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Gqm-JS-hos">
<rect key="frame" x="16" y="422" width="568" height="44"/>
<rect key="frame" x="16" y="358" width="568" height="44"/>
<constraints>
<constraint firstAttribute="height" constant="44" id="wqb-IS-uAC"/>
</constraints>
@ -2127,7 +2129,7 @@ the world. Join us!</string>
</connections>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Don't have OpenStreetMap account?" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="340" translatesAutoresizingMaskIntoConstraints="NO" id="nhm-W1-U8A">
<rect key="frame" x="16" y="498" width="568" height="16"/>
<rect key="frame" x="16" y="434" width="568" height="16"/>
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="14"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@ -2138,7 +2140,7 @@ the world. Join us!</string>
</userDefinedRuntimeAttributes>
</label>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="s0p-dL-PG8">
<rect key="frame" x="16" y="534" width="568" height="44"/>
<rect key="frame" x="16" y="470" width="568" height="44"/>
<constraints>
<constraint firstAttribute="height" constant="44" id="V0s-db-tR6"/>
</constraints>
@ -2198,7 +2200,7 @@ the world. Join us!</string>
<constraint firstAttribute="trailing" secondItem="nhm-W1-U8A" secondAttribute="trailing" constant="16" id="JXx-MF-idB"/>
<constraint firstItem="tzz-yF-441" firstAttribute="top" secondItem="NhV-I9-K6M" secondAttribute="bottom" priority="700" constant="18" id="TIM-Gb-mUW"/>
<constraint firstItem="U4B-pb-aFf" firstAttribute="leading" secondItem="i64-CY-UO1" secondAttribute="leading" constant="16" id="Txe-Bm-4r9"/>
<constraint firstItem="NhV-I9-K6M" firstAttribute="top" secondItem="i64-CY-UO1" secondAttribute="top" constant="66" id="ViN-zN-DBO"/>
<constraint firstItem="NhV-I9-K6M" firstAttribute="top" secondItem="i64-CY-UO1" secondAttribute="top" constant="2" id="ViN-zN-DBO"/>
<constraint firstAttribute="trailing" secondItem="Gqm-JS-hos" secondAttribute="trailing" constant="16" id="YOc-00-zbV"/>
<constraint firstAttribute="trailing" secondItem="cT8-b7-zTj" secondAttribute="trailing" constant="16" id="Z9E-Ty-Gdm"/>
<constraint firstItem="y41-VX-XhB" firstAttribute="top" secondItem="7X8-ED-Si4" secondAttribute="bottom" id="aG5-m9-gqr"/>
@ -2228,7 +2230,6 @@ the world. Join us!</string>
<outlet property="facebookImage" destination="bGN-fy-oFg" id="aZg-jU-gxN"/>
<outlet property="googleImage" destination="VTY-T1-l6q" id="3Si-X9-VDE"/>
<outlet property="lastUploadLabel" destination="byf-d2-8rS" id="zUr-9t-H02"/>
<outlet property="leftBarButton" destination="VjK-MF-Vva" id="Vmr-x5-xbE"/>
<outlet property="localChangesActionButton" destination="IHU-D3-OHh" id="p6c-et-S7V"/>
<outlet property="localChangesLabel" destination="6t0-ph-htV" id="4io-4R-QlC"/>
<outlet property="localChangesView" destination="76x-zf-kIz" id="sS1-4x-65O"/>
@ -2254,286 +2255,6 @@ the world. Join us!</string>
</objects>
<point key="canvasLocation" x="1955" y="4393"/>
</scene>
<!--Authorization Signup View Controller-->
<scene sceneID="GMe-KV-uTA">
<objects>
<viewController id="Ez0-RI-stE" customClass="MWMAuthorizationSignupViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="Qw4-Gs-MQn"/>
<viewControllerLayoutGuide type="bottom" id="8DQ-nZ-c9E"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="PIQ-xR-Wg6">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="7AG-pG-1YG">
<rect key="frame" x="16" y="40" width="568" height="44"/>
<constraints>
<constraint firstAttribute="height" constant="44" id="hzp-KM-mic"/>
</constraints>
<state key="normal" title="Login with Google">
<color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
</state>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="8"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="login_with_google"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
<integer key="value" value="1"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<connections>
<action selector="signupGoogle" destination="Ez0-RI-stE" eventType="touchUpInside" id="c1T-Gt-87R"/>
<segue destination="anB-7S-ebY" kind="custom" customClass="MWMSegue" id="c3T-gx-qb6"/>
</connections>
</button>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_google" translatesAutoresizingMaskIntoConstraints="NO" id="RSi-uc-JmJ">
<rect key="frame" x="32" y="48" width="28" height="28"/>
<constraints>
<constraint firstAttribute="height" constant="28" id="Gfz-c6-Xjf"/>
<constraint firstAttribute="width" constant="28" id="NhS-br-L1c"/>
</constraints>
</imageView>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="9A1-43-fvt">
<rect key="frame" x="16" y="100" width="568" height="44"/>
<constraints>
<constraint firstAttribute="height" constant="44" id="97I-Qc-kvf"/>
</constraints>
<state key="normal" title="Login with Facebook"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="8"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="login_with_facebook"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
<integer key="value" value="1"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<connections>
<action selector="signupFacebook" destination="Ez0-RI-stE" eventType="touchUpInside" id="TKi-nk-hHP"/>
<segue destination="anB-7S-ebY" kind="custom" customClass="MWMSegue" id="w48-2Y-VXA"/>
</connections>
</button>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_facebook" translatesAutoresizingMaskIntoConstraints="NO" id="o80-wQ-rWg">
<rect key="frame" x="32" y="108" width="28" height="28"/>
<constraints>
<constraint firstAttribute="height" constant="28" id="G3u-Cn-PW6"/>
<constraint firstAttribute="width" constant="28" id="VBe-94-9iX"/>
</constraints>
</imageView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4aJ-cU-oON">
<rect key="frame" x="0.0" y="176" width="600" height="136"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="drO-vh-jYD" userLabel="Separator #1">
<rect key="frame" x="0.0" y="0.0" width="600" height="1"/>
<color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="QRt-Ch-zfE"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="blackDividers"/>
</userDefinedRuntimeAttributes>
</view>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="I07-mq-K3f">
<rect key="frame" x="16" y="1" width="568" height="44"/>
<constraints>
<constraint firstAttribute="height" constant="44" id="4Cz-dF-zCt"/>
</constraints>
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/>
<textInputTraits key="textInputTraits" autocorrectionType="no" spellCheckingType="no" keyboardType="emailAddress"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="localizedPlaceholder" value="email_address"/>
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
<userDefinedRuntimeAttribute type="string" keyPath="validatorName" value="MWMInputEmailValidator"/>
</userDefinedRuntimeAttributes>
<connections>
<outlet property="delegate" destination="Ez0-RI-stE" id="YRX-t2-J0K"/>
</connections>
</textField>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="I5k-k6-jiO" userLabel="Separator #2">
<rect key="frame" x="16" y="45" width="584" height="1"/>
<color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="3en-wo-i0y"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="blackDividers"/>
</userDefinedRuntimeAttributes>
</view>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="uyJ-EW-kYD">
<rect key="frame" x="16" y="46" width="568" height="44"/>
<constraints>
<constraint firstAttribute="height" constant="44" id="PFF-yv-tAC"/>
</constraints>
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/>
<textInputTraits key="textInputTraits" autocorrectionType="no" spellCheckingType="no"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="localizedPlaceholder" value="username"/>
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
<userDefinedRuntimeAttribute type="string" keyPath="validatorName" value="MWMInputLoginValidator"/>
</userDefinedRuntimeAttributes>
<connections>
<outlet property="delegate" destination="Ez0-RI-stE" id="7Fd-3H-I6G"/>
</connections>
</textField>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Cq4-U1-1mc" userLabel="Separator #3">
<rect key="frame" x="16" y="90" width="584" height="1"/>
<color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="Zu3-Hb-TaC"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="blackDividers"/>
</userDefinedRuntimeAttributes>
</view>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="1Rm-2L-kLn">
<rect key="frame" x="16" y="91" width="568" height="44"/>
<constraints>
<constraint firstAttribute="height" constant="44" id="07H-dg-bQ6"/>
</constraints>
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/>
<textInputTraits key="textInputTraits" autocorrectionType="no" spellCheckingType="no" secureTextEntry="YES"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="localizedPlaceholder" value="password_8_chars_min"/>
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
<userDefinedRuntimeAttribute type="string" keyPath="validatorName" value="MWMInputPasswordValidator"/>
</userDefinedRuntimeAttributes>
<connections>
<outlet property="delegate" destination="Ez0-RI-stE" id="pfw-oD-9bQ"/>
</connections>
</textField>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SQS-AE-zqD" userLabel="Separator #4">
<rect key="frame" x="0.0" y="135" width="600" height="1"/>
<color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="fxc-JD-dUd"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="blackDividers"/>
</userDefinedRuntimeAttributes>
</view>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="Cq4-U1-1mc" firstAttribute="top" secondItem="uyJ-EW-kYD" secondAttribute="bottom" id="2WM-4y-yuW"/>
<constraint firstItem="I5k-k6-jiO" firstAttribute="leading" secondItem="I07-mq-K3f" secondAttribute="leading" id="9jr-FT-0O0"/>
<constraint firstAttribute="trailing" secondItem="I5k-k6-jiO" secondAttribute="trailing" id="GVN-CV-sBh"/>
<constraint firstItem="1Rm-2L-kLn" firstAttribute="trailing" secondItem="uyJ-EW-kYD" secondAttribute="trailing" id="HxW-cY-FrF"/>
<constraint firstAttribute="trailing" secondItem="drO-vh-jYD" secondAttribute="trailing" id="JHU-Td-IQa"/>
<constraint firstItem="uyJ-EW-kYD" firstAttribute="top" secondItem="I5k-k6-jiO" secondAttribute="bottom" id="JTe-Q3-uRW"/>
<constraint firstItem="I5k-k6-jiO" firstAttribute="top" secondItem="I07-mq-K3f" secondAttribute="bottom" id="JXi-Pj-5XI"/>
<constraint firstItem="Cq4-U1-1mc" firstAttribute="leading" secondItem="I5k-k6-jiO" secondAttribute="leading" id="MLm-pd-wgx"/>
<constraint firstAttribute="trailing" secondItem="I07-mq-K3f" secondAttribute="trailing" constant="16" id="R2E-cL-3UD"/>
<constraint firstAttribute="bottom" secondItem="SQS-AE-zqD" secondAttribute="bottom" id="Sfw-Jp-r4d"/>
<constraint firstItem="SQS-AE-zqD" firstAttribute="trailing" secondItem="drO-vh-jYD" secondAttribute="trailing" id="V7R-eT-mSf"/>
<constraint firstItem="drO-vh-jYD" firstAttribute="top" secondItem="4aJ-cU-oON" secondAttribute="top" id="Vyy-y5-bdG"/>
<constraint firstItem="SQS-AE-zqD" firstAttribute="leading" secondItem="drO-vh-jYD" secondAttribute="leading" id="WAN-a4-oaS"/>
<constraint firstItem="uyJ-EW-kYD" firstAttribute="leading" secondItem="I07-mq-K3f" secondAttribute="leading" id="bzH-qt-Vy1"/>
<constraint firstItem="Cq4-U1-1mc" firstAttribute="trailing" secondItem="I5k-k6-jiO" secondAttribute="trailing" id="eqy-Ow-A8M"/>
<constraint firstItem="1Rm-2L-kLn" firstAttribute="leading" secondItem="uyJ-EW-kYD" secondAttribute="leading" id="fCC-Tv-Yvd"/>
<constraint firstItem="I07-mq-K3f" firstAttribute="top" secondItem="drO-vh-jYD" secondAttribute="bottom" id="k7D-Xd-sBj"/>
<constraint firstItem="1Rm-2L-kLn" firstAttribute="top" secondItem="Cq4-U1-1mc" secondAttribute="bottom" id="rdG-Sy-YHI"/>
<constraint firstItem="I07-mq-K3f" firstAttribute="leading" secondItem="4aJ-cU-oON" secondAttribute="leading" constant="16" id="uEx-oq-idQ"/>
<constraint firstItem="uyJ-EW-kYD" firstAttribute="trailing" secondItem="I07-mq-K3f" secondAttribute="trailing" id="v75-bc-rWA"/>
<constraint firstItem="SQS-AE-zqD" firstAttribute="top" secondItem="1Rm-2L-kLn" secondAttribute="bottom" id="vxu-AB-b1t"/>
<constraint firstItem="drO-vh-jYD" firstAttribute="leading" secondItem="4aJ-cU-oON" secondAttribute="leading" id="zi2-v1-wPd"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="white"/>
</userDefinedRuntimeAttributes>
</view>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="SHO-xN-yQ5">
<rect key="frame" x="16" y="332" width="568" height="44"/>
<constraints>
<constraint firstAttribute="height" constant="44" id="DVP-P9-wrJ"/>
</constraints>
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/>
<state key="normal" title="Sign Up"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="textColorHighlightedName" value="linkBlue"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
<integer key="value" value="1"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="8"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="whiteColor"/>
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="linkBlue"/>
<userDefinedRuntimeAttribute type="string" keyPath="backgroundHighlightedColorName" value="clearColor"/>
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="signup"/>
</userDefinedRuntimeAttributes>
<connections>
<action selector="signupOSM" destination="Ez0-RI-stE" eventType="touchUpInside" id="Wun-5h-bas"/>
</connections>
</button>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ZXj-re-T4j">
<rect key="frame" x="0.0" y="556" width="600" height="44"/>
<constraints>
<constraint firstAttribute="height" constant="44" id="j0p-YR-0qe"/>
</constraints>
<state key="normal" title="Sign up using www.openstreetmap.org"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="linkBlue"/>
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="clearColor"/>
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="signup_osm_site"/>
</userDefinedRuntimeAttributes>
<connections>
<action selector="signupOSMSite" destination="Ez0-RI-stE" eventType="touchUpInside" id="RyJ-Sr-gb2"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="7AG-pG-1YG" secondAttribute="trailing" constant="16" id="3EC-jy-htP"/>
<constraint firstItem="ZXj-re-T4j" firstAttribute="leading" secondItem="PIQ-xR-Wg6" secondAttribute="leading" id="6sc-eM-e7t"/>
<constraint firstItem="o80-wQ-rWg" firstAttribute="centerY" secondItem="9A1-43-fvt" secondAttribute="centerY" id="6tX-14-oBi"/>
<constraint firstAttribute="trailing" secondItem="SHO-xN-yQ5" secondAttribute="trailing" constant="16" id="BzQ-bV-SMQ"/>
<constraint firstItem="9A1-43-fvt" firstAttribute="top" secondItem="7AG-pG-1YG" secondAttribute="bottom" constant="16" id="JBm-iO-lGW"/>
<constraint firstItem="SHO-xN-yQ5" firstAttribute="top" secondItem="4aJ-cU-oON" secondAttribute="bottom" constant="20" id="QfC-PB-jIC"/>
<constraint firstItem="7AG-pG-1YG" firstAttribute="top" secondItem="PIQ-xR-Wg6" secondAttribute="topMargin" constant="40" id="WAd-6r-TbG"/>
<constraint firstItem="RSi-uc-JmJ" firstAttribute="centerY" secondItem="7AG-pG-1YG" secondAttribute="centerY" id="c4g-X9-eL4"/>
<constraint firstItem="4aJ-cU-oON" firstAttribute="leading" secondItem="PIQ-xR-Wg6" secondAttribute="leading" id="fMl-kj-UVD"/>
<constraint firstItem="o80-wQ-rWg" firstAttribute="leading" secondItem="9A1-43-fvt" secondAttribute="leading" constant="16" id="hOl-aM-4BV"/>
<constraint firstAttribute="trailing" secondItem="ZXj-re-T4j" secondAttribute="trailing" id="hgD-0R-rzY"/>
<constraint firstAttribute="bottomMargin" secondItem="ZXj-re-T4j" secondAttribute="bottom" id="i8c-FE-6mA"/>
<constraint firstItem="9A1-43-fvt" firstAttribute="trailing" secondItem="7AG-pG-1YG" secondAttribute="trailing" id="icd-ak-qFi"/>
<constraint firstItem="9A1-43-fvt" firstAttribute="leading" secondItem="7AG-pG-1YG" secondAttribute="leading" id="qq6-29-Deh"/>
<constraint firstItem="SHO-xN-yQ5" firstAttribute="leading" secondItem="PIQ-xR-Wg6" secondAttribute="leading" constant="16" id="rjK-Fk-wdj"/>
<constraint firstItem="RSi-uc-JmJ" firstAttribute="leading" secondItem="7AG-pG-1YG" secondAttribute="leading" constant="16" id="tTo-Nj-Bge"/>
<constraint firstItem="4aJ-cU-oON" firstAttribute="top" secondItem="o80-wQ-rWg" secondAttribute="bottom" constant="40" id="uzt-g6-Uph"/>
<constraint firstItem="7AG-pG-1YG" firstAttribute="leading" secondItem="PIQ-xR-Wg6" secondAttribute="leading" constant="16" id="vzZ-jz-NhL"/>
<constraint firstAttribute="trailing" secondItem="4aJ-cU-oON" secondAttribute="trailing" id="yJw-Bt-mev"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="pressBackground"/>
</userDefinedRuntimeAttributes>
</view>
<navigationItem key="navigationItem" id="C6C-2o-Zgb">
<barButtonItem key="leftBarButtonItem" image="ic_nav_bar_back" id="rdp-Bp-r7o">
<connections>
<action selector="cancel" destination="Ez0-RI-stE" id="Sff-qi-sbv"/>
</connections>
</barButtonItem>
</navigationItem>
<connections>
<outlet property="emailTextField" destination="I07-mq-K3f" id="Nm0-zy-BDp"/>
<outlet property="loginTextField" destination="uyJ-EW-kYD" id="Sql-bq-rIS"/>
<outlet property="passwordTextField" destination="1Rm-2L-kLn" id="zTb-ic-q9q"/>
<outlet property="signupFacebookButton" destination="9A1-43-fvt" id="ceU-ga-ddW"/>
<outlet property="signupGoogleButton" destination="7AG-pG-1YG" id="ehB-45-MZJ"/>
<outlet property="signupOSMButton" destination="SHO-xN-yQ5" id="vxx-c2-Cop"/>
<outlet property="signupOSMSiteButton" destination="ZXj-re-T4j" id="q3v-LS-8T2"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="fD2-AS-PNi" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1955" y="5187"/>
</scene>
<!--Authorization Web View Login View Controller-->
<scene sceneID="FkX-1E-Llw">
<objects>
@ -2725,25 +2446,6 @@ the world. Join us!</string>
</objects>
<point key="canvasLocation" x="3443" y="4393"/>
</scene>
<!--Navigation Controller-->
<scene sceneID="1wu-X3-17f">
<objects>
<navigationController storyboardIdentifier="LoginNavigationController" automaticallyAdjustsScrollViewInsets="NO" modalPresentationStyle="formSheet" id="2fX-ws-Tuc" sceneMemberID="viewController">
<toolbarItems/>
<value key="contentSizeForViewInPopover" type="size" width="520" height="600"/>
<navigationBar key="navigationBar" contentMode="scaleToFill" id="bSS-tg-Bry">
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<nil name="viewControllers"/>
<connections>
<segue destination="iZ6-Zi-bkZ" kind="relationship" relationship="rootViewController" id="XiC-iT-peI"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="8Gt-4P-ydf" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1143" y="4393"/>
</scene>
<!--Street Editor View Controller-->
<scene sceneID="hgU-jB-a3C">
<objects>
@ -2863,9 +2565,10 @@ the world. Join us!</string>
<image name="separator_image" width="1" height="1"/>
</resources>
<inferredMetricsTieBreakers>
<segue reference="mF7-g4-gSS"/>
<segue reference="Z0Z-aU-Vrq"/>
<segue reference="OEF-kR-jKi"/>
<segue reference="4Cc-99-mlN"/>
<segue reference="Pet-Wq-d4a"/>
<segue reference="gFM-Ca-ARt"/>
<segue reference="urr-1u-jhn"/>
<segue reference="nJf-7z-2TX"/>
</inferredMetricsTieBreakers>
</document>

View file

@ -167,10 +167,8 @@ extern NSDictionary * const deviceNames = @{@"x86_64" : @"Simulator",
- (void)authorization
{
[Statistics logEvent:kStatSettingsOpenSection withParameters:@{kStatName : kStatAuthorization}];
UINavigationController * vc = [self.mainStoryboard instantiateViewControllerWithIdentifier:@"LoginNavigationController"];
MWMAuthorizationLoginViewController * authVC = (MWMAuthorizationLoginViewController *)[vc topViewController];
authVC.isCalledFromSettings = YES;
[self.navigationController presentViewController:vc animated:YES completion:nil];
UINavigationController * vc = [self.mainStoryboard instantiateViewControllerWithIdentifier:@"AuthorizationLoginViewController"];
[self.navigationController pushViewController:vc animated:YES];
}
- (void)community