forked from organicmaps/organicmaps
Added new util methods to BookmarkManager
This commit is contained in:
parent
7c77a3cea6
commit
07ef48a7ce
4 changed files with 79 additions and 0 deletions
|
@ -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"
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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, ());
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue