[ios] Redesign rate alert.
|
@ -25,7 +25,6 @@ typedef void (^CloseAlertCompletion)();
|
|||
code:(routing::IRouter::ResultCode)code;
|
||||
- (void)presentRateAlert;
|
||||
- (void)presentFacebookAlert;
|
||||
- (void)presentFeedbackAlertWithStarsCount:(NSUInteger)starsCount;
|
||||
- (void)presentRoutingDisclaimerAlert;
|
||||
- (void)presentDisabledLocationAlert;
|
||||
- (void)presentLocationAlert;
|
||||
|
|
|
@ -95,11 +95,6 @@ static NSString * const kAlertControllerNibIdentifier = @"MWMAlertViewController
|
|||
[self displayAlert:[MWMAlert pedestrianToastShareAlert:isFirstLaunch]];
|
||||
}
|
||||
|
||||
- (void)presentFeedbackAlertWithStarsCount:(NSUInteger)starsCount
|
||||
{
|
||||
[self displayAlert:[MWMAlert feedbackAlertWithStarsCount:starsCount]];
|
||||
}
|
||||
|
||||
- (void)presentDownloaderAlertWithCountries:(vector<storage::TIndex> const &)countries
|
||||
routes:(vector<storage::TIndex> const &)routes
|
||||
code:(routing::IRouter::ResultCode)code
|
||||
|
|
|
@ -23,7 +23,6 @@ typedef void (^RightButtonAction)();
|
|||
routes:(vector<storage::TIndex> const &)routes
|
||||
code:(routing::IRouter::ResultCode)code;
|
||||
+ (MWMAlert *)rateAlert;
|
||||
+ (MWMAlert *)feedbackAlertWithStarsCount:(NSUInteger)starsCount;
|
||||
+ (MWMAlert *)facebookAlert;
|
||||
+ (MWMAlert *)locationAlert;
|
||||
+ (MWMAlert *)routingDisclaimerAlertWithInitialOrientation:(UIInterfaceOrientation)orientation;
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#import "MWMDefaultAlert.h"
|
||||
#import "MWMDownloadTransitMapAlert.h"
|
||||
#import "MWMFacebookAlert.h"
|
||||
#import "MWMFeedbackAlert.h"
|
||||
#import "MWMLocationAlert.h"
|
||||
#import "MWMPedestrianShareAlert.h"
|
||||
#import "MWMRateAlert.h"
|
||||
|
@ -61,11 +60,6 @@
|
|||
return [MWMDefaultAlert locationServiceNotSupportedAlert];
|
||||
}
|
||||
|
||||
+ (MWMAlert *)feedbackAlertWithStarsCount:(NSUInteger)starsCount
|
||||
{
|
||||
return [MWMFeedbackAlert alertWithStarsCount:starsCount];
|
||||
}
|
||||
|
||||
+ (MWMAlert *)downloaderAlertWithAbsentCountries:(vector<storage::TIndex> const &)countries
|
||||
routes:(vector<storage::TIndex> const &)routes
|
||||
code:(routing::IRouter::ResultCode)code
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14E46" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14D131" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
|
||||
<dependencies>
|
||||
<deployment version="2048" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
|
||||
|
@ -61,7 +61,7 @@
|
|||
<state key="highlighted" backgroundImage="dialog_btn_press"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="ok"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonBlueText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonEnabledBlueText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="leftButtonTap" destination="iN0-l3-epB" eventType="touchUpInside" id="xE7-aE-OzM"/>
|
||||
|
@ -81,7 +81,7 @@
|
|||
<state key="highlighted" backgroundImage="dialog_btn_press"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="ok"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonBlueText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonEnabledBlueText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="rightButtonTap" destination="iN0-l3-epB" eventType="touchUpInside" id="UO8-7c-q1i"/>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14E46" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14D131" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
|
||||
<dependencies>
|
||||
<deployment version="2048" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
|
||||
|
@ -83,7 +83,7 @@
|
|||
<state key="highlighted" backgroundImage="dialog_btn_press"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="download"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonBlueText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonEnabledBlueText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="downloadButtonTap:" destination="jqI-GQ-yDh" eventType="touchUpInside" id="L2t-kQ-AzL"/>
|
||||
|
@ -103,7 +103,7 @@
|
|||
<state key="highlighted" backgroundImage="dialog_btn_press"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="later"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonBlueText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonEnabledBlueText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="notNowButtonTap:" destination="jqI-GQ-yDh" eventType="touchUpInside" id="6pb-Gg-9sN"/>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14E46" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14D131" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
|
||||
<dependencies>
|
||||
<deployment version="2048" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
|
||||
|
@ -67,7 +67,7 @@
|
|||
<state key="highlighted" backgroundImage="dialog_btn_press"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="later"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonBlueText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonEnabledBlueText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="notNowButtonTap:" destination="Eeb-Gs-Fip" eventType="touchUpInside" id="FEJ-y8-uMY"/>
|
||||
|
@ -87,7 +87,7 @@
|
|||
<state key="highlighted" backgroundImage="dialog_btn_press"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="share"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonBlueText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonEnabledBlueText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="shareButtonTap:" destination="Eeb-Gs-Fip" eventType="touchUpInside" id="NBE-Bo-lM3"/>
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
//
|
||||
// MWMFeedbackAlert.h
|
||||
// Maps
|
||||
//
|
||||
// Created by v.mikhaylenko on 25.03.15.
|
||||
// Copyright (c) 2015 MapsWithMe. All rights reserved.
|
||||
//
|
||||
|
||||
#import "MWMAlert.h"
|
||||
|
||||
@interface MWMFeedbackAlert : MWMAlert
|
||||
|
||||
+ (instancetype)alertWithStarsCount:(NSUInteger)starsCount;
|
||||
|
||||
@end
|
|
@ -1,98 +0,0 @@
|
|||
//
|
||||
// MWMFeedbackAlert.m
|
||||
// Maps
|
||||
//
|
||||
// Created by v.mikhaylenko on 25.03.15.
|
||||
// Copyright (c) 2015 MapsWithMe. All rights reserved.
|
||||
//
|
||||
|
||||
#import "AppInfo.h"
|
||||
#import "MWMAlertViewController.h"
|
||||
#import "MWMFeedbackAlert.h"
|
||||
#import "Statistics.h"
|
||||
#import "UIKitCategories.h"
|
||||
|
||||
#import <MessageUI/MFMailComposeViewController.h>
|
||||
#import <sys/utsname.h>
|
||||
|
||||
#import "3party/Alohalytics/src/alohalytics_objc.h"
|
||||
|
||||
#include "platform/platform.hpp"
|
||||
|
||||
@interface MWMFeedbackAlert () <MFMailComposeViewControllerDelegate>
|
||||
|
||||
@property (nonatomic, assign) NSUInteger starsCount;
|
||||
|
||||
@end
|
||||
|
||||
static NSString * const kFeedbackAlertNibName = @"MWMFeedbackAlert";
|
||||
static NSString * const kRateEmail = @"rating@maps.me";
|
||||
extern NSDictionary * const deviceNames;
|
||||
extern NSString * const kLocaleUsedInSupportEmails;
|
||||
extern NSString * const kRateAlertEventName;
|
||||
|
||||
@implementation MWMFeedbackAlert
|
||||
|
||||
+ (instancetype)alertWithStarsCount:(NSUInteger)starsCount
|
||||
{
|
||||
[Statistics.instance logEvent:[NSString stringWithFormat:@"%@ - %@", kRateAlertEventName, @"open"]];
|
||||
MWMFeedbackAlert * alert = [[[NSBundle mainBundle] loadNibNamed:kFeedbackAlertNibName owner:self options:nil] firstObject];
|
||||
alert.starsCount = starsCount;
|
||||
return alert;
|
||||
}
|
||||
|
||||
#pragma mark - Actions
|
||||
|
||||
- (IBAction)notNowButtonTap:(id)sender
|
||||
{
|
||||
[Alohalytics logEvent:kRateAlertEventName withValue:@"feedbackNotNowTap"];
|
||||
[self close];
|
||||
}
|
||||
|
||||
- (IBAction)writeFeedbackButtonTap:(id)sender
|
||||
{
|
||||
[Alohalytics logEvent:kRateAlertEventName withValue:@"feedbackWriteTap"];
|
||||
[Statistics.instance logEvent:[NSString stringWithFormat:@"%@ - %@", kRateAlertEventName, @"feedbackWriteTap"]];
|
||||
self.alpha = 0.;
|
||||
self.alertController.view.alpha = 0.;
|
||||
if ([MFMailComposeViewController canSendMail])
|
||||
{
|
||||
struct utsname systemInfo;
|
||||
uname(&systemInfo);
|
||||
NSString * machine = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
|
||||
NSString * device = deviceNames[machine];
|
||||
if (!device)
|
||||
device = machine;
|
||||
NSString * languageCode = [[NSLocale preferredLanguages] firstObject];
|
||||
NSString * language = [[NSLocale localeWithLocaleIdentifier:kLocaleUsedInSupportEmails] displayNameForKey:NSLocaleLanguageCode value:languageCode];
|
||||
NSString * locale = [[NSLocale currentLocale] objectForKey:NSLocaleCountryCode];
|
||||
NSString * country = [[NSLocale localeWithLocaleIdentifier:kLocaleUsedInSupportEmails] displayNameForKey:NSLocaleCountryCode value:locale];
|
||||
NSString * bundleVersion = AppInfo.sharedInfo.bundleVersion;
|
||||
NSString * text = [NSString stringWithFormat:@"\n\n\n\n- %@ (%@)\n- MAPS.ME %@\n- %@/%@", device, [UIDevice currentDevice].systemVersion, bundleVersion, language, country];
|
||||
MFMailComposeViewController * mailController = [[MFMailComposeViewController alloc] init];
|
||||
mailController.mailComposeDelegate = self;
|
||||
[mailController setSubject:[NSString stringWithFormat:@"%@ : %@", L(@"rating_just_rated"), @(self.starsCount)]];
|
||||
[mailController setToRecipients:@[kRateEmail]];
|
||||
[mailController setMessageBody:text isHTML:NO];
|
||||
mailController.navigationBar.tintColor = [UIColor blackColor];
|
||||
[self.alertController.ownerViewController presentViewController:mailController animated:YES completion:nil];
|
||||
}
|
||||
else
|
||||
{
|
||||
NSString * text = [NSString stringWithFormat:L(@"email_error_body"), kRateEmail];
|
||||
[[[UIAlertView alloc] initWithTitle:L(@"email_error_title") message:text delegate:nil cancelButtonTitle:L(@"ok") otherButtonTitles:nil] show];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - MFMailComposeViewControllerDelegate
|
||||
|
||||
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {
|
||||
[Statistics.instance logEvent:[NSString stringWithFormat:@"%@ - %@", kRateAlertEventName, @"mailComposeController"]];
|
||||
[self.alertController.ownerViewController dismissViewControllerAnimated:YES completion:^
|
||||
{
|
||||
[Statistics.instance logEvent:[NSString stringWithFormat:@"%@ - %@", kRateAlertEventName, @"close"]];
|
||||
[self close];
|
||||
}];
|
||||
}
|
||||
|
||||
@end
|
|
@ -1,156 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14D131" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
|
||||
<dependencies>
|
||||
<deployment version="2048" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
|
||||
</dependencies>
|
||||
<customFonts key="customFonts">
|
||||
<mutableArray key="HelveticaNeue.ttc">
|
||||
<string>HelveticaNeue-Medium</string>
|
||||
<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="5Qh-Eb-f57" customClass="MWMFeedbackAlert">
|
||||
<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="Srt-KY-0sK" userLabel="ContainerView">
|
||||
<rect key="frame" x="20" y="193" width="280" height="181"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Title" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HkY-pH-oLW" userLabel="Title">
|
||||
<rect key="frame" x="20" y="20" width="240" height="21.5"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="22" id="17O-dl-jAv"/>
|
||||
<constraint firstAttribute="width" constant="240" id="rVt-Mg-2cv"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue-Medium" family="Helvetica Neue" pointSize="18"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="rating_do_like_maps"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Message" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KLp-hk-e5t" userLabel="Message">
|
||||
<rect key="frame" x="20" y="53" width="240" height="20"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="240" id="JLh-Dt-33i"/>
|
||||
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="QcM-hl-oy7"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="14"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.54000000000000004" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="rating_tap_star"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cns-JD-j3q">
|
||||
<rect key="frame" x="0.0" y="93" width="280" height="44"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ItG-Qt-RfU">
|
||||
<rect key="frame" x="0.0" y="0.0" width="284" height="44"/>
|
||||
<state key="normal">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="dialog_btn_press"/>
|
||||
<connections>
|
||||
<action selector="writeFeedbackButtonTap:" destination="5Qh-Eb-f57" eventType="touchUpInside" id="n54-S2-Fv4"/>
|
||||
</connections>
|
||||
</button>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="rate-send" translatesAutoresizingMaskIntoConstraints="NO" id="GfC-hh-YWi">
|
||||
<rect key="frame" x="25" y="10" width="48" height="24"/>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Champagne-Ardenne" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DsU-aa-xTZ">
|
||||
<rect key="frame" x="81" y="12" width="188" height="19"/>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue-Medium" family="Helvetica Neue" pointSize="18"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="rating_send_feedback"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="0.96078431372549022" green="0.96078431372549022" blue="0.96078431372549022" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="44" id="r3K-Bg-V4Z"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TRa-Ri-xb0" userLabel="hDivider">
|
||||
<rect key="frame" x="0.0" y="137" width="280" height="1"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.12" colorSpace="calibratedRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="1" id="HJt-Fa-THf"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="AFW-Bz-Rp5" userLabel="left">
|
||||
<rect key="frame" x="0.0" y="137" width="280" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="44" id="V8r-6h-00E"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/>
|
||||
<state key="normal" title="left">
|
||||
<color key="titleColor" red="0.090196078430000007" green="0.61960784310000006" blue="0.30196078430000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="dialog_btn_press"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="later"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonBlueText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="notNowButtonTap:" destination="5Qh-Eb-f57" eventType="touchUpInside" id="Yx7-AX-VSc"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="0.88" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="centerX" secondItem="HkY-pH-oLW" secondAttribute="centerX" id="8eR-Mw-Ga1"/>
|
||||
<constraint firstAttribute="width" constant="280" id="HPO-37-NMh"/>
|
||||
<constraint firstAttribute="width" secondItem="cns-JD-j3q" secondAttribute="width" id="K3y-Ej-Omp"/>
|
||||
<constraint firstItem="TRa-Ri-xb0" firstAttribute="top" secondItem="cns-JD-j3q" secondAttribute="bottom" id="KUA-OV-RPz"/>
|
||||
<constraint firstItem="KLp-hk-e5t" firstAttribute="top" secondItem="HkY-pH-oLW" secondAttribute="bottom" constant="11.5" id="SGd-SB-5cq"/>
|
||||
<constraint firstAttribute="centerX" secondItem="KLp-hk-e5t" secondAttribute="centerX" id="TLY-RU-CDe"/>
|
||||
<constraint firstAttribute="bottom" secondItem="AFW-Bz-Rp5" secondAttribute="bottom" id="TxH-DH-Fk0"/>
|
||||
<constraint firstItem="cns-JD-j3q" firstAttribute="top" secondItem="KLp-hk-e5t" secondAttribute="bottom" constant="20" id="faR-QE-72V"/>
|
||||
<constraint firstAttribute="width" secondItem="AFW-Bz-Rp5" secondAttribute="width" id="g9H-Sv-0TG"/>
|
||||
<constraint firstAttribute="width" secondItem="TRa-Ri-xb0" secondAttribute="width" id="ntk-PW-ifG"/>
|
||||
<constraint firstItem="HkY-pH-oLW" firstAttribute="top" secondItem="Srt-KY-0sK" secondAttribute="top" constant="20" id="tjq-w9-YES"/>
|
||||
<constraint firstAttribute="centerX" secondItem="AFW-Bz-Rp5" secondAttribute="centerX" id="vuA-ne-EVF"/>
|
||||
<constraint firstItem="AFW-Bz-Rp5" firstAttribute="top" secondItem="TRa-Ri-xb0" secondAttribute="bottom" constant="-1" id="wNU-cK-aiS"/>
|
||||
<constraint firstAttribute="centerX" secondItem="TRa-Ri-xb0" secondAttribute="centerX" id="x7G-nU-21a"/>
|
||||
<constraint firstAttribute="centerX" secondItem="cns-JD-j3q" secondAttribute="centerX" id="y88-li-dlj"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="size" keyPath="layer.shadowOffset">
|
||||
<size key="value" width="0.0" height="3"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.shadowRadius">
|
||||
<integer key="value" value="6"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||
<integer key="value" value="4"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="alertBackground"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="centerY" secondItem="Srt-KY-0sK" secondAttribute="centerY" constant="0.5" id="KhM-4C-6jA"/>
|
||||
<constraint firstAttribute="centerX" secondItem="Srt-KY-0sK" secondAttribute="centerX" id="NIt-wp-iZ6"/>
|
||||
</constraints>
|
||||
<point key="canvasLocation" x="706" y="177"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="dialog_btn_press" width="280" height="44"/>
|
||||
<image name="rate-send" width="48" height="24"/>
|
||||
</resources>
|
||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
||||
<simulatedStatusBarMetrics key="statusBar"/>
|
||||
<simulatedOrientationMetrics key="orientation"/>
|
||||
<simulatedScreenMetrics key="destination" type="retina4"/>
|
||||
</simulatedMetricsContainer>
|
||||
</document>
|
|
@ -80,7 +80,7 @@
|
|||
<state key="highlighted" backgroundImage="dialog_btn_press"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="ok"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonBlueText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonEnabledBlueText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="settingsTap" destination="mnY-7K-ids" eventType="touchUpInside" id="y48-t3-n6f"/>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14E46" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14D131" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
|
||||
<dependencies>
|
||||
<deployment version="2048" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
|
||||
|
@ -76,18 +76,18 @@
|
|||
</state>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="share"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonBlueText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonEnabledBlueText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="medium17"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorHighlightedName" value="whiteColor"/>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||
<integer key="value" value="8"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="layer.borderColorName" value="buttonBlueText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="layer.borderColorName" value="buttonEnabledBlueText"/>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
|
||||
<integer key="value" value="1"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="clearColor"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundHighlightedColorName" value="buttonBlueText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundHighlightedColorName" value="buttonEnabledBlueText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="shareButtonTap" destination="pWH-NL-pHM" eventType="touchUpInside" id="5Kn-q1-1CP"/>
|
||||
|
|
|
@ -6,184 +6,206 @@
|
|||
// Copyright (c) 2015 MapsWithMe. All rights reserved.
|
||||
//
|
||||
|
||||
#import "AppInfo.h"
|
||||
#import "MWMAlertViewController.h"
|
||||
#import "MWMRateAlert.h"
|
||||
#import "Statistics.h"
|
||||
#import "UIColor+MapsMeColor.h"
|
||||
#import "UIKitCategories.h"
|
||||
#import <MessageUI/MFMailComposeViewController.h>
|
||||
#import <sys/utsname.h>
|
||||
|
||||
#import "3party/Alohalytics/src/alohalytics_objc.h"
|
||||
|
||||
#include "platform/platform.hpp"
|
||||
|
||||
extern NSString * const kUDAlreadyRatedKey;
|
||||
extern NSDictionary * const deviceNames;
|
||||
extern NSString * const kLocaleUsedInSupportEmails;
|
||||
extern NSString * const kRateAlertEventName = @"rateAlertEvent";
|
||||
static NSString * const kRateAlertNibName = @"MWMRateAlert";
|
||||
static NSString * const kRateEmail = @"rating@maps.me";
|
||||
|
||||
@interface MWMRateAlert ()
|
||||
@interface MWMRateAlert () <MFMailComposeViewControllerDelegate>
|
||||
|
||||
@property (nonatomic, weak) IBOutlet UIButton *oneStarButton;
|
||||
@property (nonatomic, weak) IBOutlet UIButton *twoStarButton;
|
||||
@property (nonatomic, weak) IBOutlet UIButton *threeStarButton;
|
||||
@property (nonatomic, weak) IBOutlet UIButton *fourStarButton;
|
||||
@property (nonatomic, weak) IBOutlet UIButton *fiveStarButton;
|
||||
@property (nonatomic, weak) IBOutlet UIImageView *oneStarPushImageView;
|
||||
@property (nonatomic, weak) IBOutlet UIImageView *twoStarPushImageView;
|
||||
@property (nonatomic, weak) IBOutlet UIImageView *threeStarPushImageView;
|
||||
@property (nonatomic, weak) IBOutlet UIImageView *fourStarPushImageView;
|
||||
@property (nonatomic, weak) IBOutlet UIImageView *fiveStarPushImageView;
|
||||
@property (nonatomic, weak) IBOutlet UILabel *oneStarLabel;
|
||||
@property (nonatomic, weak) IBOutlet UILabel *twoStarLabel;
|
||||
@property (nonatomic, weak) IBOutlet UILabel *threeStarLabel;
|
||||
@property (nonatomic, weak) IBOutlet UILabel *fourStarLabel;
|
||||
@property (nonatomic, weak) IBOutlet UILabel *fiveStarLabel;
|
||||
@property (nonatomic) IBOutletCollection(UIButton) NSArray * buttons;
|
||||
@property (nonatomic, weak) IBOutlet UIButton * rateButton;
|
||||
@property (nonatomic, weak) IBOutlet UILabel * title;
|
||||
@property (nonatomic, weak) IBOutlet UILabel * message;
|
||||
@property (nonatomic) NSUInteger selectedTag;
|
||||
|
||||
@end
|
||||
|
||||
static NSString * const kRateAlertNibName = @"MWMRateAlert";
|
||||
|
||||
@implementation MWMRateAlert
|
||||
|
||||
+ (instancetype)alert
|
||||
{
|
||||
[Statistics.instance logEvent:[NSString stringWithFormat:@"%@ - %@", kRateAlertEventName, @"open"]];
|
||||
MWMRateAlert * alert = [[[NSBundle mainBundle] loadNibNamed:kRateAlertNibName owner:self options:nil] firstObject];
|
||||
[alert configureButtons];
|
||||
return alert;
|
||||
}
|
||||
|
||||
#pragma mark - Actions
|
||||
|
||||
- (IBAction)oneStarTap:(UILongPressGestureRecognizer *)sender
|
||||
- (void)configureButtons
|
||||
{
|
||||
[Statistics.instance logEvent:[NSString stringWithFormat:@"%@ - %@", kRateAlertEventName, @"oneStarTap"]];
|
||||
[UIView animateWithDuration:0.15 animations:^
|
||||
{
|
||||
self.oneStarPushImageView.alpha = 1.;
|
||||
self.oneStarButton.selected = YES;
|
||||
}
|
||||
completion:^(BOOL finished)
|
||||
{
|
||||
[UIView animateWithDuration:0.15 animations:^
|
||||
{
|
||||
self.oneStarPushImageView.alpha = 0.;
|
||||
}
|
||||
completion:^(BOOL finished)
|
||||
{
|
||||
[self presentAlertWithStarsCount:1];
|
||||
}];
|
||||
}];
|
||||
UIImage * i = [self.buttons.firstObject imageForState:UIControlStateSelected];
|
||||
for (UIButton * b in self.buttons)
|
||||
[b setImage:i forState:(UIControlStateHighlighted | UIControlStateSelected)];
|
||||
}
|
||||
|
||||
- (IBAction)twoStarTap:(UILongPressGestureRecognizer *)sender
|
||||
- (IBAction)starTap:(UIButton *)sender
|
||||
{
|
||||
[Statistics.instance logEvent:[NSString stringWithFormat:@"%@ - %@", kRateAlertEventName, @"twoStarTap"]];
|
||||
[UIView animateWithDuration:0.15 animations:^
|
||||
if (!self.rateButton.enabled)
|
||||
{
|
||||
self.twoStarPushImageView.alpha = 1.;
|
||||
self.oneStarButton.selected = YES;
|
||||
self.twoStarButton.selected = YES;
|
||||
self.rateButton.enabled = YES;
|
||||
auto color = UIColor.buttonEnabledBlueText;
|
||||
self.rateButton.layer.borderColor = color.CGColor;
|
||||
[self.rateButton setTitleColor:color forState:UIControlStateNormal];
|
||||
}
|
||||
completion:^(BOOL finished)
|
||||
|
||||
NSUInteger const tag = sender.tag;
|
||||
if (tag == 5)
|
||||
{
|
||||
[UIView animateWithDuration:0.15 animations:^
|
||||
{
|
||||
self.twoStarPushImageView.alpha = 0.;
|
||||
}
|
||||
completion:^(BOOL finished)
|
||||
{
|
||||
[self presentAlertWithStarsCount:2];
|
||||
}];
|
||||
}];
|
||||
[self.rateButton setTitle:L(@"rate_the_app") forState:UIControlStateNormal];
|
||||
self.message.text = L(@"rate_alert_five_star_message");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (tag == 4)
|
||||
self.message.text = L(@"rate_alert_four_star_message");
|
||||
else
|
||||
self.message.text = L(@"rate_alert_less_than_four_star_message");
|
||||
[self.rateButton setTitle:L(@"leave_a_review") forState:UIControlStateNormal];
|
||||
}
|
||||
[self setNeedsLayout];
|
||||
for (UIButton * b in self.buttons)
|
||||
{
|
||||
if (b.tag > tag)
|
||||
b.selected = NO;
|
||||
else
|
||||
b.selected = YES;
|
||||
}
|
||||
self.selectedTag = tag;
|
||||
}
|
||||
|
||||
- (IBAction)threeStarTap:(UILongPressGestureRecognizer *)sender
|
||||
- (IBAction)starHighlighted:(UIButton *)sender
|
||||
{
|
||||
[Statistics.instance logEvent:[NSString stringWithFormat:@"%@ - %@", kRateAlertEventName, @"threeStarTap"]];
|
||||
[UIView animateWithDuration:0.15 animations:^
|
||||
{
|
||||
self.threeStarPushImageView.alpha = 1.;
|
||||
self.oneStarButton.selected = YES;
|
||||
self.twoStarButton.selected = YES;
|
||||
self.threeStarButton.selected = YES;
|
||||
}
|
||||
completion:^(BOOL finished)
|
||||
{
|
||||
[UIView animateWithDuration:0.15 animations:^
|
||||
{
|
||||
self.threeStarPushImageView.alpha = 0.;
|
||||
}
|
||||
completion:^(BOOL finished)
|
||||
{
|
||||
[self presentAlertWithStarsCount:3];
|
||||
}];
|
||||
}];
|
||||
[self setHighlighted:sender.tag];
|
||||
}
|
||||
|
||||
- (IBAction)fourStarTap:(UILongPressGestureRecognizer *)sender
|
||||
- (IBAction)starTouchCanceled
|
||||
{
|
||||
[Statistics.instance logEvent:[NSString stringWithFormat:@"%@ - %@", kRateAlertEventName, @"fourStarTap"]];
|
||||
[UIView animateWithDuration:0.15 animations:^
|
||||
{
|
||||
self.fourStarPushImageView.alpha = 1.;
|
||||
self.oneStarButton.selected = YES;
|
||||
self.twoStarButton.selected = YES;
|
||||
self.threeStarButton.selected = YES;
|
||||
self.fourStarButton.selected = YES;
|
||||
}
|
||||
completion:^(BOOL finished)
|
||||
{
|
||||
[UIView animateWithDuration:0.15 animations:^
|
||||
{
|
||||
self.fourStarPushImageView.alpha = 0.;
|
||||
}
|
||||
completion:^(BOOL finished)
|
||||
{
|
||||
[self presentAlertWithStarsCount:4];
|
||||
}];
|
||||
}];
|
||||
for (UIButton * b in self.buttons)
|
||||
b.highlighted = NO;
|
||||
}
|
||||
|
||||
- (IBAction)fiveStarTap:(UILongPressGestureRecognizer *)sender
|
||||
- (IBAction)starDragInside:(UIButton *)sender
|
||||
{
|
||||
[Statistics.instance logEvent:[NSString stringWithFormat:@"%@ - %@", kRateAlertEventName, @"fiveStarTap"]];
|
||||
[Alohalytics logEvent:kRateAlertEventName withValue:@"fiveStar"];
|
||||
[UIView animateWithDuration:0.15 animations:^
|
||||
{
|
||||
self.fiveStarPushImageView.alpha = 1.;
|
||||
self.oneStarButton.selected = YES;
|
||||
self.twoStarButton.selected = YES;
|
||||
self.threeStarButton.selected = YES;
|
||||
self.fourStarButton.selected = YES;
|
||||
self.fiveStarButton.selected = YES;
|
||||
}
|
||||
completion:^(BOOL finished)
|
||||
{
|
||||
[UIView animateWithDuration:0.15 animations:^
|
||||
{
|
||||
self.fiveStarPushImageView.alpha = 0.;
|
||||
}
|
||||
completion:^(BOOL finished)
|
||||
{
|
||||
[[UIApplication sharedApplication] rateVersionFrom:@"ios_pro_popup"];
|
||||
[self close];
|
||||
[self setupAlreadyRatedInUserDefaults];
|
||||
}];
|
||||
}];
|
||||
[self setHighlighted:sender.tag];
|
||||
}
|
||||
|
||||
- (IBAction)notNowTap
|
||||
- (void)setHighlighted:(NSUInteger)tag
|
||||
{
|
||||
for (UIButton * b in self.buttons)
|
||||
{
|
||||
if (b.tag > tag)
|
||||
b.highlighted = NO;
|
||||
else
|
||||
b.highlighted = !b.selected;
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction)doneTap
|
||||
{
|
||||
[Statistics.instance logEvent:[NSString stringWithFormat:@"%@ - %@", kRateAlertEventName, @"notNowTap"]];
|
||||
[Alohalytics logEvent:kRateAlertEventName withValue:@"notNowTap"];
|
||||
[self close];
|
||||
}
|
||||
|
||||
- (void)presentAlertWithStarsCount:(NSUInteger)starsCount
|
||||
- (IBAction)rateTap
|
||||
{
|
||||
[self removeFromSuperview];
|
||||
[self.alertController presentFeedbackAlertWithStarsCount:starsCount];
|
||||
[self setupAlreadyRatedInUserDefaults];
|
||||
NSUInteger const tag = self.selectedTag;
|
||||
[Statistics.instance logEvent:[NSString stringWithFormat:@"%@ - %@", kRateAlertEventName, [@(tag).stringValue stringByAppendingString:@"_StarTap"]]];
|
||||
if (tag == 5)
|
||||
{
|
||||
[[UIApplication sharedApplication] rateVersionFrom:@"ios_pro_popup"];
|
||||
[Alohalytics logEvent:kRateAlertEventName withValue:@"fiveStar"];
|
||||
[self close];
|
||||
[self setupAlreadyRatedInUserDefaults];
|
||||
}
|
||||
else
|
||||
{
|
||||
[self sendFeedback];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setupAlreadyRatedInUserDefaults {
|
||||
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:kUDAlreadyRatedKey];
|
||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||
- (void)setupAlreadyRatedInUserDefaults
|
||||
{
|
||||
auto ud = [NSUserDefaults standardUserDefaults];
|
||||
[ud setBool:YES forKey:kUDAlreadyRatedKey];
|
||||
[ud synchronize];
|
||||
}
|
||||
|
||||
- (void)sendFeedback
|
||||
{
|
||||
[Alohalytics logEvent:kRateAlertEventName withValue:@"sendFeedback"];
|
||||
[Statistics.instance logEvent:[NSString stringWithFormat:@"%@ - %@", kRateAlertEventName, @"sendFeedback"]];
|
||||
self.alpha = 0.;
|
||||
self.alertController.view.alpha = 0.;
|
||||
if ([MFMailComposeViewController canSendMail])
|
||||
{
|
||||
struct utsname systemInfo;
|
||||
uname(&systemInfo);
|
||||
NSString * machine = @(systemInfo.machine);
|
||||
NSString * device = deviceNames[machine];
|
||||
if (!device)
|
||||
device = machine;
|
||||
NSString * languageCode = [[NSLocale preferredLanguages] firstObject];
|
||||
NSString * language = [[NSLocale localeWithLocaleIdentifier:kLocaleUsedInSupportEmails]
|
||||
displayNameForKey:NSLocaleLanguageCode
|
||||
value:languageCode];
|
||||
NSString * locale = [[NSLocale currentLocale] objectForKey:NSLocaleCountryCode];
|
||||
NSString * country = [[NSLocale localeWithLocaleIdentifier:kLocaleUsedInSupportEmails]
|
||||
displayNameForKey:NSLocaleCountryCode
|
||||
value:locale];
|
||||
NSString * bundleVersion = AppInfo.sharedInfo.bundleVersion;
|
||||
NSString * text = [NSString stringWithFormat:@"\n\n\n\n- %@ (%@)\n- MAPS.ME %@\n- %@/%@", device,
|
||||
[UIDevice currentDevice].systemVersion,
|
||||
bundleVersion,
|
||||
language,
|
||||
country];
|
||||
MFMailComposeViewController * mailController = [[MFMailComposeViewController alloc] init];
|
||||
mailController.mailComposeDelegate = self;
|
||||
[mailController setSubject:[NSString stringWithFormat:@"%@ : %@", L(@"rating_just_rated"), @(self.selectedTag)]];
|
||||
[mailController setToRecipients:@[kRateEmail]];
|
||||
[mailController setMessageBody:text isHTML:NO];
|
||||
mailController.navigationBar.tintColor = [UIColor blackColor];
|
||||
[self.alertController.ownerViewController presentViewController:mailController animated:YES completion:nil];
|
||||
}
|
||||
else
|
||||
{
|
||||
NSString * text = [NSString stringWithFormat:L(@"email_error_body"), kRateEmail];
|
||||
[[[UIAlertView alloc] initWithTitle:L(@"email_error_title") message:text
|
||||
delegate:nil
|
||||
cancelButtonTitle:L(@"ok")
|
||||
otherButtonTitles:nil] show];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - MFMailComposeViewControllerDelegate
|
||||
|
||||
- (void)mailComposeController:(MFMailComposeViewController *)controller
|
||||
didFinishWithResult:(MFMailComposeResult)result
|
||||
error:(NSError *)error
|
||||
{
|
||||
[Statistics.instance logEvent:[NSString stringWithFormat:@"%@ - %@", kRateAlertEventName, @"mailComposeController"]];
|
||||
[self.alertController.ownerViewController dismissViewControllerAnimated:YES completion:^
|
||||
{
|
||||
[Statistics.instance logEvent:[NSString stringWithFormat:@"%@ - %@", kRateAlertEventName, @"close"]];
|
||||
[self close];
|
||||
}];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -12,192 +12,236 @@
|
|||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="rvp-tn-CXj" customClass="MWMRateAlert">
|
||||
<view contentMode="scaleToFill" id="xqS-d4-Cm7" customClass="MWMRateAlert">
|
||||
<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="mBS-ry-31d" userLabel="ContainerView">
|
||||
<rect key="frame" x="20" y="174" width="280" height="220"/>
|
||||
<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>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Title" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NX8-QL-ibo" userLabel="Title">
|
||||
<rect key="frame" x="20" y="20" width="240" height="21.5"/>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8dQ-Vo-xwe" userLabel="Done">
|
||||
<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" relation="greaterThanOrEqual" constant="22" id="kpJ-h4-1Rx"/>
|
||||
<constraint firstAttribute="width" constant="240" id="ybQ-FP-Uyh"/>
|
||||
<constraint firstAttribute="width" constant="40" id="7d0-Ox-KVv"/>
|
||||
<constraint firstAttribute="height" constant="40" id="rAh-AS-UMC"/>
|
||||
</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>
|
||||
<connections>
|
||||
<action selector="doneTap" destination="xqS-d4-Cm7" eventType="touchUpInside" id="l7v-bf-FLp"/>
|
||||
</connections>
|
||||
</button>
|
||||
<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="pFt-mm-wUl">
|
||||
<rect key="frame" x="40" y="12" width="200" height="21.5"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="200" id="fCS-vI-z7G"/>
|
||||
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="22" id="w6i-mI-DNF"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue-Medium" family="Helvetica Neue" pointSize="18"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="rating_do_like_maps"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="medium18"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackPrimaryText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="rate_alert_title"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Message" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="53Y-FR-tke" userLabel="Message">
|
||||
<rect key="frame" x="20" y="53" width="240" height="20"/>
|
||||
<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="aP7-fq-KaH" userLabel="Message">
|
||||
<rect key="frame" x="20" y="44" width="240" height="82"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="1Yg-tK-x6N"/>
|
||||
<constraint firstAttribute="width" constant="240" id="Glz-r1-VJI"/>
|
||||
<constraint firstAttribute="width" constant="240" id="HJM-e9-0wo"/>
|
||||
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="16" id="v4x-De-gsX"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="14"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.54000000000000004" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="rating_tap_star"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular14"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackSecondaryText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="rate_alert_default_message"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="w1i-if-5aJ">
|
||||
<rect key="frame" x="0.0" y="91" width="280" height="62"/>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ftg-qc-aFl" userLabel="Star box">
|
||||
<rect key="frame" x="20" y="137" width="240" height="59"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" alpha="0.0" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="bg_rate" translatesAutoresizingMaskIntoConstraints="NO" id="884-Es-BrM">
|
||||
<rect key="frame" x="11" y="0.0" width="58" height="58"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" alpha="0.0" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="bg_rate" translatesAutoresizingMaskIntoConstraints="NO" id="roJ-R8-N46">
|
||||
<rect key="frame" x="61" y="0.0" width="58" height="58"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" alpha="0.0" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="bg_rate" translatesAutoresizingMaskIntoConstraints="NO" id="Shh-Gi-meU">
|
||||
<rect key="frame" x="111" y="0.0" width="58" height="58"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" alpha="0.0" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="bg_rate" translatesAutoresizingMaskIntoConstraints="NO" id="bss-xQ-e01">
|
||||
<rect key="frame" x="161" y="0.0" width="58" height="58"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" alpha="0.0" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="bg_rate" translatesAutoresizingMaskIntoConstraints="NO" id="4I1-Fa-UdO">
|
||||
<rect key="frame" x="211" y="0.0" width="58" height="58"/>
|
||||
</imageView>
|
||||
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6Yd-zQ-8va">
|
||||
<rect key="frame" x="15" y="4" width="50" height="50"/>
|
||||
<gestureRecognizers/>
|
||||
<state key="normal" image="rate-empty">
|
||||
<button opaque="NO" tag="1" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xu8-rO-3BP">
|
||||
<rect key="frame" x="0.0" y="0.0" width="48" height="48"/>
|
||||
<state key="normal" image="ic_rate_star_off">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" image="rate-full"/>
|
||||
<state key="selected" image="ic_rate_star_on"/>
|
||||
<state key="highlighted" image="ic_rate_star_pressed"/>
|
||||
<connections>
|
||||
<action selector="oneStarTap:" destination="rvp-tn-CXj" eventType="touchUpInside" id="rmH-OL-c5T"/>
|
||||
<action selector="starDragInside:" destination="xqS-d4-Cm7" eventType="touchDragInside" id="99m-Xy-hho"/>
|
||||
<action selector="starHighlighted:" destination="xqS-d4-Cm7" eventType="touchDown" id="L02-GB-uCs"/>
|
||||
<action selector="starTap:" destination="xqS-d4-Cm7" eventType="touchUpInside" id="yPA-9h-GTL"/>
|
||||
<action selector="starTouchCanceled" destination="xqS-d4-Cm7" eventType="touchDragOutside" id="mBJ-ST-BKG"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Vh3-85-SXS">
|
||||
<rect key="frame" x="65" y="4" width="50" height="50"/>
|
||||
<gestureRecognizers/>
|
||||
<state key="normal" image="rate-empty">
|
||||
<button opaque="NO" tag="2" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="VHf-Kq-sRr">
|
||||
<rect key="frame" x="48" y="0.0" width="48" height="48"/>
|
||||
<state key="normal" image="ic_rate_star_off">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" image="rate-full"/>
|
||||
<state key="selected" image="ic_rate_star_on"/>
|
||||
<state key="highlighted" image="ic_rate_star_pressed"/>
|
||||
<connections>
|
||||
<action selector="twoStarTap:" destination="rvp-tn-CXj" eventType="touchUpInside" id="mK3-q0-iV4"/>
|
||||
<action selector="starDragInside:" destination="xqS-d4-Cm7" eventType="touchDragInside" id="Dbf-SL-VyI"/>
|
||||
<action selector="starHighlighted:" destination="xqS-d4-Cm7" eventType="touchDown" id="Ves-R9-ppR"/>
|
||||
<action selector="starTap:" destination="xqS-d4-Cm7" eventType="touchUpInside" id="ICT-FI-avs"/>
|
||||
<action selector="starTouchCanceled" destination="xqS-d4-Cm7" eventType="touchDragOutside" id="OeS-dr-LsK"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="3hk-xb-v84">
|
||||
<rect key="frame" x="115" y="4" width="50" height="50"/>
|
||||
<gestureRecognizers/>
|
||||
<state key="normal" image="rate-empty">
|
||||
<button opaque="NO" tag="3" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="gM3-vi-PTK">
|
||||
<rect key="frame" x="96" y="0.0" width="48" height="48"/>
|
||||
<state key="normal" image="ic_rate_star_off">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" image="rate-full"/>
|
||||
<state key="selected" image="ic_rate_star_on"/>
|
||||
<state key="highlighted" image="ic_rate_star_pressed"/>
|
||||
<connections>
|
||||
<action selector="threeStarTap:" destination="rvp-tn-CXj" eventType="touchUpInside" id="zOD-32-gej"/>
|
||||
<action selector="starDragInside:" destination="xqS-d4-Cm7" eventType="touchDragInside" id="wIn-Ty-2CX"/>
|
||||
<action selector="starHighlighted:" destination="xqS-d4-Cm7" eventType="touchDown" id="5Uk-wg-dqb"/>
|
||||
<action selector="starTap:" destination="xqS-d4-Cm7" eventType="touchUpInside" id="4yh-ag-YaF"/>
|
||||
<action selector="starTouchCanceled" destination="xqS-d4-Cm7" eventType="touchDragOutside" id="a7T-Ir-WZj"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8s0-Kx-ndN">
|
||||
<rect key="frame" x="165" y="4" width="50" height="50"/>
|
||||
<gestureRecognizers/>
|
||||
<state key="normal" image="rate-empty">
|
||||
<button opaque="NO" tag="4" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="p68-lV-IVJ">
|
||||
<rect key="frame" x="144" y="0.0" width="48" height="48"/>
|
||||
<state key="normal" image="ic_rate_star_off">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" image="rate-full"/>
|
||||
<state key="selected" image="ic_rate_star_on"/>
|
||||
<state key="highlighted" image="ic_rate_star_pressed"/>
|
||||
<connections>
|
||||
<action selector="fourStarTap:" destination="rvp-tn-CXj" eventType="touchUpInside" id="KcI-VF-TnQ"/>
|
||||
<action selector="starDragInside:" destination="xqS-d4-Cm7" eventType="touchDragInside" id="bPm-GK-Ai5"/>
|
||||
<action selector="starHighlighted:" destination="xqS-d4-Cm7" eventType="touchDown" id="Saf-Ix-UD7"/>
|
||||
<action selector="starTap:" destination="xqS-d4-Cm7" eventType="touchUpInside" id="XVz-ak-XqB"/>
|
||||
<action selector="starTouchCanceled" destination="xqS-d4-Cm7" eventType="touchDragOutside" id="x5k-sK-gij"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DMA-yH-vzI">
|
||||
<rect key="frame" x="215" y="4" width="50" height="50"/>
|
||||
<gestureRecognizers/>
|
||||
<state key="normal" image="rate-empty">
|
||||
<button opaque="NO" tag="5" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Nh7-Fc-Xxp">
|
||||
<rect key="frame" x="192" y="0.0" width="48" height="48"/>
|
||||
<state key="normal" image="ic_rate_star_off">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" image="rate-full"/>
|
||||
<state key="selected" image="ic_rate_star_on"/>
|
||||
<state key="highlighted" image="ic_rate_star_pressed"/>
|
||||
<connections>
|
||||
<action selector="fiveStarTap:" destination="rvp-tn-CXj" eventType="touchUpInside" id="ZPU-8a-Bjn"/>
|
||||
<action selector="starDragInside:" destination="xqS-d4-Cm7" eventType="touchDragInside" id="9JJ-Em-WZd"/>
|
||||
<action selector="starHighlighted:" destination="xqS-d4-Cm7" eventType="touchDown" id="fG3-HM-YxH"/>
|
||||
<action selector="starTap:" destination="xqS-d4-Cm7" eventType="touchUpInside" id="vyJ-qW-a9t"/>
|
||||
<action selector="starTouchCanceled" destination="xqS-d4-Cm7" eventType="touchDragOutside" id="F0l-TP-SU2"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KUW-yV-lH2">
|
||||
<rect key="frame" x="33" y="44" width="14" height="21"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="12"/>
|
||||
<color key="textColor" red="0.98823529409999999" green="0.59999999999999998" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xMo-h5-ZhH">
|
||||
<rect key="frame" x="0.0" y="48" width="48" height="11"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="10"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.54000000000000004" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular10"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackSecondaryText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="2" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="OY6-XM-b7Q">
|
||||
<rect key="frame" x="83" y="44" width="14" height="21"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="12"/>
|
||||
<color key="textColor" red="0.98823529409999999" green="0.59999999999999998" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="2" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="a6h-xZ-4kL">
|
||||
<rect key="frame" x="48" y="48" width="48" height="11"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="10"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.54000000000000004" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular10"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackSecondaryText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="3" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="to0-HX-tRH">
|
||||
<rect key="frame" x="133" y="44" width="14" height="21"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="12"/>
|
||||
<color key="textColor" red="0.98823529409999999" green="0.59999999999999998" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="3" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="u3c-7R-fKb">
|
||||
<rect key="frame" x="96" y="48" width="48" height="11"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="10"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.54000000000000004" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular10"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackSecondaryText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="4" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sT1-dc-By0">
|
||||
<rect key="frame" x="183" y="44" width="14" height="21"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="12"/>
|
||||
<color key="textColor" red="0.98823529409999999" green="0.59999999999999998" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="4" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Chn-mM-h8X">
|
||||
<rect key="frame" x="144" y="48" width="48" height="11"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="10"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.54000000000000004" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular10"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackSecondaryText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="5" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YnV-Uf-9qR">
|
||||
<rect key="frame" x="233" y="44" width="14" height="21"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="12"/>
|
||||
<color key="textColor" red="0.98823529409999999" green="0.59999999999999998" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="5" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="s2o-QH-kdH">
|
||||
<rect key="frame" x="192" y="48" width="48" height="11"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="10"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.54000000000000004" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular10"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackSecondaryText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="62" id="XVs-US-kU7"/>
|
||||
<constraint firstAttribute="width" constant="280" id="mxe-2u-Eek"/>
|
||||
<constraint firstAttribute="height" constant="59" id="2C4-0p-zGE"/>
|
||||
<constraint firstAttribute="width" constant="240" id="4Ar-TF-nEe"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="t8f-AC-V2j" userLabel="left">
|
||||
<rect key="frame" x="0.0" y="176" width="280" height="44"/>
|
||||
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="kfl-QR-Dkk" userLabel="Share">
|
||||
<rect key="frame" x="20" y="220" width="240" height="44"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="44" id="kL9-Iu-9e1"/>
|
||||
<constraint firstAttribute="height" constant="44" id="O3d-0W-SpN"/>
|
||||
<constraint firstAttribute="width" constant="240" id="wTo-pg-6DX"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/>
|
||||
<state key="normal" title="left">
|
||||
<color key="titleColor" red="0.090196078430000007" green="0.61960784310000006" blue="0.30196078430000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<state key="normal" title="Leave a Review">
|
||||
<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>
|
||||
<state key="highlighted" backgroundImage="dialog_btn_press"/>
|
||||
<state key="disabled" title="Оценить"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="later"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonBlueText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonBlueDisabled"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="medium17"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorHighlightedName" value="whiteColor"/>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||
<integer key="value" value="8"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="layer.borderColorName" value="buttonBlueDisabled"/>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
|
||||
<integer key="value" value="1"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="rate_the_app"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="clearColor"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundHighlightedColorName" value="buttonEnabledBlueText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="notNowTap" destination="rvp-tn-CXj" eventType="touchUpInside" id="C51-Jm-q13"/>
|
||||
<action selector="rateTap" destination="xqS-d4-Cm7" eventType="touchUpInside" id="lqd-4T-LF7"/>
|
||||
</connections>
|
||||
</button>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="i6e-4W-VUG" userLabel="hDivider">
|
||||
<rect key="frame" x="0.0" y="176" width="280" height="1"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.12" colorSpace="calibratedRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="1" id="EI0-kh-VrN"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="0.88" colorSpace="calibratedWhite"/>
|
||||
<color key="backgroundColor" red="0.84705882349999995" green="0.84705882349999995" blue="0.84705882349999995" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="centerX" secondItem="w1i-if-5aJ" secondAttribute="centerX" id="0cw-Qe-tNn"/>
|
||||
<constraint firstAttribute="centerX" secondItem="NX8-QL-ibo" secondAttribute="centerX" id="2re-A3-YeS"/>
|
||||
<constraint firstAttribute="width" secondItem="i6e-4W-VUG" secondAttribute="width" id="E03-1Z-vdL"/>
|
||||
<constraint firstAttribute="centerX" secondItem="i6e-4W-VUG" secondAttribute="centerX" id="HVH-Nf-kkC"/>
|
||||
<constraint firstAttribute="bottom" secondItem="t8f-AC-V2j" secondAttribute="bottom" id="IQC-Jl-mgX"/>
|
||||
<constraint firstItem="w1i-if-5aJ" firstAttribute="top" secondItem="53Y-FR-tke" secondAttribute="bottom" constant="18" id="NiW-HN-BmD"/>
|
||||
<constraint firstItem="53Y-FR-tke" firstAttribute="top" secondItem="NX8-QL-ibo" secondAttribute="bottom" constant="11.5" id="VuS-We-PlF"/>
|
||||
<constraint firstAttribute="centerX" secondItem="t8f-AC-V2j" secondAttribute="centerX" id="VwE-ZJ-zdI"/>
|
||||
<constraint firstAttribute="centerX" secondItem="53Y-FR-tke" secondAttribute="centerX" id="Y6Q-7d-ARs"/>
|
||||
<constraint firstItem="NX8-QL-ibo" firstAttribute="top" secondItem="mBS-ry-31d" secondAttribute="top" constant="20" id="aTQ-O1-CKK"/>
|
||||
<constraint firstItem="t8f-AC-V2j" firstAttribute="top" secondItem="i6e-4W-VUG" secondAttribute="bottom" constant="-1" id="dnL-vw-23k"/>
|
||||
<constraint firstItem="i6e-4W-VUG" firstAttribute="top" secondItem="w1i-if-5aJ" secondAttribute="bottom" constant="23" id="msl-sh-BRc"/>
|
||||
<constraint firstAttribute="width" constant="280" id="n2s-aN-5Yi"/>
|
||||
<constraint firstItem="t8f-AC-V2j" firstAttribute="width" secondItem="mBS-ry-31d" secondAttribute="width" id="wWm-jj-zqO"/>
|
||||
<constraint firstAttribute="centerX" secondItem="aP7-fq-KaH" secondAttribute="centerX" id="GI2-sL-76K"/>
|
||||
<constraint firstAttribute="centerX" secondItem="pFt-mm-wUl" secondAttribute="centerX" id="Hq8-IR-S13"/>
|
||||
<constraint firstItem="ftg-qc-aFl" firstAttribute="top" secondItem="aP7-fq-KaH" secondAttribute="bottom" constant="11" id="J6l-3E-sf0"/>
|
||||
<constraint firstItem="8dQ-Vo-xwe" firstAttribute="top" secondItem="ecm-mK-5iV" secondAttribute="top" id="OY3-cW-0lX"/>
|
||||
<constraint firstAttribute="centerX" secondItem="kfl-QR-Dkk" secondAttribute="centerX" id="Y5V-cP-MXg"/>
|
||||
<constraint firstItem="pFt-mm-wUl" firstAttribute="top" secondItem="ecm-mK-5iV" secondAttribute="top" constant="12" id="Zvg-l6-vuI"/>
|
||||
<constraint firstItem="aP7-fq-KaH" firstAttribute="top" secondItem="pFt-mm-wUl" secondAttribute="bottom" constant="11" id="cTd-t9-gKm"/>
|
||||
<constraint firstItem="kfl-QR-Dkk" firstAttribute="top" secondItem="ftg-qc-aFl" secondAttribute="bottom" constant="24" id="ea5-e9-0jF"/>
|
||||
<constraint firstAttribute="centerX" secondItem="ftg-qc-aFl" secondAttribute="centerX" id="l3c-Tr-Jcp"/>
|
||||
<constraint firstAttribute="trailing" secondItem="8dQ-Vo-xwe" secondAttribute="trailing" id="nBF-K4-mMl"/>
|
||||
<constraint firstAttribute="width" constant="280" id="oXG-YH-byd"/>
|
||||
<constraint firstAttribute="bottom" secondItem="kfl-QR-Dkk" secondAttribute="bottom" constant="20" id="y6i-Ea-kjD"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="size" keyPath="layer.shadowOffset">
|
||||
|
@ -215,34 +259,27 @@
|
|||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="centerY" secondItem="mBS-ry-31d" secondAttribute="centerY" id="KXM-VO-VBc"/>
|
||||
<constraint firstAttribute="centerX" secondItem="mBS-ry-31d" secondAttribute="centerX" id="dce-Ev-FT5"/>
|
||||
<constraint firstAttribute="centerX" secondItem="ecm-mK-5iV" secondAttribute="centerX" id="LYH-qW-kdN"/>
|
||||
<constraint firstAttribute="centerY" secondItem="ecm-mK-5iV" secondAttribute="centerY" constant="0.5" id="un4-ij-LG6"/>
|
||||
</constraints>
|
||||
<connections>
|
||||
<outlet property="fiveStarButton" destination="DMA-yH-vzI" id="3MI-GS-szf"/>
|
||||
<outlet property="fiveStarLabel" destination="YnV-Uf-9qR" id="0cf-p8-BQG"/>
|
||||
<outlet property="fiveStarPushImageView" destination="4I1-Fa-UdO" id="Crh-1W-b6w"/>
|
||||
<outlet property="fourStarButton" destination="8s0-Kx-ndN" id="1BN-35-XgO"/>
|
||||
<outlet property="fourStarLabel" destination="sT1-dc-By0" id="6CF-iu-7hx"/>
|
||||
<outlet property="fourStarPushImageView" destination="bss-xQ-e01" id="1JJ-BS-4fO"/>
|
||||
<outlet property="oneStarButton" destination="6Yd-zQ-8va" id="3Zv-CZ-6Y2"/>
|
||||
<outlet property="oneStarLabel" destination="KUW-yV-lH2" id="Soj-bh-5xf"/>
|
||||
<outlet property="oneStarPushImageView" destination="884-Es-BrM" id="EE5-v9-xBV"/>
|
||||
<outlet property="threeStarButton" destination="3hk-xb-v84" id="tq0-cb-dpb"/>
|
||||
<outlet property="threeStarLabel" destination="to0-HX-tRH" id="PRx-zq-4za"/>
|
||||
<outlet property="threeStarPushImageView" destination="Shh-Gi-meU" id="5Y5-t4-yeM"/>
|
||||
<outlet property="twoStarButton" destination="Vh3-85-SXS" id="cdp-J6-T1D"/>
|
||||
<outlet property="twoStarLabel" destination="OY6-XM-b7Q" id="H7T-fo-4Wc"/>
|
||||
<outlet property="twoStarPushImageView" destination="roJ-R8-N46" id="BQK-xT-U2w"/>
|
||||
<outlet property="message" destination="aP7-fq-KaH" id="4wq-2c-cAB"/>
|
||||
<outlet property="rateButton" destination="kfl-QR-Dkk" id="SPX-XQ-OlM"/>
|
||||
<outlet property="title" destination="pFt-mm-wUl" id="ahg-gJ-R3w"/>
|
||||
<outletCollection property="buttons" destination="xu8-rO-3BP" id="Ejn-zo-ZMt"/>
|
||||
<outletCollection property="buttons" destination="VHf-Kq-sRr" id="ywN-VZ-K6c"/>
|
||||
<outletCollection property="buttons" destination="gM3-vi-PTK" id="z3S-Fr-8h2"/>
|
||||
<outletCollection property="buttons" destination="p68-lV-IVJ" id="RTF-SR-MR9"/>
|
||||
<outletCollection property="buttons" destination="Nh7-Fc-Xxp" id="Zyf-tB-Lxs"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="523" y="144"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="bg_rate" width="58" height="58"/>
|
||||
<image name="dialog_btn_press" width="280" height="44"/>
|
||||
<image name="rate-empty" width="50" height="50"/>
|
||||
<image name="rate-full" width="50" height="50"/>
|
||||
<image name="ic_cancel" width="40" height="40"/>
|
||||
<image name="ic_rate_star_off" width="29" height="29"/>
|
||||
<image name="ic_rate_star_on" width="29" height="29"/>
|
||||
<image name="ic_rate_star_pressed" width="29" height="29"/>
|
||||
</resources>
|
||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
||||
<simulatedStatusBarMetrics key="statusBar"/>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<state key="highlighted" backgroundImage="dialog_btn_press"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="ok"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonBlueText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="buttonEnabledBlueText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="okTap" destination="Ie9-JJ-hnZ" eventType="touchUpInside" id="vfz-Rd-Kh6"/>
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x",
|
||||
"filename" : "bg_rate.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"filename" : "bg_rate@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x",
|
||||
"filename" : "bg_rate@3x.png"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 13 KiB |
|
@ -3,17 +3,17 @@
|
|||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x",
|
||||
"filename" : "rate-full.png"
|
||||
"filename" : "ic_rate_star_off.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"filename" : "rate-full@2x.png"
|
||||
"filename" : "ic_rate_star_off@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x",
|
||||
"filename" : "rate-full@3x.png"
|
||||
"filename" : "ic_rate_star_off@3x.png"
|
||||
}
|
||||
],
|
||||
"info" : {
|
BIN
iphone/Maps/Images.xcassets/NewDialog/ic_rate_star_off.imageset/ic_rate_star_off.png
vendored
Normal file
After Width: | Height: | Size: 278 B |
BIN
iphone/Maps/Images.xcassets/NewDialog/ic_rate_star_off.imageset/ic_rate_star_off@2x.png
vendored
Normal file
After Width: | Height: | Size: 485 B |
BIN
iphone/Maps/Images.xcassets/NewDialog/ic_rate_star_off.imageset/ic_rate_star_off@3x.png
vendored
Normal file
After Width: | Height: | Size: 693 B |
|
@ -3,17 +3,17 @@
|
|||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x",
|
||||
"filename" : "rate-empty.png"
|
||||
"filename" : "ic_rate_star_on.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"filename" : "rate-empty@2x.png"
|
||||
"filename" : "ic_rate_star_on@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x",
|
||||
"filename" : "rate-empty@3x.png"
|
||||
"filename" : "ic_rate_star_on@3x.png"
|
||||
}
|
||||
],
|
||||
"info" : {
|
BIN
iphone/Maps/Images.xcassets/NewDialog/ic_rate_star_on.imageset/ic_rate_star_on.png
vendored
Normal file
After Width: | Height: | Size: 306 B |
BIN
iphone/Maps/Images.xcassets/NewDialog/ic_rate_star_on.imageset/ic_rate_star_on@2x.png
vendored
Normal file
After Width: | Height: | Size: 449 B |
BIN
iphone/Maps/Images.xcassets/NewDialog/ic_rate_star_on.imageset/ic_rate_star_on@3x.png
vendored
Normal file
After Width: | Height: | Size: 583 B |
|
@ -3,17 +3,17 @@
|
|||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x",
|
||||
"filename" : "rate-send.png"
|
||||
"filename" : "ic_rate_star_pressed.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"filename" : "rate-send@2x.png"
|
||||
"filename" : "ic_rate_star_pressed@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x",
|
||||
"filename" : "rate-send@3x.png"
|
||||
"filename" : "ic_rate_star_pressed@3x.png"
|
||||
}
|
||||
],
|
||||
"info" : {
|
BIN
iphone/Maps/Images.xcassets/NewDialog/ic_rate_star_pressed.imageset/ic_rate_star_pressed.png
vendored
Normal file
After Width: | Height: | Size: 303 B |
BIN
iphone/Maps/Images.xcassets/NewDialog/ic_rate_star_pressed.imageset/ic_rate_star_pressed@2x.png
vendored
Normal file
After Width: | Height: | Size: 542 B |
BIN
iphone/Maps/Images.xcassets/NewDialog/ic_rate_star_pressed.imageset/ic_rate_star_pressed@3x.png
vendored
Normal file
After Width: | Height: | Size: 777 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 4 KiB |
Before Width: | Height: | Size: 926 B |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 188 B |
Before Width: | Height: | Size: 279 B |
Before Width: | Height: | Size: 332 B |
|
@ -224,8 +224,6 @@
|
|||
F66A8FB01B09F268001B9C97 /* MWMPlacePage.mm in Sources */ = {isa = PBXBuildFile; fileRef = F66A8FAF1B09F268001B9C97 /* MWMPlacePage.mm */; };
|
||||
F66A8FB21B0A0954001B9C97 /* PlacePageView.xib in Resources */ = {isa = PBXBuildFile; fileRef = F66A8FB11B0A0954001B9C97 /* PlacePageView.xib */; };
|
||||
F672A6B71AD423A7009060C3 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F672A6B61AD423A7009060C3 /* Images.xcassets */; };
|
||||
F67BBB571AC54A7800D162C7 /* MWMFeedbackAlert.mm in Sources */ = {isa = PBXBuildFile; fileRef = F67BBB551AC54A7800D162C7 /* MWMFeedbackAlert.mm */; };
|
||||
F67BBB581AC54A7800D162C7 /* MWMFeedbackAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = F67BBB561AC54A7800D162C7 /* MWMFeedbackAlert.xib */; };
|
||||
F67BC26F1B254B2000FE1D7B /* MWMPlacePageDescriptionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = F67BC26E1B254B1F00FE1D7B /* MWMPlacePageDescriptionView.xib */; };
|
||||
F67BC2751B254F5500FE1D7B /* MWMPlacePageTypeDescription.mm in Sources */ = {isa = PBXBuildFile; fileRef = F67BC2741B254F5500FE1D7B /* MWMPlacePageTypeDescription.mm */; };
|
||||
F68CEF741AD8852A00563FBA /* MWMMapController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F68CEF731AD8852A00563FBA /* MWMMapController.mm */; };
|
||||
|
@ -450,10 +448,10 @@
|
|||
4A7D89C31B2EBF3B00AC843E /* resources-xhdpi_dark */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "resources-xhdpi_dark"; path = "../../data/resources-xhdpi_dark"; sourceTree = "<group>"; };
|
||||
4A7D89C41B2EBF3B00AC843E /* resources-xxhdpi_dark */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "resources-xxhdpi_dark"; path = "../../data/resources-xxhdpi_dark"; sourceTree = "<group>"; };
|
||||
5605022E1B6211E100169CAD /* sound-strings */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "sound-strings"; path = "../../data/sound-strings"; sourceTree = "<group>"; };
|
||||
6BA0BCCF1B74DDBA00CC9969 /* MWMCustomFacebookEvents.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMCustomFacebookEvents.h; sourceTree = "<group>"; };
|
||||
6BA0BCD01B74DDBA00CC9969 /* MWMCustomFacebookEvents.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMCustomFacebookEvents.mm; sourceTree = "<group>"; };
|
||||
560634F01B78804C00F3D670 /* MWMTextToSpeech.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMTextToSpeech.h; sourceTree = "<group>"; };
|
||||
560634F11B78806100F3D670 /* MWMTextToSpeech.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMTextToSpeech.mm; sourceTree = "<group>"; };
|
||||
6BA0BCCF1B74DDBA00CC9969 /* MWMCustomFacebookEvents.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMCustomFacebookEvents.h; sourceTree = "<group>"; };
|
||||
6BA0BCD01B74DDBA00CC9969 /* MWMCustomFacebookEvents.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMCustomFacebookEvents.mm; sourceTree = "<group>"; };
|
||||
6C24A3B01AD7D65500A47B99 /* MWMWatchEventInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMWatchEventInfo.h; sourceTree = "<group>"; };
|
||||
6C24A3B11AD7D65500A47B99 /* MWMWatchEventInfo.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMWatchEventInfo.mm; sourceTree = "<group>"; };
|
||||
6C47C8C31AD6C78A000C52C1 /* MWMNoLocationInterfaceController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMNoLocationInterfaceController.h; sourceTree = "<group>"; };
|
||||
|
@ -640,9 +638,6 @@
|
|||
F66A8FB11B0A0954001B9C97 /* PlacePageView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PlacePageView.xib; sourceTree = "<group>"; };
|
||||
F672A6B61AD423A7009060C3 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
|
||||
F673E9151AD2B65B0064EB7F /* GLKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLKit.framework; path = System/Library/Frameworks/GLKit.framework; sourceTree = SDKROOT; };
|
||||
F67BBB541AC54A7800D162C7 /* MWMFeedbackAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMFeedbackAlert.h; sourceTree = "<group>"; };
|
||||
F67BBB551AC54A7800D162C7 /* MWMFeedbackAlert.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMFeedbackAlert.mm; sourceTree = "<group>"; };
|
||||
F67BBB561AC54A7800D162C7 /* MWMFeedbackAlert.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMFeedbackAlert.xib; sourceTree = "<group>"; };
|
||||
F67BC26E1B254B1F00FE1D7B /* MWMPlacePageDescriptionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMPlacePageDescriptionView.xib; sourceTree = "<group>"; };
|
||||
F67BC2731B254F5500FE1D7B /* MWMPlacePageTypeDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMPlacePageTypeDescription.h; sourceTree = "<group>"; };
|
||||
F67BC2741B254F5500FE1D7B /* MWMPlacePageTypeDescription.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMPlacePageTypeDescription.mm; sourceTree = "<group>"; };
|
||||
|
@ -1459,7 +1454,6 @@
|
|||
F64F19801AB81A00006EAF7E /* AlertController */,
|
||||
F6BC1E4F1ACBF97000EF0360 /* FacebookAlert */,
|
||||
34B16C421B72653B000D3A0D /* PedestrianShareAlert */,
|
||||
F67BBB531AC54A7800D162C7 /* FeedbackAlert */,
|
||||
F64F19841AB81A00006EAF7E /* BaseAlert */,
|
||||
F61579301AC2CE760032D8E9 /* RateAlert */,
|
||||
F64F19871AB81A00006EAF7E /* DefaultAlert */,
|
||||
|
@ -1593,16 +1587,6 @@
|
|||
name = MWMiPadPlacePageView;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F67BBB531AC54A7800D162C7 /* FeedbackAlert */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F67BBB541AC54A7800D162C7 /* MWMFeedbackAlert.h */,
|
||||
F67BBB551AC54A7800D162C7 /* MWMFeedbackAlert.mm */,
|
||||
F67BBB561AC54A7800D162C7 /* MWMFeedbackAlert.xib */,
|
||||
);
|
||||
path = FeedbackAlert;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F69A16AB1AF24A9400EF43F0 /* MyTracker */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
@ -2092,7 +2076,6 @@
|
|||
F6FE2C111B03A016009814AA /* PlacePageNavigationBar.xib in Resources */,
|
||||
FA140651162A6288002BC1ED /* empty@2x.png in Resources */,
|
||||
F61579361AC2CEB60032D8E9 /* MWMRateAlert.xib in Resources */,
|
||||
F67BBB581AC54A7800D162C7 /* MWMFeedbackAlert.xib in Resources */,
|
||||
FA140653162A6288002BC1ED /* empty.png in Resources */,
|
||||
FA140655162A6288002BC1ED /* eye.png in Resources */,
|
||||
FA140657162A6288002BC1ED /* eye@2x.png in Resources */,
|
||||
|
@ -2210,7 +2193,6 @@
|
|||
977E26C219E31BCC00BA2219 /* ActiveMapsVC.mm in Sources */,
|
||||
B08AA8CE1A24C7BC00810B1C /* LocalNotificationInfoProvider.m in Sources */,
|
||||
1D3623260D0F684500981E51 /* MapsAppDelegate.mm in Sources */,
|
||||
F67BBB571AC54A7800D162C7 /* MWMFeedbackAlert.mm in Sources */,
|
||||
341522BF1B666A550077AA8F /* MWMAPIBarView.m in Sources */,
|
||||
349A35831B53E967009677EE /* MWMDownloadMapRequest.mm in Sources */,
|
||||
A32B6D4C1A14980500E54A65 /* iosOGLContext.mm in Sources */,
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
- (void)setLocalizedText:(NSString *)localizedText {
|
||||
[self setTitle:L(localizedText) forState:UIControlStateNormal];
|
||||
[self setTitle:L(localizedText) forState:UIControlStateDisabled];
|
||||
}
|
||||
|
||||
- (NSString *)localizedText {
|
||||
|
|
|
@ -26,7 +26,8 @@
|
|||
+ (UIColor *)whiteSecondaryText;
|
||||
+ (UIColor *)whiteHintText;
|
||||
+ (UIColor *)whiteDividers;
|
||||
+ (UIColor *)buttonBlueText;
|
||||
+ (UIColor *)buttonEnabledBlueText;
|
||||
+ (UIColor *)buttonDisabledBlueText;
|
||||
+ (UIColor *)buttonHighlightedBlueText;
|
||||
+ (UIColor *)alertBackground;
|
||||
|
||||
|
|
|
@ -103,11 +103,16 @@ static CGFloat const alpha100 = 1.;
|
|||
return [[UIColor whiteColor] colorWithAlphaComponent:alpha12];
|
||||
}
|
||||
|
||||
+ (UIColor *)buttonBlueText
|
||||
+ (UIColor *)buttonEnabledBlueText
|
||||
{
|
||||
return [UIColor colorWithRed:scaled(3.) green:scaled(122.) blue:scaled(255.) alpha:alpha100];
|
||||
}
|
||||
|
||||
+ (UIColor *)buttonDisabledBlueText
|
||||
{
|
||||
return [self.buttonEnabledBlueText colorWithAlphaComponent:alpha26];
|
||||
}
|
||||
|
||||
+ (UIColor *)buttonHighlightedBlueText
|
||||
{
|
||||
return [UIColor colorWithRed:scaled(3.) green:scaled(122.) blue:scaled(255.) alpha:alpha54];
|
||||
|
|