From d0ec7bf149adb33405dd7f56d79cd5e4e0fdd7fe Mon Sep 17 00:00:00 2001 From: Kiryl Kaveryn Date: Wed, 15 May 2024 19:54:14 +0400 Subject: [PATCH] [ios] implement support for the icloud sync and bookmarks reloading for CoreApi Add methods: - hasBookmark - hasTrack - hasCategory - reloadCategoryAtFilePath - deleteCategoryAtFilePath Signed-off-by: Kiryl Kaveryn --- .../CoreApi/Bookmarks/MWMBookmarksManager.h | 4 ++++ .../CoreApi/Bookmarks/MWMBookmarksManager.mm | 22 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarksManager.h b/iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarksManager.h index 488eb1457a..54d395a185 100644 --- a/iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarksManager.h +++ b/iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarksManager.h @@ -36,6 +36,8 @@ NS_SWIFT_NAME(BookmarksManager) - (BOOL)areBookmarksLoaded; - (void)loadBookmarks; +- (void)reloadCategoryAtFilePath:(NSString *)filePath; +- (void)deleteCategoryAtFilePath:(NSString *)filePath; - (BOOL)areAllCategoriesEmpty; - (BOOL)isCategoryEmpty:(MWMMarkGroupID)groupId; @@ -61,7 +63,9 @@ NS_SWIFT_NAME(BookmarksManager) - (void)setUserCategoriesVisible:(BOOL)isVisible; - (void)deleteCategory:(MWMMarkGroupID)groupId; - (BOOL)checkCategoryName:(NSString *)name; +- (BOOL)hasCategory:(MWMMarkGroupID)groupId; - (BOOL)hasBookmark:(MWMMarkID)bookmarkId; +- (BOOL)hasTrack:(MWMTrackID)trackId; - (NSArray *)availableSortingTypes:(MWMMarkGroupID)groupId hasMyPosition:(BOOL)hasMyPosition; - (void)sortBookmarks:(MWMMarkGroupID)groupId sortingType:(MWMBookmarksSortingType)sortingType diff --git a/iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarksManager.mm b/iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarksManager.mm index c06e8b79f6..f9ff585c74 100644 --- a/iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarksManager.mm +++ b/iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarksManager.mm @@ -203,6 +203,18 @@ static KmlFileType convertFileTypeToCore(MWMKmlFileType fileType) { self.bm.LoadBookmarks(); } +- (void)reloadCategoryAtFilePath:(NSString *)filePath +{ + self.bm.ReloadBookmark(filePath.UTF8String); +} + +- (void)deleteCategoryAtFilePath:(NSString *)filePath +{ + auto const groupId = self.bm.GetCategoryByFileName(filePath.UTF8String); + if (groupId) + [self deleteCategory:groupId]; +} + #pragma mark - Categories - (BOOL)areAllCategoriesEmpty @@ -350,11 +362,21 @@ static KmlFileType convertFileTypeToCore(MWMKmlFileType fileType) { return !self.bm.IsUsedCategoryName(name.UTF8String); } +- (BOOL)hasCategory:(MWMMarkGroupID)groupId +{ + return self.bm.HasBmCategory(groupId); +} + - (BOOL)hasBookmark:(MWMMarkID)bookmarkId { return self.bm.HasBookmark(bookmarkId); } +- (BOOL)hasTrack:(MWMTrackID)trackId +{ + return self.bm.HasTrack(trackId); +} + - (NSArray *)availableSortingTypes:(MWMMarkGroupID)groupId hasMyPosition:(BOOL)hasMyPosition{ auto const availableTypes = self.bm.GetAvailableSortingTypes(groupId, hasMyPosition); NSMutableArray *result = [NSMutableArray array];