Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Grechuhin <i.grechuhin@gmail.com>2016-12-13 14:13:57 +0300
committerIlya Grechuhin <i.grechuhin@gmail.com>2016-12-13 14:13:57 +0300
commitcc2751ec5ccacfdf4597956e138688592a304fb9 (patch)
tree98e8a317b331223e4813d675f0f5365905ac0c04 /iphone/Maps
parent0b06702385067c25995a5ec379a1483a17d2a8ea (diff)
[MAPSME-3210] [ios] Added traffic what’s new.
Diffstat (limited to 'iphone/Maps')
-rw-r--r--iphone/Maps/Classes/CustomViews/MapViewControls/Welcome/MWMWhatsNewTrafficController.h5
-rw-r--r--iphone/Maps/Classes/CustomViews/MapViewControls/Welcome/MWMWhatsNewTrafficController.mm77
-rw-r--r--iphone/Maps/Classes/CustomViews/MapViewControls/Welcome/Welcome.storyboard159
-rw-r--r--iphone/Maps/Classes/MapViewController.mm4
-rw-r--r--iphone/Maps/Maps.xcodeproj/project.pbxproj10
5 files changed, 251 insertions, 4 deletions
diff --git a/iphone/Maps/Classes/CustomViews/MapViewControls/Welcome/MWMWhatsNewTrafficController.h b/iphone/Maps/Classes/CustomViews/MapViewControls/Welcome/MWMWhatsNewTrafficController.h
new file mode 100644
index 0000000000..12e5582686
--- /dev/null
+++ b/iphone/Maps/Classes/CustomViews/MapViewControls/Welcome/MWMWhatsNewTrafficController.h
@@ -0,0 +1,5 @@
+#import "MWMWelcomeController.h"
+
+@interface MWMWhatsNewTrafficController : MWMWelcomeController
+
+@end
diff --git a/iphone/Maps/Classes/CustomViews/MapViewControls/Welcome/MWMWhatsNewTrafficController.mm b/iphone/Maps/Classes/CustomViews/MapViewControls/Welcome/MWMWhatsNewTrafficController.mm
new file mode 100644
index 0000000000..40f82a6e5a
--- /dev/null
+++ b/iphone/Maps/Classes/CustomViews/MapViewControls/Welcome/MWMWhatsNewTrafficController.mm
@@ -0,0 +1,77 @@
+#import "MWMWhatsNewTrafficController.h"
+#import "MWMPageController.h"
+
+@interface MWMWhatsNewTrafficController ()
+
+@property(weak, nonatomic) IBOutlet UIView * containerView;
+@property(weak, nonatomic) IBOutlet UIImageView * image;
+@property(weak, nonatomic) IBOutlet UILabel * alertTitle;
+@property(weak, nonatomic) IBOutlet UILabel * alertText;
+@property(weak, nonatomic) IBOutlet UIButton * nextPageButton;
+@property(weak, nonatomic) IBOutlet NSLayoutConstraint * containerWidth;
+@property(weak, nonatomic) IBOutlet NSLayoutConstraint * containerHeight;
+
+@property(weak, nonatomic) IBOutlet NSLayoutConstraint * imageMinHeight;
+@property(weak, nonatomic) IBOutlet NSLayoutConstraint * imageHeight;
+
+@property(weak, nonatomic) IBOutlet NSLayoutConstraint * titleTopOffset;
+@property(weak, nonatomic) IBOutlet NSLayoutConstraint * titleImageOffset;
+
+@end
+
+namespace
+{
+NSArray<TMWMWelcomeConfigBlock> * pagesConfigBlocks = @[
+ [^(MWMWhatsNewTrafficController * controller) {
+ controller.image.image = [UIImage imageNamed:@"whats_new_traffic"];
+ controller.alertTitle.text = L(@"whatsnew_traffic");
+ controller.alertText.text = L(@"whatsnew_traffic_text");
+ [controller.nextPageButton setTitle:L(@"whats_new_next_button") forState:UIControlStateNormal];
+ [controller.nextPageButton addTarget:controller.pageController
+ action:@selector(nextPage)
+ forControlEvents:UIControlEventTouchUpInside];
+ } copy],
+ [^(MWMWhatsNewTrafficController * controller) {
+ controller.image.image = [UIImage imageNamed:@"whats_new_traffic_roaming"];
+ controller.alertTitle.text = L(@"whatsnew_traffic_roaming");
+ controller.alertText.text = L(@"whatsnew_traffic_roaming_text");
+ [controller.nextPageButton setTitle:L(@"whats_new_next_button") forState:UIControlStateNormal];
+ [controller.nextPageButton addTarget:controller.pageController
+ action:@selector(nextPage)
+ forControlEvents:UIControlEventTouchUpInside];
+ } copy],
+ [^(MWMWhatsNewTrafficController * controller) {
+ controller.image.image = [UIImage imageNamed:@"whats_new_update_uber"];
+ controller.alertTitle.text = L(@"whatsnew_order_taxi");
+ controller.alertText.text = L(@"whatsnew_order_taxi_text");
+ [controller.nextPageButton setTitle:L(@"done") forState:UIControlStateNormal];
+ [controller.nextPageButton addTarget:controller.pageController
+ action:@selector(close)
+ forControlEvents:UIControlEventTouchUpInside];
+ } copy]
+];
+
+} // namespace
+
+@implementation MWMWhatsNewTrafficController
+
++ (NSString *)udWelcomeWasShownKey { return @"MWMWhatsNewTrafficController"; }
++ (NSArray<TMWMWelcomeConfigBlock> *)pagesConfig { return pagesConfigBlocks; }
+- (IBAction)close { [self.pageController close]; }
+#pragma mark - Properties
+
+- (void)setSize:(CGSize)size
+{
+ super.size = size;
+ CGSize const newSize = super.size;
+ CGFloat const width = newSize.width;
+ CGFloat const height = newSize.height;
+ BOOL const hideImage = (self.imageHeight.multiplier * height <= self.imageMinHeight.constant);
+ self.titleImageOffset.priority =
+ hideImage ? UILayoutPriorityDefaultLow : UILayoutPriorityDefaultHigh;
+ self.image.hidden = hideImage;
+ self.containerWidth.constant = width;
+ self.containerHeight.constant = height;
+}
+
+@end
diff --git a/iphone/Maps/Classes/CustomViews/MapViewControls/Welcome/Welcome.storyboard b/iphone/Maps/Classes/CustomViews/MapViewControls/Welcome/Welcome.storyboard
index 7d6069f5b6..37826ff66e 100644
--- a/iphone/Maps/Classes/CustomViews/MapViewControls/Welcome/Welcome.storyboard
+++ b/iphone/Maps/Classes/CustomViews/MapViewControls/Welcome/Welcome.storyboard
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11542" systemVersion="16B2555" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="16B2555" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment version="2048" identifier="iOS"/>
- <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11524"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/>
<capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@@ -1243,6 +1243,161 @@
</objects>
<point key="canvasLocation" x="2563" y="2743"/>
</scene>
+ <!--Whats New Traffic Controller-->
+ <scene sceneID="tit-8N-P9M">
+ <objects>
+ <viewController storyboardIdentifier="MWMWhatsNewTrafficController" useStoryboardIdentifierAsRestorationIdentifier="YES" id="BOY-Lz-6Ub" customClass="MWMWhatsNewTrafficController" sceneMemberID="viewController">
+ <layoutGuides>
+ <viewControllerLayoutGuide type="top" id="Jil-y7-mgd"/>
+ <viewControllerLayoutGuide type="bottom" id="XLE-0j-M1L"/>
+ </layoutGuides>
+ <view key="view" contentMode="scaleToFill" id="MhV-XF-2d3" customClass="SolidTouchView">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+ <subviews>
+ <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tEi-xZ-vnH" userLabel="Container">
+ <rect key="frame" x="-72.5" y="34" width="520" height="600"/>
+ <subviews>
+ <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4gW-h1-3sP" userLabel="BoundsView">
+ <rect key="frame" x="16" y="40" width="488" height="456"/>
+ <subviews>
+ <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="umw-NL-UxH" userLabel="CenteredView">
+ <rect key="frame" x="44" y="62" width="400" height="333"/>
+ <subviews>
+ <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalCompressionResistancePriority="749" image="ic_placeholder" translatesAutoresizingMaskIntoConstraints="NO" id="oT6-Mu-189">
+ <rect key="frame" x="80.5" y="0.0" width="240" height="240"/>
+ <constraints>
+ <constraint firstAttribute="height" relation="lessThanOrEqual" priority="800" constant="280" id="Adk-AV-tf5"/>
+ <constraint firstAttribute="height" relation="greaterThanOrEqual" priority="800" constant="120" id="CqL-qZ-2GY"/>
+ <constraint firstAttribute="width" secondItem="oT6-Mu-189" secondAttribute="height" multiplier="1:1" id="mdQ-6e-UZR"/>
+ </constraints>
+ </imageView>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Бронируй отель из приложения" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3d2-EJ-eSS" userLabel="Title">
+ <rect key="frame" x="0.0" y="260" width="400" height="24"/>
+ <fontDescription key="fontDescription" name="HelveticaNeue-Medium" family="Helvetica Neue" pointSize="20"/>
+ <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+ <nil key="highlightedColor"/>
+ <userDefinedRuntimeAttributes>
+ <userDefinedRuntimeAttribute type="string" keyPath="fontName" value="medium18"/>
+ <userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackPrimaryText"/>
+ </userDefinedRuntimeAttributes>
+ </label>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="При выборе отелей на карте будут отображаться ценовая категория и рейтинг заведения." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Il6-Xw-i2E" userLabel="Text">
+ <rect key="frame" x="0.0" y="300" width="400" height="33"/>
+ <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="custom" customColorSpace="sRGB"/>
+ <nil key="highlightedColor"/>
+ <userDefinedRuntimeAttributes>
+ <userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular14"/>
+ <userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackSecondaryText"/>
+ </userDefinedRuntimeAttributes>
+ </label>
+ </subviews>
+ <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
+ <accessibility key="accessibilityConfiguration" identifier="CenteredView"/>
+ <constraints>
+ <constraint firstAttribute="bottom" secondItem="Il6-Xw-i2E" secondAttribute="bottom" id="2gE-FK-YKS"/>
+ <constraint firstItem="oT6-Mu-189" firstAttribute="centerX" secondItem="umw-NL-UxH" secondAttribute="centerX" id="68S-wp-yaY"/>
+ <constraint firstItem="3d2-EJ-eSS" firstAttribute="top" secondItem="umw-NL-UxH" secondAttribute="top" priority="740" constant="40" id="7FT-Rd-T6a"/>
+ <constraint firstAttribute="width" relation="lessThanOrEqual" constant="400" id="BfI-DS-8pL"/>
+ <constraint firstItem="Il6-Xw-i2E" firstAttribute="width" secondItem="umw-NL-UxH" secondAttribute="width" id="JZa-Pc-DR9"/>
+ <constraint firstItem="oT6-Mu-189" firstAttribute="top" secondItem="umw-NL-UxH" secondAttribute="top" id="Q1p-WP-TD4"/>
+ <constraint firstItem="Il6-Xw-i2E" firstAttribute="top" secondItem="3d2-EJ-eSS" secondAttribute="bottom" constant="16" id="YL6-ps-9mB"/>
+ <constraint firstItem="3d2-EJ-eSS" firstAttribute="centerX" secondItem="umw-NL-UxH" secondAttribute="centerX" id="gTg-a9-786"/>
+ <constraint firstItem="3d2-EJ-eSS" firstAttribute="top" secondItem="oT6-Mu-189" secondAttribute="bottom" priority="750" constant="20" id="l5o-tU-ZVW"/>
+ <constraint firstItem="Il6-Xw-i2E" firstAttribute="centerX" secondItem="umw-NL-UxH" secondAttribute="centerX" id="u13-sk-9Ga"/>
+ <constraint firstItem="3d2-EJ-eSS" firstAttribute="width" secondItem="umw-NL-UxH" secondAttribute="width" id="yNs-2X-GOa"/>
+ </constraints>
+ </view>
+ </subviews>
+ <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
+ <accessibility key="accessibilityConfiguration" identifier="BoundsView"/>
+ <constraints>
+ <constraint firstItem="umw-NL-UxH" firstAttribute="centerY" secondItem="4gW-h1-3sP" secondAttribute="centerY" id="2In-v9-Equ"/>
+ <constraint firstAttribute="trailing" secondItem="umw-NL-UxH" secondAttribute="trailing" priority="999" id="47E-2M-1mB"/>
+ <constraint firstItem="umw-NL-UxH" firstAttribute="centerX" secondItem="4gW-h1-3sP" secondAttribute="centerX" id="afe-vP-M6i"/>
+ <constraint firstItem="umw-NL-UxH" firstAttribute="height" relation="lessThanOrEqual" secondItem="4gW-h1-3sP" secondAttribute="height" id="iUP-pQ-s6e"/>
+ <constraint firstItem="umw-NL-UxH" firstAttribute="leading" secondItem="4gW-h1-3sP" secondAttribute="leading" priority="999" id="sXp-WT-xsn"/>
+ </constraints>
+ </view>
+ <button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Fc6-q2-mnq" userLabel="NotNow">
+ <rect key="frame" x="140.5" y="516" width="240" height="44"/>
+ <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="240" id="4a0-nS-HLp"/>
+ <constraint firstAttribute="height" constant="44" id="fvH-Hl-3HY"/>
+ </constraints>
+ <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/>
+ <state key="normal" title="Next">
+ <color key="titleColor" red="0.01176470588" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+ <color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+ </state>
+ <userDefinedRuntimeAttributes>
+ <userDefinedRuntimeAttribute type="string" keyPath="textColorHighlightedName" value="white"/>
+ <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="white"/>
+ <userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="linkBlue"/>
+ <userDefinedRuntimeAttribute type="string" keyPath="backgroundHighlightedColorName" value="linkBlueHighlighted"/>
+ </userDefinedRuntimeAttributes>
+ </button>
+ </subviews>
+ <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
+ <constraints>
+ <constraint firstAttribute="trailing" secondItem="4gW-h1-3sP" secondAttribute="trailing" constant="16" id="7Wi-YI-n0M"/>
+ <constraint firstAttribute="height" constant="600" id="KlB-Uh-TO0"/>
+ <constraint firstItem="4gW-h1-3sP" firstAttribute="leading" secondItem="tEi-xZ-vnH" secondAttribute="leading" constant="16" id="PMh-gV-xwv"/>
+ <constraint firstAttribute="bottom" secondItem="Fc6-q2-mnq" secondAttribute="bottom" constant="40" id="Q9c-6O-XDt"/>
+ <constraint firstAttribute="width" constant="520" id="TOw-Nl-QTj"/>
+ <constraint firstItem="oT6-Mu-189" firstAttribute="height" secondItem="tEi-xZ-vnH" secondAttribute="height" multiplier="0.3" priority="750" id="b4R-09-WRx"/>
+ <constraint firstItem="Fc6-q2-mnq" firstAttribute="centerX" secondItem="tEi-xZ-vnH" secondAttribute="centerX" id="bhs-5f-wvE"/>
+ <constraint firstItem="Fc6-q2-mnq" firstAttribute="top" secondItem="4gW-h1-3sP" secondAttribute="bottom" constant="20" id="rnE-aP-NBk"/>
+ <constraint firstItem="4gW-h1-3sP" firstAttribute="top" secondItem="tEi-xZ-vnH" secondAttribute="top" constant="40" id="vOA-wB-eio"/>
+ </constraints>
+ </view>
+ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Om0-FH-gPs">
+ <rect key="frame" x="331" y="32" width="28" height="28"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="28" id="RIh-Th-FLm"/>
+ <constraint firstAttribute="height" constant="28" id="bJk-07-f98"/>
+ </constraints>
+ <color key="tintColor" red="0.0" green="0.0" blue="0.0" alpha="0.54000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
+ <state key="normal" image="ic_close_spinner"/>
+ <connections>
+ <action selector="close" destination="BOY-Lz-6Ub" eventType="touchUpInside" id="gcc-Cl-Tuo"/>
+ </connections>
+ </button>
+ </subviews>
+ <constraints>
+ <constraint firstItem="Om0-FH-gPs" firstAttribute="top" secondItem="Jil-y7-mgd" secondAttribute="bottom" constant="12" id="139-Vx-mrr"/>
+ <constraint firstAttribute="trailing" secondItem="Om0-FH-gPs" secondAttribute="trailing" constant="16" id="PCJ-ow-efY"/>
+ <constraint firstItem="tEi-xZ-vnH" firstAttribute="centerY" secondItem="MhV-XF-2d3" secondAttribute="centerY" id="RhW-6N-nal"/>
+ <constraint firstItem="tEi-xZ-vnH" firstAttribute="centerX" secondItem="MhV-XF-2d3" secondAttribute="centerX" id="vHo-bz-GFM"/>
+ </constraints>
+ <userDefinedRuntimeAttributes>
+ <userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="white"/>
+ </userDefinedRuntimeAttributes>
+ </view>
+ <connections>
+ <outlet property="alertText" destination="Il6-Xw-i2E" id="qUe-5S-cPl"/>
+ <outlet property="alertTitle" destination="3d2-EJ-eSS" id="pCQ-2A-RYQ"/>
+ <outlet property="containerHeight" destination="KlB-Uh-TO0" id="tT3-bC-2mo"/>
+ <outlet property="containerView" destination="tEi-xZ-vnH" id="tIh-Rr-zMr"/>
+ <outlet property="containerWidth" destination="TOw-Nl-QTj" id="Leb-pa-DoV"/>
+ <outlet property="image" destination="oT6-Mu-189" id="Dyt-KS-AuK"/>
+ <outlet property="imageHeight" destination="b4R-09-WRx" id="vPb-xP-p1f"/>
+ <outlet property="imageMinHeight" destination="CqL-qZ-2GY" id="nW0-RS-Ow9"/>
+ <outlet property="nextPageButton" destination="Fc6-q2-mnq" id="GOq-Xs-lJY"/>
+ <outlet property="titleImageOffset" destination="l5o-tU-ZVW" id="uof-xc-KTf"/>
+ <outlet property="titleTopOffset" destination="7FT-Rd-T6a" id="j2P-21-o6z"/>
+ </connections>
+ </viewController>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="ftD-7X-i1Z" userLabel="First Responder" sceneMemberID="firstResponder"/>
+ </objects>
+ <point key="canvasLocation" x="3230" y="2742"/>
+ </scene>
</scenes>
<resources>
<image name="ic_close_spinner" width="28" height="28"/>
diff --git a/iphone/Maps/Classes/MapViewController.mm b/iphone/Maps/Classes/MapViewController.mm
index d654af9a8b..84dbc95e48 100644
--- a/iphone/Maps/Classes/MapViewController.mm
+++ b/iphone/Maps/Classes/MapViewController.mm
@@ -25,7 +25,7 @@
#import "MWMSettings.h"
#import "MWMStorage.h"
#import "MWMTableViewController.h"
-#import "MWMWhatsNewUberController.h"
+#import "MWMWhatsNewTrafficController.h"
#import "MapsAppDelegate.h"
#import "Statistics.h"
#import "UIColor+MapsMeColor.h"
@@ -285,7 +285,7 @@ BOOL gIsFirstMyPositionMode = YES;
- (void)showWelcomeScreenIfNeeded
{
- Class<MWMWelcomeControllerProtocol> whatsNewClass = [MWMWhatsNewUberController class];
+ Class<MWMWelcomeControllerProtocol> whatsNewClass = [MWMWhatsNewTrafficController class];
BOOL const isFirstSession = [Alohalytics isFirstSession];
Class<MWMWelcomeControllerProtocol> welcomeClass =
isFirstSession ? [MWMFirstLaunchController class] : whatsNewClass;
diff --git a/iphone/Maps/Maps.xcodeproj/project.pbxproj b/iphone/Maps/Maps.xcodeproj/project.pbxproj
index 0440dfa18d..78ec3c7614 100644
--- a/iphone/Maps/Maps.xcodeproj/project.pbxproj
+++ b/iphone/Maps/Maps.xcodeproj/project.pbxproj
@@ -54,6 +54,9 @@
341876B51C280272005A0C9A /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 454040681AD2D8D2007A9B12 /* CoreVideo.framework */; };
3418CEAE1CBF9E3300641B25 /* MWMNoMapsViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3418CEAD1CBF9E3300641B25 /* MWMNoMapsViewController.mm */; };
3418CEAF1CBF9E3300641B25 /* MWMNoMapsViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3418CEAD1CBF9E3300641B25 /* MWMNoMapsViewController.mm */; };
+ 341966861E000CDD00F96327 /* MWMWhatsNewTrafficController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 341966851E000CDD00F96327 /* MWMWhatsNewTrafficController.mm */; };
+ 341966871E000CDD00F96327 /* MWMWhatsNewTrafficController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 341966851E000CDD00F96327 /* MWMWhatsNewTrafficController.mm */; };
+ 341966881E000CDD00F96327 /* MWMWhatsNewTrafficController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 341966851E000CDD00F96327 /* MWMWhatsNewTrafficController.mm */; };
341C2A571B72092A00AD41A1 /* 02_droidsans-fallback.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 9DF04B231B71010E00DACAF1 /* 02_droidsans-fallback.ttf */; };
341C2A5B1B720B8A00AD41A1 /* MWMAPIBarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 341C2A5A1B720B8A00AD41A1 /* MWMAPIBarView.xib */; };
341F09841C20138100F18AC5 /* libpugixml.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 341F09831C20138100F18AC5 /* libpugixml.a */; };
@@ -1457,6 +1460,8 @@
34181EBB1C0ED2680081B586 /* MWMOpeningHoursEditorCells.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MWMOpeningHoursEditorCells.h; sourceTree = "<group>"; };
3418CEAC1CBF9E3300641B25 /* MWMNoMapsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMNoMapsViewController.h; sourceTree = "<group>"; };
3418CEAD1CBF9E3300641B25 /* MWMNoMapsViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMNoMapsViewController.mm; sourceTree = "<group>"; };
+ 341966841E000CDD00F96327 /* MWMWhatsNewTrafficController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMWhatsNewTrafficController.h; sourceTree = "<group>"; };
+ 341966851E000CDD00F96327 /* MWMWhatsNewTrafficController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMWhatsNewTrafficController.mm; sourceTree = "<group>"; };
341C2A5A1B720B8A00AD41A1 /* MWMAPIBarView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMAPIBarView.xib; sourceTree = "<group>"; };
341F09831C20138100F18AC5 /* libpugixml.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpugixml.a; path = "../../../omim-xcode-build/Debug/libpugixml.a"; sourceTree = "<group>"; };
341F99C91C6B1165001C67B8 /* MWMMapDownloaderLargeCountryTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMMapDownloaderLargeCountryTableViewCell.h; sourceTree = "<group>"; };
@@ -3651,6 +3656,8 @@
34A759C81DC795140078C3AE /* MWMWhatsNewProfileBookingController.mm */,
34A759D61DC795D10078C3AE /* MWMWhatsNewUberController.h */,
34A759D71DC795D10078C3AE /* MWMWhatsNewUberController.mm */,
+ 341966841E000CDD00F96327 /* MWMWhatsNewTrafficController.h */,
+ 341966851E000CDD00F96327 /* MWMWhatsNewTrafficController.mm */,
);
path = Welcome;
sourceTree = "<group>";
@@ -4857,6 +4864,7 @@
34ABA6241C2D551900FE1BEC /* MWMInputValidatorFactory.mm in Sources */,
34257D1B1DC9FD9400DC5BB9 /* MWMSearchChangeModeView.mm in Sources */,
34EA976C1DEC779D00616B11 /* MWMNetworkPolicy.mm in Sources */,
+ 341966861E000CDD00F96327 /* MWMWhatsNewTrafficController.mm in Sources */,
34B82AE21B84AC5E00180497 /* MWMSearchCategoriesManager.mm in Sources */,
34CE8A671C7740E100F4351A /* MWMStorage.mm in Sources */,
F6F7787A1DABC6D800B603E7 /* MWMTaxiCollectionLayout.mm in Sources */,
@@ -5110,6 +5118,7 @@
348868F41D87DFB70069BBA3 /* MWMKeyboard.mm in Sources */,
34257D1C1DC9FD9400DC5BB9 /* MWMSearchChangeModeView.mm in Sources */,
34EA976D1DEC779D00616B11 /* MWMNetworkPolicy.mm in Sources */,
+ 341966871E000CDD00F96327 /* MWMWhatsNewTrafficController.mm in Sources */,
F639883C1CF70FE500226B6B /* MWMActionBarButton.mm in Sources */,
34CE8A681C7740E100F4351A /* MWMStorage.mm in Sources */,
6741AA141BF340DE002C974C /* MWMMultilineLabel.mm in Sources */,
@@ -5354,6 +5363,7 @@
849CF72C1DE842290024A8A5 /* LocalNotificationManager.mm in Sources */,
849CF72D1DE842290024A8A5 /* AppInfo.mm in Sources */,
849CF72E1DE842290024A8A5 /* MWMSearchHistoryMyPositionCell.mm in Sources */,
+ 341966881E000CDD00F96327 /* MWMWhatsNewTrafficController.mm in Sources */,
849CF72F1DE842290024A8A5 /* MWMInputValidator.mm in Sources */,
849CF7301DE842290024A8A5 /* MWMActionBarButton.mm in Sources */,
849CF7311DE842290024A8A5 /* MWMKeyboard.mm in Sources */,