[Bookmarks] Add areAllCategoriesEmpty method to the bookmarks manager #8100

Merged
root merged 2 commits from bookmarks/add-isempty-method-to-the-bookmarks-manager into master 2024-05-08 21:54:54 +00:00
5 changed files with 22 additions and 5 deletions

View file

@ -53,7 +53,7 @@
}
- (BOOL)isEmpty {
return ![self.manager isCategoryNotEmpty:self.categoryId];
return [self.manager isCategoryEmpty:self.categoryId];
}
- (BOOL)hasDescription {

View file

@ -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;

View file

@ -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();
}
biodranik commented 2024-05-06 11:24:48 +00:00 (Migrated from github.com)
Review

Would it be better/faster/more reusable on Android if implemented in C++?

Would it be better/faster/more reusable on Android if implemented in C++?
Review

I think yes! I can try to move this logic into the core.

I think yes! I can try to move this logic into the core.
Review

I've moved this logic into the cpp.

I've moved this logic into the cpp.
- (BOOL)isCategoryEmpty:(MWMMarkGroupID)groupId {
return self.bm.HasBmCategory(groupId) && self.bm.IsCategoryEmpty(groupId);
}
- (void)prepareForSearch:(MWMMarkGroupID)groupId {

View file

@ -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, ());

View file

@ -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;