Added new util methods to BookmarkManager

This commit is contained in:
r.kuznetsov 2018-03-22 13:13:58 +03:00 committed by Daria Volvenkova
parent 7c77a3cea6
commit 07ef48a7ce
4 changed files with 79 additions and 0 deletions

View file

@ -356,4 +356,33 @@ Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nativeGetLastSynchroniza
{
return static_cast<jlong>(frm()->GetBookmarkManager().GetLastSynchronizationTimestampInMs());
}
JNIEXPORT jboolean JNICALL
Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nativeIsUsedCategoryName(
JNIEnv * env, jobject thiz, jstring name)
{
return static_cast<jboolean>(frm()->GetBookmarkManager().IsUsedCategoryName(
ToNativeString(env, name)));
}
JNIEXPORT jboolean JNICALL
Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nativeAreAllCategoriesVisible(
JNIEnv * env, jobject thiz)
{
return static_cast<jboolean>(frm()->GetBookmarkManager().AreAllCategoriesVisible());
}
JNIEXPORT jboolean JNICALL
Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nativeAreAllCategoriesInvisible(
JNIEnv * env, jobject thiz)
{
return static_cast<jboolean>(frm()->GetBookmarkManager().AreAllCategoriesInvisible());
}
JNIEXPORT void JNICALL
Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nativeSetAllCategoriesVisibility(
JNIEnv * env, jobject thiz, jboolean visible)
{
frm()->GetBookmarkManager().SetAllCategoriesVisibility(static_cast<bool>(visible));
}
} // extern "C"

View file

@ -317,4 +317,9 @@ public enum BookmarkManager
void onBookmarksLoadingFinished();
void onBookmarksFileLoaded(boolean success);
}
private static native boolean nativeIsUsedCategoryName(@NonNull String name);
private static native boolean nativeAreAllCategoriesVisible();
private static native boolean nativeAreAllCategoriesInvisible();
private static native void nativeSetAllCategoriesVisibility(boolean visible);
}

View file

@ -1491,6 +1491,46 @@ bool BookmarkManager::IsCategoryEmpty(df::MarkGroupID categoryId) const
return GetBmCategory(categoryId)->IsEmpty();
}
bool BookmarkManager::IsUsedCategoryName(std::string const & name) const
{
ASSERT_THREAD_CHECKER(m_threadChecker, ());
for (auto const & c : m_categories)
{
if (c.second->GetName() == name)
return true;
}
return false;
}
bool BookmarkManager::AreAllCategoriesVisible() const
{
ASSERT_THREAD_CHECKER(m_threadChecker, ());
for (auto const & c : m_categories)
{
if (!c.second->IsVisible())
return false;
}
return true;
}
bool BookmarkManager::AreAllCategoriesInvisible() const
{
ASSERT_THREAD_CHECKER(m_threadChecker, ());
for (auto const & c : m_categories)
{
if (c.second->IsVisible())
return false;
}
return true;
}
void BookmarkManager::SetAllCategoriesVisibility(bool visible)
{
ASSERT_THREAD_CHECKER(m_threadChecker, ());
for (auto & c : m_categories)
c.second->SetIsVisible(visible);
}
BookmarkManager::SharingResult BookmarkManager::GetFileForSharing(df::MarkGroupID categoryId)
{
ASSERT_THREAD_CHECKER(m_threadChecker, ());

View file

@ -226,6 +226,11 @@ public:
bool IsCategoryEmpty(df::MarkGroupID categoryId) const;
bool IsUsedCategoryName(std::string const & name) const;
bool AreAllCategoriesVisible() const;
bool AreAllCategoriesInvisible() const;
void SetAllCategoriesVisibility(bool visible);
/// These functions are public for unit tests only. You shouldn't call them from client code.
void SaveToKML(df::MarkGroupID groupId, std::ostream & s);
void CreateCategories(KMLDataCollection && dataCollection, bool autoSave = true);