Merge pull request #1279 from VladiMihaylenko/master
[ios] What's new with 3d.
|
@ -5,4 +5,9 @@ NS_CLASS_AVAILABLE_IOS(8_0) @interface MWMPageController : UIPageViewController
|
|||
- (void)nextPage;
|
||||
- (void)show;
|
||||
|
||||
- (void)enableFirst:(UIButton *)button;
|
||||
- (void)enableSecond;
|
||||
- (void)skipFirst;
|
||||
- (void)skipSecond;
|
||||
|
||||
@end
|
||||
|
|
|
@ -2,9 +2,17 @@
|
|||
#import "MWMWhatsNewController.h"
|
||||
#import "Statistics.h"
|
||||
|
||||
static NSString * const kPageViewControllerStoryboardID = @"PageViewController";
|
||||
static NSString * const kContentViewControllerStoryboardID = @"PageContentController";
|
||||
static NSUInteger const kNumberOfPages = 2;
|
||||
#include "Framework.h"
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
NSString * const kPageViewControllerStoryboardID = @"PageViewController";
|
||||
NSString * const kContentViewControllerStoryboardID = @"PageContentController";
|
||||
NSUInteger const kNumberOfPages = 2;
|
||||
|
||||
} // namespace
|
||||
|
||||
extern NSString * const kUDWhatsNewWasShown;
|
||||
|
||||
@protocol MWMPageControllerDataSource <UIPageViewControllerDataSource>
|
||||
|
@ -16,6 +24,7 @@ extern NSString * const kUDWhatsNewWasShown;
|
|||
NS_CLASS_AVAILABLE_IOS(8_0) @interface MWMPageControllerDataSourceImpl : NSObject <MWMPageControllerDataSource>
|
||||
|
||||
@property (weak, nonatomic, readonly) MWMPageController * pageController;
|
||||
@property (nonatomic) BOOL isButtonSelectedOnFirstScreen;
|
||||
|
||||
- (instancetype)initWithPageController:(MWMPageController *)pageController;
|
||||
|
||||
|
@ -55,28 +64,27 @@ NS_CLASS_AVAILABLE_IOS(8_0) @interface MWMPageControllerDataSourceImpl : NSObjec
|
|||
bundle:[NSBundle mainBundle]];
|
||||
}
|
||||
|
||||
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
|
||||
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(MWMWhatsNewController *)viewController
|
||||
{
|
||||
NSUInteger index = [(MWMWhatsNewController *)viewController pageIndex];
|
||||
NSUInteger index = viewController.pageIndex;
|
||||
viewController.enableButton.selected = self.isButtonSelectedOnFirstScreen;
|
||||
|
||||
if ((index == 0) || (index == NSNotFound))
|
||||
if (index == 0 || index == NSNotFound)
|
||||
return nil;
|
||||
|
||||
index--;
|
||||
return [self viewControllerAtIndex:index];
|
||||
}
|
||||
|
||||
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
|
||||
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(MWMWhatsNewController *)viewController
|
||||
{
|
||||
NSUInteger index = [(MWMWhatsNewController *)viewController pageIndex];
|
||||
NSUInteger index = viewController.pageIndex;
|
||||
viewController.enableButton.selected = NO;
|
||||
|
||||
if (index == NSNotFound)
|
||||
if (index == NSNotFound || index == kNumberOfPages - 1)
|
||||
return nil;
|
||||
|
||||
index++;
|
||||
if (index == kNumberOfPages)
|
||||
return nil;
|
||||
|
||||
return [self viewControllerAtIndex:index];
|
||||
}
|
||||
|
||||
|
@ -105,7 +113,8 @@ NS_CLASS_AVAILABLE_IOS(8_0) @interface MWMPageControllerDataSourceImpl : NSObjec
|
|||
|
||||
- (void)close
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatWhatsNew, kUDWhatsNewWasShown) withParameters:@{kStatAction : kStatClose}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatWhatsNew, kUDWhatsNewWasShown)
|
||||
withParameters:@{kStatAction : kStatClose}];
|
||||
[self.iPadBackgroundView removeFromSuperview];
|
||||
[self.view removeFromSuperview];
|
||||
[self removeFromParentViewController];
|
||||
|
@ -113,13 +122,15 @@ NS_CLASS_AVAILABLE_IOS(8_0) @interface MWMPageControllerDataSourceImpl : NSObjec
|
|||
|
||||
- (void)nextPage
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatWhatsNew, kUDWhatsNewWasShown) withParameters:@{kStatAction : kStatNext}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatWhatsNew, kUDWhatsNewWasShown)
|
||||
withParameters:@{kStatAction : kStatNext}];
|
||||
[self setViewControllers:@[[self.pageControllerDataSource viewControllerAtIndex:1]] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:nil];
|
||||
}
|
||||
|
||||
- (void)show
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatWhatsNew, kUDWhatsNewWasShown) withParameters:@{kStatAction : kStatOpen}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatWhatsNew, kUDWhatsNewWasShown)
|
||||
withParameters:@{kStatAction : kStatOpen}];
|
||||
if (IPAD)
|
||||
[self.parent.view addSubview:self.iPadBackgroundView];
|
||||
[self.parent addChildViewController:self];
|
||||
|
@ -127,19 +138,64 @@ NS_CLASS_AVAILABLE_IOS(8_0) @interface MWMPageControllerDataSourceImpl : NSObjec
|
|||
[self didMoveToParentViewController:self.parent];
|
||||
}
|
||||
|
||||
#pragma mark - Enabled methods
|
||||
|
||||
- (void)enableFirst:(UIButton *)button
|
||||
{
|
||||
auto & f = GetFramework();
|
||||
bool _ = true, is3dBuildings = true;
|
||||
f.Load3dMode(_, is3dBuildings);
|
||||
BOOL const isEnabled = !button.selected;
|
||||
f.Save3dMode(_, isEnabled);
|
||||
f.Allow3dMode(_, isEnabled);
|
||||
button.selected = self.pageControllerDataSource.isButtonSelectedOnFirstScreen = isEnabled;
|
||||
[self nextPage];
|
||||
}
|
||||
|
||||
- (void)enableSecond
|
||||
{
|
||||
auto & f = GetFramework();
|
||||
bool _ = true;
|
||||
f.Load3dMode(_, _);
|
||||
f.Save3dMode(true, _);
|
||||
f.Allow3dMode(true, _);
|
||||
[self close];
|
||||
}
|
||||
|
||||
- (void)skipFirst
|
||||
{
|
||||
auto & f = GetFramework();
|
||||
bool _ = true, is3dBuildings = true;
|
||||
f.Load3dMode(_, is3dBuildings);
|
||||
f.Save3dMode(_, false);
|
||||
f.Allow3dMode(_, false);
|
||||
[self nextPage];
|
||||
}
|
||||
|
||||
- (void)skipSecond
|
||||
{
|
||||
auto & f = GetFramework();
|
||||
bool _ = true;
|
||||
f.Load3dMode(_, _);
|
||||
f.Save3dMode(false, _);
|
||||
f.Allow3dMode(false, _);
|
||||
[self close];
|
||||
}
|
||||
|
||||
#pragma mark - Private methods
|
||||
|
||||
- (CGSize)defaultSize
|
||||
{
|
||||
return IPAD ? CGSizeMake(520.0, 600.0) : self.parent.view.frame.size;
|
||||
}
|
||||
|
||||
#pragma mark Private methods
|
||||
|
||||
- (void)configure
|
||||
{
|
||||
UIView * mainView = self.view;
|
||||
UIView * parentView = self.parent.view;
|
||||
CGSize const size = self.defaultSize;
|
||||
CGPoint const origin = IPAD ? CGPointMake(parentView.center.x - size.width / 2, parentView.center.y - size.height / 2) : CGPointZero;
|
||||
CGPoint const origin = IPAD ? CGPointMake(parentView.center.x - size.width / 2, parentView.center.y - size.height / 2) :
|
||||
CGPointZero;
|
||||
mainView.frame = {origin, size};
|
||||
mainView.backgroundColor = [UIColor whiteColor];
|
||||
if (IPAD)
|
||||
|
@ -158,7 +214,7 @@ NS_CLASS_AVAILABLE_IOS(8_0) @interface MWMPageControllerDataSourceImpl : NSObjec
|
|||
{
|
||||
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
|
||||
if (IPAD)
|
||||
self.view.center = {size.width / 2, size.height / 2 };
|
||||
self.view.center = self.parent.view.center;
|
||||
else
|
||||
self.view.origin = {};
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
@property (nonatomic) NSUInteger pageIndex;
|
||||
@property (weak, nonatomic) MWMPageController * pageController;
|
||||
@property (weak, nonatomic, readonly) IBOutlet UIButton * enableButton;
|
||||
|
||||
- (void)updateForSize:(CGSize)size;
|
||||
|
||||
|
|
|
@ -7,7 +7,8 @@
|
|||
@property (weak, nonatomic) IBOutlet UIImageView * image;
|
||||
@property (weak, nonatomic) IBOutlet UILabel * alertTitle;
|
||||
@property (weak, nonatomic) IBOutlet UILabel * alertText;
|
||||
@property (weak, nonatomic) IBOutlet UIButton * button;
|
||||
@property (weak, nonatomic) IBOutlet UIButton * nextPageButton;
|
||||
@property (weak, nonatomic, readwrite) IBOutlet UIButton * enableButton;
|
||||
@property (weak, nonatomic) IBOutlet NSLayoutConstraint * containerWidth;
|
||||
@property (weak, nonatomic) IBOutlet NSLayoutConstraint * containerHeight;
|
||||
|
||||
|
@ -16,6 +17,7 @@
|
|||
|
||||
@property (weak, nonatomic) IBOutlet NSLayoutConstraint * titleTopOffset;
|
||||
@property (weak, nonatomic) IBOutlet NSLayoutConstraint * titleImageOffset;
|
||||
@property (weak, nonatomic) IBOutlet NSLayoutConstraint * betweenButtonsOffset;
|
||||
|
||||
@end
|
||||
|
||||
|
@ -33,20 +35,25 @@
|
|||
|
||||
- (void)configureFirstPage
|
||||
{
|
||||
self.image.image = [UIImage imageNamed:@"img_tts"];
|
||||
self.alertTitle.text = L(@"whats_new_where_to_turn");
|
||||
self.alertText.text = L(@"whats_new_voice_instructions");
|
||||
[self.button setTitle:L(@"whats_new_next") forState:UIControlStateNormal];
|
||||
[self.button addTarget:self.pageController action:@selector(nextPage) forControlEvents:UIControlEventTouchUpInside];
|
||||
self.image.image = [UIImage imageNamed:@"img_3d_buildings"];
|
||||
self.alertTitle.text = L(@"whats_new_3d_buildings_title");
|
||||
self.alertText.text = [NSString stringWithFormat:@"%@\n\n%@", L(@"whats_new_3d_buildings_subtitle"), L(@"3d_new_update_maps")];
|
||||
[self.enableButton setTitle:L(@"3d_new_buildings_on") forState:UIControlStateNormal];
|
||||
[self.nextPageButton setTitle:L(@"dialog_routing_not_now") forState:UIControlStateNormal];
|
||||
[self.nextPageButton addTarget:self.pageController action:@selector(skipFirst) forControlEvents:UIControlEventTouchUpInside];
|
||||
[self.enableButton addTarget:self.pageController action:@selector(enableFirst:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
|
||||
- (void)configureSecondPage
|
||||
{
|
||||
self.image.image = [UIImage imageNamed:@"img_p2p"];
|
||||
self.alertTitle.text = L(@"whats_new_between_any_points");
|
||||
self.alertText.text = L(@"whats_new_happy_day");
|
||||
[self.button setTitle:L(@"done") forState:UIControlStateNormal];
|
||||
[self.button addTarget:self.pageController action:@selector(close) forControlEvents:UIControlEventTouchUpInside];
|
||||
self.image.image = [UIImage imageNamed:@"img_perspective_view"];
|
||||
self.alertTitle.text = L(@"whats_new_3d_title");
|
||||
self.alertText.text = L(@"whats_new_3d_subtitle");
|
||||
[self.enableButton setTitle:L(@"3d_new_on") forState:UIControlStateNormal];
|
||||
[self.nextPageButton setTitle:L(@"dialog_routing_not_now") forState:UIControlStateNormal];
|
||||
[self.nextPageButton addTarget:self.pageController action:@selector(skipSecond) forControlEvents:UIControlEventTouchUpInside];
|
||||
[self.enableButton addTarget:self.pageController action:@selector(enableSecond) forControlEvents:UIControlEventTouchUpInside];
|
||||
self.enableButton.selected = NO;
|
||||
}
|
||||
|
||||
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
|
||||
|
@ -71,6 +78,8 @@
|
|||
self.image.hidden = hideImage;
|
||||
self.containerWidth.constant = width;
|
||||
self.containerHeight.constant = height;
|
||||
BOOL const isPortrait = (!IPAD && size.height > size.width);
|
||||
self.betweenButtonsOffset.constant = isPortrait ? 16 : 8;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
#import "../../../private.h"
|
||||
|
||||
extern NSString * const kAlohalyticsTapEventKey = @"$onClick";
|
||||
extern NSString * const kUDWhatsNewWasShown = @"WhatsNewWithTTSAndP2PWasShown";
|
||||
extern NSString * const kUDWhatsNewWasShown = @"WhatsNewWith3dAndPerspectiveWasShown";
|
||||
extern char const * kAdForbiddenSettingsKey;
|
||||
extern char const * kAdServerForbiddenKey;
|
||||
|
||||
|
@ -395,8 +395,9 @@ typedef NS_ENUM(NSUInteger, UserTouchesAction)
|
|||
self.controlsManager.menuState = self.menuRestoreState;
|
||||
|
||||
[self refreshAd];
|
||||
|
||||
|
||||
GetFramework().InvalidateRendering();
|
||||
[self showWhatsNewIfNeeded];
|
||||
}
|
||||
|
||||
- (void)viewDidLoad
|
||||
|
|
|
@ -2,17 +2,17 @@
|
|||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "img_p2p.png",
|
||||
"filename" : "img_3d_buildings.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "img_p2p@2x.png",
|
||||
"filename" : "img_3d_buildings@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "img_p2p@3x.png",
|
||||
"filename" : "img_3d_buildings@3x.png",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
BIN
iphone/Maps/Images.xcassets/Whats New/img_3d_buildings.imageset/img_3d_buildings.png
vendored
Normal file
After Width: | Height: | Size: 9.3 KiB |
BIN
iphone/Maps/Images.xcassets/Whats New/img_3d_buildings.imageset/img_3d_buildings@2x.png
vendored
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
iphone/Maps/Images.xcassets/Whats New/img_3d_buildings.imageset/img_3d_buildings@3x.png
vendored
Normal file
After Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 8.5 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 33 KiB |
|
@ -2,17 +2,17 @@
|
|||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "img_tts.png",
|
||||
"filename" : "img_perspective_view.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "img_tts@2x.png",
|
||||
"filename" : "img_perspective_view@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "img_tts@3x.png",
|
||||
"filename" : "img_perspective_view@3x.png",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
BIN
iphone/Maps/Images.xcassets/Whats New/img_perspective_view.imageset/img_perspective_view.png
vendored
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
iphone/Maps/Images.xcassets/Whats New/img_perspective_view.imageset/img_perspective_view@2x.png
vendored
Normal file
After Width: | Height: | Size: 111 KiB |
BIN
iphone/Maps/Images.xcassets/Whats New/img_perspective_view.imageset/img_perspective_view@3x.png
vendored
Normal file
After Width: | Height: | Size: 186 KiB |
Before Width: | Height: | Size: 8.1 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 36 KiB |
|
@ -10,6 +10,7 @@
|
|||
<customFonts key="customFonts">
|
||||
<mutableArray key="HelveticaNeue.ttc">
|
||||
<string>HelveticaNeue-Medium</string>
|
||||
<string>HelveticaNeue-Medium</string>
|
||||
</mutableArray>
|
||||
</customFonts>
|
||||
<scenes>
|
||||
|
@ -494,7 +495,7 @@
|
|||
<!--Whats New Controller-->
|
||||
<scene sceneID="BHc-6D-CJw">
|
||||
<objects>
|
||||
<viewController storyboardIdentifier="PageContentController" id="Fjp-WS-uUD" customClass="MWMWhatsNewController" sceneMemberID="viewController">
|
||||
<viewController id="Fjp-WS-uUD" customClass="MWMWhatsNewController" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="WHe-e5-0L3"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="jfD-hq-SOU"/>
|
||||
|
@ -512,7 +513,7 @@
|
|||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KYa-do-R0L" userLabel="CenteredView">
|
||||
<rect key="frame" x="44" y="59" width="400" height="337"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalCompressionResistancePriority="749" image="img_tts" translatesAutoresizingMaskIntoConstraints="NO" id="9EX-CE-PRs">
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalCompressionResistancePriority="749" image="img_perspective_view" translatesAutoresizingMaskIntoConstraints="NO" id="9EX-CE-PRs">
|
||||
<rect key="frame" x="90" y="0.0" width="220" height="220"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" relation="greaterThanOrEqual" priority="800" constant="120" id="Vf0-P1-t3t"/>
|
||||
|
@ -520,7 +521,7 @@
|
|||
<constraint firstAttribute="height" relation="lessThanOrEqual" priority="800" constant="240" id="qCH-Vy-jyv"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="MAPS.ME подскажет куда поворачивать" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="400" translatesAutoresizingMaskIntoConstraints="NO" id="geS-K2-Efv" userLabel="Title">
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="MAPS.ME подскажет куда поворачивать" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="geS-K2-Efv" userLabel="Title">
|
||||
<rect key="frame" x="0.0" y="240" width="400" height="48"/>
|
||||
<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="calibratedRGB"/>
|
||||
|
@ -530,7 +531,7 @@
|
|||
<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" preferredMaxLayoutWidth="400" translatesAutoresizingMaskIntoConstraints="NO" id="cK0-L8-zCK" userLabel="Text">
|
||||
<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="cK0-L8-zCK" userLabel="Text">
|
||||
<rect key="frame" x="0.0" y="304" 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="calibratedRGB"/>
|
||||
|
@ -618,13 +619,13 @@
|
|||
<connections>
|
||||
<outlet property="alertText" destination="cK0-L8-zCK" id="gu4-cI-1A4"/>
|
||||
<outlet property="alertTitle" destination="geS-K2-Efv" id="pCx-P7-LCl"/>
|
||||
<outlet property="button" destination="D1s-fA-Vvv" id="3hj-We-v0j"/>
|
||||
<outlet property="containerHeight" destination="XnU-Mt-dDy" id="RfT-aB-VuD"/>
|
||||
<outlet property="containerView" destination="Aly-IM-2KF" id="zab-zk-88p"/>
|
||||
<outlet property="containerWidth" destination="vgo-Ww-ozv" id="oeQ-Wm-3we"/>
|
||||
<outlet property="image" destination="9EX-CE-PRs" id="Zl0-px-XFu"/>
|
||||
<outlet property="imageHeight" destination="Ox3-ge-rJ4" id="BfV-7o-qur"/>
|
||||
<outlet property="imageMinHeight" destination="Vf0-P1-t3t" id="3Fd-va-gQE"/>
|
||||
<outlet property="nextPageButton" destination="D1s-fA-Vvv" id="7Sb-5n-Rzw"/>
|
||||
<outlet property="titleImageOffset" destination="LmJ-1R-gjc" id="wqR-oD-P6m"/>
|
||||
<outlet property="titleTopOffset" destination="iaW-ur-87P" id="a9F-xk-vjW"/>
|
||||
</connections>
|
||||
|
@ -633,8 +634,179 @@
|
|||
</objects>
|
||||
<point key="canvasLocation" x="1798" y="1224"/>
|
||||
</scene>
|
||||
<!--Whats New Controller-->
|
||||
<scene sceneID="MYd-bd-VsQ">
|
||||
<objects>
|
||||
<viewController storyboardIdentifier="PageContentController" id="efw-TH-VUf" customClass="MWMWhatsNewController" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="c3A-fh-ac5"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="sSr-Q7-vth"/>
|
||||
</layoutGuides>
|
||||
<view key="view" contentMode="scaleToFill" id="nkC-Df-vwi">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="D7d-Qb-2An" userLabel="Container">
|
||||
<rect key="frame" x="40" y="0.0" width="520" height="600"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="oRc-M5-KT8" userLabel="BoundsView">
|
||||
<rect key="frame" x="16" y="40" width="488" height="400"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dbV-Wy-qVl" userLabel="CenteredView">
|
||||
<rect key="frame" x="44" y="31.5" width="400" height="337"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalCompressionResistancePriority="749" image="img_perspective_view" translatesAutoresizingMaskIntoConstraints="NO" id="89l-86-0xk">
|
||||
<rect key="frame" x="90" y="0.0" width="220" height="220"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" relation="lessThanOrEqual" priority="800" constant="240" id="0NX-uC-IIy"/>
|
||||
<constraint firstAttribute="width" secondItem="89l-86-0xk" secondAttribute="height" multiplier="1:1" id="4I8-QL-cai"/>
|
||||
<constraint firstAttribute="height" relation="greaterThanOrEqual" priority="800" constant="100" id="sfX-V5-aVk"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="MAPS.ME подскажет куда поворачивать" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YVE-HL-Y3R" userLabel="Title">
|
||||
<rect key="frame" x="0.0" y="240" width="400" height="48"/>
|
||||
<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="calibratedRGB"/>
|
||||
<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="AGS-qW-3fZ" userLabel="Text">
|
||||
<rect key="frame" x="0.0" y="304" 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="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular14"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackSecondaryText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<accessibility key="accessibilityConfiguration" identifier="CenteredView"/>
|
||||
<constraints>
|
||||
<constraint firstItem="89l-86-0xk" firstAttribute="top" secondItem="dbV-Wy-qVl" secondAttribute="top" id="33g-BD-bBQ"/>
|
||||
<constraint firstItem="YVE-HL-Y3R" firstAttribute="top" secondItem="89l-86-0xk" secondAttribute="bottom" priority="750" constant="20" id="AC3-td-lC6"/>
|
||||
<constraint firstItem="YVE-HL-Y3R" firstAttribute="centerX" secondItem="dbV-Wy-qVl" secondAttribute="centerX" id="B3W-pT-NJi"/>
|
||||
<constraint firstAttribute="width" relation="lessThanOrEqual" constant="400" id="FrN-ck-wqA"/>
|
||||
<constraint firstAttribute="bottom" secondItem="AGS-qW-3fZ" secondAttribute="bottom" id="Gaf-dY-G3J"/>
|
||||
<constraint firstItem="89l-86-0xk" firstAttribute="centerX" secondItem="dbV-Wy-qVl" secondAttribute="centerX" id="L4Q-E6-DGL"/>
|
||||
<constraint firstItem="AGS-qW-3fZ" firstAttribute="width" secondItem="dbV-Wy-qVl" secondAttribute="width" id="b19-IZ-DAT"/>
|
||||
<constraint firstItem="AGS-qW-3fZ" firstAttribute="centerX" secondItem="dbV-Wy-qVl" secondAttribute="centerX" id="f8d-rD-PKA"/>
|
||||
<constraint firstItem="YVE-HL-Y3R" firstAttribute="top" secondItem="dbV-Wy-qVl" secondAttribute="top" priority="740" constant="40" id="kEV-iA-N07"/>
|
||||
<constraint firstItem="YVE-HL-Y3R" firstAttribute="width" secondItem="dbV-Wy-qVl" secondAttribute="width" id="oZ3-BX-lh6"/>
|
||||
<constraint firstItem="AGS-qW-3fZ" firstAttribute="top" secondItem="YVE-HL-Y3R" secondAttribute="bottom" constant="16" id="xlc-7K-6QC"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<accessibility key="accessibilityConfiguration" identifier="BoundsView"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="dbV-Wy-qVl" secondAttribute="trailing" priority="999" constant="44" id="7bX-3h-FLg"/>
|
||||
<constraint firstItem="dbV-Wy-qVl" firstAttribute="centerY" secondItem="oRc-M5-KT8" secondAttribute="centerY" id="Gyi-cX-e5G"/>
|
||||
<constraint firstItem="dbV-Wy-qVl" firstAttribute="centerX" secondItem="oRc-M5-KT8" secondAttribute="centerX" id="LK5-oF-WvR"/>
|
||||
<constraint firstItem="dbV-Wy-qVl" firstAttribute="height" relation="lessThanOrEqual" secondItem="oRc-M5-KT8" secondAttribute="height" id="SK6-21-mHu"/>
|
||||
<constraint firstItem="dbV-Wy-qVl" firstAttribute="leading" secondItem="oRc-M5-KT8" secondAttribute="leading" priority="999" constant="44" id="w9S-Lr-0PC"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yYS-bY-oOp" userLabel="NotNow">
|
||||
<rect key="frame" x="140" y="460" width="240" height="44"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="240" id="8VY-ls-PhU"/>
|
||||
<constraint firstAttribute="height" constant="44" id="K9e-bd-7Zx"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/>
|
||||
<state key="normal" title="Enable">
|
||||
<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="textColorHighlightedName" value="whiteColor"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorSelectedName" value="whiteColor"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="layer.borderColorName" value="buttonEnabledBlueText"/>
|
||||
<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="buttonEnabledBlueText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="clearColor"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundHighlightedColorName" value="buttonEnabledBlueText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundSelectedColorName" value="buttonEnabledBlueText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</button>
|
||||
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eUZ-Ui-GVQ" userLabel="NotNow">
|
||||
<rect key="frame" x="140" y="520" width="240" height="44"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="240" id="DCl-bv-H9r"/>
|
||||
<constraint firstAttribute="height" constant="44" id="jjR-GW-5LC"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/>
|
||||
<state key="normal" title="Not Now">
|
||||
<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="textColorHighlightedName" value="whiteColor"/>
|
||||
<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="buttonEnabledBlueText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="clearColor"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundHighlightedColorName" value="buttonEnabledBlueText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="eUZ-Ui-GVQ" firstAttribute="top" secondItem="yYS-bY-oOp" secondAttribute="bottom" constant="16" id="1bu-6e-sMf"/>
|
||||
<constraint firstItem="oRc-M5-KT8" firstAttribute="top" secondItem="D7d-Qb-2An" secondAttribute="top" constant="40" id="20J-B5-SZC"/>
|
||||
<constraint firstItem="yYS-bY-oOp" firstAttribute="centerX" secondItem="D7d-Qb-2An" secondAttribute="centerX" id="32c-pv-xs8"/>
|
||||
<constraint firstItem="yYS-bY-oOp" firstAttribute="top" secondItem="oRc-M5-KT8" secondAttribute="bottom" constant="20" id="Du1-7t-mLV"/>
|
||||
<constraint firstItem="oRc-M5-KT8" firstAttribute="leading" secondItem="D7d-Qb-2An" secondAttribute="leading" constant="16" id="Lq4-9h-Qmh"/>
|
||||
<constraint firstAttribute="trailing" secondItem="oRc-M5-KT8" secondAttribute="trailing" constant="16" id="VTi-wm-ggu"/>
|
||||
<constraint firstAttribute="bottom" secondItem="eUZ-Ui-GVQ" secondAttribute="bottom" constant="36" id="bUn-Gh-Rlr"/>
|
||||
<constraint firstItem="89l-86-0xk" firstAttribute="height" secondItem="D7d-Qb-2An" secondAttribute="height" multiplier="0.3" priority="750" id="eDv-46-dEZ"/>
|
||||
<constraint firstAttribute="height" constant="600" id="iuE-gX-na2"/>
|
||||
<constraint firstAttribute="width" constant="520" id="ooZ-hL-8Wc"/>
|
||||
<constraint firstItem="eUZ-Ui-GVQ" firstAttribute="centerX" secondItem="D7d-Qb-2An" secondAttribute="centerX" id="wiT-zA-c6e"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="D7d-Qb-2An" firstAttribute="centerY" secondItem="nkC-Df-vwi" secondAttribute="centerY" id="Rti-cT-oAe"/>
|
||||
<constraint firstItem="D7d-Qb-2An" firstAttribute="centerX" secondItem="nkC-Df-vwi" secondAttribute="centerX" id="t7z-Ws-pJb"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="alertText" destination="AGS-qW-3fZ" id="5gJ-eh-dqQ"/>
|
||||
<outlet property="alertTitle" destination="YVE-HL-Y3R" id="nwS-zC-8sE"/>
|
||||
<outlet property="betweenButtonsOffset" destination="1bu-6e-sMf" id="sbZ-08-i9I"/>
|
||||
<outlet property="containerHeight" destination="iuE-gX-na2" id="Pzm-59-4qM"/>
|
||||
<outlet property="containerView" destination="D7d-Qb-2An" id="hTh-Xy-HVR"/>
|
||||
<outlet property="containerWidth" destination="ooZ-hL-8Wc" id="cEv-fb-X0b"/>
|
||||
<outlet property="enableButton" destination="yYS-bY-oOp" id="BDp-og-liJ"/>
|
||||
<outlet property="image" destination="89l-86-0xk" id="fWg-zq-BiS"/>
|
||||
<outlet property="imageHeight" destination="eDv-46-dEZ" id="LDb-JD-NBU"/>
|
||||
<outlet property="imageMinHeight" destination="sfX-V5-aVk" id="TbE-jB-5s5"/>
|
||||
<outlet property="nextPageButton" destination="eUZ-Ui-GVQ" id="nXy-An-QIy"/>
|
||||
<outlet property="titleImageOffset" destination="AC3-td-lC6" id="7fa-o6-nO9"/>
|
||||
<outlet property="titleTopOffset" destination="kEV-iA-N07" id="qtI-TA-ogO"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="vma-ym-5OI" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="2442" y="1224"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
<resources>
|
||||
<image name="img_tts" width="220" height="220"/>
|
||||
<image name="img_perspective_view" width="220" height="220"/>
|
||||
</resources>
|
||||
</document>
|
||||
|
|
|
@ -124,7 +124,7 @@ typedef NS_ENUM(NSUInteger, Section)
|
|||
{
|
||||
bool _ = true;
|
||||
GetFramework().Load3dMode(_, on);
|
||||
customCell.titleLabel.text = L(@"pref_3d_buildings");
|
||||
customCell.titleLabel.text = L(@"pref_map_3d_buildings_title");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -143,7 +143,7 @@ typedef NS_ENUM(NSUInteger, Section)
|
|||
{
|
||||
cell = [tableView dequeueReusableCellWithIdentifier:[SwitchCell className]];
|
||||
SwitchCell * customCell = (SwitchCell *)cell;
|
||||
customCell.titleLabel.text = L(@"prefs_3d_mode");
|
||||
customCell.titleLabel.text = L(@"pref_map_3d_title");
|
||||
customCell.delegate = self;
|
||||
bool _ = true, on = true;
|
||||
GetFramework().Load3dMode(on, _);
|
||||
|
|
|
@ -29,6 +29,11 @@
|
|||
[self setTitleColor:[UIColor colorWithName:colorName] forState:UIControlStateHighlighted];
|
||||
}
|
||||
|
||||
- (void)setTextColorSelectedName:(NSString *)colorName
|
||||
{
|
||||
[self setTitleColor:[UIColor colorWithName:colorName] forState:UIControlStateSelected];
|
||||
}
|
||||
|
||||
- (void)setBackgroundColorName:(NSString *)colorName
|
||||
{
|
||||
[self setBackgroundColor:[UIColor colorWithName:colorName] forState:UIControlStateNormal];
|
||||
|
@ -39,6 +44,11 @@
|
|||
[self setBackgroundColor:[UIColor colorWithName:colorName] forState:UIControlStateHighlighted];
|
||||
}
|
||||
|
||||
- (void)setBackgroundSelectedColorName:(NSString *)colorName
|
||||
{
|
||||
[self setBackgroundColor:[UIColor colorWithName:colorName] forState:UIControlStateSelected];
|
||||
}
|
||||
|
||||
- (void)setBackgroundColor:(UIColor *)color forState:(UIControlState)state
|
||||
{
|
||||
[self setBackgroundImage:[UIImage imageWithColor:color] forState:state];
|
||||
|
|