Merge pull request #3275 from igrechuhin/MAPSME-641
[ios] Added simplified support for localized names.
|
@ -0,0 +1,18 @@
|
|||
#import "MWMTableViewController.h"
|
||||
|
||||
#include "indexer/editable_map_object.hpp"
|
||||
|
||||
@protocol MWMEditorAdditionalNamesProtocol <NSObject>
|
||||
|
||||
- (void)addAdditionalName:(NSInteger)languageIndex;
|
||||
|
||||
@end
|
||||
|
||||
@interface MWMEditorAdditionalNamesTableViewController : MWMTableViewController
|
||||
|
||||
- (void)configWithDelegate:(id<MWMEditorAdditionalNamesProtocol>)delegate
|
||||
name:(StringUtf8Multilang const &)name
|
||||
additionalSkipLanguageCodes:(vector<NSInteger>)additionalSkipLanguageCodes
|
||||
selectedLanguageCode:(NSInteger)selectedLanguageCode;
|
||||
|
||||
@end
|
|
@ -0,0 +1,92 @@
|
|||
#import "MWMEditorAdditionalNamesTableViewController.h"
|
||||
#import "MWMTableViewCell.h"
|
||||
|
||||
#include "indexer/editable_map_object.hpp"
|
||||
|
||||
@interface MWMEditorAdditionalNamesTableViewController ()
|
||||
|
||||
@property (nonatomic) NSInteger selectedLanguageCode;
|
||||
@property (weak, nonatomic) id<MWMEditorAdditionalNamesProtocol> delegate;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MWMEditorAdditionalNamesTableViewController
|
||||
{
|
||||
StringUtf8Multilang m_name;
|
||||
vector<StringUtf8Multilang::Lang> m_languages;
|
||||
vector<NSInteger> m_additionalSkipLanguageCodes;
|
||||
}
|
||||
|
||||
#pragma mark - UITableViewDataSource
|
||||
|
||||
- (void)configWithDelegate:(id<MWMEditorAdditionalNamesProtocol>)delegate
|
||||
name:(StringUtf8Multilang const &)name
|
||||
additionalSkipLanguageCodes:(vector<NSInteger>)additionalSkipLanguageCodes
|
||||
selectedLanguageCode:(NSInteger)selectedLanguageCode
|
||||
{
|
||||
self.delegate = delegate;
|
||||
m_name = name;
|
||||
m_additionalSkipLanguageCodes = additionalSkipLanguageCodes;
|
||||
self.selectedLanguageCode = selectedLanguageCode;
|
||||
}
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
self.title = L(@"choose_language");
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated
|
||||
{
|
||||
[super viewWillAppear:animated];
|
||||
StringUtf8Multilang::Languages const & supportedLanguages = StringUtf8Multilang::GetSupportedLanguages();
|
||||
m_languages.clear();
|
||||
for (auto const & language : supportedLanguages)
|
||||
{
|
||||
int8_t const languageIndex = StringUtf8Multilang::GetLangIndex(language.m_code);
|
||||
string tmpStr;
|
||||
if (self.selectedLanguageCode == StringUtf8Multilang::kDefaultCode ||
|
||||
self.selectedLanguageCode == StringUtf8Multilang::kInternationalCode ||
|
||||
(self.selectedLanguageCode == NSNotFound && m_name.GetString(languageIndex, tmpStr)))
|
||||
continue;
|
||||
auto it = find(m_additionalSkipLanguageCodes.begin(), m_additionalSkipLanguageCodes.end(), languageIndex);
|
||||
if (it == m_additionalSkipLanguageCodes.end())
|
||||
m_languages.push_back(language);
|
||||
}
|
||||
sort(m_languages.begin(), m_languages.end(),
|
||||
[](StringUtf8Multilang::Lang const & a, StringUtf8Multilang::Lang const & b)
|
||||
{
|
||||
return string(a.m_code) < string(b.m_code);
|
||||
});
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
MWMTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"ListCellIdentifier"];
|
||||
NSInteger const index = indexPath.row;
|
||||
StringUtf8Multilang::Lang const & language = m_languages[index];
|
||||
cell.textLabel.text = @(language.m_name);
|
||||
cell.detailTextLabel.text = @(language.m_code);
|
||||
|
||||
int8_t const languageIndex = StringUtf8Multilang::GetLangIndex(language.m_code);
|
||||
cell.accessoryType = (languageIndex == self.selectedLanguageCode ? UITableViewCellAccessoryCheckmark : UITableViewCellAccessoryNone);
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
|
||||
{
|
||||
return m_languages.size();
|
||||
}
|
||||
|
||||
#pragma mark - UITableViewDataSource
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
NSInteger const index = indexPath.row;
|
||||
StringUtf8Multilang::Lang const & language = m_languages[index];
|
||||
|
||||
[self.delegate addAdditionalName:StringUtf8Multilang::GetLangIndex(language.m_code)];
|
||||
[self.navigationController popViewControllerAnimated:YES];
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,8 @@
|
|||
#import "MWMEditorCommon.h"
|
||||
#import "MWMTableViewCell.h"
|
||||
|
||||
@interface MWMEditorAddAdditionalNameTableViewCell : MWMTableViewCell
|
||||
|
||||
- (void)configWithDelegate:(id<MWMEditorAdditionalName>)delegate;
|
||||
|
||||
@end
|
|
@ -0,0 +1,21 @@
|
|||
#import "MWMEditorAddAdditionalNameTableViewCell.h"
|
||||
|
||||
@interface MWMEditorAddAdditionalNameTableViewCell ()
|
||||
|
||||
@property (weak, nonatomic) id<MWMEditorAdditionalName> delegate;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MWMEditorAddAdditionalNameTableViewCell
|
||||
|
||||
- (void)configWithDelegate:(id<MWMEditorAdditionalName>)delegate
|
||||
{
|
||||
self.delegate = delegate;
|
||||
}
|
||||
|
||||
- (IBAction)addLanguageTap
|
||||
{
|
||||
[self.delegate editAdditionalNameLanguage:NSNotFound];
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,55 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10116" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="81H-Jz-Sl2" customClass="MWMEditorAddAdditionalNameTableViewCell">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="81H-Jz-Sl2" id="EHS-hP-aIE">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Ua5-4V-1PH" customClass="MWMButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" priority="750" constant="44" id="oVm-ep-LLL"/>
|
||||
</constraints>
|
||||
<inset key="contentEdgeInsets" minX="12" minY="0.0" maxX="0.0" maxY="0.0"/>
|
||||
<inset key="titleEdgeInsets" minX="14" minY="0.0" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Add Language" image="ic_add_light"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="imageName" value="ic_add"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="linkBlue"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorHighlightedName" value="linkBlueHighlighted"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="addLanguageTap" destination="81H-Jz-Sl2" eventType="touchUpInside" id="Lw7-kU-hIK"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="bottom" secondItem="Ua5-4V-1PH" secondAttribute="bottom" id="Nmp-Cj-ffg"/>
|
||||
<constraint firstItem="Ua5-4V-1PH" firstAttribute="leading" secondItem="EHS-hP-aIE" secondAttribute="leading" id="XP5-8s-Vka"/>
|
||||
<constraint firstItem="Ua5-4V-1PH" firstAttribute="top" secondItem="EHS-hP-aIE" secondAttribute="top" id="YAU-Xb-h9Y"/>
|
||||
<constraint firstAttribute="trailing" secondItem="Ua5-4V-1PH" secondAttribute="trailing" id="f6J-6o-AjX"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="white"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</tableViewCellContentView>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="white"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<point key="canvasLocation" x="342" y="257"/>
|
||||
</tableViewCell>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="ic_add_light" width="22" height="22"/>
|
||||
</resources>
|
||||
</document>
|
|
@ -0,0 +1,39 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10116" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="16" id="7Br-fC-W0o">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="7Br-fC-W0o" id="58c-Uv-d0K">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tYH-si-HMY">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="16"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" priority="750" constant="16" id="A96-CL-Yji"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="tYH-si-HMY" firstAttribute="leading" secondItem="58c-Uv-d0K" secondAttribute="leading" id="GTY-XA-kVU"/>
|
||||
<constraint firstAttribute="trailing" secondItem="tYH-si-HMY" secondAttribute="trailing" id="VOL-Tl-l3w"/>
|
||||
<constraint firstAttribute="bottom" secondItem="tYH-si-HMY" secondAttribute="bottom" id="g0D-w9-dGP"/>
|
||||
<constraint firstItem="tYH-si-HMY" firstAttribute="top" secondItem="58c-Uv-d0K" secondAttribute="top" id="qyd-oG-Ixi"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="white"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<point key="canvasLocation" x="225" y="282"/>
|
||||
</tableViewCell>
|
||||
</objects>
|
||||
</document>
|
|
@ -0,0 +1,16 @@
|
|||
#import "MWMEditorCommon.h"
|
||||
#import "MWMTableViewCell.h"
|
||||
|
||||
#include "indexer/editable_map_object.hpp"
|
||||
|
||||
@interface MWMEditorAdditionalNameTableViewCell : MWMTableViewCell
|
||||
|
||||
@property (nonatomic, readonly) NSInteger code;
|
||||
|
||||
- (void)configWithDelegate:(id<MWMEditorAdditionalName>)delegate
|
||||
langCode:(NSInteger)langCode
|
||||
langName:(NSString *)langName
|
||||
name:(NSString *)name
|
||||
keyboardType:(UIKeyboardType)keyboardType;
|
||||
|
||||
@end
|
|
@ -0,0 +1,49 @@
|
|||
#import "MWMEditorAdditionalNameTableViewCell.h"
|
||||
|
||||
@interface MWMEditorAdditionalNameTableViewCell ()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UILabel * languageLabel;
|
||||
@property (weak, nonatomic) IBOutlet UIButton * languageButton;
|
||||
@property (weak, nonatomic) IBOutlet UITextField * textField;
|
||||
|
||||
@property (nonatomic, readwrite) NSInteger code;
|
||||
|
||||
@property (weak, nonatomic) id<MWMEditorAdditionalName> delegate;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MWMEditorAdditionalNameTableViewCell
|
||||
|
||||
- (void)configWithDelegate:(id<MWMEditorAdditionalName>)delegate
|
||||
langCode:(NSInteger)langCode
|
||||
langName:(NSString *)langName
|
||||
name:(NSString *)name
|
||||
keyboardType:(UIKeyboardType)keyboardType
|
||||
{
|
||||
self.delegate = delegate;
|
||||
self.code = langCode;
|
||||
self.languageLabel.text = langName;
|
||||
[self.languageButton setTitle:langName forState:UIControlStateNormal];
|
||||
self.textField.text = name;
|
||||
self.textField.keyboardType = keyboardType;
|
||||
}
|
||||
|
||||
- (IBAction)changeLanguageTap
|
||||
{
|
||||
[self.delegate editAdditionalNameLanguage:self.code];
|
||||
}
|
||||
|
||||
#pragma mark - UITextFieldDelegate
|
||||
|
||||
- (void)textFieldDidEndEditing:(UITextField *)textField
|
||||
{
|
||||
[self.delegate cell:self changedText:textField.text];
|
||||
}
|
||||
|
||||
- (BOOL)textFieldShouldReturn:(UITextField *)textField
|
||||
{
|
||||
[textField resignFirstResponder];
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,114 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10116" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="hfo-cP-AGX" customClass="MWMEditorAdditionalNameTableViewCell">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="hfo-cP-AGX" id="JQH-ks-NoC">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Tv7-IF-Qxz" customClass="MWMButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="44" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" priority="750" constant="44" id="1nG-lZ-yqJ"/>
|
||||
<constraint firstAttribute="width" constant="44" id="bsU-1H-yMN"/>
|
||||
</constraints>
|
||||
<state key="normal" image="ic_remove_light"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="imageName" value="ic_remove"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Cjy-YK-e7w" customClass="MWMButton">
|
||||
<rect key="frame" x="48" y="0.0" width="80" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="80" id="mLQ-WH-b1Z"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<state key="normal" title="zh-classical">
|
||||
<color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular14"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="blackPrimaryText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="changeLanguageTap" destination="hfo-cP-AGX" eventType="touchUpInside" id="8Te-ui-ILX"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="zh-classical" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="efb-nS-cjm">
|
||||
<rect key="frame" x="16" y="14" width="80" height="17"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="17" id="8qF-WG-0JP"/>
|
||||
<constraint firstAttribute="width" constant="80" id="RUn-7a-x8R"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" 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>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalCompressionResistancePriority="499" contentHorizontalAlignment="left" contentVerticalAlignment="center" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="9BY-PA-dlA">
|
||||
<rect key="frame" x="100" y="12" width="204" height="20"/>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/>
|
||||
<textInputTraits key="textInputTraits"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackPrimaryText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedPlaceholder" value="editor_edit_place_name_hint"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="validatorName" value="MWMInputValidator"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="hfo-cP-AGX" id="jkD-0x-Ods"/>
|
||||
</connections>
|
||||
</textField>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="9BY-PA-dlA" secondAttribute="trailing" constant="16" id="EPW-QQ-h4A"/>
|
||||
<constraint firstAttribute="bottom" secondItem="Tv7-IF-Qxz" secondAttribute="bottom" id="Ojx-6n-ect"/>
|
||||
<constraint firstItem="Tv7-IF-Qxz" firstAttribute="leading" secondItem="JQH-ks-NoC" secondAttribute="leading" id="Rfp-gV-iIG"/>
|
||||
<constraint firstItem="9BY-PA-dlA" firstAttribute="centerY" secondItem="JQH-ks-NoC" secondAttribute="centerY" id="Vfs-Wj-X79"/>
|
||||
<constraint firstItem="Cjy-YK-e7w" firstAttribute="centerY" secondItem="Tv7-IF-Qxz" secondAttribute="centerY" id="aav-Jh-IgL"/>
|
||||
<constraint firstItem="efb-nS-cjm" firstAttribute="leading" secondItem="JQH-ks-NoC" secondAttribute="leading" constant="16" id="aeA-g6-24D"/>
|
||||
<constraint firstItem="9BY-PA-dlA" firstAttribute="leading" secondItem="efb-nS-cjm" secondAttribute="trailing" constant="4" id="bE7-50-JFQ"/>
|
||||
<constraint firstItem="Tv7-IF-Qxz" firstAttribute="top" secondItem="JQH-ks-NoC" secondAttribute="top" id="eWO-YS-zwv"/>
|
||||
<constraint firstAttribute="bottom" secondItem="efb-nS-cjm" secondAttribute="bottom" priority="750" constant="12" id="fZC-8Q-bPw"/>
|
||||
<constraint firstItem="9BY-PA-dlA" firstAttribute="leading" secondItem="Cjy-YK-e7w" secondAttribute="trailing" priority="250" constant="4" id="nTb-c0-Iap"/>
|
||||
<constraint firstItem="Cjy-YK-e7w" firstAttribute="leading" secondItem="Tv7-IF-Qxz" secondAttribute="trailing" constant="4" id="o6R-lK-dCx"/>
|
||||
<constraint firstItem="efb-nS-cjm" firstAttribute="top" secondItem="JQH-ks-NoC" secondAttribute="top" priority="750" constant="14" id="uOq-es-lVN"/>
|
||||
<constraint firstItem="efb-nS-cjm" firstAttribute="centerY" secondItem="JQH-ks-NoC" secondAttribute="centerY" id="w1Z-wg-zVl"/>
|
||||
<constraint firstItem="Cjy-YK-e7w" firstAttribute="height" secondItem="Tv7-IF-Qxz" secondAttribute="height" id="xUP-iP-1PZ"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="white"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<variation key="default">
|
||||
<mask key="subviews">
|
||||
<exclude reference="Tv7-IF-Qxz"/>
|
||||
<exclude reference="Cjy-YK-e7w"/>
|
||||
</mask>
|
||||
</variation>
|
||||
</tableViewCellContentView>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="white"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<outlet property="languageButton" destination="Cjy-YK-e7w" id="CN4-z7-d72"/>
|
||||
<outlet property="languageLabel" destination="efb-nS-cjm" id="13M-9D-Qbf"/>
|
||||
<outlet property="textField" destination="9BY-PA-dlA" id="SCv-JL-5TL"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="342" y="257"/>
|
||||
</tableViewCell>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="ic_remove_light" width="22" height="22"/>
|
||||
</resources>
|
||||
</document>
|
|
@ -0,0 +1,7 @@
|
|||
#import "MWMTypes.h"
|
||||
|
||||
@interface MWMEditorAdditionalNamesHeader : UIView
|
||||
|
||||
+ (instancetype)header:(TMWMVoidBlock)toggleBlock;
|
||||
|
||||
@end
|
29
iphone/Maps/Classes/Editor/MWMEditorAdditionalNamesHeader.mm
Normal file
|
@ -0,0 +1,29 @@
|
|||
#import "MWMEditorAdditionalNamesHeader.h"
|
||||
#import "UILabel+RuntimeAttributes.h"
|
||||
|
||||
@interface MWMEditorAdditionalNamesHeader ()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UILabel * label;
|
||||
@property (copy, nonatomic) TMWMVoidBlock toggleBlock;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MWMEditorAdditionalNamesHeader
|
||||
|
||||
+ (instancetype)header:(TMWMVoidBlock)toggleBlock
|
||||
{
|
||||
MWMEditorAdditionalNamesHeader * h = [[[NSBundle mainBundle] loadNibNamed:[MWMEditorAdditionalNamesHeader className] owner:nil options:nil]
|
||||
firstObject];
|
||||
h.label.localizedText = L(@"editor_international_names_subtitle").uppercaseString;
|
||||
h.toggleBlock = toggleBlock;
|
||||
return h;
|
||||
}
|
||||
|
||||
- (IBAction)toggleAction:(UIButton *)sender
|
||||
{
|
||||
NSString * newTitle = (sender.currentTitle == L(@"hide") ? L(@"show") : L(@"hide"));
|
||||
[sender setTitle:newTitle forState:UIControlStateNormal];
|
||||
self.toggleBlock();
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,61 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10116" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="fMr-en-6Lb" customClass="MWMEditorAdditionalNamesHeader">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="40"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZVV-q9-714">
|
||||
<rect key="frame" x="16" y="16" width="210" height="16"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
||||
<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="regular13"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackSecondaryText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fgf-k2-uT4" customClass="MWMButton">
|
||||
<rect key="frame" x="230" y="0.0" width="90" height="40"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" priority="750" constant="90" id="WzJ-y1-Q2m"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="contentEdgeInsets" minX="0.0" minY="0.0" maxX="16" maxY="4"/>
|
||||
<state key="normal" title="Скрыть">
|
||||
<color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular13"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="linkBlue"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorHighlightedName" value="linkBlueHighlighted"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="show"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="toggleAction:" destination="fMr-en-6Lb" eventType="touchUpInside" id="cop-Nm-Ien"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="fgf-k2-uT4" firstAttribute="top" secondItem="fMr-en-6Lb" secondAttribute="top" id="aa6-A6-gYY"/>
|
||||
<constraint firstAttribute="bottom" secondItem="ZVV-q9-714" secondAttribute="bottom" constant="8" id="acW-Jb-4Rd"/>
|
||||
<constraint firstItem="ZVV-q9-714" firstAttribute="leading" secondItem="fMr-en-6Lb" secondAttribute="leading" constant="16" id="bfa-to-CBn"/>
|
||||
<constraint firstAttribute="bottom" secondItem="fgf-k2-uT4" secondAttribute="bottom" id="i6A-IT-Uyi"/>
|
||||
<constraint firstAttribute="trailing" secondItem="fgf-k2-uT4" secondAttribute="trailing" priority="750" id="oMs-yA-J0S"/>
|
||||
<constraint firstItem="fgf-k2-uT4" firstAttribute="leading" secondItem="ZVV-q9-714" secondAttribute="trailing" priority="700" constant="4" id="yNz-90-zJf"/>
|
||||
</constraints>
|
||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
||||
<connections>
|
||||
<outlet property="label" destination="ZVV-q9-714" id="wba-YT-Rav"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="244" y="341"/>
|
||||
</view>
|
||||
</objects>
|
||||
</document>
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10116" systemVersion="15E65" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10116" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
|
||||
|
@ -11,7 +11,7 @@
|
|||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="rsc-tP-qGq" id="mWc-I7-4kZ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_arrow_gray_right" translatesAutoresizingMaskIntoConstraints="NO" id="uA3-ru-Ja1">
|
||||
|
|
|
@ -1,11 +1,17 @@
|
|||
@class MWMEditorTextTableViewCell;
|
||||
@class MWMTableViewCell;
|
||||
|
||||
@protocol MWMEditorCellProtocol <NSObject>
|
||||
|
||||
@required
|
||||
- (void)cell:(MWMEditorTextTableViewCell *)cell changedText:(NSString *)changeText;
|
||||
- (void)cell:(MWMTableViewCell *)cell changedText:(NSString *)changeText;
|
||||
- (void)cell:(UITableViewCell *)cell changeSwitch:(BOOL)changeSwitch;
|
||||
- (void)cellSelect:(UITableViewCell *)cell;
|
||||
- (void)tryToChangeInvalidStateForCell:(MWMEditorTextTableViewCell *)cell;
|
||||
|
||||
@end
|
||||
|
||||
@protocol MWMEditorAdditionalName <MWMEditorCellProtocol>
|
||||
|
||||
- (void)editAdditionalNameLanguage:(NSInteger)selectedLangCode;
|
||||
|
||||
@end
|
||||
|
|
5
iphone/Maps/Classes/Editor/MWMEditorNameFooter.h
Normal file
|
@ -0,0 +1,5 @@
|
|||
@interface MWMEditorNameFooter : UIView
|
||||
|
||||
+ (instancetype)footer;
|
||||
|
||||
@end
|
32
iphone/Maps/Classes/Editor/MWMEditorNameFooter.mm
Normal file
|
@ -0,0 +1,32 @@
|
|||
#import "MWMEditorNameFooter.h"
|
||||
|
||||
@interface MWMEditorNameFooter ()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UILabel * label;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MWMEditorNameFooter
|
||||
|
||||
+ (instancetype)footer
|
||||
{
|
||||
return [[[NSBundle mainBundle] loadNibNamed:[MWMEditorNameFooter className] owner:nil options:nil]
|
||||
firstObject];
|
||||
}
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
[super layoutSubviews];
|
||||
[self.label sizeToIntegralFit];
|
||||
self.height = self.subviews.firstObject.height;
|
||||
[super layoutSubviews];
|
||||
}
|
||||
|
||||
- (CGFloat)height
|
||||
{
|
||||
[self setNeedsLayout];
|
||||
[self layoutIfNeeded];
|
||||
return super.height;
|
||||
}
|
||||
|
||||
@end
|
51
iphone/Maps/Classes/Editor/MWMEditorNameFooter.xib
Normal file
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10116" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="DzZ-TH-upf" customClass="MWMEditorNameFooter">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="36"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="efz-zL-06d">
|
||||
<rect key="frame" x="0.0" y="2" width="320" height="32"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="288" translatesAutoresizingMaskIntoConstraints="NO" id="Peu-jb-4BW">
|
||||
<rect key="frame" x="16" y="8" width="288" height="16"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
||||
<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="regular13"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackSecondaryText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="place_name_caption"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="bottom" secondItem="Peu-jb-4BW" secondAttribute="bottom" constant="8" id="FFW-ln-kak"/>
|
||||
<constraint firstItem="Peu-jb-4BW" firstAttribute="leading" secondItem="efz-zL-06d" secondAttribute="leading" constant="16" id="aKn-f3-WJ1"/>
|
||||
<constraint firstItem="Peu-jb-4BW" firstAttribute="top" secondItem="efz-zL-06d" secondAttribute="top" constant="8" id="lhN-m0-nMG"/>
|
||||
<constraint firstAttribute="trailing" secondItem="Peu-jb-4BW" secondAttribute="trailing" constant="16" id="y76-6j-Vzl"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="efz-zL-06d" firstAttribute="centerY" secondItem="DzZ-TH-upf" secondAttribute="centerY" id="DBi-4W-Glp"/>
|
||||
<constraint firstItem="efz-zL-06d" firstAttribute="leading" secondItem="DzZ-TH-upf" secondAttribute="leading" id="X4V-d6-bir"/>
|
||||
<constraint firstAttribute="trailing" secondItem="efz-zL-06d" secondAttribute="trailing" id="tUJ-dZ-qB0"/>
|
||||
</constraints>
|
||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
||||
<connections>
|
||||
<outlet property="label" destination="Peu-jb-4BW" id="rks-kV-c8c"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="244" y="341"/>
|
||||
</view>
|
||||
</objects>
|
||||
</document>
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10116" systemVersion="15E65" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10116" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
|
||||
|
@ -56,7 +56,7 @@
|
|||
<constraint firstItem="XnK-GX-uDn" firstAttribute="centerY" secondItem="xKX-yy-Dlc" secondAttribute="centerY" id="gr8-fd-1wy"/>
|
||||
<constraint firstItem="XnK-GX-uDn" firstAttribute="leading" secondItem="xKX-yy-Dlc" secondAttribute="trailing" constant="16" id="lPz-pZ-7dI"/>
|
||||
<constraint firstItem="XnK-GX-uDn" firstAttribute="top" secondItem="U0n-vz-Mf1" secondAttribute="topMargin" constant="3" id="o7O-MA-LIA"/>
|
||||
<constraint firstItem="xKX-yy-Dlc" firstAttribute="leading" secondItem="U0n-vz-Mf1" secondAttribute="leadingMargin" constant="8" id="z6t-dN-99D"/>
|
||||
<constraint firstItem="xKX-yy-Dlc" firstAttribute="leading" secondItem="U0n-vz-Mf1" secondAttribute="leading" constant="16" id="z6t-dN-99D"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
|
|
|
@ -1,10 +1,16 @@
|
|||
#import "MapsAppDelegate.h"
|
||||
#import "MWMAlertViewController.h"
|
||||
#import "MWMAuthorizationCommon.h"
|
||||
#import "MWMButtonCell.h"
|
||||
#import "MWMCuisineEditorViewController.h"
|
||||
#import "MWMDropDown.h"
|
||||
#import "MWMEditorAddAdditionalNameTableViewCell.h"
|
||||
#import "MWMEditorAdditionalNamesHeader.h"
|
||||
#import "MWMEditorAdditionalNamesTableViewController.h"
|
||||
#import "MWMEditorAdditionalNameTableViewCell.h"
|
||||
#import "MWMEditorCategoryCell.h"
|
||||
#import "MWMEditorCommon.h"
|
||||
#import "MWMEditorNameFooter.h"
|
||||
#import "MWMEditorNotesFooter.h"
|
||||
#import "MWMEditorSelectTableViewCell.h"
|
||||
#import "MWMEditorSwitchTableViewCell.h"
|
||||
|
@ -13,29 +19,29 @@
|
|||
#import "MWMNoteCell.h"
|
||||
#import "MWMObjectsCategorySelectorController.h"
|
||||
#import "MWMOpeningHoursEditorViewController.h"
|
||||
#import "MWMButtonCell.h"
|
||||
#import "MWMPlacePageEntity.h"
|
||||
#import "MWMPlacePageOpeningHoursCell.h"
|
||||
#import "MWMStreetEditorViewController.h"
|
||||
#import "Statistics.h"
|
||||
|
||||
#import "UIViewController+Navigation.h"
|
||||
|
||||
#include "indexer/editable_map_object.hpp"
|
||||
#include "std/algorithm.hpp"
|
||||
|
||||
namespace
|
||||
{
|
||||
NSString * const kAdditionalNamesEditorSegue = @"Editor2AdditionalNamesEditorSegue";
|
||||
NSString * const kOpeningHoursEditorSegue = @"Editor2OpeningHoursEditorSegue";
|
||||
NSString * const kCuisineEditorSegue = @"Editor2CuisineEditorSegue";
|
||||
NSString * const kStreetEditorSegue = @"Editor2StreetEditorSegue";
|
||||
NSString * const kCategoryEditorSegue = @"Editor2CategoryEditorSegue";
|
||||
CGFloat const kDefaultHeaderHeight = 28.;
|
||||
CGFloat const kDefaultFooterHeight = 32.;
|
||||
|
||||
typedef NS_ENUM(NSUInteger, MWMEditorSection)
|
||||
{
|
||||
MWMEditorSectionCategory,
|
||||
MWMEditorSectionName,
|
||||
MWMEditorSectionAdditionalNames,
|
||||
MWMEditorSectionAddress,
|
||||
MWMEditorSectionDetails,
|
||||
MWMEditorSectionNote,
|
||||
|
@ -44,7 +50,6 @@ typedef NS_ENUM(NSUInteger, MWMEditorSection)
|
|||
|
||||
vector<MWMPlacePageCellType> const kSectionCategoryCellTypes{MWMPlacePageCellTypeCategory};
|
||||
vector<MWMPlacePageCellType> const kSectionNameCellTypes{MWMPlacePageCellTypeName};
|
||||
|
||||
vector<MWMPlacePageCellType> const kSectionAddressCellTypes{
|
||||
MWMPlacePageCellTypeStreet, MWMPlacePageCellTypeBuilding, MWMPlacePageCellTypeZipCode};
|
||||
|
||||
|
@ -54,6 +59,9 @@ vector<MWMPlacePageCellType> const kSectionButtonCellTypes{MWMPlacePageCellTypeR
|
|||
MWMPlacePageCellTypeValueMap const kCellType2ReuseIdentifier{
|
||||
{MWMPlacePageCellTypeCategory, "MWMEditorCategoryCell"},
|
||||
{MWMPlacePageCellTypeName, "MWMEditorNameTableViewCell"},
|
||||
{MWMPlacePageCellTypeAdditionalName, "MWMEditorAdditionalNameTableViewCell"},
|
||||
{MWMPlacePageCellTypeAddAdditionalName, "MWMEditorAddAdditionalNameTableViewCell"},
|
||||
{MWMPlacePageCellTypeAddAdditionalNamePlaceholder, "MWMEditorAdditionalNamePlaceholderTableViewCell"},
|
||||
{MWMPlacePageCellTypeStreet, "MWMEditorSelectTableViewCell"},
|
||||
{MWMPlacePageCellTypeBuilding, "MWMEditorTextTableViewCell"},
|
||||
{MWMPlacePageCellTypeZipCode, "MWMEditorTextTableViewCell"},
|
||||
|
@ -76,6 +84,55 @@ NSString * reuseIdentifier(MWMPlacePageCellType cellType)
|
|||
return haveCell ? @(it->second.c_str()) : @"";
|
||||
}
|
||||
|
||||
vector<osm::LocalizedName> getAdditionalLocalizedNames(osm::EditableMapObject const & emo)
|
||||
{
|
||||
vector<osm::LocalizedName> result;
|
||||
emo.GetName().ForEach([&result](int8_t code, string const & name) -> bool
|
||||
{
|
||||
if (code != StringUtf8Multilang::kDefaultCode)
|
||||
result.push_back({code, StringUtf8Multilang::GetLangByCode(code),
|
||||
StringUtf8Multilang::GetLangNameByCode(code), name});
|
||||
return true;
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
void cleanupAdditionalLanguages(vector<osm::LocalizedName> const & names, vector<NSInteger> & newAdditionalLanguages)
|
||||
{
|
||||
newAdditionalLanguages.erase(remove_if(newAdditionalLanguages.begin(),
|
||||
newAdditionalLanguages.end(),
|
||||
[&names](NSInteger x)
|
||||
{
|
||||
auto it = find_if(names.begin(), names.end(), [x](osm::LocalizedName const & name)
|
||||
{
|
||||
return name.m_code == x;
|
||||
});
|
||||
return it != names.end();
|
||||
}),
|
||||
newAdditionalLanguages.end());
|
||||
}
|
||||
|
||||
vector<MWMPlacePageCellType> cellsForAdditionalNames(
|
||||
vector<osm::LocalizedName> const & names, vector<NSInteger> const & newAdditionalLanguages,
|
||||
BOOL showAdditionalNames)
|
||||
{
|
||||
if (names.empty() && newAdditionalLanguages.empty())
|
||||
return vector<MWMPlacePageCellType>();
|
||||
vector<MWMPlacePageCellType> res;
|
||||
if (showAdditionalNames)
|
||||
{
|
||||
res.insert(res.begin(), names.size() + newAdditionalLanguages.size(),
|
||||
MWMPlacePageCellTypeAdditionalName);
|
||||
}
|
||||
else
|
||||
{
|
||||
res.push_back(MWMPlacePageCellTypeAdditionalName);
|
||||
res.push_back(MWMPlacePageCellTypeAddAdditionalNamePlaceholder);
|
||||
}
|
||||
res.push_back(MWMPlacePageCellTypeAddAdditionalName);
|
||||
return res;
|
||||
}
|
||||
|
||||
vector<MWMPlacePageCellType> cellsForProperties(vector<osm::Props> const & props)
|
||||
{
|
||||
using namespace osm;
|
||||
|
@ -130,20 +187,23 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
}
|
||||
} // namespace
|
||||
|
||||
@interface MWMEditorViewController() <UITableViewDelegate, UITableViewDataSource,
|
||||
UITextFieldDelegate, MWMOpeningHoursEditorProtocol,
|
||||
MWMPlacePageOpeningHoursCellProtocol,
|
||||
MWMEditorCellProtocol, MWMCuisineEditorProtocol,
|
||||
MWMStreetEditorProtocol, MWMObjectsCategorySelectorDelegate,
|
||||
MWMNoteCelLDelegate, MWMButtonCellDelegate>
|
||||
@interface MWMEditorViewController ()<
|
||||
UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate, MWMOpeningHoursEditorProtocol,
|
||||
MWMPlacePageOpeningHoursCellProtocol, MWMEditorCellProtocol, MWMCuisineEditorProtocol,
|
||||
MWMStreetEditorProtocol, MWMObjectsCategorySelectorDelegate, MWMNoteCelLDelegate,
|
||||
MWMEditorAdditionalName, MWMButtonCellDelegate, MWMEditorAdditionalNamesProtocol>
|
||||
|
||||
@property (nonatomic) NSMutableDictionary<NSString *, UITableViewCell *> * offscreenCells;
|
||||
@property (nonatomic) NSMutableArray<NSIndexPath *> * invalidCells;
|
||||
@property (nonatomic) MWMEditorNotesFooter * footer;
|
||||
@property (nonatomic) MWMEditorAdditionalNamesHeader * additionalNamesHeader;
|
||||
@property (nonatomic) MWMEditorNotesFooter * notesFooter;
|
||||
@property (nonatomic) MWMEditorNameFooter * nameFooter;
|
||||
@property (copy, nonatomic) NSString * note;
|
||||
@property (nonatomic) osm::Editor::FeatureStatus featureStatus;
|
||||
@property (nonatomic) BOOL isFeatureUploaded;
|
||||
|
||||
@property (nonatomic) BOOL showAdditionalNames;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MWMEditorViewController
|
||||
|
@ -151,6 +211,7 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
vector<MWMEditorSection> m_sections;
|
||||
map<MWMEditorSection, vector<MWMPlacePageCellType>> m_cells;
|
||||
osm::EditableMapObject m_mapObject;
|
||||
vector<NSInteger> m_newAdditionalLanguages;
|
||||
}
|
||||
|
||||
- (void)viewDidLoad
|
||||
|
@ -162,6 +223,7 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
auto const & fid = m_mapObject.GetID();
|
||||
self.featureStatus = osm::Editor::Instance().GetFeatureStatus(fid.m_mwmId, fid.m_index);
|
||||
self.isFeatureUploaded = osm::Editor::Instance().IsFeatureUploaded(fid.m_mwmId, fid.m_index);
|
||||
m_newAdditionalLanguages.clear();
|
||||
}
|
||||
|
||||
- (void)setFeatureToEdit:(FeatureID const &)fid
|
||||
|
@ -277,11 +339,54 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
[dd showWithMessage:L(@"editor_edits_sent_message")];
|
||||
}
|
||||
|
||||
- (MWMEditorNotesFooter *)footer
|
||||
#pragma mark - Headers
|
||||
|
||||
- (MWMEditorAdditionalNamesHeader *)additionalNamesHeader
|
||||
{
|
||||
if (!_footer)
|
||||
_footer = [MWMEditorNotesFooter footer];
|
||||
return _footer;
|
||||
if (!_additionalNamesHeader)
|
||||
{
|
||||
__weak auto weakSelf = self;
|
||||
_additionalNamesHeader = [MWMEditorAdditionalNamesHeader header:^
|
||||
{
|
||||
__strong auto self = weakSelf;
|
||||
self.showAdditionalNames = !self.showAdditionalNames;
|
||||
}];
|
||||
}
|
||||
return _additionalNamesHeader;
|
||||
}
|
||||
|
||||
#pragma mark - Footers
|
||||
|
||||
- (MWMEditorNotesFooter *)notesFooter
|
||||
{
|
||||
if (!_notesFooter)
|
||||
_notesFooter = [MWMEditorNotesFooter footer];
|
||||
return _notesFooter;
|
||||
}
|
||||
|
||||
- (MWMEditorNameFooter *)nameFooter
|
||||
{
|
||||
if (!_nameFooter)
|
||||
_nameFooter = [MWMEditorNameFooter footer];
|
||||
return _nameFooter;
|
||||
}
|
||||
|
||||
#pragma mark - Properties
|
||||
|
||||
- (void)setShowAdditionalNames:(BOOL)showAdditionalNames
|
||||
{
|
||||
_showAdditionalNames = showAdditionalNames;
|
||||
[self configTable];
|
||||
auto const additionalNamesSectionIt = find(m_sections.begin(), m_sections.end(), MWMEditorSectionAdditionalNames);
|
||||
if (additionalNamesSectionIt == m_sections.end())
|
||||
{
|
||||
[self.tableView reloadData];
|
||||
}
|
||||
else
|
||||
{
|
||||
auto const sectionIndex = distance(m_sections.begin(), additionalNamesSectionIt);
|
||||
[self.tableView reloadSections:[[NSIndexSet alloc] initWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationAutomatic];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Offscreen cells
|
||||
|
@ -301,6 +406,8 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
{
|
||||
self.offscreenCells = [NSMutableDictionary dictionary];
|
||||
self.invalidCells = [NSMutableArray array];
|
||||
m_sections.clear();
|
||||
m_cells.clear();
|
||||
|
||||
m_sections.push_back(MWMEditorSectionCategory);
|
||||
m_cells[MWMEditorSectionCategory] = kSectionCategoryCellTypes;
|
||||
|
@ -311,6 +418,16 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
m_sections.push_back(MWMEditorSectionName);
|
||||
m_cells[MWMEditorSectionName] = kSectionNameCellTypes;
|
||||
registerCellsForTableView(kSectionNameCellTypes, self.tableView);
|
||||
|
||||
vector<osm::LocalizedName> localizedNames = getAdditionalLocalizedNames(m_mapObject);
|
||||
cleanupAdditionalLanguages(localizedNames, m_newAdditionalLanguages);
|
||||
auto const cells = cellsForAdditionalNames(localizedNames, m_newAdditionalLanguages, self.showAdditionalNames);
|
||||
if (!cells.empty())
|
||||
{
|
||||
m_sections.push_back(MWMEditorSectionAdditionalNames);
|
||||
m_cells[MWMEditorSectionAdditionalNames] = cells;
|
||||
registerCellsForTableView(cells, self.tableView);
|
||||
}
|
||||
}
|
||||
if (m_mapObject.IsAddressEditable())
|
||||
{
|
||||
|
@ -367,7 +484,7 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
}
|
||||
case MWMPlacePageCellTypePhoneNumber:
|
||||
{
|
||||
MWMEditorTextTableViewCell * tCell = (MWMEditorTextTableViewCell *)cell;
|
||||
MWMEditorTextTableViewCell * tCell = static_cast<MWMEditorTextTableViewCell *>(cell);
|
||||
[tCell configWithDelegate:self
|
||||
icon:[UIImage imageNamed:@"ic_placepage_phone_number"]
|
||||
text:@(m_mapObject.GetPhone().c_str())
|
||||
|
@ -378,7 +495,7 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
}
|
||||
case MWMPlacePageCellTypeWebsite:
|
||||
{
|
||||
MWMEditorTextTableViewCell * tCell = (MWMEditorTextTableViewCell *)cell;
|
||||
MWMEditorTextTableViewCell * tCell = static_cast<MWMEditorTextTableViewCell *>(cell);
|
||||
[tCell configWithDelegate:self
|
||||
icon:[UIImage imageNamed:@"ic_placepage_website"]
|
||||
text:@(m_mapObject.GetWebsite().c_str())
|
||||
|
@ -389,7 +506,7 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
}
|
||||
case MWMPlacePageCellTypeEmail:
|
||||
{
|
||||
MWMEditorTextTableViewCell * tCell = (MWMEditorTextTableViewCell *)cell;
|
||||
MWMEditorTextTableViewCell * tCell = static_cast<MWMEditorTextTableViewCell *>(cell);
|
||||
[tCell configWithDelegate:self
|
||||
icon:[UIImage imageNamed:@"ic_placepage_email"]
|
||||
text:@(m_mapObject.GetEmail().c_str())
|
||||
|
@ -411,14 +528,14 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
}
|
||||
case MWMPlacePageCellTypeOpenHours:
|
||||
{
|
||||
MWMPlacePageOpeningHoursCell * tCell = (MWMPlacePageOpeningHoursCell *)cell;
|
||||
MWMPlacePageOpeningHoursCell * tCell = static_cast<MWMPlacePageOpeningHoursCell *>(cell);
|
||||
NSString * text = @(m_mapObject.GetOpeningHours().c_str());
|
||||
[tCell configWithDelegate:self info:(text.length ? text : L(@"add_opening_hours"))];
|
||||
break;
|
||||
}
|
||||
case MWMPlacePageCellTypeWiFi:
|
||||
{
|
||||
MWMEditorSwitchTableViewCell * tCell = (MWMEditorSwitchTableViewCell *)cell;
|
||||
MWMEditorSwitchTableViewCell * tCell = static_cast<MWMEditorSwitchTableViewCell *>(cell);
|
||||
// TODO(Vlad, IgorTomko): Support all other possible Internet statuses.
|
||||
[tCell configWithDelegate:self
|
||||
icon:[UIImage imageNamed:@"ic_placepage_wifi"]
|
||||
|
@ -428,7 +545,7 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
}
|
||||
case MWMPlacePageCellTypeName:
|
||||
{
|
||||
MWMEditorTextTableViewCell * tCell = (MWMEditorTextTableViewCell *)cell;
|
||||
MWMEditorTextTableViewCell * tCell = static_cast<MWMEditorTextTableViewCell *>(cell);
|
||||
[tCell configWithDelegate:self
|
||||
icon:nil
|
||||
text:@(m_mapObject.GetDefaultName().c_str())
|
||||
|
@ -437,9 +554,44 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
capitalization:UITextAutocapitalizationTypeSentences];
|
||||
break;
|
||||
}
|
||||
case MWMPlacePageCellTypeAdditionalName:
|
||||
{
|
||||
MWMEditorAdditionalNameTableViewCell * tCell = static_cast<MWMEditorAdditionalNameTableViewCell *>(cell);
|
||||
|
||||
vector<osm::LocalizedName> const localizedNames = getAdditionalLocalizedNames(m_mapObject);
|
||||
|
||||
if (indexPath.row < localizedNames.size())
|
||||
{
|
||||
osm::LocalizedName const & name = localizedNames[indexPath.row];
|
||||
[tCell configWithDelegate:self
|
||||
langCode:name.m_code
|
||||
langName:@(name.m_langName)
|
||||
name:@(name.m_name.c_str())
|
||||
keyboardType:UIKeyboardTypeDefault];
|
||||
}
|
||||
else
|
||||
{
|
||||
NSInteger const newAdditionalNameIndex = indexPath.row - localizedNames.size();
|
||||
NSInteger const langCode = m_newAdditionalLanguages[newAdditionalNameIndex];
|
||||
[tCell configWithDelegate:self
|
||||
langCode:langCode
|
||||
langName:@(StringUtf8Multilang::GetLangNameByCode(langCode))
|
||||
name:@""
|
||||
keyboardType:UIKeyboardTypeDefault];
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MWMPlacePageCellTypeAddAdditionalName:
|
||||
{
|
||||
MWMEditorAddAdditionalNameTableViewCell * tCell = static_cast<MWMEditorAddAdditionalNameTableViewCell *>(cell);
|
||||
[tCell configWithDelegate:self];
|
||||
break;
|
||||
}
|
||||
case MWMPlacePageCellTypeAddAdditionalNamePlaceholder:
|
||||
break;
|
||||
case MWMPlacePageCellTypeStreet:
|
||||
{
|
||||
MWMEditorSelectTableViewCell * tCell = (MWMEditorSelectTableViewCell *)cell;
|
||||
MWMEditorSelectTableViewCell * tCell = static_cast<MWMEditorSelectTableViewCell *>(cell);
|
||||
[tCell configWithDelegate:self
|
||||
icon:[UIImage imageNamed:@"ic_placepage_adress"]
|
||||
text:@(m_mapObject.GetStreet().m_defaultName.c_str())
|
||||
|
@ -448,7 +600,7 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
}
|
||||
case MWMPlacePageCellTypeBuilding:
|
||||
{
|
||||
MWMEditorTextTableViewCell * tCell = (MWMEditorTextTableViewCell *)cell;
|
||||
MWMEditorTextTableViewCell * tCell = static_cast<MWMEditorTextTableViewCell *>(cell);
|
||||
[tCell configWithDelegate:self
|
||||
icon:nil
|
||||
text:@(m_mapObject.GetHouseNumber().c_str())
|
||||
|
@ -491,7 +643,7 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
}
|
||||
case MWMPlacePageCellTypeCuisine:
|
||||
{
|
||||
MWMEditorSelectTableViewCell * tCell = (MWMEditorSelectTableViewCell *)cell;
|
||||
MWMEditorSelectTableViewCell * tCell = static_cast<MWMEditorSelectTableViewCell *>(cell);
|
||||
[tCell configWithDelegate:self
|
||||
icon:[UIImage imageNamed:@"ic_placepage_cuisine"]
|
||||
text:@(m_mapObject.FormatCuisines().c_str())
|
||||
|
@ -563,8 +715,6 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
NSString * reuseIdentifier = [self cellIdentifierForIndexPath:indexPath];
|
||||
|
||||
UITableViewCell * cell = [self offscreenCellForIdentifier:reuseIdentifier];
|
||||
// TODO(Vlad, IGrechuhin): It's bad idea to fill cells here.
|
||||
// heightForRowAtIndexPath is called way too often for the table.
|
||||
[self fillCell:cell atIndexPath:indexPath];
|
||||
MWMPlacePageCellType const cellType = [self cellTypeForIndexPath:indexPath];
|
||||
switch (cellType)
|
||||
|
@ -594,6 +744,7 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
switch (m_sections[section])
|
||||
{
|
||||
case MWMEditorSectionName:
|
||||
case MWMEditorSectionAdditionalNames:
|
||||
case MWMEditorSectionCategory:
|
||||
case MWMEditorSectionButton:
|
||||
return nil;
|
||||
|
@ -606,18 +757,19 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
}
|
||||
}
|
||||
|
||||
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
|
||||
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
|
||||
{
|
||||
switch (m_sections[section])
|
||||
{
|
||||
case MWMEditorSectionName:
|
||||
return L(@"place_name_caption");
|
||||
case MWMEditorSectionAddress:
|
||||
case MWMEditorSectionDetails:
|
||||
case MWMEditorSectionCategory:
|
||||
case MWMEditorSectionNote:
|
||||
case MWMEditorSectionButton:
|
||||
return nil;
|
||||
case MWMEditorSectionAdditionalNames:
|
||||
return self.additionalNamesHeader;
|
||||
case MWMEditorSectionName:
|
||||
case MWMEditorSectionCategory:
|
||||
case MWMEditorSectionButton:
|
||||
case MWMEditorSectionNote:
|
||||
case MWMEditorSectionAddress:
|
||||
case MWMEditorSectionDetails:
|
||||
return nil;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -628,14 +780,21 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
case MWMEditorSectionAddress:
|
||||
case MWMEditorSectionDetails:
|
||||
case MWMEditorSectionCategory:
|
||||
case MWMEditorSectionName:
|
||||
case MWMEditorSectionAdditionalNames:
|
||||
case MWMEditorSectionButton:
|
||||
return nil;
|
||||
case MWMEditorSectionName:
|
||||
return self.nameFooter;
|
||||
case MWMEditorSectionNote:
|
||||
return self.footer;
|
||||
return self.notesFooter;
|
||||
}
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
|
||||
{
|
||||
return kDefaultHeaderHeight;
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
|
||||
{
|
||||
switch (m_sections[section])
|
||||
|
@ -643,10 +802,12 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
case MWMEditorSectionAddress:
|
||||
case MWMEditorSectionDetails:
|
||||
case MWMEditorSectionCategory:
|
||||
return 0.;
|
||||
case MWMEditorSectionAdditionalNames:
|
||||
return 1.0;
|
||||
case MWMEditorSectionNote:
|
||||
return self.footer.height;
|
||||
return self.notesFooter.height;
|
||||
case MWMEditorSectionName:
|
||||
return self.nameFooter.height;
|
||||
case MWMEditorSectionButton:
|
||||
return kDefaultFooterHeight;
|
||||
}
|
||||
|
@ -705,6 +866,28 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
self.note = text;
|
||||
}
|
||||
|
||||
#pragma mark - MWMEditorAdditionalName
|
||||
|
||||
- (void)editAdditionalNameLanguage:(NSInteger)selectedLangCode
|
||||
{
|
||||
[self performSegueWithIdentifier:kAdditionalNamesEditorSegue sender:@(selectedLangCode)];
|
||||
}
|
||||
|
||||
#pragma mark - MWMEditorAdditionalNamesProtocol
|
||||
|
||||
- (void)addAdditionalName:(NSInteger)languageIndex
|
||||
{
|
||||
m_newAdditionalLanguages.push_back(languageIndex);
|
||||
self.showAdditionalNames = YES;
|
||||
auto additionalNamesSectionIt = find(m_sections.begin(), m_sections.end(), MWMEditorSectionAdditionalNames);
|
||||
assert(additionalNamesSectionIt != m_sections.end());
|
||||
auto const section = distance(m_sections.begin(), additionalNamesSectionIt);
|
||||
NSInteger const row = [self tableView:self.tableView numberOfRowsInSection:section];
|
||||
assert(row > 0);
|
||||
NSIndexPath * indexPath = [NSIndexPath indexPathForRow:row - 1 inSection:section];
|
||||
[self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:NO];
|
||||
}
|
||||
|
||||
#pragma mark - MWMEditorCellProtocol
|
||||
|
||||
- (void)tryToChangeInvalidStateForCell:(MWMEditorTextTableViewCell *)cell
|
||||
|
@ -717,7 +900,7 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
[self.tableView endUpdates];
|
||||
}
|
||||
|
||||
- (void)cell:(MWMEditorTextTableViewCell *)cell changedText:(NSString *)changeText
|
||||
- (void)cell:(MWMTableViewCell *)cell changedText:(NSString *)changeText
|
||||
{
|
||||
NSAssert(changeText != nil, @"String can't be nil!");
|
||||
NSIndexPath * indexPath = [self.tableView indexPathForCell:cell];
|
||||
|
@ -725,7 +908,6 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
string const val = changeText.UTF8String;
|
||||
switch (cellType)
|
||||
{
|
||||
// TODO(Vlad): Support multilanguage names.
|
||||
case MWMPlacePageCellTypeName: m_mapObject.SetName(val, StringUtf8Multilang::kDefaultCode); break;
|
||||
case MWMPlacePageCellTypePhoneNumber: m_mapObject.SetPhone(val); break;
|
||||
case MWMPlacePageCellTypeWebsite: m_mapObject.SetWebsite(val); break;
|
||||
|
@ -745,6 +927,12 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
if (!osm::EditableMapObject::ValidateBuildingLevels(val))
|
||||
[self markCellAsInvalid:indexPath];
|
||||
break;
|
||||
case MWMPlacePageCellTypeAdditionalName:
|
||||
{
|
||||
MWMEditorAdditionalNameTableViewCell * tCell = static_cast<MWMEditorAdditionalNameTableViewCell *>(cell);
|
||||
m_mapObject.SetName(val, tCell.code);
|
||||
break;
|
||||
}
|
||||
default: NSAssert(false, @"Invalid field for changeText");
|
||||
}
|
||||
}
|
||||
|
@ -927,9 +1115,17 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
else if ([segue.identifier isEqualToString:kCategoryEditorSegue])
|
||||
{
|
||||
NSAssert(self.isCreating, @"Invalid state! We'll be able to change feature category only if we are creating feature!");
|
||||
MWMObjectsCategorySelectorController * dest = segue.destinationViewController;
|
||||
dest.delegate = self;
|
||||
[dest setSelectedCategory:m_mapObject.GetLocalizedType()];
|
||||
MWMObjectsCategorySelectorController * dvc = segue.destinationViewController;
|
||||
dvc.delegate = self;
|
||||
[dvc setSelectedCategory:m_mapObject.GetLocalizedType()];
|
||||
}
|
||||
else if ([segue.identifier isEqualToString:kAdditionalNamesEditorSegue])
|
||||
{
|
||||
MWMEditorAdditionalNamesTableViewController * dvc = segue.destinationViewController;
|
||||
[dvc configWithDelegate:self
|
||||
name:m_mapObject.GetName()
|
||||
additionalSkipLanguageCodes:m_newAdditionalLanguages
|
||||
selectedLanguageCode:((NSNumber *)sender).integerValue];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,9 @@ typedef NS_ENUM(NSUInteger, MWMPlacePageCellType)
|
|||
MWMPlacePageCellTypeReportButton,
|
||||
MWMPlacePageCellTypeCategory,
|
||||
MWMPlacePageCellTypeName,
|
||||
MWMPlacePageCellTypeAdditionalName,
|
||||
MWMPlacePageCellTypeAddAdditionalName,
|
||||
MWMPlacePageCellTypeAddAdditionalNamePlaceholder,
|
||||
MWMPlacePageCellTypeStreet,
|
||||
MWMPlacePageCellTypeBuilding,
|
||||
MWMPlacePageCellTypeZipCode,
|
||||
|
|
6
iphone/Maps/Images.xcassets/Editor/Contents.json
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
23
iphone/Maps/Images.xcassets/ic_add_dark.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_add_dark.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_add_dark@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_add_dark@3x.png",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
BIN
iphone/Maps/Images.xcassets/ic_add_dark.imageset/ic_add_dark.png
vendored
Normal file
After Width: | Height: | Size: 255 B |
BIN
iphone/Maps/Images.xcassets/ic_add_dark.imageset/ic_add_dark@2x.png
vendored
Normal file
After Width: | Height: | Size: 443 B |
BIN
iphone/Maps/Images.xcassets/ic_add_dark.imageset/ic_add_dark@3x.png
vendored
Normal file
After Width: | Height: | Size: 606 B |
23
iphone/Maps/Images.xcassets/ic_add_highlighted_dark.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_add_highlighted_dark.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_add_highlighted_dark@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_add_highlighted_dark@3x.png",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
BIN
iphone/Maps/Images.xcassets/ic_add_highlighted_dark.imageset/ic_add_highlighted_dark.png
vendored
Normal file
After Width: | Height: | Size: 259 B |
BIN
iphone/Maps/Images.xcassets/ic_add_highlighted_dark.imageset/ic_add_highlighted_dark@2x.png
vendored
Normal file
After Width: | Height: | Size: 422 B |
BIN
iphone/Maps/Images.xcassets/ic_add_highlighted_dark.imageset/ic_add_highlighted_dark@3x.png
vendored
Normal file
After Width: | Height: | Size: 556 B |
23
iphone/Maps/Images.xcassets/ic_add_highlighted_light.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_add_highlighted_light.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_add_highlighted_light@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_add_highlighted_light@3x.png",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
BIN
iphone/Maps/Images.xcassets/ic_add_highlighted_light.imageset/ic_add_highlighted_light.png
vendored
Normal file
After Width: | Height: | Size: 262 B |
BIN
iphone/Maps/Images.xcassets/ic_add_highlighted_light.imageset/ic_add_highlighted_light@2x.png
vendored
Normal file
After Width: | Height: | Size: 395 B |
BIN
iphone/Maps/Images.xcassets/ic_add_highlighted_light.imageset/ic_add_highlighted_light@3x.png
vendored
Normal file
After Width: | Height: | Size: 591 B |
23
iphone/Maps/Images.xcassets/ic_add_light.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_add_light.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_add_light@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_add_light@3x.png",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
BIN
iphone/Maps/Images.xcassets/ic_add_light.imageset/ic_add_light.png
vendored
Normal file
After Width: | Height: | Size: 264 B |
BIN
iphone/Maps/Images.xcassets/ic_add_light.imageset/ic_add_light@2x.png
vendored
Normal file
After Width: | Height: | Size: 451 B |
BIN
iphone/Maps/Images.xcassets/ic_add_light.imageset/ic_add_light@3x.png
vendored
Normal file
After Width: | Height: | Size: 622 B |
23
iphone/Maps/Images.xcassets/ic_remove_dark.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_remove_dark.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_remove_dark@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_remove_dark@3x.png",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
BIN
iphone/Maps/Images.xcassets/ic_remove_dark.imageset/ic_remove_dark.png
vendored
Normal file
After Width: | Height: | Size: 258 B |
BIN
iphone/Maps/Images.xcassets/ic_remove_dark.imageset/ic_remove_dark@2x.png
vendored
Normal file
After Width: | Height: | Size: 419 B |
BIN
iphone/Maps/Images.xcassets/ic_remove_dark.imageset/ic_remove_dark@3x.png
vendored
Normal file
After Width: | Height: | Size: 588 B |
23
iphone/Maps/Images.xcassets/ic_remove_highlighted_dark.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_remove_highlighted_dark.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_remove_highlighted_dark@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_remove_highlighted_dark@3x.png",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
BIN
iphone/Maps/Images.xcassets/ic_remove_highlighted_dark.imageset/ic_remove_highlighted_dark.png
vendored
Normal file
After Width: | Height: | Size: 254 B |
BIN
iphone/Maps/Images.xcassets/ic_remove_highlighted_dark.imageset/ic_remove_highlighted_dark@2x.png
vendored
Normal file
After Width: | Height: | Size: 365 B |
BIN
iphone/Maps/Images.xcassets/ic_remove_highlighted_dark.imageset/ic_remove_highlighted_dark@3x.png
vendored
Normal file
After Width: | Height: | Size: 557 B |
23
iphone/Maps/Images.xcassets/ic_remove_highlighted_light.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_remove_highlighted_light.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_remove_highlighted_light@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_remove_highlighted_light@3x.png",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
BIN
iphone/Maps/Images.xcassets/ic_remove_highlighted_light.imageset/ic_remove_highlighted_light.png
vendored
Normal file
After Width: | Height: | Size: 254 B |
BIN
iphone/Maps/Images.xcassets/ic_remove_highlighted_light.imageset/ic_remove_highlighted_light@2x.png
vendored
Normal file
After Width: | Height: | Size: 365 B |
BIN
iphone/Maps/Images.xcassets/ic_remove_highlighted_light.imageset/ic_remove_highlighted_light@3x.png
vendored
Normal file
After Width: | Height: | Size: 557 B |
23
iphone/Maps/Images.xcassets/ic_remove_light.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_remove_light.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_remove_light@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_remove_light@3x.png",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
BIN
iphone/Maps/Images.xcassets/ic_remove_light.imageset/ic_remove_light.png
vendored
Normal file
After Width: | Height: | Size: 258 B |
BIN
iphone/Maps/Images.xcassets/ic_remove_light.imageset/ic_remove_light@2x.png
vendored
Normal file
After Width: | Height: | Size: 419 B |
BIN
iphone/Maps/Images.xcassets/ic_remove_light.imageset/ic_remove_light@3x.png
vendored
Normal file
After Width: | Height: | Size: 588 B |
|
@ -101,6 +101,14 @@
|
|||
34570A3D1B13223000E6D4FD /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 34570A3C1B13223000E6D4FD /* libsqlite3.dylib */; settings = {ATTRIBUTES = (Required, ); }; };
|
||||
34570A3F1B13225500E6D4FD /* Accounts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 34570A3E1B13225500E6D4FD /* Accounts.framework */; settings = {ATTRIBUTES = (Required, ); }; };
|
||||
34570A411B13229300E6D4FD /* FBSDKLoginKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 34570A401B13229300E6D4FD /* FBSDKLoginKit.framework */; settings = {ATTRIBUTES = (Required, ); }; };
|
||||
345FD7E01CEC7AD400F58045 /* MWMEditorAddAdditionalNameTableViewCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = 345FD7DF1CEC7AD400F58045 /* MWMEditorAddAdditionalNameTableViewCell.mm */; };
|
||||
345FD7E11CEC7AD400F58045 /* MWMEditorAddAdditionalNameTableViewCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = 345FD7DF1CEC7AD400F58045 /* MWMEditorAddAdditionalNameTableViewCell.mm */; };
|
||||
345FD7E31CEC7B0C00F58045 /* MWMEditorAddAdditionalNameTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 345FD7E21CEC7B0C00F58045 /* MWMEditorAddAdditionalNameTableViewCell.xib */; };
|
||||
345FD7E41CEC7B0C00F58045 /* MWMEditorAddAdditionalNameTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 345FD7E21CEC7B0C00F58045 /* MWMEditorAddAdditionalNameTableViewCell.xib */; };
|
||||
345FD7E71CEC7D8400F58045 /* MWMEditorAdditionalNamesHeader.mm in Sources */ = {isa = PBXBuildFile; fileRef = 345FD7E61CEC7D8400F58045 /* MWMEditorAdditionalNamesHeader.mm */; };
|
||||
345FD7E81CEC7D8400F58045 /* MWMEditorAdditionalNamesHeader.mm in Sources */ = {isa = PBXBuildFile; fileRef = 345FD7E61CEC7D8400F58045 /* MWMEditorAdditionalNamesHeader.mm */; };
|
||||
345FD7EA1CEC7DA800F58045 /* MWMEditorAdditionalNamesHeader.xib in Resources */ = {isa = PBXBuildFile; fileRef = 345FD7E91CEC7DA800F58045 /* MWMEditorAdditionalNamesHeader.xib */; };
|
||||
345FD7EB1CEC7DA800F58045 /* MWMEditorAdditionalNamesHeader.xib in Resources */ = {isa = PBXBuildFile; fileRef = 345FD7E91CEC7DA800F58045 /* MWMEditorAdditionalNamesHeader.xib */; };
|
||||
345FDD261C3BB3AF0070C459 /* MWMEditorViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 345FDD251C3BB3AF0070C459 /* MWMEditorViewController.mm */; };
|
||||
345FDD271C3BB3AF0070C459 /* MWMEditorViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 345FDD251C3BB3AF0070C459 /* MWMEditorViewController.mm */; };
|
||||
34634B1B1BB42D270013573C /* MWMBottomMenuCollectionViewLandscapeCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34634B1A1BB42D270013573C /* MWMBottomMenuCollectionViewLandscapeCell.xib */; };
|
||||
|
@ -182,6 +190,8 @@
|
|||
34A62D4F1C903533007FDCB7 /* Fabric.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 34A62D4C1C903533007FDCB7 /* Fabric.framework */; };
|
||||
34A62D501C903533007FDCB7 /* Crashlytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 34A62D4D1C903533007FDCB7 /* Crashlytics.framework */; };
|
||||
34A62D511C903533007FDCB7 /* Crashlytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 34A62D4D1C903533007FDCB7 /* Crashlytics.framework */; };
|
||||
34AB04B71CEC95B500CE8B36 /* MWMEditorAdditionalNamePlaceholderTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34AB04B61CEC95B500CE8B36 /* MWMEditorAdditionalNamePlaceholderTableViewCell.xib */; };
|
||||
34AB04B81CEC95B500CE8B36 /* MWMEditorAdditionalNamePlaceholderTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34AB04B61CEC95B500CE8B36 /* MWMEditorAdditionalNamePlaceholderTableViewCell.xib */; };
|
||||
34ABA6161C2D185C00FE1BEC /* MWMAuthorizationOSMLoginViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34ABA6151C2D185B00FE1BEC /* MWMAuthorizationOSMLoginViewController.mm */; };
|
||||
34ABA6171C2D185C00FE1BEC /* MWMAuthorizationOSMLoginViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34ABA6151C2D185B00FE1BEC /* MWMAuthorizationOSMLoginViewController.mm */; };
|
||||
34ABA61B1C2D4DCC00FE1BEC /* UITextField+RuntimeAttributes.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34ABA61A1C2D4DCC00FE1BEC /* UITextField+RuntimeAttributes.mm */; };
|
||||
|
@ -196,6 +206,14 @@
|
|||
34ABA62D1C2D57D500FE1BEC /* MWMInputPasswordValidator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34ABA62B1C2D57D500FE1BEC /* MWMInputPasswordValidator.mm */; };
|
||||
34ABA6301C2D58F300FE1BEC /* MWMInputEmailValidator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34ABA62F1C2D58F300FE1BEC /* MWMInputEmailValidator.mm */; };
|
||||
34B16C451B72655D000D3A0D /* MWMPedestrianShareAlert.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34B16C441B72655D000D3A0D /* MWMPedestrianShareAlert.mm */; };
|
||||
34B646BD1CEB6FC000E0C7A5 /* MWMEditorAdditionalNameTableViewCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34B646BC1CEB6FC000E0C7A5 /* MWMEditorAdditionalNameTableViewCell.mm */; };
|
||||
34B646BE1CEB6FC000E0C7A5 /* MWMEditorAdditionalNameTableViewCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34B646BC1CEB6FC000E0C7A5 /* MWMEditorAdditionalNameTableViewCell.mm */; };
|
||||
34B646C01CEB6FE000E0C7A5 /* MWMEditorAdditionalNameTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34B646BF1CEB6FE000E0C7A5 /* MWMEditorAdditionalNameTableViewCell.xib */; };
|
||||
34B646C11CEB6FE000E0C7A5 /* MWMEditorAdditionalNameTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34B646BF1CEB6FE000E0C7A5 /* MWMEditorAdditionalNameTableViewCell.xib */; };
|
||||
34B646C41CEB740900E0C7A5 /* MWMEditorNameFooter.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34B646C31CEB740900E0C7A5 /* MWMEditorNameFooter.mm */; };
|
||||
34B646C51CEB740900E0C7A5 /* MWMEditorNameFooter.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34B646C31CEB740900E0C7A5 /* MWMEditorNameFooter.mm */; };
|
||||
34B646C71CEB742500E0C7A5 /* MWMEditorNameFooter.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34B646C61CEB742500E0C7A5 /* MWMEditorNameFooter.xib */; };
|
||||
34B646C81CEB742600E0C7A5 /* MWMEditorNameFooter.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34B646C61CEB742500E0C7A5 /* MWMEditorNameFooter.xib */; };
|
||||
34B6CF5D1BBBFC6B009203C6 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 34B6CF5C1BBBFC6B009203C6 /* LaunchScreen.storyboard */; };
|
||||
34B82AB21B8344E300180497 /* MWMSearchTextField.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34B82AB11B8344E300180497 /* MWMSearchTextField.mm */; };
|
||||
34B82ABA1B837FFD00180497 /* MWMSearchHistoryRequestCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34B82AB81B837FFD00180497 /* MWMSearchHistoryRequestCell.mm */; };
|
||||
|
@ -220,6 +238,8 @@
|
|||
34BC72241B0DECAE0012A34B /* MWMMapViewControlsManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34BC72111B0DECAE0012A34B /* MWMMapViewControlsManager.mm */; };
|
||||
34BF0CC61C31304A00D097EB /* MWMAuthorizationCommon.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34BF0CC51C31304A00D097EB /* MWMAuthorizationCommon.mm */; };
|
||||
34BF0CC71C31304A00D097EB /* MWMAuthorizationCommon.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34BF0CC51C31304A00D097EB /* MWMAuthorizationCommon.mm */; };
|
||||
34C2431B1CEDBDBA0006B7DC /* MWMEditorAdditionalNamesTableViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34C2431A1CEDBDBA0006B7DC /* MWMEditorAdditionalNamesTableViewController.mm */; };
|
||||
34C2431C1CEDBDBA0006B7DC /* MWMEditorAdditionalNamesTableViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34C2431A1CEDBDBA0006B7DC /* MWMEditorAdditionalNamesTableViewController.mm */; };
|
||||
34C659471BD12A77009DC20A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 34C659451BD12A77009DC20A /* InfoPlist.strings */; };
|
||||
34C9BD021C6DB693000DC38D /* MWMTableViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34C9BCFF1C6DB693000DC38D /* MWMTableViewController.mm */; };
|
||||
34C9BD031C6DB693000DC38D /* MWMTableViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34C9BCFF1C6DB693000DC38D /* MWMTableViewController.mm */; };
|
||||
|
@ -975,6 +995,12 @@
|
|||
34570A3C1B13223000E6D4FD /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; };
|
||||
34570A3E1B13225500E6D4FD /* Accounts.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accounts.framework; path = System/Library/Frameworks/Accounts.framework; sourceTree = SDKROOT; };
|
||||
34570A401B13229300E6D4FD /* FBSDKLoginKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FBSDKLoginKit.framework; path = Statistics/FBSDKLoginKit.framework; sourceTree = "<group>"; };
|
||||
345FD7DE1CEC7AD400F58045 /* MWMEditorAddAdditionalNameTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMEditorAddAdditionalNameTableViewCell.h; sourceTree = "<group>"; };
|
||||
345FD7DF1CEC7AD400F58045 /* MWMEditorAddAdditionalNameTableViewCell.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMEditorAddAdditionalNameTableViewCell.mm; sourceTree = "<group>"; };
|
||||
345FD7E21CEC7B0C00F58045 /* MWMEditorAddAdditionalNameTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMEditorAddAdditionalNameTableViewCell.xib; sourceTree = "<group>"; };
|
||||
345FD7E51CEC7D8400F58045 /* MWMEditorAdditionalNamesHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMEditorAdditionalNamesHeader.h; sourceTree = "<group>"; };
|
||||
345FD7E61CEC7D8400F58045 /* MWMEditorAdditionalNamesHeader.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMEditorAdditionalNamesHeader.mm; sourceTree = "<group>"; };
|
||||
345FD7E91CEC7DA800F58045 /* MWMEditorAdditionalNamesHeader.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMEditorAdditionalNamesHeader.xib; sourceTree = "<group>"; };
|
||||
345FDD241C3BB3AF0070C459 /* MWMEditorViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMEditorViewController.h; sourceTree = "<group>"; };
|
||||
345FDD251C3BB3AF0070C459 /* MWMEditorViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMEditorViewController.mm; sourceTree = "<group>"; };
|
||||
3460B4C11BF369A2003EE796 /* StatisticsStrings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StatisticsStrings.h; sourceTree = "<group>"; };
|
||||
|
@ -1056,6 +1082,7 @@
|
|||
349C26B81BB04ED30005DF2F /* MWMBottomMenuView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMBottomMenuView.mm; sourceTree = "<group>"; };
|
||||
34A62D4C1C903533007FDCB7 /* Fabric.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Fabric.framework; sourceTree = "<group>"; };
|
||||
34A62D4D1C903533007FDCB7 /* Crashlytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Crashlytics.framework; sourceTree = "<group>"; };
|
||||
34AB04B61CEC95B500CE8B36 /* MWMEditorAdditionalNamePlaceholderTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMEditorAdditionalNamePlaceholderTableViewCell.xib; sourceTree = "<group>"; };
|
||||
34ABA6141C2D185B00FE1BEC /* MWMAuthorizationOSMLoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMAuthorizationOSMLoginViewController.h; sourceTree = "<group>"; };
|
||||
34ABA6151C2D185B00FE1BEC /* MWMAuthorizationOSMLoginViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMAuthorizationOSMLoginViewController.mm; sourceTree = "<group>"; };
|
||||
34ABA6191C2D4DA900FE1BEC /* UITextField+RuntimeAttributes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UITextField+RuntimeAttributes.h"; sourceTree = "<group>"; };
|
||||
|
@ -1072,6 +1099,12 @@
|
|||
34ABA62F1C2D58F300FE1BEC /* MWMInputEmailValidator.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMInputEmailValidator.mm; sourceTree = "<group>"; };
|
||||
34B16C431B72655D000D3A0D /* MWMPedestrianShareAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMPedestrianShareAlert.h; sourceTree = "<group>"; };
|
||||
34B16C441B72655D000D3A0D /* MWMPedestrianShareAlert.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMPedestrianShareAlert.mm; sourceTree = "<group>"; };
|
||||
34B646BB1CEB6FC000E0C7A5 /* MWMEditorAdditionalNameTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMEditorAdditionalNameTableViewCell.h; sourceTree = "<group>"; };
|
||||
34B646BC1CEB6FC000E0C7A5 /* MWMEditorAdditionalNameTableViewCell.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMEditorAdditionalNameTableViewCell.mm; sourceTree = "<group>"; };
|
||||
34B646BF1CEB6FE000E0C7A5 /* MWMEditorAdditionalNameTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMEditorAdditionalNameTableViewCell.xib; sourceTree = "<group>"; };
|
||||
34B646C21CEB740900E0C7A5 /* MWMEditorNameFooter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMEditorNameFooter.h; sourceTree = "<group>"; };
|
||||
34B646C31CEB740900E0C7A5 /* MWMEditorNameFooter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMEditorNameFooter.mm; sourceTree = "<group>"; };
|
||||
34B646C61CEB742500E0C7A5 /* MWMEditorNameFooter.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMEditorNameFooter.xib; sourceTree = "<group>"; };
|
||||
34B6CF5C1BBBFC6B009203C6 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||
34B82AB01B8344E300180497 /* MWMSearchTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMSearchTextField.h; sourceTree = "<group>"; };
|
||||
34B82AB11B8344E300180497 /* MWMSearchTextField.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMSearchTextField.mm; sourceTree = "<group>"; };
|
||||
|
@ -1107,6 +1140,8 @@
|
|||
34BC72111B0DECAE0012A34B /* MWMMapViewControlsManager.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMMapViewControlsManager.mm; sourceTree = "<group>"; };
|
||||
34BF0CC51C31304A00D097EB /* MWMAuthorizationCommon.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMAuthorizationCommon.mm; sourceTree = "<group>"; };
|
||||
34BF0CC81C31306300D097EB /* MWMAuthorizationCommon.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MWMAuthorizationCommon.h; sourceTree = "<group>"; };
|
||||
34C243191CEDBDBA0006B7DC /* MWMEditorAdditionalNamesTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMEditorAdditionalNamesTableViewController.h; sourceTree = "<group>"; };
|
||||
34C2431A1CEDBDBA0006B7DC /* MWMEditorAdditionalNamesTableViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMEditorAdditionalNamesTableViewController.mm; sourceTree = "<group>"; };
|
||||
34C659461BD12A77009DC20A /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
34C659491BD12A81009DC20A /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
34C6594A1BD12A89009DC20A /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
|
@ -2271,6 +2306,15 @@
|
|||
path = CustomViews/MapViewControls;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
34C243181CEDBD950006B7DC /* AdditionalNames */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
34C243191CEDBDBA0006B7DC /* MWMEditorAdditionalNamesTableViewController.h */,
|
||||
34C2431A1CEDBDBA0006B7DC /* MWMEditorAdditionalNamesTableViewController.mm */,
|
||||
);
|
||||
path = AdditionalNames;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
34CC4C051B81F38E00E44C1F /* TabbedView */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
@ -2391,6 +2435,7 @@
|
|||
34F9FB811C4389EE00F71201 /* Street */,
|
||||
340C20E01C3E563500111D22 /* Cuisine */,
|
||||
34EB84551C073DF70004689F /* OpeningHours */,
|
||||
34C243181CEDBD950006B7DC /* AdditionalNames */,
|
||||
340C20E51C3E58B000111D22 /* MWMEditorCommon.h */,
|
||||
345FDD241C3BB3AF0070C459 /* MWMEditorViewController.h */,
|
||||
345FDD251C3BB3AF0070C459 /* MWMEditorViewController.mm */,
|
||||
|
@ -2407,6 +2452,19 @@
|
|||
3401CD7A1C3CF1BE0028C6F8 /* MWMEditorSwitchTableViewCell.h */,
|
||||
3401CD7B1C3CF1BE0028C6F8 /* MWMEditorSwitchTableViewCell.mm */,
|
||||
3401CD7C1C3CF1BE0028C6F8 /* MWMEditorSwitchTableViewCell.xib */,
|
||||
34B646BB1CEB6FC000E0C7A5 /* MWMEditorAdditionalNameTableViewCell.h */,
|
||||
34B646BC1CEB6FC000E0C7A5 /* MWMEditorAdditionalNameTableViewCell.mm */,
|
||||
34B646BF1CEB6FE000E0C7A5 /* MWMEditorAdditionalNameTableViewCell.xib */,
|
||||
345FD7DE1CEC7AD400F58045 /* MWMEditorAddAdditionalNameTableViewCell.h */,
|
||||
345FD7DF1CEC7AD400F58045 /* MWMEditorAddAdditionalNameTableViewCell.mm */,
|
||||
345FD7E21CEC7B0C00F58045 /* MWMEditorAddAdditionalNameTableViewCell.xib */,
|
||||
34B646C21CEB740900E0C7A5 /* MWMEditorNameFooter.h */,
|
||||
34B646C31CEB740900E0C7A5 /* MWMEditorNameFooter.mm */,
|
||||
34B646C61CEB742500E0C7A5 /* MWMEditorNameFooter.xib */,
|
||||
345FD7E51CEC7D8400F58045 /* MWMEditorAdditionalNamesHeader.h */,
|
||||
345FD7E61CEC7D8400F58045 /* MWMEditorAdditionalNamesHeader.mm */,
|
||||
345FD7E91CEC7DA800F58045 /* MWMEditorAdditionalNamesHeader.xib */,
|
||||
34AB04B61CEC95B500CE8B36 /* MWMEditorAdditionalNamePlaceholderTableViewCell.xib */,
|
||||
);
|
||||
path = Editor;
|
||||
sourceTree = "<group>";
|
||||
|
@ -3267,6 +3325,7 @@
|
|||
347FD86D1C60B2CE002FB65E /* MWMOpeningHoursAddScheduleTableViewCell.xib in Resources */,
|
||||
34B82ACB1B8465C100180497 /* MWMSearchCategoryCell.xib in Resources */,
|
||||
34CC4C0F1B82069C00E44C1F /* MWMSearchTabbedCollectionViewCell.xib in Resources */,
|
||||
34AB04B71CEC95B500CE8B36 /* MWMEditorAdditionalNamePlaceholderTableViewCell.xib in Resources */,
|
||||
FA46DA2C12D4166E00968C36 /* countries.txt in Resources */,
|
||||
671182E21C7F0DD400CB8177 /* packed_polygons_obsolete.bin in Resources */,
|
||||
4A23D15C1B8B4DD700D4EB6F /* resources-6plus_clear in Resources */,
|
||||
|
@ -3305,10 +3364,12 @@
|
|||
F63774E71B59375E00BCF54D /* MWMRoutingDisclaimerAlert.xib in Resources */,
|
||||
4A7D89C71B2EBF3B00AC843E /* resources-xhdpi_dark in Resources */,
|
||||
F652B2EA1C6DE8E500D20C8C /* MWMDropDown.xib in Resources */,
|
||||
345FD7EA1CEC7DA800F58045 /* MWMEditorAdditionalNamesHeader.xib in Resources */,
|
||||
97D40C0A184D031900A1D572 /* Images.xcassets in Resources */,
|
||||
9DA46A141C47E95700EF52BA /* resources-6plus_legacy in Resources */,
|
||||
B0DFE6311A1B78A200B6C35E /* LocalNotifications.plist in Resources */,
|
||||
34B82ABB1B837FFD00180497 /* MWMSearchHistoryRequestCell.xib in Resources */,
|
||||
345FD7E31CEC7B0C00F58045 /* MWMEditorAddAdditionalNameTableViewCell.xib in Resources */,
|
||||
34F9FB921C43AF2400F71201 /* MWMStreetEditorEditTableViewCell.xib in Resources */,
|
||||
6B653B941C7F2DE4007BEFC5 /* cuisine-strings in Resources */,
|
||||
34B6CF5D1BBBFC6B009203C6 /* LaunchScreen.storyboard in Resources */,
|
||||
|
@ -3338,6 +3399,7 @@
|
|||
FA85F633145DDDC20090E1A0 /* packed_polygons.bin in Resources */,
|
||||
F6ED13561B16439E0095C6DE /* MWMDirectionView.xib in Resources */,
|
||||
34D15BA91BD8F93C00C8BCBE /* AddSetTableViewCell.xib in Resources */,
|
||||
34B646C71CEB742500E0C7A5 /* MWMEditorNameFooter.xib in Resources */,
|
||||
FA99CB73147089B100689A9A /* Localizable.strings in Resources */,
|
||||
34CFFE8D1B7DE71C009D0C9F /* MWMSearchView.xib in Resources */,
|
||||
3401CD711C3C0C420028C6F8 /* MWMEditorNameTableViewCell.xib in Resources */,
|
||||
|
@ -3350,6 +3412,7 @@
|
|||
4A00DBDF1AB704C400113624 /* drules_proto_dark.bin in Resources */,
|
||||
4A23D15D1B8B4DD700D4EB6F /* resources-mdpi_clear in Resources */,
|
||||
F6FE2C111B03A016009814AA /* PlacePageNavigationBar.xib in Resources */,
|
||||
34B646C01CEB6FE000E0C7A5 /* MWMEditorAdditionalNameTableViewCell.xib in Resources */,
|
||||
F61579361AC2CEB60032D8E9 /* MWMRateAlert.xib in Resources */,
|
||||
845C891F1C78748000940D7F /* me.maps.enterprise.entitlements in Resources */,
|
||||
F6B97B291CD0CB170009B612 /* MWMBookmarkNameCell.xib in Resources */,
|
||||
|
@ -3413,6 +3476,7 @@
|
|||
845C892F1C8981CE00940D7F /* HockeySDKResources.bundle in Resources */,
|
||||
6741A9461BF340DE002C974C /* MWMSearchTabbedViewController.xib in Resources */,
|
||||
6741A9471BF340DE002C974C /* MWMSearchCategoryCell.xib in Resources */,
|
||||
34AB04B81CEC95B500CE8B36 /* MWMEditorAdditionalNamePlaceholderTableViewCell.xib in Resources */,
|
||||
6741A9481BF340DE002C974C /* MWMSearchTabbedCollectionViewCell.xib in Resources */,
|
||||
6741A9491BF340DE002C974C /* countries.txt in Resources */,
|
||||
6741A94A1BF340DE002C974C /* resources-6plus_clear in Resources */,
|
||||
|
@ -3451,10 +3515,12 @@
|
|||
6741A95C1BF340DE002C974C /* categories.txt in Resources */,
|
||||
6741A95D1BF340DE002C974C /* types.txt in Resources */,
|
||||
6741A95F1BF340DE002C974C /* InfoPlist.strings in Resources */,
|
||||
345FD7EB1CEC7DA800F58045 /* MWMEditorAdditionalNamesHeader.xib in Resources */,
|
||||
6741A9601BF340DE002C974C /* MWMRoutingDisclaimerAlert.xib in Resources */,
|
||||
6741A9611BF340DE002C974C /* resources-xhdpi_dark in Resources */,
|
||||
6741A9631BF340DE002C974C /* Images.xcassets in Resources */,
|
||||
347FD8881C60B2CE002FB65E /* MWMOpeningHoursTimeSelectorTableViewCell.xib in Resources */,
|
||||
345FD7E41CEC7B0C00F58045 /* MWMEditorAddAdditionalNameTableViewCell.xib in Resources */,
|
||||
6B9978361C89A316003B8AA0 /* editor.config in Resources */,
|
||||
9DA46A151C47E95700EF52BA /* resources-6plus_legacy in Resources */,
|
||||
347FD8721C60B2CE002FB65E /* MWMOpeningHoursAllDayTableViewCell.xib in Resources */,
|
||||
|
@ -3484,6 +3550,7 @@
|
|||
6741A9721BF340DE002C974C /* MWMSearchCommonCell.xib in Resources */,
|
||||
6741A9731BF340DE002C974C /* MWMSearchHistoryMyPositionCell.xib in Resources */,
|
||||
6741A9741BF340DE002C974C /* resources-6plus_dark in Resources */,
|
||||
34B646C81CEB742600E0C7A5 /* MWMEditorNameFooter.xib in Resources */,
|
||||
3401CD6A1C3C03A80028C6F8 /* MWMEditorTextTableViewCell.xib in Resources */,
|
||||
341F99E01C6B1165001C67B8 /* MWMMapDownloaderSubplaceTableViewCell.xib in Resources */,
|
||||
6741A9751BF340DE002C974C /* WorldCoasts.mwm in Resources */,
|
||||
|
@ -3496,6 +3563,8 @@
|
|||
F6D4A7361CC103FB00BD4E5B /* MWMEditorNotesFooter.xib in Resources */,
|
||||
34CCFDD81C22915600F28959 /* MWMPlacePageOpeningHoursWeekDayView.xib in Resources */,
|
||||
6741A97A1BF340DE002C974C /* MWMSearchView.xib in Resources */,
|
||||
6741A97C1BF340DE002C974C /* MWMBookmarkColorCell.xib in Resources */,
|
||||
34B646C11CEB6FE000E0C7A5 /* MWMEditorAdditionalNameTableViewCell.xib in Resources */,
|
||||
6741A97D1BF340DE002C974C /* synonyms.txt in Resources */,
|
||||
6741A97E1BF340DE002C974C /* drules_proto_dark.bin in Resources */,
|
||||
F6B97B2A1CD0CB170009B612 /* MWMBookmarkNameCell.xib in Resources */,
|
||||
|
@ -3619,7 +3688,9 @@
|
|||
F6D4A72F1CC1030E00BD4E5B /* MWMEditorNotesFooter.mm in Sources */,
|
||||
F62404FB1AAF3DB200B58DB6 /* UILabel+RuntimeAttributes.mm in Sources */,
|
||||
34CC4C0E1B82069C00E44C1F /* MWMSearchTabbedCollectionViewCell.mm in Sources */,
|
||||
34B646BD1CEB6FC000E0C7A5 /* MWMEditorAdditionalNameTableViewCell.mm in Sources */,
|
||||
F6588E2C1B15C26700EE1E58 /* MWMTextView.mm in Sources */,
|
||||
34C2431B1CEDBDBA0006B7DC /* MWMEditorAdditionalNamesTableViewController.mm in Sources */,
|
||||
34FE4C451BCC013500066718 /* MWMMapWidgets.mm in Sources */,
|
||||
F61B0F2C1B8B82DB00C08258 /* MWMNextTurnPanel.mm in Sources */,
|
||||
347FD8831C60B2CE002FB65E /* MWMOpeningHoursTableViewCell.mm in Sources */,
|
||||
|
@ -3763,7 +3834,9 @@
|
|||
F64F4B6D1B46A51F0081A24A /* MWMDownloaderDialogCell.mm in Sources */,
|
||||
3491E7CB1C06F1F10042FE24 /* MWMPlacePageButtonCell.mm in Sources */,
|
||||
97508423199522D300A7457D /* SettingsAndMoreVC.mm in Sources */,
|
||||
34B646C41CEB740900E0C7A5 /* MWMEditorNameFooter.mm in Sources */,
|
||||
341F99D91C6B1165001C67B8 /* MWMMapDownloaderPlaceTableViewCell.mm in Sources */,
|
||||
345FD7E71CEC7D8400F58045 /* MWMEditorAdditionalNamesHeader.mm in Sources */,
|
||||
341F99D51C6B1165001C67B8 /* MWMMapDownloaderLargeCountryTableViewCell.mm in Sources */,
|
||||
347FD86F1C60B2CE002FB65E /* MWMOpeningHoursAllDayTableViewCell.mm in Sources */,
|
||||
F6ED13541B1643900095C6DE /* MWMDirectionView.mm in Sources */,
|
||||
|
@ -3781,6 +3854,7 @@
|
|||
349C26B91BB04ED30005DF2F /* MWMBottomMenuView.mm in Sources */,
|
||||
F63732961AE9431E00A03764 /* MWMBasePlacePageView.mm in Sources */,
|
||||
F64F199B1AB81A00006EAF7E /* MWMAlert.mm in Sources */,
|
||||
345FD7E01CEC7AD400F58045 /* MWMEditorAddAdditionalNameTableViewCell.mm in Sources */,
|
||||
ED48BBB517C267F5003E7E92 /* ColorPickerView.mm in Sources */,
|
||||
ED48BBBA17C2B1E2003E7E92 /* CircleView.mm in Sources */,
|
||||
340E10631B949D1900D975D5 /* MWMSearchBookmarksManager.mm in Sources */,
|
||||
|
@ -3839,7 +3913,9 @@
|
|||
6741A9C11BF340DE002C974C /* MWMNextTurnPanel.mm in Sources */,
|
||||
F6D4A7301CC1030E00BD4E5B /* MWMEditorNotesFooter.mm in Sources */,
|
||||
6741A9C21BF340DE002C974C /* MWMiPhonePortraitPlacePage.mm in Sources */,
|
||||
34B646BE1CEB6FC000E0C7A5 /* MWMEditorAdditionalNameTableViewCell.mm in Sources */,
|
||||
347FD8841C60B2CE002FB65E /* MWMOpeningHoursTableViewCell.mm in Sources */,
|
||||
34C2431C1CEDBDBA0006B7DC /* MWMEditorAdditionalNamesTableViewController.mm in Sources */,
|
||||
6741A9C31BF340DE002C974C /* MWMPlacePageActionBar.mm in Sources */,
|
||||
6741A9C41BF340DE002C974C /* MWMRouteHelperPanel.mm in Sources */,
|
||||
6741A9C61BF340DE002C974C /* MWMSearchCommonCell.mm in Sources */,
|
||||
|
@ -3983,7 +4059,9 @@
|
|||
6741AA1D1BF340DE002C974C /* MWMDownloadTransitMapAlert.mm in Sources */,
|
||||
341F99DA1C6B1165001C67B8 /* MWMMapDownloaderPlaceTableViewCell.mm in Sources */,
|
||||
341F99D61C6B1165001C67B8 /* MWMMapDownloaderLargeCountryTableViewCell.mm in Sources */,
|
||||
34B646C51CEB740900E0C7A5 /* MWMEditorNameFooter.mm in Sources */,
|
||||
6741AA1E1BF340DE002C974C /* LinkCell.mm in Sources */,
|
||||
345FD7E81CEC7D8400F58045 /* MWMEditorAdditionalNamesHeader.mm in Sources */,
|
||||
347FD8701C60B2CE002FB65E /* MWMOpeningHoursAllDayTableViewCell.mm in Sources */,
|
||||
6741AA1F1BF340DE002C974C /* MWMSearchBookmarksCell.mm in Sources */,
|
||||
34E273221C737A4100463965 /* MWMMigrationViewController.mm in Sources */,
|
||||
|
@ -4001,6 +4079,7 @@
|
|||
6741AA271BF340DE002C974C /* MWMBasePlacePageView.mm in Sources */,
|
||||
F64D9C9B1C8861BA0063FA30 /* MWMObjectsCategorySelectorController.mm in Sources */,
|
||||
6741AA281BF340DE002C974C /* MWMAlert.mm in Sources */,
|
||||
345FD7E11CEC7AD400F58045 /* MWMEditorAddAdditionalNameTableViewCell.mm in Sources */,
|
||||
6741AA291BF340DE002C974C /* ColorPickerView.mm in Sources */,
|
||||
6741AA2B1BF340DE002C974C /* CircleView.mm in Sources */,
|
||||
56D545631C74A41900E3719C /* Framework.cpp in Sources */,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15E65" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="Wns-nH-AQU">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="Wns-nH-AQU">
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
|
||||
|
@ -759,6 +759,7 @@
|
|||
<segue destination="Heu-QR-M0N" kind="custom" identifier="Editor2StreetEditorSegue" customClass="MWMSegue" id="iJS-b1-GuT"/>
|
||||
<segue destination="QlF-CJ-cEG" kind="custom" identifier="Editor2CategoryEditorSegue" customClass="MWMSegue" id="urr-1u-jhn"/>
|
||||
<segue destination="da4-KT-kzF" kind="custom" identifier="Editor2CuisineEditorSegue" customClass="MWMSegue" id="LAL-ce-Yt6"/>
|
||||
<segue destination="ocL-kj-jxR" kind="custom" identifier="Editor2AdditionalNamesEditorSegue" customClass="MWMSegue" id="eDT-9j-K6W"/>
|
||||
</connections>
|
||||
</tableViewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="FGq-OI-eQl" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
|
@ -1043,7 +1044,7 @@
|
|||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="zeH-cr-FVE" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="1134" y="2753"/>
|
||||
<point key="canvasLocation" x="1055" y="2753"/>
|
||||
</scene>
|
||||
<!--AuthorizationOSM Login View Controller-->
|
||||
<scene sceneID="14Y-XP-wqe">
|
||||
|
@ -1766,6 +1767,50 @@
|
|||
</objects>
|
||||
<point key="canvasLocation" x="2705" y="5187"/>
|
||||
</scene>
|
||||
<!--Editor Additional Names Table View Controller-->
|
||||
<scene sceneID="86k-hJ-Anq">
|
||||
<objects>
|
||||
<tableViewController id="ocL-kj-jxR" customClass="MWMEditorAdditionalNamesTableViewController" sceneMemberID="viewController">
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" id="tQ2-XI-QWd">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<prototypes>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="ListCellIdentifier" textLabel="JcK-nR-UGw" detailTextLabel="Cmi-x5-6Vt" style="IBUITableViewCellStyleSubtitle" id="RXe-xp-xlR" customClass="MWMTableViewCell">
|
||||
<rect key="frame" x="0.0" y="28" width="600" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="RXe-xp-xlR" id="g0x-Vt-1FI">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Title" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="JcK-nR-UGw">
|
||||
<rect key="frame" x="15" y="6" width="31" height="19"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Detail" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Cmi-x5-6Vt">
|
||||
<rect key="frame" x="15" y="25" width="30" height="13"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="11"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
</prototypes>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="ocL-kj-jxR" id="MBP-fV-3dW"/>
|
||||
<outlet property="delegate" destination="ocL-kj-jxR" id="7Ju-83-Vjz"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
</tableViewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="Slp-0d-mTI" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="-372" y="3560"/>
|
||||
</scene>
|
||||
<!--Street Editor View Controller-->
|
||||
<scene sceneID="hgU-jB-a3C">
|
||||
<objects>
|
||||
|
@ -1783,7 +1828,7 @@
|
|||
</tableViewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="dU3-4F-emf" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="154" y="3513"/>
|
||||
<point key="canvasLocation" x="330" y="3560"/>
|
||||
</scene>
|
||||
<!--Objects Category Selector Controller-->
|
||||
<scene sceneID="hWY-Fu-EcX">
|
||||
|
@ -1954,7 +1999,7 @@
|
|||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="bp6-aD-bwn" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="842" y="3513"/>
|
||||
<point key="canvasLocation" x="1055" y="3560"/>
|
||||
</scene>
|
||||
<!--Map Downloader View Controller-->
|
||||
<scene sceneID="1ZZ-fS-lza">
|
||||
|
@ -2659,11 +2704,11 @@
|
|||
<image name="separator_image" width="1" height="1"/>
|
||||
</resources>
|
||||
<inferredMetricsTieBreakers>
|
||||
<segue reference="OEF-kR-jKi"/>
|
||||
<segue reference="Tkr-Ad-FQL"/>
|
||||
<segue reference="0A8-4b-0A2"/>
|
||||
<segue reference="4Cc-99-mlN"/>
|
||||
<segue reference="nJf-7z-2TX"/>
|
||||
<segue reference="Pet-Wq-d4a"/>
|
||||
<segue reference="nJf-7z-2TX"/>
|
||||
<segue reference="gFM-Ca-ARt"/>
|
||||
<segue reference="urr-1u-jhn"/>
|
||||
<segue reference="0A8-4b-0A2"/>
|
||||
<segue reference="hU6-lr-OOV"/>
|
||||
</inferredMetricsTieBreakers>
|
||||
</document>
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
+ (UIFont *)regular10;
|
||||
+ (UIFont *)regular12;
|
||||
+ (UIFont *)regular13;
|
||||
+ (UIFont *)regular14;
|
||||
+ (UIFont *)regular15;
|
||||
+ (UIFont *)regular16;
|
||||
|
|
|
@ -59,6 +59,12 @@ NSString * fontName(FontWeight weight, CGFloat size)
|
|||
return [UIFont fontWithName:fontName(FontWeightRegular, size) size:size];
|
||||
}
|
||||
|
||||
+ (UIFont *)regular13
|
||||
{
|
||||
CGFloat const size = 13;
|
||||
return [UIFont fontWithName:fontName(FontWeightRegular, size) size:size];
|
||||
}
|
||||
|
||||
+ (UIFont *)regular14
|
||||
{
|
||||
CGFloat const size = 14;
|
||||
|
|