diff --git a/iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarkGroup.m b/iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarkGroup.m index 7cfd57950b..8b5e303428 100644 --- a/iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarkGroup.m +++ b/iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarkGroup.m @@ -53,7 +53,7 @@ } - (BOOL)isEmpty { - return ![self.manager isCategoryNotEmpty:self.categoryId]; + return [self.manager isCategoryEmpty:self.categoryId]; } - (BOOL)hasDescription { diff --git a/iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarksManager.h b/iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarksManager.h index 63de1655da..1dbfd5e0b0 100644 --- a/iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarksManager.h +++ b/iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarksManager.h @@ -37,7 +37,8 @@ NS_SWIFT_NAME(BookmarksManager) - (BOOL)areBookmarksLoaded; - (void)loadBookmarks; -- (BOOL)isCategoryNotEmpty:(MWMMarkGroupID)groupId; +- (BOOL)areAllCategoriesEmpty; +- (BOOL)isCategoryEmpty:(MWMMarkGroupID)groupId; - (void)prepareForSearch:(MWMMarkGroupID)groupId; - (NSString *)getCategoryName:(MWMMarkGroupID)groupId; - (uint64_t)getCategoryMarksCount:(MWMMarkGroupID)groupId; diff --git a/iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarksManager.mm b/iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarksManager.mm index b8e0c801ec..56b269825e 100644 --- a/iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarksManager.mm +++ b/iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarksManager.mm @@ -194,9 +194,13 @@ static BookmarkManager::SortingType convertSortingTypeToCore(MWMBookmarksSorting #pragma mark - Categories -- (BOOL)isCategoryNotEmpty:(MWMMarkGroupID)groupId { - return self.bm.HasBmCategory(groupId) && - (self.bm.GetUserMarkIds(groupId).size() + self.bm.GetTrackIds(groupId).size()); +- (BOOL)areAllCategoriesEmpty +{ + return self.bm.AreAllCategoriesEmpty(); +} + +- (BOOL)isCategoryEmpty:(MWMMarkGroupID)groupId { + return self.bm.HasBmCategory(groupId) && self.bm.IsCategoryEmpty(groupId); } - (void)prepareForSearch:(MWMMarkGroupID)groupId { diff --git a/map/bookmark_manager.cpp b/map/bookmark_manager.cpp index 0b811b598d..9a0a49ec8b 100644 --- a/map/bookmark_manager.cpp +++ b/map/bookmark_manager.cpp @@ -2790,6 +2790,17 @@ void BookmarkManager::PrepareAllFilesForSharing(SharingHandler && handler) PrepareFileForSharing(decltype(m_unsortedBmGroupsIdList){m_unsortedBmGroupsIdList}, std::move(handler)); } +bool BookmarkManager::AreAllCategoriesEmpty() const +{ + CHECK_THREAD_CHECKER(m_threadChecker, ()); + for (auto const & c : m_categories) + { + if (!c.second->IsEmpty()) + return false; + } + return true; +} + bool BookmarkManager::IsCategoryEmpty(kml::MarkGroupId categoryId) const { CHECK_THREAD_CHECKER(m_threadChecker, ()); diff --git a/map/bookmark_manager.hpp b/map/bookmark_manager.hpp index 1328b81780..491cea6326 100644 --- a/map/bookmark_manager.hpp +++ b/map/bookmark_manager.hpp @@ -346,6 +346,7 @@ public: void PrepareFileForSharing(kml::GroupIdCollection && categoriesIds, SharingHandler && handler); void PrepareAllFilesForSharing(SharingHandler && handler); + bool AreAllCategoriesEmpty() const; bool IsCategoryEmpty(kml::MarkGroupId categoryId) const; bool IsUsedCategoryName(std::string const & name) const;