From c3c00f17844f4d6ea838bc4ca1dc07113421e138 Mon Sep 17 00:00:00 2001 From: Kiryl <79797627+kirylkaveryn@users.noreply.github.com> Date: Thu, 9 May 2024 01:54:54 +0400 Subject: [PATCH] [Bookmarks] Add `areAllCategoriesEmpty` method to the bookmarks manager (#8100) * [ios] [bookmarks] add the `areAllCategoriesEmpty` method to the bookmarks manager Signed-off-by: Kiryl Kaveryn * [ios] [bookmarks] refactor the isCategoryNotEmpty method `self.bm.IsCategoryEmpty` is used instead of `size()` Signed-off-by: Kiryl Kaveryn --------- Signed-off-by: Kiryl Kaveryn --- iphone/CoreApi/CoreApi/Bookmarks/MWMBookmarkGroup.m | 2 +- .../CoreApi/CoreApi/Bookmarks/MWMBookmarksManager.h | 3 ++- .../CoreApi/CoreApi/Bookmarks/MWMBookmarksManager.mm | 10 +++++++--- map/bookmark_manager.cpp | 11 +++++++++++ map/bookmark_manager.hpp | 1 + 5 files changed, 22 insertions(+), 5 deletions(-) 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;