diff options
author | Arsentiy Milchakov <a.milchakov@corp.mail.ru> | 2016-09-08 14:47:06 +0300 |
---|---|---|
committer | Arsentiy Milchakov <a.milchakov@corp.mail.ru> | 2016-09-08 14:47:06 +0300 |
commit | 3320c9eddabd67330b6d132ba71cfc822f23fa95 (patch) | |
tree | 19ebe2cc9283e86657985e7c2273ee43e4502938 /iphone | |
parent | a43c309fc7adfbd853133debc712a86be3d149f9 (diff) |
localized names part 3
Diffstat (limited to 'iphone')
-rw-r--r-- | iphone/Maps/Classes/Editor/AdditionalNames/MWMEditorAdditionalNamesTableViewController.mm | 30 | ||||
-rw-r--r-- | iphone/Maps/Classes/Editor/MWMEditorViewController.mm | 11 |
2 files changed, 29 insertions, 12 deletions
diff --git a/iphone/Maps/Classes/Editor/AdditionalNames/MWMEditorAdditionalNamesTableViewController.mm b/iphone/Maps/Classes/Editor/AdditionalNames/MWMEditorAdditionalNamesTableViewController.mm index 7b8f4cf1e8..c8d1a714fc 100644 --- a/iphone/Maps/Classes/Editor/AdditionalNames/MWMEditorAdditionalNamesTableViewController.mm +++ b/iphone/Maps/Classes/Editor/AdditionalNames/MWMEditorAdditionalNamesTableViewController.mm @@ -27,7 +27,6 @@ additionalSkipLanguageCodes:(vector<NSInteger>)additionalSkipLanguageCodes self.delegate = delegate; m_name = name; m_additionalSkipLanguageCodes = additionalSkipLanguageCodes; - m_additionalSkipLanguageCodes.push_back(StringUtf8Multilang::kDefaultCode); self.selectedLanguageCode = selectedLanguageCode; } @@ -40,25 +39,34 @@ additionalSkipLanguageCodes:(vector<NSInteger>)additionalSkipLanguageCodes - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; + auto const getIndex = [](string const & lang) { return StringUtf8Multilang::GetLangIndex(lang); }; StringUtf8Multilang::Languages const & supportedLanguages = StringUtf8Multilang::GetSupportedLanguages(); m_languages.clear(); + if (self.selectedLanguageCode == StringUtf8Multilang::kDefaultCode || + self.selectedLanguageCode == StringUtf8Multilang::kInternationalCode) + { + return; + } + auto const kDefaultCode = StringUtf8Multilang::kDefaultCode; 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))) + auto const langIndex = getIndex(language.m_code); + if (self.selectedLanguageCode == NSNotFound && langIndex != kDefaultCode && m_name.HasString(langIndex)) continue; - auto it = find(m_additionalSkipLanguageCodes.begin(), m_additionalSkipLanguageCodes.end(), languageIndex); + auto it = find(m_additionalSkipLanguageCodes.begin(), m_additionalSkipLanguageCodes.end(), langIndex); 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); - }); + [&getIndex, kDefaultCode](StringUtf8Multilang::Lang const & lhs, StringUtf8Multilang::Lang const & rhs) { + // Default name can be changed in advanced mode, but it should be last in list of names. + if (getIndex(lhs.m_code) == kDefaultCode && getIndex(rhs.m_code) != kDefaultCode) + return false; + if (getIndex(lhs.m_code) != kDefaultCode && getIndex(rhs.m_code) == kDefaultCode) + return true; + + return string(lhs.m_code) < string(rhs.m_code); + }); } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath diff --git a/iphone/Maps/Classes/Editor/MWMEditorViewController.mm b/iphone/Maps/Classes/Editor/MWMEditorViewController.mm index 5271ce3a93..063ea2bae8 100644 --- a/iphone/Maps/Classes/Editor/MWMEditorViewController.mm +++ b/iphone/Maps/Classes/Editor/MWMEditorViewController.mm @@ -559,10 +559,19 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab { NSInteger const newAdditionalNameIndex = indexPath.row - localizedNames.size(); NSInteger const langCode = m_newAdditionalLanguages[newAdditionalNameIndex]; + + string name; + // Default name can be changed in advanced mode. + if (langCode == StringUtf8Multilang::kDefaultCode) + { + name = m_mapObject.GetDefaultName(); + m_mapObject.EnableNamesAdvancedMode(); + } + [tCell configWithDelegate:self langCode:langCode langName:@(StringUtf8Multilang::GetLangNameByCode(langCode)) - name:@"" + name:@(name.c_str()) keyboardType:UIKeyboardTypeDefault]; } break; |