diff --git a/android/jni/com/mapswithme/maps/bookmarks/data/BookmarkManager.cpp b/android/jni/com/mapswithme/maps/bookmarks/data/BookmarkManager.cpp index 8059c7ee3f..bba8499927 100644 --- a/android/jni/com/mapswithme/maps/bookmarks/data/BookmarkManager.cpp +++ b/android/jni/com/mapswithme/maps/bookmarks/data/BookmarkManager.cpp @@ -373,7 +373,17 @@ JNIEXPORT jstring JNICALL Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nativeGetCategoryName( JNIEnv * env, jobject thiz, jlong catId) { - return ToJavaString(env, frm()->GetBookmarkManager().GetCategoryName(static_cast(catId))); + return ToJavaString(env, frm()->GetBookmarkManager().GetCategoryName( + static_cast(catId))); +} + +JNIEXPORT jstring JNICALL +Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nativeGetCategoryAuthor( + JNIEnv * env, jobject thiz, jlong catId) +{ + auto const & data = frm()->GetBookmarkManager().GetCategoryData( + static_cast(catId)); + return ToJavaString(env, data.m_authorName); } JNIEXPORT jint JNICALL diff --git a/android/src/com/mapswithme/maps/bookmarks/data/BookmarkManager.java b/android/src/com/mapswithme/maps/bookmarks/data/BookmarkManager.java index 207438edbe..b48efa5e78 100644 --- a/android/src/com/mapswithme/maps/bookmarks/data/BookmarkManager.java +++ b/android/src/com/mapswithme/maps/bookmarks/data/BookmarkManager.java @@ -450,6 +450,12 @@ public enum BookmarkManager return nativeIsCategoryFromCatalog(catId); } + @NonNull + private String getCategoryAuthor(long catId) + { + return nativeGetCategoryAuthor(catId); + } + private native int nativeGetCategoriesCount(); private native int nativeGetCategoryPositionById(long catId); @@ -479,6 +485,9 @@ public enum BookmarkManager private native void nativeSetCategoryName(long catId, @NonNull String n); + @NonNull + private native String nativeGetCategoryAuthor(long catId); + private static native void nativeLoadBookmarks(); private native boolean nativeDeleteCategory(long catId); diff --git a/map/bookmark_manager.cpp b/map/bookmark_manager.cpp index b146bb359e..8a1d7e18f2 100644 --- a/map/bookmark_manager.cpp +++ b/map/bookmark_manager.cpp @@ -760,19 +760,33 @@ void BookmarkManager::ClearGroup(kml::MarkGroupId groupId) std::string BookmarkManager::GetCategoryName(kml::MarkGroupId categoryId) const { CHECK_THREAD_CHECKER(m_threadChecker, ()); - return GetBmCategory(categoryId)->GetName(); + auto const category = GetBmCategory(categoryId); + CHECK(category != nullptr, ()); + return category->GetName(); } void BookmarkManager::SetCategoryName(kml::MarkGroupId categoryId, std::string const & name) { CHECK_THREAD_CHECKER(m_threadChecker, ()); - GetBmCategory(categoryId)->SetName(name); + auto category = GetBmCategory(categoryId); + CHECK(category != nullptr, ()); + category->SetName(name); } std::string BookmarkManager::GetCategoryFileName(kml::MarkGroupId categoryId) const { CHECK_THREAD_CHECKER(m_threadChecker, ()); - return GetBmCategory(categoryId)->GetFileName(); + auto const category = GetBmCategory(categoryId); + CHECK(category != nullptr, ()); + return category->GetFileName(); +} + +kml::CategoryData const & BookmarkManager::GetCategoryData(kml::MarkGroupId categoryId) const +{ + CHECK_THREAD_CHECKER(m_threadChecker, ()); + auto const category = GetBmCategory(categoryId); + CHECK(category != nullptr, ()); + return category->GetCategoryData(); } kml::MarkGroupId BookmarkManager::GetCategoryId(std::string const & name) const diff --git a/map/bookmark_manager.hpp b/map/bookmark_manager.hpp index 4df7b40a22..f40585d31d 100644 --- a/map/bookmark_manager.hpp +++ b/map/bookmark_manager.hpp @@ -172,6 +172,7 @@ public: std::string GetCategoryName(kml::MarkGroupId categoryId) const; std::string GetCategoryFileName(kml::MarkGroupId categoryId) const; + kml::CategoryData const & GetCategoryData(kml::MarkGroupId categoryId) const; kml::MarkGroupId GetCategoryId(std::string const & name) const;