mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-19 13:03:36 +00:00
[ios] Fixed category search for unsupported translations.
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
This commit is contained in:
committed by
Konstantin Pastbin
parent
d649e46ef2
commit
aa71668eab
@@ -7,6 +7,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
+ (NSArray<NSString *> *)searchCategories;
|
+ (NSArray<NSString *> *)searchCategories;
|
||||||
|
|
||||||
+ (BOOL)isSearchHistoryEmpty;
|
+ (BOOL)isSearchHistoryEmpty;
|
||||||
|
+ (BOOL)isLanguageSupported:(NSString *)languageCode;
|
||||||
+ (NSArray<NSString *> *)lastSearchQueries;
|
+ (NSArray<NSString *> *)lastSearchQueries;
|
||||||
+ (void)clearSearchHistory;
|
+ (void)clearSearchHistory;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#import "MWMSearchFrameworkHelper.h"
|
#import "MWMSearchFrameworkHelper.h"
|
||||||
|
|
||||||
#include "platform/preferred_languages.hpp"
|
#include "platform/preferred_languages.hpp"
|
||||||
|
#include "search/displayed_categories.hpp"
|
||||||
|
|
||||||
#include "Framework.h"
|
#include "Framework.h"
|
||||||
|
|
||||||
@@ -20,6 +21,11 @@
|
|||||||
return GetFramework().GetSearchAPI().GetLastSearchQueries().empty();
|
return GetFramework().GetSearchAPI().GetLastSearchQueries().empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
+ (BOOL)isLanguageSupported:(NSString *)languageCode
|
||||||
|
{
|
||||||
|
return search::DisplayedCategories::IsLanguageSupported(languageCode.UTF8String);
|
||||||
|
}
|
||||||
|
|
||||||
+ (NSArray<NSString *> *)lastSearchQueries
|
+ (NSArray<NSString *> *)lastSearchQueries
|
||||||
{
|
{
|
||||||
NSMutableArray * result = [NSMutableArray array];
|
NSMutableArray * result = [NSMutableArray array];
|
||||||
|
|||||||
@@ -9,6 +9,15 @@ var isiPad: Bool {
|
|||||||
|
|
||||||
func L(_ key: String) -> String { return NSLocalizedString(key, comment: "") }
|
func L(_ key: String) -> String { return NSLocalizedString(key, comment: "") }
|
||||||
|
|
||||||
|
func L(_ key: String, languageCode: String) -> String {
|
||||||
|
guard let path = Bundle.main.path(forResource: languageCode, ofType: "lproj"),
|
||||||
|
let bundle = Bundle(path: path) else {
|
||||||
|
LOG(.warning, "Localization bundle not found for language code: \(languageCode)")
|
||||||
|
return L(key)
|
||||||
|
}
|
||||||
|
return NSLocalizedString(key, bundle: bundle, comment: "")
|
||||||
|
}
|
||||||
|
|
||||||
func alternative<T>(iPhone: T, iPad: T) -> T { isiPad ? iPad : iPhone }
|
func alternative<T>(iPhone: T, iPad: T) -> T { isiPad ? iPad : iPhone }
|
||||||
|
|
||||||
func iPadSpecific(_ f: () -> Void) {
|
func iPadSpecific(_ f: () -> Void) {
|
||||||
|
|||||||
@@ -70,7 +70,10 @@ extension SearchTabViewController: SearchOnMapScrollViewDelegate {
|
|||||||
extension SearchTabViewController: SearchCategoriesViewControllerDelegate {
|
extension SearchTabViewController: SearchCategoriesViewControllerDelegate {
|
||||||
func categoriesViewController(_ viewController: SearchCategoriesViewController,
|
func categoriesViewController(_ viewController: SearchCategoriesViewController,
|
||||||
didSelect category: String) {
|
didSelect category: String) {
|
||||||
let query = SearchQuery(L(category) + " ", source: .category)
|
let preferredLang = AppInfo.shared().languageId
|
||||||
|
let supportedBySearchLang = MWMSearchFrameworkHelper.isLanguageSupported(preferredLang) ? preferredLang : "en"
|
||||||
|
let searchText = L(category, languageCode: supportedBySearchLang) + " "
|
||||||
|
let query = SearchQuery(searchText, locale: supportedBySearchLang, source: .category)
|
||||||
delegate?.searchTabController(self, didSearch: query)
|
delegate?.searchTabController(self, didSearch: query)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user