diff --git a/android/app/src/main/cpp/app/organicmaps/bookmarks/data/BookmarkManager.cpp b/android/app/src/main/cpp/app/organicmaps/bookmarks/data/BookmarkManager.cpp index d0d1392efa..c3b9104da9 100644 --- a/android/app/src/main/cpp/app/organicmaps/bookmarks/data/BookmarkManager.cpp +++ b/android/app/src/main/cpp/app/organicmaps/bookmarks/data/BookmarkManager.cpp @@ -642,6 +642,16 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkCategories( return MakeCategories(env, ids); } +JNIEXPORT jint JNICALL +Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkCategoriesCount(JNIEnv *env, + jobject) +{ + auto const & bm = frm()->GetBookmarkManager(); + auto const count = bm.GetBmGroupsCount(); + + return static_cast(count); +} + JNIEXPORT jobjectArray JNICALL Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetChildrenCategories(JNIEnv *env, jobject, diff --git a/android/app/src/main/java/app/organicmaps/bookmarks/BookmarksListFragment.java b/android/app/src/main/java/app/organicmaps/bookmarks/BookmarksListFragment.java index d3d7f552c8..f0c622b258 100644 --- a/android/app/src/main/java/app/organicmaps/bookmarks/BookmarksListFragment.java +++ b/android/app/src/main/java/app/organicmaps/bookmarks/BookmarksListFragment.java @@ -517,7 +517,7 @@ public class BookmarksListFragment extends BaseMwmRecyclerFragment getCategories(); + int getCategoriesCount(); @NonNull List getChildrenCategories(long parentId); @NonNull diff --git a/android/app/src/main/java/app/organicmaps/bookmarks/data/BookmarkManager.java b/android/app/src/main/java/app/organicmaps/bookmarks/data/BookmarkManager.java index b008e19cf6..b2e726578c 100644 --- a/android/app/src/main/java/app/organicmaps/bookmarks/data/BookmarkManager.java +++ b/android/app/src/main/java/app/organicmaps/bookmarks/data/BookmarkManager.java @@ -526,6 +526,10 @@ public enum BookmarkManager { return mCurrentDataProvider.getCategories(); } + public int getCategoriesCount() + { + return mCurrentDataProvider.getCategoriesCount(); + } @NonNull BookmarkCategoriesCache getBookmarkCategoriesCache() @@ -627,6 +631,7 @@ public enum BookmarkManager native BookmarkCategory nativeGetBookmarkCategory(long catId); @NonNull native BookmarkCategory[] nativeGetBookmarkCategories(); + native int nativeGetBookmarkCategoriesCount(); @NonNull native BookmarkCategory[] nativeGetChildrenCategories(long catId); diff --git a/android/app/src/main/java/app/organicmaps/bookmarks/data/CacheBookmarkCategoriesDataProvider.java b/android/app/src/main/java/app/organicmaps/bookmarks/data/CacheBookmarkCategoriesDataProvider.java index 2c778187a9..dcf2d20bdf 100644 --- a/android/app/src/main/java/app/organicmaps/bookmarks/data/CacheBookmarkCategoriesDataProvider.java +++ b/android/app/src/main/java/app/organicmaps/bookmarks/data/CacheBookmarkCategoriesDataProvider.java @@ -29,6 +29,12 @@ class CacheBookmarkCategoriesDataProvider implements BookmarkCategoriesDataProvi return BookmarkManager.INSTANCE.getBookmarkCategoriesCache().getCategories(); } + @Override + public int getCategoriesCount() + { + return BookmarkManager.INSTANCE.nativeGetBookmarkCategoriesCount(); + } + @NonNull @Override public List getChildrenCategories(long parentId) diff --git a/android/app/src/main/java/app/organicmaps/bookmarks/data/CoreBookmarkCategoriesDataProvider.java b/android/app/src/main/java/app/organicmaps/bookmarks/data/CoreBookmarkCategoriesDataProvider.java index 136e0934e0..136769594c 100644 --- a/android/app/src/main/java/app/organicmaps/bookmarks/data/CoreBookmarkCategoriesDataProvider.java +++ b/android/app/src/main/java/app/organicmaps/bookmarks/data/CoreBookmarkCategoriesDataProvider.java @@ -22,6 +22,12 @@ class CoreBookmarkCategoriesDataProvider implements BookmarkCategoriesDataProvid return Arrays.asList(categories); } + @Override + public int getCategoriesCount() + { + return BookmarkManager.INSTANCE.nativeGetBookmarkCategoriesCount(); + } + @NonNull @Override public List getChildrenCategories(long parentId)