From 6c544815bcc94b187e51493e11ade48d045d3b5f Mon Sep 17 00:00:00 2001 From: Daria Volvenkova Date: Wed, 14 Feb 2018 08:19:33 +0300 Subject: [PATCH] Review fixes. --- .../maps/bookmarks/data/Bookmark.cpp | 7 +- .../maps/bookmarks/data/BookmarkManager.cpp | 9 +- .../maps/bookmarks/data/Bookmark.java | 3 +- drape_frontend/drape_engine.cpp | 18 +- drape_frontend/message_subclasses.hpp | 10 +- drape_frontend/user_mark_generator.cpp | 24 +- drape_frontend/user_marks_global.hpp | 5 + drape_frontend/user_marks_provider.hpp | 22 +- .../Headers/FBSDKAppGroupJoinDialog.h | 4 +- iphone/Maps/Bookmarks/BookmarksVC.mm | 43 ++-- iphone/Maps/Maps.xcodeproj/project.pbxproj | 3 + .../EditBookmark/MWMEditBookmarkController.mm | 6 +- iphone/Maps/UI/PlacePage/MWMPlacePageData.mm | 4 +- .../Maps/UI/PlacePage/MWMPlacePageManager.mm | 2 +- map/bookmark.cpp | 16 +- map/bookmark.hpp | 2 +- map/bookmark_manager.cpp | 224 +++++++++--------- map/bookmark_manager.hpp | 72 +++--- map/framework.cpp | 4 +- map/map_tests/bookmarks_test.cpp | 1 - map/place_page_info.hpp | 8 +- map/routing_manager.cpp | 6 +- map/track.cpp | 4 +- map/track.hpp | 2 +- xcode/openlr/openlr.xcodeproj/project.pbxproj | 19 ++ 25 files changed, 274 insertions(+), 244 deletions(-) diff --git a/android/jni/com/mapswithme/maps/bookmarks/data/Bookmark.cpp b/android/jni/com/mapswithme/maps/bookmarks/data/Bookmark.cpp index e79cfe0c86..42137dc498 100644 --- a/android/jni/com/mapswithme/maps/bookmarks/data/Bookmark.cpp +++ b/android/jni/com/mapswithme/maps/bookmarks/data/Bookmark.cpp @@ -35,7 +35,8 @@ JNIEXPORT jstring JNICALL Java_com_mapswithme_maps_bookmarks_data_Bookmark_nativeGetIcon( JNIEnv * env, jobject thiz, jlong bmk) { - return jni::ToJavaString(env, getBookmark(bmk)->GetType()); + auto const * mark = getBookmark(bmk); + return jni::ToJavaString(env, mark != nullptr ? mark->GetType() : ""); } JNIEXPORT void JNICALL @@ -43,12 +44,12 @@ Java_com_mapswithme_maps_bookmarks_data_Bookmark_nativeSetBookmarkParams( JNIEnv * env, jobject thiz, jlong bmk, jstring name, jstring type, jstring descr) { - Bookmark const * p = getBookmark(bmk); + auto const * mark = getBookmark(bmk); // initialize new bookmark BookmarkData bm(jni::ToNativeString(env, name), jni::ToNativeString(env, type)); bm.SetDescription(descr ? jni::ToNativeString(env, descr) - : p->GetDescription()); + : mark->GetDescription()); g_framework->ReplaceBookmark(static_cast(bmk), bm); } diff --git a/android/jni/com/mapswithme/maps/bookmarks/data/BookmarkManager.cpp b/android/jni/com/mapswithme/maps/bookmarks/data/BookmarkManager.cpp index 2938c39bdc..5f9210df13 100644 --- a/android/jni/com/mapswithme/maps/bookmarks/data/BookmarkManager.cpp +++ b/android/jni/com/mapswithme/maps/bookmarks/data/BookmarkManager.cpp @@ -128,8 +128,7 @@ Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nativeGetCategoryIdByPos JNIEnv * env, jobject thiz, jint position) { auto & ids = frm()->GetBookmarkManager().GetBmGroupsIdList(); - // TODO(darina): use kInvalidCategoryId - return position < ids.size() ? static_cast(ids[position]) : 0; + return static_cast(position < ids.size() ? ids[position] : df::kInvalidMarkGroupId); } JNIEXPORT jlong JNICALL @@ -298,9 +297,8 @@ Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nativeGetBookmarkIdByPos JNIEnv * env, jobject thiz, jlong catId, jint positionInCategory) { auto & ids = frm()->GetBookmarkManager().GetUserMarkIds(static_cast(catId)); - // TODO(darina): use kInvalidMarkId if (positionInCategory >= ids.size()) - return 0; + return static_cast(df::kInvalidMarkId); auto it = ids.begin(); std::advance(it, positionInCategory); return static_cast(*it); @@ -339,9 +337,8 @@ Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_nativeGetTrackIdByPositi JNIEnv * env, jobject thiz, jlong catId, jint positionInCategory) { auto & ids = frm()->GetBookmarkManager().GetTrackIds(static_cast(catId)); - // TODO(darina): use kInvalidMarkId if (positionInCategory >= ids.size()) - return 0; + return static_cast(df::kInvalidLineId); auto it = ids.begin(); std::advance(it, positionInCategory); return static_cast(*it); diff --git a/android/src/com/mapswithme/maps/bookmarks/data/Bookmark.java b/android/src/com/mapswithme/maps/bookmarks/data/Bookmark.java index 34f076d5e8..b06f0d7f43 100644 --- a/android/src/com/mapswithme/maps/bookmarks/data/Bookmark.java +++ b/android/src/com/mapswithme/maps/bookmarks/data/Bookmark.java @@ -92,8 +92,7 @@ public class Bookmark extends MapObject private Icon getIconInternal() { - // TODO(darina): fix check - return BookmarkManager.getIconByType((mCategoryId >= 0) ? nativeGetIcon(mBookmarkId) : ""); + return BookmarkManager.getIconByType(nativeGetIcon(mBookmarkId)); } public Icon getIcon() diff --git a/drape_frontend/drape_engine.cpp b/drape_frontend/drape_engine.cpp index 0870708d09..edfcd600b3 100644 --- a/drape_frontend/drape_engine.cpp +++ b/drape_frontend/drape_engine.cpp @@ -262,14 +262,14 @@ void DrapeEngine::UpdateUserMarks(UserMarksProvider * provider, bool firstTime) }; for (auto markId : provider->GetCreatedMarkIds()) - handleMark(markId, *marksRenderCollection, &createdIdCollection->m_marksID); + handleMark(markId, *marksRenderCollection, &createdIdCollection->m_markIds); for (auto markId : provider->GetUpdatedMarkIds()) handleMark(markId, *marksRenderCollection, nullptr); auto const & removedMarkIds = provider->GetRemovedMarkIds(); - removedIdCollection->m_marksID.reserve(removedMarkIds.size()); - removedIdCollection->m_marksID.assign(removedMarkIds.begin(), removedMarkIds.end()); + removedIdCollection->m_markIds.reserve(removedMarkIds.size()); + removedIdCollection->m_markIds.assign(removedMarkIds.begin(), removedMarkIds.end()); } std::map> dirtyMarkIds; @@ -285,10 +285,10 @@ void DrapeEngine::UpdateUserMarks(UserMarksProvider * provider, bool firstTime) auto const & lineIds = provider->GetGroupLineIds(groupId); if (groupIsVisible) { - idCollection.m_marksID.reserve(markIds.size()); - idCollection.m_marksID.assign(markIds.begin(), markIds.end()); - idCollection.m_linesID.reserve(lineIds.size()); - idCollection.m_linesID.assign(lineIds.begin(), lineIds.end()); + idCollection.m_markIds.reserve(markIds.size()); + idCollection.m_markIds.assign(markIds.begin(), markIds.end()); + idCollection.m_lineIds.reserve(lineIds.size()); + idCollection.m_lineIds.assign(lineIds.begin(), lineIds.end()); for (auto lineId : lineIds) { @@ -307,10 +307,10 @@ void DrapeEngine::UpdateUserMarks(UserMarksProvider * provider, bool firstTime) } else if (!firstTime) { - auto & points = removedIdCollection->m_marksID; + auto & points = removedIdCollection->m_markIds; points.reserve(points.size() + markIds.size()); points.insert(points.end(), markIds.begin(), markIds.end()); - auto & lines = removedIdCollection->m_linesID; + auto & lines = removedIdCollection->m_lineIds; lines.reserve(lines.size() + lineIds.size()); lines.insert(lines.end(), lineIds.begin(), lineIds.end()); } diff --git a/drape_frontend/message_subclasses.hpp b/drape_frontend/message_subclasses.hpp index 9191638647..b811a4c407 100644 --- a/drape_frontend/message_subclasses.hpp +++ b/drape_frontend/message_subclasses.hpp @@ -251,10 +251,10 @@ public: Type GetType() const override { return Message::UpdateUserMarks; } - drape_ptr && AcceptMarkRenderParams() { return std::move(m_marksRenderParams); } - drape_ptr && AcceptLineRenderParams() { return std::move(m_linesRenderParams); } - drape_ptr && AcceptRemovedIds() { return std::move(m_removedIds); } - drape_ptr && AcceptCreatedIds() { return std::move(m_createdIds); } + drape_ptr AcceptMarkRenderParams() { return std::move(m_marksRenderParams); } + drape_ptr AcceptLineRenderParams() { return std::move(m_linesRenderParams); } + drape_ptr AcceptRemovedIds() { return std::move(m_removedIds); } + drape_ptr AcceptCreatedIds() { return std::move(m_createdIds); } private: drape_ptr m_createdIds; @@ -275,7 +275,7 @@ public: Type GetType() const override { return Message::UpdateUserMarkGroup; } MarkGroupID GetGroupId() const { return m_groupId; } - drape_ptr && AcceptIds() { return std::move(m_ids); } + drape_ptr AcceptIds() { return std::move(m_ids); } private: MarkGroupID m_groupId; diff --git a/drape_frontend/user_mark_generator.cpp b/drape_frontend/user_mark_generator.cpp index 422cff33e4..14ea2b1a3a 100644 --- a/drape_frontend/user_mark_generator.cpp +++ b/drape_frontend/user_mark_generator.cpp @@ -38,9 +38,9 @@ void UserMarkGenerator::SetRemovedUserMarks(drape_ptr && ids) { if (ids == nullptr) return; - for (auto const & id : ids->m_marksID) + for (auto const & id : ids->m_markIds) m_marks.erase(id); - for (auto const & id : ids->m_linesID) + for (auto const & id : ids->m_lineIds) m_lines.erase(id); } @@ -48,7 +48,7 @@ void UserMarkGenerator::SetCreatedUserMarks(drape_ptr && ids) { if (ids == nullptr) return; - for (auto const & id : ids->m_marksID) + for (auto const & id : ids->m_markIds) m_marks[id].get()->m_justCreated = true; } @@ -84,8 +84,8 @@ void UserMarkGenerator::UpdateIndex(MarkGroupID groupId) auto itGroupIndexes = tileGroups.second->find(groupId); if (itGroupIndexes != tileGroups.second->end()) { - itGroupIndexes->second->m_marksID.clear(); - itGroupIndexes->second->m_linesID.clear(); + itGroupIndexes->second->m_markIds.clear(); + itGroupIndexes->second->m_lineIds.clear(); } } @@ -95,18 +95,18 @@ void UserMarkGenerator::UpdateIndex(MarkGroupID groupId) IDCollections & idCollection = *groupIt->second.get(); - for (auto markId : idCollection.m_marksID) + for (auto markId : idCollection.m_markIds) { UserMarkRenderParams const & params = *m_marks[markId].get(); for (int zoomLevel = params.m_minZoom; zoomLevel <= scales::GetUpperScale(); ++zoomLevel) { TileKey const tileKey = GetTileKeyByPoint(params.m_pivot, zoomLevel); auto groupIDs = GetIdCollection(tileKey, groupId); - groupIDs->m_marksID.push_back(static_cast(markId)); + groupIDs->m_markIds.push_back(static_cast(markId)); } } - for (auto lineId : idCollection.m_linesID) + for (auto lineId : idCollection.m_lineIds) { UserLineRenderParams const & params = *m_lines[lineId].get(); @@ -126,7 +126,7 @@ void UserMarkGenerator::UpdateIndex(MarkGroupID groupId) { TileKey const tileKey(tileX, tileY, zoomLevel); auto groupIDs = GetIdCollection(tileKey, groupId); - groupIDs->m_linesID.push_back(static_cast(lineId)); + groupIDs->m_lineIds.push_back(static_cast(lineId)); }); return true; }); @@ -181,7 +181,7 @@ void UserMarkGenerator::CleanIndex() { for (auto groupIt = tileGroups.second->begin(); groupIt != tileGroups.second->end();) { - if (groupIt->second->m_marksID.empty() && groupIt->second->m_linesID.empty()) + if (groupIt->second->m_markIds.empty() && groupIt->second->m_lineIds.empty()) groupIt = tileGroups.second->erase(groupIt); else ++groupIt; @@ -255,7 +255,7 @@ void UserMarkGenerator::CacheUserLines(TileKey const & tileKey, MarksIDGroups co if (m_groupsVisibility.find(groupId) == m_groupsVisibility.end()) continue; - df::CacheUserLines(tileKey, textures, groupPair.second->m_linesID, m_lines, batcher); + df::CacheUserLines(tileKey, textures, groupPair.second->m_lineIds, m_lines, batcher); } } @@ -267,7 +267,7 @@ void UserMarkGenerator::CacheUserMarks(TileKey const & tileKey, MarksIDGroups co MarkGroupID groupId = groupPair.first; if (m_groupsVisibility.find(groupId) == m_groupsVisibility.end()) continue; - df::CacheUserMarks(tileKey, textures, groupPair.second->m_marksID, m_marks, batcher); + df::CacheUserMarks(tileKey, textures, groupPair.second->m_markIds, m_marks, batcher); } } diff --git a/drape_frontend/user_marks_global.hpp b/drape_frontend/user_marks_global.hpp index 07b3b04bc2..0961b4e401 100644 --- a/drape_frontend/user_marks_global.hpp +++ b/drape_frontend/user_marks_global.hpp @@ -1,5 +1,6 @@ #pragma once +#include #include #include @@ -14,4 +15,8 @@ using MarkIDSet = std::set>; using LineIDSet = std::set; using GroupIDCollection = std::vector; using GroupIDSet = std::set; + +MarkID const kInvalidMarkId = std::numeric_limits::max(); +LineID const kInvalidLineId = std::numeric_limits::max(); +MarkGroupID const kInvalidMarkGroupId = std::numeric_limits::max(); } // namespace df diff --git a/drape_frontend/user_marks_provider.hpp b/drape_frontend/user_marks_provider.hpp index 6f04870176..b5450aa8f6 100644 --- a/drape_frontend/user_marks_provider.hpp +++ b/drape_frontend/user_marks_provider.hpp @@ -17,18 +17,18 @@ namespace df { struct IDCollections { - MarkIDCollection m_marksID; - LineIDCollection m_linesID; + MarkIDCollection m_markIds; + LineIDCollection m_lineIds; bool IsEmpty() { - return m_marksID.empty() && m_linesID.empty(); + return m_markIds.empty() && m_lineIds.empty(); } void Clear() { - m_marksID.clear(); - m_linesID.clear(); + m_markIds.clear(); + m_lineIds.clear(); } }; @@ -103,17 +103,17 @@ public: virtual ~UserMarksProvider() {} virtual GroupIDSet const & GetDirtyGroupIds() const = 0; virtual GroupIDSet GetAllGroupIds() const = 0; - virtual bool IsGroupVisible(MarkGroupID groupID) const = 0; - virtual bool IsGroupVisibilityChanged(MarkGroupID groupID) const = 0; - virtual MarkIDSet const & GetGroupPointIds(MarkGroupID groupID) const = 0; - virtual LineIDSet const & GetGroupLineIds(MarkGroupID groupID) const = 0; + virtual bool IsGroupVisible(MarkGroupID groupId) const = 0; + virtual bool IsGroupVisibilityChanged(MarkGroupID groupId) const = 0; + virtual MarkIDSet const & GetGroupPointIds(MarkGroupID groupId) const = 0; + virtual LineIDSet const & GetGroupLineIds(MarkGroupID groupId) const = 0; virtual MarkIDSet const & GetCreatedMarkIds() const = 0; virtual MarkIDSet const & GetRemovedMarkIds() const = 0; virtual MarkIDSet const & GetUpdatedMarkIds() const = 0; /// Never store UserPointMark reference. - virtual UserPointMark const * GetUserPointMark(MarkID markID) const = 0; + virtual UserPointMark const * GetUserPointMark(MarkID markId) const = 0; /// Never store UserLineMark reference. - virtual UserLineMark const * GetUserLineMark(LineID lineID) const = 0; + virtual UserLineMark const * GetUserLineMark(LineID lineId) const = 0; }; } // namespace df diff --git a/iphone/Maps/3party/Carthage/Build/iOS/FBSDKShareKit.framework/Headers/FBSDKAppGroupJoinDialog.h b/iphone/Maps/3party/Carthage/Build/iOS/FBSDKShareKit.framework/Headers/FBSDKAppGroupJoinDialog.h index 371e5cc6f6..035234302b 100644 --- a/iphone/Maps/3party/Carthage/Build/iOS/FBSDKShareKit.framework/Headers/FBSDKAppGroupJoinDialog.h +++ b/iphone/Maps/3party/Carthage/Build/iOS/FBSDKShareKit.framework/Headers/FBSDKAppGroupJoinDialog.h @@ -31,7 +31,7 @@ __attribute__ ((deprecated)) - Warning:App and game groups are being deprecated. See https://developers.facebook.com/docs/games/services/game-groups for more information. */ -+ (instancetype)showWithGroupID:(NSString *)groupID ++ (instancetype)showWithGroupID:(NSString *)groupId delegate:(id)delegate __attribute__ ((deprecated)); /** @@ -42,7 +42,7 @@ __attribute__ ((deprecated)) /** - Warning:App and game groups are being deprecated. See https://developers.facebook.com/docs/games/services/game-groups for more information. */ -@property (nonatomic, copy) NSString *groupID __attribute__ ((deprecated)); +@property (nonatomic, copy) NSString *groupId __attribute__ ((deprecated)); /** diff --git a/iphone/Maps/Bookmarks/BookmarksVC.mm b/iphone/Maps/Bookmarks/BookmarksVC.mm index 3f3508dcfd..bdd3e00856 100644 --- a/iphone/Maps/Bookmarks/BookmarksVC.mm +++ b/iphone/Maps/Bookmarks/BookmarksVC.mm @@ -43,18 +43,31 @@ extern NSString * const kBookmarkDeletedNotification = @"BookmarkDeletedNotifica self.title = @(bmManager.GetCategoryName(m_categoryId).c_str()); auto const & bookmarkIds = bmManager.GetUserMarkIds(m_categoryId); auto const & trackIds = bmManager.GetTrackIds(m_categoryId); - // TODO(darina): should we release these arrays manually? - m_bookmarkIds = [NSMutableArray arrayWithCapacity:bookmarkIds.size()]; - m_trackIds = [NSMutableArray arrayWithCapacity:trackIds.size()]; - for (auto bookmarkId : bookmarkIds) - [m_bookmarkIds addObject:[NSNumber numberWithInt:bookmarkId]]; - for (auto trackId : trackIds) - [m_trackIds addObject:[NSNumber numberWithInt:trackId]]; [self calculateSections]; } return self; } +- (df::MarkID)getBookmarkIdByRow:(NSInteger)row +{ + auto const & bmManager = GetFramework().GetBookmarkManager(); + auto const & bookmarkIds = bmManager.GetUserMarkIds(m_categoryId); + ASSERT_LESS(row, bookmarkIds.size(), ()); + auto it = bookmarkIds.begin(); + std::advance(it, row); + return *it; +} + +- (df::LineID)getTrackIdByRow:(NSInteger)row +{ + auto const & bmManager = GetFramework().GetBookmarkManager(); + auto const & trackIds = bmManager.GetTrackIds(m_categoryId); + ASSERT_LESS(row, trackIds.size(), ()); + auto it = trackIds.begin(); + std::advance(it, row); + return *it; +} + - (void)viewDidLoad { [super viewDidLoad]; @@ -138,7 +151,7 @@ extern NSString * const kBookmarkDeletedNotification = @"BookmarkDeletedNotifica cell = [tableView dequeueReusableCellWithIdentifier:@"TrackCell"]; if (!cell) cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"TrackCell"]; - df::MarkID trackId = [[m_trackIds objectAtIndex:indexPath.row] intValue]; + df::LineID const trackId = [self getTrackIdByRow:indexPath.row]; Track const * tr = bmManager.GetTrack(trackId); cell.textLabel.text = @(tr->GetName().c_str()); string dist; @@ -157,7 +170,7 @@ extern NSString * const kBookmarkDeletedNotification = @"BookmarkDeletedNotifica UITableViewCell * bmCell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"BookmarksVCBookmarkItemCell"]; if (!bmCell) bmCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"BookmarksVCBookmarkItemCell"]; - df::MarkID bmId = [[m_bookmarkIds objectAtIndex:indexPath.row] intValue]; + df::MarkID const bmId = [self getBookmarkIdByRow:indexPath.row]; Bookmark const * bm = bmManager.GetBookmark(bmId); if (bm) { @@ -221,7 +234,7 @@ extern NSString * const kBookmarkDeletedNotification = @"BookmarkDeletedNotifica { if (categoryExists) { - df::MarkID trackId = [[m_trackIds objectAtIndex:indexPath.row] intValue]; + df::LineID const trackId = [self getTrackIdByRow:indexPath.row]; Track const * tr = bmManager.GetTrack(trackId); ASSERT(tr, ("NULL track")); if (tr) @@ -235,7 +248,7 @@ extern NSString * const kBookmarkDeletedNotification = @"BookmarkDeletedNotifica { if (categoryExists) { - df::MarkID bmId = [[m_bookmarkIds objectAtIndex:indexPath.row] intValue]; + df::MarkID const bmId = [self getBookmarkIdByRow:indexPath.row]; Bookmark const * bm = bmManager.GetBookmark(bmId); ASSERT(bm, ("NULL bookmark")); if (bm) @@ -296,18 +309,16 @@ extern NSString * const kBookmarkDeletedNotification = @"BookmarkDeletedNotifica { if (indexPath.section == m_trackSection) { - df::MarkID trackId = [[m_trackIds objectAtIndex:indexPath.row] intValue]; + df::LineID const trackId = [self getTrackIdByRow:indexPath.row]; bmManager.GetEditSession().DeleteTrack(trackId); - [m_trackIds removeObjectAtIndex:indexPath.row]; } else { - df::MarkID bmId = [[m_bookmarkIds objectAtIndex:indexPath.row] intValue]; + df::MarkID const bmId = [self getBookmarkIdByRow:indexPath.row]; NSValue * value = [NSValue valueWithBytes:&bmId objCType:@encode(df::MarkID*)]; [NSNotificationCenter.defaultCenter postNotificationName:kBookmarkDeletedNotification object:value]; bmManager.GetEditSession().DeleteBookmark(bmId); - [m_bookmarkIds removeObjectAtIndex:indexPath.row]; [NSNotificationCenter.defaultCenter postNotificationName:kBookmarksChangedNotification object:nil userInfo:nil]; @@ -344,7 +355,7 @@ extern NSString * const kBookmarkDeletedNotification = @"BookmarkDeletedNotifica NSIndexPath * indexPath = [table indexPathForCell:cell]; if (indexPath.section == self->m_bookmarkSection) { - df::MarkID bmId = [[m_bookmarkIds objectAtIndex:indexPath.row] intValue]; + df::MarkID const bmId = [self getBookmarkIdByRow:indexPath.row]; Bookmark const * bm = bmManager.GetBookmark(bmId); if (bm) { diff --git a/iphone/Maps/Maps.xcodeproj/project.pbxproj b/iphone/Maps/Maps.xcodeproj/project.pbxproj index b6c8f405c2..4549257d80 100644 --- a/iphone/Maps/Maps.xcodeproj/project.pbxproj +++ b/iphone/Maps/Maps.xcodeproj/project.pbxproj @@ -4710,6 +4710,7 @@ "$(BOOST_ROOT)", "$(OMIM_ROOT)/3party/glm", "$(PROJECT_DIR)/3party/MoPubSDK/**", + "$(OMIM_ROOT)/3party/jansson/src", ); INFOPLIST_FILE = MAPSME.plist; LIBRARY_SEARCH_PATHS = ( @@ -4759,6 +4760,7 @@ "$(BOOST_ROOT)", "$(OMIM_ROOT)/3party/glm", "$(PROJECT_DIR)/3party/MoPubSDK/**", + "$(OMIM_ROOT)/3party/jansson/src", ); INFOPLIST_FILE = MAPSME.plist; LIBRARY_SEARCH_PATHS = ( @@ -4813,6 +4815,7 @@ "$(BOOST_ROOT)", "$(OMIM_ROOT)/3party/glm", "$(PROJECT_DIR)/3party/MoPubSDK/**", + "$(OMIM_ROOT)/3party/jansson/src", ); INFOPLIST_FILE = MAPSME.plist; LIBRARY_SEARCH_PATHS = ( diff --git a/iphone/Maps/UI/EditBookmark/MWMEditBookmarkController.mm b/iphone/Maps/UI/EditBookmark/MWMEditBookmarkController.mm index cb97383f4a..c6dc94b37a 100644 --- a/iphone/Maps/UI/EditBookmark/MWMEditBookmarkController.mm +++ b/iphone/Maps/UI/EditBookmark/MWMEditBookmarkController.mm @@ -28,8 +28,6 @@ enum RowInMetaInfo Category, RowsInMetaInfoCount }; - -static int const kInvalidCategoryId = 0; } // namespace @interface MWMEditBookmarkController () (notification.object); - df::MarkID deletedBookmarkId = 0; + df::MarkID deletedBookmarkId = df::kInvalidMarkId; [value getValue:&deletedBookmarkId]; auto bookmarkId = data.bookmarkId; if (bookmarkId != deletedBookmarkId) diff --git a/map/bookmark.cpp b/map/bookmark.cpp index 93cd8960b6..75b3cf7713 100644 --- a/map/bookmark.cpp +++ b/map/bookmark.cpp @@ -30,13 +30,13 @@ Bookmark::Bookmark(m2::PointD const & ptOrg) : Base(ptOrg, UserMark::BOOKMARK) - , m_groupId(0) + , m_groupId(df::kInvalidMarkGroupId) {} Bookmark::Bookmark(BookmarkData const & data, m2::PointD const & ptOrg) : Base(ptOrg, UserMark::BOOKMARK) , m_data(data) - , m_groupId(0) + , m_groupId(df::kInvalidMarkGroupId) {} void Bookmark::SetData(BookmarkData const & data) @@ -130,21 +130,21 @@ df::MarkGroupID Bookmark::GetGroupId() const return m_groupId; } -void Bookmark::Attach(df::MarkGroupID groupID) +void Bookmark::Attach(df::MarkGroupID groupId) { - ASSERT(!m_groupId, ()); - m_groupId = groupID; + ASSERT(m_groupId == df::kInvalidMarkGroupId, ()); + m_groupId = groupId; } void Bookmark::Detach() { - m_groupId = 0; + m_groupId = df::kInvalidMarkGroupId; } BookmarkCategory::BookmarkCategory(std::string const & name, - df::MarkGroupID groupID) + df::MarkGroupID groupId) : Base(UserMark::Type::BOOKMARK) - , m_groupId(groupID) + , m_groupId(groupId) , m_name(name) {} diff --git a/map/bookmark.hpp b/map/bookmark.hpp index 01946ddede..d8f004f5f2 100644 --- a/map/bookmark.hpp +++ b/map/bookmark.hpp @@ -116,7 +116,7 @@ class BookmarkCategory : public UserMarkLayer using Base = UserMarkLayer; public: - BookmarkCategory(std::string const & name, df::MarkGroupID groupID); + BookmarkCategory(std::string const & name, df::MarkGroupID groupId); ~BookmarkCategory() override; static std::string GetDefaultType(); diff --git a/map/bookmark_manager.cpp b/map/bookmark_manager.cpp index 68dc7b2ed1..a5b11ee0b6 100644 --- a/map/bookmark_manager.cpp +++ b/map/bookmark_manager.cpp @@ -143,25 +143,25 @@ BookmarkManager::EditSession BookmarkManager::GetEditSession() return EditSession(*this); } -UserMark const * BookmarkManager::GetMark(df::MarkID markID) const +UserMark const * BookmarkManager::GetMark(df::MarkID markId) const { - if (IsBookmark(markID)) - return GetBookmark(markID); - return GetUserMark(markID); + if (IsBookmark(markId)) + return GetBookmark(markId); + return GetUserMark(markId); } -UserMark const * BookmarkManager::GetUserMark(df::MarkID markID) const +UserMark const * BookmarkManager::GetUserMark(df::MarkID markId) const { - auto it = m_userMarks.find(markID); + auto it = m_userMarks.find(markId); return (it != m_userMarks.end()) ? it->second.get() : nullptr; } -UserMark * BookmarkManager::GetUserMarkForEdit(df::MarkID markID) +UserMark * BookmarkManager::GetUserMarkForEdit(df::MarkID markId) { - auto it = m_userMarks.find(markID); + auto it = m_userMarks.find(markId); if (it != m_userMarks.end()) { - m_changesTracker.OnUpdateMark(markID); + m_changesTracker.OnUpdateMark(markId); return it->second.get(); } return nullptr; @@ -172,32 +172,33 @@ void BookmarkManager::DeleteUserMark(df::MarkID markId) ASSERT(!IsBookmark(markId), ()); auto it = m_userMarks.find(markId); auto const groupId = it->second->GetGroupId(); - FindContainer(groupId)->DetachUserMark(markId); + GetGroup(groupId)->DetachUserMark(markId); m_changesTracker.OnDeleteMark(markId); m_userMarks.erase(it); } Bookmark * BookmarkManager::CreateBookmark(m2::PointD const & ptOrg, BookmarkData const & bmData) { - // TODO(darina): Check event. - GetPlatform().GetMarketingService().SendMarketingEvent(marketing::kBookmarksBookmarkAction, - {{"action", "create"}}); return AddBookmark(std::make_unique(bmData, ptOrg)); } -Bookmark * BookmarkManager::CreateBookmark(m2::PointD const & ptOrg, BookmarkData & bm, df::MarkGroupID groupID) +Bookmark * BookmarkManager::CreateBookmark(m2::PointD const & ptOrg, BookmarkData & bm, df::MarkGroupID groupId) { + // TODO(darina): Do we need this event? + GetPlatform().GetMarketingService().SendMarketingEvent(marketing::kBookmarksBookmarkAction, + {{"action", "create"}}); + bm.SetTimeStamp(time(0)); bm.SetScale(df::GetDrawTileScale(m_viewport)); auto * bookmark = CreateBookmark(ptOrg, bm); - bookmark->Attach(groupID); - auto * group = GetBmCategory(groupID); + bookmark->Attach(groupId); + auto * group = GetBmCategory(groupId); group->AttachUserMark(bookmark->GetId()); group->SetIsVisible(true); - SaveToKMLFile(groupID); + SaveToKMLFile(groupId); // TODO(darina): get rid of this -// NotifyChanges(groupID); +// NotifyChanges(groupId); m_lastCategoryUrl = group->GetFileName(); m_lastType = bm.GetType(); @@ -206,21 +207,21 @@ Bookmark * BookmarkManager::CreateBookmark(m2::PointD const & ptOrg, BookmarkDat return bookmark; } -Bookmark const * BookmarkManager::GetBookmark(df::MarkID markID) const +Bookmark const * BookmarkManager::GetBookmark(df::MarkID markId) const { - auto it = m_bookmarks.find(markID); + auto it = m_bookmarks.find(markId); return (it != m_bookmarks.end()) ? it->second.get() : nullptr; } -Bookmark * BookmarkManager::GetBookmarkForEdit(df::MarkID markID) +Bookmark * BookmarkManager::GetBookmarkForEdit(df::MarkID markId) { - auto it = m_bookmarks.find(markID); + auto it = m_bookmarks.find(markId); if (it == m_bookmarks.end()) return nullptr; auto const groupId = it->second->GetGroupId(); - if (groupId) - m_changesTracker.OnUpdateMark(markID); + if (groupId != df::kInvalidMarkGroupId) + m_changesTracker.OnUpdateMark(markId); return it->second.get(); } @@ -228,24 +229,24 @@ Bookmark * BookmarkManager::GetBookmarkForEdit(df::MarkID markID) void BookmarkManager::AttachBookmark(df::MarkID bmId, df::MarkGroupID catID) { GetBookmarkForEdit(bmId)->Attach(catID); - FindContainer(catID)->AttachUserMark(bmId); + GetGroup(catID)->AttachUserMark(bmId); } void BookmarkManager::DetachBookmark(df::MarkID bmId, df::MarkGroupID catID) { GetBookmarkForEdit(bmId)->Detach(); - FindContainer(catID)->DetachUserMark(bmId); + GetGroup(catID)->DetachUserMark(bmId); } void BookmarkManager::DeleteBookmark(df::MarkID bmId) { ASSERT(IsBookmark(bmId), ()); auto groupIt = m_bookmarks.find(bmId); - auto const groupID = groupIt->second->GetGroupId(); - if (groupID) + auto const groupId = groupIt->second->GetGroupId(); + if (groupId) { m_changesTracker.OnDeleteMark(bmId); - FindContainer(groupID)->DetachUserMark(bmId); + GetGroup(groupId)->DetachUserMark(bmId); } m_bookmarks.erase(groupIt); } @@ -255,30 +256,30 @@ Track * BookmarkManager::CreateTrack(m2::PolylineD const & polyline, Track::Para return AddTrack(std::make_unique(polyline, p)); } -Track const * BookmarkManager::GetTrack(df::LineID trackID) const +Track const * BookmarkManager::GetTrack(df::LineID trackId) const { - auto it = m_tracks.find(trackID); + auto it = m_tracks.find(trackId); return (it != m_tracks.end()) ? it->second.get() : nullptr; } -void BookmarkManager::AttachTrack(df::LineID trackID, df::MarkGroupID groupID) +void BookmarkManager::AttachTrack(df::LineID trackId, df::MarkGroupID groupId) { - auto it = m_tracks.find(trackID); - it->second->Attach(groupID); - GetBmCategory(groupID)->AttachTrack(trackID); + auto it = m_tracks.find(trackId); + it->second->Attach(groupId); + GetBmCategory(groupId)->AttachTrack(trackId); } -void BookmarkManager::DetachTrack(df::LineID trackID, df::MarkGroupID groupID) +void BookmarkManager::DetachTrack(df::LineID trackId, df::MarkGroupID groupId) { - GetBmCategory(groupID)->DetachTrack(trackID); + GetBmCategory(groupId)->DetachTrack(trackId); } -void BookmarkManager::DeleteTrack(df::LineID trackID) +void BookmarkManager::DeleteTrack(df::LineID trackId) { - auto it = m_tracks.find(trackID); - auto const groupID = it->second->GetGroupId(); - if (groupID) - GetBmCategory(groupID)->DetachTrack(trackID); + auto it = m_tracks.find(trackId); + auto const groupId = it->second->GetGroupId(); + if (groupId != df::kInvalidMarkGroupId) + GetBmCategory(groupId)->DetachTrack(trackId); m_tracks.erase(it); } @@ -333,7 +334,7 @@ void BookmarkManager::NotifyChanges() auto engine = lock.Get(); for (auto groupId : m_changesTracker.GetDirtyGroupIds()) { - auto *group = FindContainer(groupId); + auto *group = GetGroup(groupId); engine->ChangeVisibilityUserMarksGroup(groupId, group->IsVisible()); } @@ -342,7 +343,7 @@ void BookmarkManager::NotifyChanges() for (auto groupId : m_changesTracker.GetDirtyGroupIds()) { - auto *group = FindContainer(groupId); + auto *group = GetGroup(groupId); if (group->GetUserMarks().empty() && group->GetUserLines().empty()) engine->ClearUserMarksGroup(groupId); group->ResetChanges(); @@ -357,19 +358,19 @@ void BookmarkManager::NotifyChanges() m_changesTracker.ResetChanges(); } -df::MarkIDSet const & BookmarkManager::GetUserMarkIds(df::MarkGroupID groupID) const +df::MarkIDSet const & BookmarkManager::GetUserMarkIds(df::MarkGroupID groupId) const { - return FindContainer(groupID)->GetUserMarks(); + return GetGroup(groupId)->GetUserMarks(); } -df::LineIDSet const & BookmarkManager::GetTrackIds(df::MarkGroupID groupID) const +df::LineIDSet const & BookmarkManager::GetTrackIds(df::MarkGroupID groupId) const { - return FindContainer(groupID)->GetUserLines(); + return GetGroup(groupId)->GetUserLines(); } void BookmarkManager::ClearGroup(df::MarkGroupID groupId) { - auto * group = FindContainer(groupId); + auto * group = GetGroup(groupId); for (auto markId : group->GetUserMarks()) { m_changesTracker.OnDeleteMark(markId); @@ -398,9 +399,9 @@ std::string const & BookmarkManager::GetCategoryFileName(df::MarkGroupID categor return GetBmCategory(categoryId)->GetFileName(); } -UserMark const * BookmarkManager::FindMarkInRect(df::MarkGroupID groupID, m2::AnyRectD const & rect, double & d) const +UserMark const * BookmarkManager::FindMarkInRect(df::MarkGroupID groupId, m2::AnyRectD const & rect, double & d) const { - auto const * group = FindContainer(groupID); + auto const * group = GetGroup(groupId); UserMark const * resMark = nullptr; if (group->IsVisible()) @@ -418,12 +419,12 @@ UserMark const * BookmarkManager::FindMarkInRect(df::MarkGroupID groupID, m2::An void BookmarkManager::SetIsVisible(df::MarkGroupID groupId, bool visible) { - return FindContainer(groupId)->SetIsVisible(visible); + return GetGroup(groupId)->SetIsVisible(visible); } bool BookmarkManager::IsVisible(df::MarkGroupID groupId) const { - return FindContainer(groupId)->IsVisible(); + return GetGroup(groupId)->IsVisible(); } void BookmarkManager::SetDrapeEngine(ref_ptr engine) @@ -684,7 +685,7 @@ void BookmarkManager::UpdateBookmark(df::MarkID bmID, BookmarkData const & bm) { auto * bookmark = GetBookmarkForEdit(bmID); bookmark->SetData(bm); - ASSERT(bookmark->GetGroupId(), ()); + ASSERT(bookmark->GetGroupId() != df::kInvalidMarkGroupId, ()); SaveToKMLFile(bookmark->GetGroupId()); m_lastType = bm.GetType(); @@ -755,9 +756,9 @@ void BookmarkManager::GetBookmarksData(df::MarkIDSet const & markIds, } } -bool BookmarkManager::HasBmCategory(df::MarkGroupID groupID) const +bool BookmarkManager::HasBmCategory(df::MarkGroupID groupId) const { - return m_categories.find(groupID) != m_categories.end(); + return m_categories.find(groupId) != m_categories.end(); } df::MarkGroupID BookmarkManager::CreateBookmarkCategory(std::string const & name) @@ -775,22 +776,20 @@ void BookmarkManager::CheckAndCreateDefaultCategory() CreateBookmarkCategory(m_callbacks.m_getStringsBundle().GetString("my_places")); } -bool BookmarkManager::DeleteBmCategory(df::MarkGroupID groupID) +bool BookmarkManager::DeleteBmCategory(df::MarkGroupID groupId) { - auto it = m_categories.find(groupID); + auto it = m_categories.find(groupId); if (it == m_categories.end()) return false; BookmarkCategory & group = *it->second.get(); - // TODO(darina): check the necessity of DeleteLater - // cat.DeleteLater(); FileWriter::DeleteFileX(group.GetFileName()); - ClearGroup(groupID); + ClearGroup(groupId); // TODO(darina): think of a way to get rid of extra Notify here NotifyChanges(); m_categories.erase(it); - m_bmGroupsIdList.erase(std::remove(m_bmGroupsIdList.begin(), m_bmGroupsIdList.end(), groupID), - m_bmGroupsIdList.end()); + m_bmGroupsIdList.erase(std::remove(m_bmGroupsIdList.begin(), m_bmGroupsIdList.end(), groupId), + m_bmGroupsIdList.end()); return true; } @@ -806,10 +805,10 @@ public: , m_manager(manager) {} - void operator()(df::MarkGroupID groupID) + void operator()(df::MarkGroupID groupId) { - m2::AnyRectD const & rect = m_rectHolder(min((UserMark::Type)groupID, UserMark::BOOKMARK)); - if (UserMark const * p = m_manager->FindMarkInRect(groupID, rect, m_d)) + m2::AnyRectD const & rect = m_rectHolder(min((UserMark::Type)groupId, UserMark::BOOKMARK)); + if (UserMark const * p = m_manager->FindMarkInRect(groupId, rect, m_d)) { static double const kEps = 1e-5; if (m_mark == nullptr || !p->GetPivot().EqualDxDy(m_mark->GetPivot(), kEps)) @@ -844,21 +843,21 @@ UserMark const * BookmarkManager::FindNearestUserMark(TTouchRectHolder const & h return finder.GetFoundMark(); } -UserMarkLayer const * BookmarkManager::FindContainer(df::MarkGroupID containerId) const +UserMarkLayer const * BookmarkManager::GetGroup(df::MarkGroupID groupId) const { - if (containerId < UserMark::Type::BOOKMARK) - return m_userMarkLayers[containerId].get(); + if (groupId < UserMark::Type::BOOKMARK) + return m_userMarkLayers[groupId].get(); - ASSERT(m_categories.find(containerId) != m_categories.end(), ()); - return m_categories.at(containerId).get(); + ASSERT(m_categories.find(groupId) != m_categories.end(), ()); + return m_categories.at(groupId).get(); } -UserMarkLayer * BookmarkManager::FindContainer(df::MarkGroupID containerId) +UserMarkLayer * BookmarkManager::GetGroup(df::MarkGroupID groupId) { - if (containerId < UserMark::Type::BOOKMARK) - return m_userMarkLayers[containerId].get(); + if (groupId < UserMark::Type::BOOKMARK) + return m_userMarkLayers[groupId].get(); - auto const it = m_categories.find(containerId); + auto const it = m_categories.find(groupId); return it != m_categories.end() ? it->second.get() : nullptr; } @@ -866,7 +865,7 @@ void BookmarkManager::CreateCategories(KMLDataCollection && dataCollection) { for (auto & data : dataCollection) { - df::MarkGroupID groupID; + df::MarkGroupID groupId; BookmarkCategory * group = nullptr; auto const it = std::find_if(m_categories.begin(), m_categories.end(), @@ -877,37 +876,36 @@ void BookmarkManager::CreateCategories(KMLDataCollection && dataCollection) bool merge = it != m_categories.end(); if (merge) { - groupID = it->first; + groupId = it->first; group = it->second.get(); } else { - groupID = CreateBookmarkCategory(data->m_name); - group = GetBmCategory(groupID); + groupId = CreateBookmarkCategory(data->m_name); + group = GetBmCategory(groupId); group->SetFileName(data->m_file); group->SetIsVisible(data->m_visible); } for (auto & bookmark : data->m_bookmarks) { auto * bm = AddBookmark(std::move(bookmark)); - bm->Attach(groupID); + bm->Attach(groupId); group->AttachUserMark(bm->GetId()); } for (auto & track : data->m_tracks) { auto * t = AddTrack(std::move(track)); - t->Attach(groupID); + t->Attach(groupId); group->AttachTrack(t->GetId()); } if (merge) { // Delete file since it will be merged. my::DeleteFileX(data->m_file); - SaveToKMLFile(groupID); + SaveToKMLFile(groupId); } } - // TODO(darina): Can we get rid of this Notify? NotifyChanges(); } @@ -1004,9 +1002,9 @@ std::string PointToString(m2::PointD const & org) } } -void BookmarkManager::SaveToKML(df::MarkGroupID groupID, std::ostream & s) +void BookmarkManager::SaveToKML(df::MarkGroupID groupId, std::ostream & s) { - SaveToKML(GetBmCategory(groupID), s); + SaveToKML(GetBmCategory(groupId), s); } void BookmarkManager::SaveToKML(BookmarkCategory * group, std::ostream & s) @@ -1105,11 +1103,11 @@ void BookmarkManager::SaveToKML(BookmarkCategory * group, std::ostream & s) s << kmlFooter; } -bool BookmarkManager::SaveToKMLFile(df::MarkGroupID groupID) +bool BookmarkManager::SaveToKMLFile(df::MarkGroupID groupId) { std::string oldFile; - auto * group = GetBmCategory(groupID); + auto * group = GetBmCategory(groupId); // Get valid file name from category name std::string const name = RemoveInvalidSymbols(group->GetName()); @@ -1211,14 +1209,14 @@ df::GroupIDSet BookmarkManager::MarksChangesTracker::GetAllGroupIds() const return resultingSet; } -bool BookmarkManager::MarksChangesTracker::IsGroupVisible(df::MarkGroupID groupID) const +bool BookmarkManager::MarksChangesTracker::IsGroupVisible(df::MarkGroupID groupId) const { - return m_bmManager.IsVisible(groupID); + return m_bmManager.IsVisible(groupId); } -bool BookmarkManager::MarksChangesTracker::IsGroupVisibilityChanged(df::MarkGroupID groupID) const +bool BookmarkManager::MarksChangesTracker::IsGroupVisibilityChanged(df::MarkGroupID groupId) const { - return m_bmManager.FindContainer(groupID)->IsVisibilityChanged(); + return m_bmManager.GetGroup(groupId)->IsVisibilityChanged(); } df::MarkIDSet const & BookmarkManager::MarksChangesTracker::GetGroupPointIds(df::MarkGroupID groupId) const @@ -1231,14 +1229,14 @@ df::LineIDSet const & BookmarkManager::MarksChangesTracker::GetGroupLineIds(df:: return m_bmManager.GetTrackIds(groupId); } -df::UserPointMark const * BookmarkManager::MarksChangesTracker::GetUserPointMark(df::MarkID markID) const +df::UserPointMark const * BookmarkManager::MarksChangesTracker::GetUserPointMark(df::MarkID markId) const { - return m_bmManager.GetMark(markID); + return m_bmManager.GetMark(markId); } -df::UserLineMark const * BookmarkManager::MarksChangesTracker::GetUserLineMark(df::LineID lineID) const +df::UserLineMark const * BookmarkManager::MarksChangesTracker::GetUserLineMark(df::LineID lineId) const { - return m_bmManager.GetTrack(lineID); + return m_bmManager.GetTrack(lineId); } void BookmarkManager::MarksChangesTracker::OnAddMark(df::MarkID markId) @@ -1342,9 +1340,9 @@ Bookmark * BookmarkManager::EditSession::CreateBookmark(m2::PointD const & ptOrg return m_bmManager.CreateBookmark(ptOrg, bm); } -Bookmark * BookmarkManager::EditSession::CreateBookmark(m2::PointD const & ptOrg, BookmarkData & bm, df::MarkGroupID groupID) +Bookmark * BookmarkManager::EditSession::CreateBookmark(m2::PointD const & ptOrg, BookmarkData & bm, df::MarkGroupID groupId) { - return m_bmManager.CreateBookmark(ptOrg, bm, groupID); + return m_bmManager.CreateBookmark(ptOrg, bm, groupId); } Track * BookmarkManager::EditSession::CreateTrack(m2::PolylineD const & polyline, Track::Params const & p) @@ -1352,9 +1350,9 @@ Track * BookmarkManager::EditSession::CreateTrack(m2::PolylineD const & polyline return m_bmManager.CreateTrack(polyline, p); } -Bookmark * BookmarkManager::EditSession::GetBookmarkForEdit(df::MarkID markID) +Bookmark * BookmarkManager::EditSession::GetBookmarkForEdit(df::MarkID markId) { - return m_bmManager.GetBookmarkForEdit(markID); + return m_bmManager.GetBookmarkForEdit(markId); } void BookmarkManager::EditSession::DeleteUserMark(df::MarkID markId) @@ -1367,14 +1365,14 @@ void BookmarkManager::EditSession::DeleteBookmark(df::MarkID bmId) return m_bmManager.DeleteBookmark(bmId); } -void BookmarkManager::EditSession::DeleteTrack(df::LineID trackID) +void BookmarkManager::EditSession::DeleteTrack(df::LineID trackId) { - return m_bmManager.DeleteTrack(trackID); + return m_bmManager.DeleteTrack(trackId); } -void BookmarkManager::EditSession::ClearGroup(df::MarkGroupID groupID) +void BookmarkManager::EditSession::ClearGroup(df::MarkGroupID groupId) { - return m_bmManager.ClearGroup(groupID); + return m_bmManager.ClearGroup(groupId); } void BookmarkManager::EditSession::SetIsVisible(df::MarkGroupID groupId, bool visible) @@ -1393,29 +1391,29 @@ void BookmarkManager::EditSession::UpdateBookmark(df::MarkID bmId, BookmarkData return m_bmManager.UpdateBookmark(bmId, bm); } -void BookmarkManager::EditSession::AttachBookmark(df::MarkID bmId, df::MarkGroupID groupID) +void BookmarkManager::EditSession::AttachBookmark(df::MarkID bmId, df::MarkGroupID groupId) { - return m_bmManager.AttachBookmark(bmId, groupID); + return m_bmManager.AttachBookmark(bmId, groupId); } -void BookmarkManager::EditSession::DetachBookmark(df::MarkID bmId, df::MarkGroupID groupID) +void BookmarkManager::EditSession::DetachBookmark(df::MarkID bmId, df::MarkGroupID groupId) { - return m_bmManager.DetachBookmark(bmId, groupID); + return m_bmManager.DetachBookmark(bmId, groupId); } -void BookmarkManager::EditSession::AttachTrack(df::LineID trackID, df::MarkGroupID groupID) +void BookmarkManager::EditSession::AttachTrack(df::LineID trackId, df::MarkGroupID groupId) { - return m_bmManager.AttachTrack(trackID, groupID); + return m_bmManager.AttachTrack(trackId, groupId); } -void BookmarkManager::EditSession::DetachTrack(df::LineID trackID, df::MarkGroupID groupID) +void BookmarkManager::EditSession::DetachTrack(df::LineID trackId, df::MarkGroupID groupId) { - return m_bmManager.DetachTrack(trackID, groupID); + return m_bmManager.DetachTrack(trackId, groupId); } -bool BookmarkManager::EditSession::DeleteBmCategory(df::MarkGroupID groupID) +bool BookmarkManager::EditSession::DeleteBmCategory(df::MarkGroupID groupId) { - return m_bmManager.DeleteBmCategory(groupID); + return m_bmManager.DeleteBmCategory(groupId); } void BookmarkManager::EditSession::NotifyChanges() diff --git a/map/bookmark_manager.hpp b/map/bookmark_manager.hpp index abd0a2677d..476759ccf7 100644 --- a/map/bookmark_manager.hpp +++ b/map/bookmark_manager.hpp @@ -80,7 +80,7 @@ public: } Bookmark * CreateBookmark(m2::PointD const & ptOrg, BookmarkData const & bm); - Bookmark * CreateBookmark(m2::PointD const & ptOrg, BookmarkData & bm, df::MarkGroupID groupID); + Bookmark * CreateBookmark(m2::PointD const & ptOrg, BookmarkData & bm, df::MarkGroupID groupId); Track * CreateTrack(m2::PolylineD const & polyline, Track::Params const & p); template @@ -89,32 +89,32 @@ public: return m_bmManager.GetMarkForEdit(markId); } - Bookmark * GetBookmarkForEdit(df::MarkID markID); + Bookmark * GetBookmarkForEdit(df::MarkID markId); template void DeleteUserMarks(UserMark::Type type, F && deletePredicate) { - return m_bmManager.DeleteUserMarks(type, std::move(deletePredicate)); + return m_bmManager.DeleteUserMarks(type, std::move(deletePredicate)); }; void DeleteUserMark(df::MarkID markId); void DeleteBookmark(df::MarkID bmId); - void DeleteTrack(df::LineID trackID); + void DeleteTrack(df::LineID trackId); - void ClearGroup(df::MarkGroupID groupID); + void ClearGroup(df::MarkGroupID groupId); void SetIsVisible(df::MarkGroupID groupId, bool visible); void MoveBookmark(df::MarkID bmID, df::MarkGroupID curGroupID, df::MarkGroupID newGroupID); void UpdateBookmark(df::MarkID bmId, BookmarkData const & bm); - void AttachBookmark(df::MarkID bmId, df::MarkGroupID groupID); - void DetachBookmark(df::MarkID bmId, df::MarkGroupID groupID); + void AttachBookmark(df::MarkID bmId, df::MarkGroupID groupId); + void DetachBookmark(df::MarkID bmId, df::MarkGroupID groupId); - void AttachTrack(df::LineID trackID, df::MarkGroupID groupID); - void DetachTrack(df::LineID trackID, df::MarkGroupID groupID); + void AttachTrack(df::LineID trackId, df::MarkGroupID groupId); + void DetachTrack(df::LineID trackId, df::MarkGroupID groupId); - bool DeleteBmCategory(df::MarkGroupID groupID); + bool DeleteBmCategory(df::MarkGroupID groupId); void NotifyChanges(); @@ -136,7 +136,7 @@ public: void Teardown(); static bool IsBookmarkCategory(df::MarkGroupID groupId) { return groupId >= UserMark::BOOKMARK; } - static bool IsBookmark(df::MarkID markID) { return UserMark::GetMarkType(markID) == UserMark::BOOKMARK; } + static bool IsBookmark(df::MarkID markId) { return UserMark::GetMarkType(markId) == UserMark::BOOKMARK; } template UserMarkT const * GetMark(df::MarkID markId) const @@ -146,12 +146,12 @@ public: return static_cast(mark); } - UserMark const * GetUserMark(df::MarkID markID) const; - Bookmark const * GetBookmark(df::MarkID markID) const; - Track const * GetTrack(df::LineID trackID) const; + UserMark const * GetUserMark(df::MarkID markId) const; + Bookmark const * GetBookmark(df::MarkID markId) const; + Track const * GetTrack(df::LineID trackId) const; - df::MarkIDSet const & GetUserMarkIds(df::MarkGroupID groupID) const; - df::LineIDSet const & GetTrackIds(df::MarkGroupID groupID) const; + df::MarkIDSet const & GetUserMarkIds(df::MarkGroupID groupId) const; + df::LineIDSet const & GetTrackIds(df::MarkGroupID groupId) const; bool IsVisible(df::MarkGroupID groupId) const; @@ -162,7 +162,7 @@ public: void SetCategoryName(df::MarkGroupID categoryId, std::string const & name); df::GroupIDCollection const & GetBmGroupsIdList() const { return m_bmGroupsIdList; } - bool HasBmCategory(df::MarkGroupID groupID) const; + bool HasBmCategory(df::MarkGroupID groupId) const; df::MarkGroupID LastEditedBMCategory(); std::string LastEditedBMType() const; @@ -177,7 +177,7 @@ public: /// Uses the same file name from which was loaded, or /// creates unique file name on first save and uses it every time. - bool SaveToKMLFile(df::MarkGroupID groupID); + bool SaveToKMLFile(df::MarkGroupID groupId); StaticMarkPoint & SelectionMark() { return *m_selectionMark; } StaticMarkPoint const & SelectionMark() const { return *m_selectionMark; } @@ -192,7 +192,7 @@ public: void SetInvalidTokenHandler(Cloud::InvalidTokenHandler && onInvalidToken); /// These functions is public for unit tests only. You shouldn't call them from client code. - void SaveToKML(df::MarkGroupID groupID, std::ostream & s); + void SaveToKML(df::MarkGroupID groupId, std::ostream & s); void CreateCategories(KMLDataCollection && dataCollection); static std::string RemoveInvalidSymbols(std::string const & name); static std::string GenerateUniqueFileName(const std::string & path, std::string name); @@ -217,12 +217,12 @@ private: df::MarkIDSet const & GetCreatedMarkIds() const override { return m_createdMarks; } df::MarkIDSet const & GetRemovedMarkIds() const override { return m_removedMarks; } df::MarkIDSet const & GetUpdatedMarkIds() const override { return m_updatedMarks; } - bool IsGroupVisible(df::MarkGroupID groupID) const override; - bool IsGroupVisibilityChanged(df::MarkGroupID groupID) const override; + bool IsGroupVisible(df::MarkGroupID groupId) const override; + bool IsGroupVisibilityChanged(df::MarkGroupID groupId) const override; df::MarkIDSet const & GetGroupPointIds(df::MarkGroupID groupId) const override; df::LineIDSet const & GetGroupLineIds(df::MarkGroupID groupId) const override; - df::UserPointMark const * GetUserPointMark(df::MarkID markID) const override; - df::UserLineMark const * GetUserLineMark(df::LineID lineID) const override; + df::UserPointMark const * GetUserPointMark(df::MarkID markId) const override; + df::UserLineMark const * GetUserLineMark(df::LineID lineId) const override; private: BookmarkManager & m_bmManager; @@ -270,36 +270,36 @@ private: DeleteUserMark(markId); }; - UserMark * GetUserMarkForEdit(df::MarkID markID); + UserMark * GetUserMarkForEdit(df::MarkID markId); void DeleteUserMark(df::MarkID markId); Bookmark * CreateBookmark(m2::PointD const & ptOrg, BookmarkData const & bm); - Bookmark * CreateBookmark(m2::PointD const & ptOrg, BookmarkData & bm, df::MarkGroupID groupID); + Bookmark * CreateBookmark(m2::PointD const & ptOrg, BookmarkData & bm, df::MarkGroupID groupId); - Bookmark * GetBookmarkForEdit(df::MarkID markID); - void AttachBookmark(df::MarkID bmId, df::MarkGroupID groupID); - void DetachBookmark(df::MarkID bmId, df::MarkGroupID groupID); + Bookmark * GetBookmarkForEdit(df::MarkID markId); + void AttachBookmark(df::MarkID bmId, df::MarkGroupID groupId); + void DetachBookmark(df::MarkID bmId, df::MarkGroupID groupId); void DeleteBookmark(df::MarkID bmId); Track * CreateTrack(m2::PolylineD const & polyline, Track::Params const & p); - void AttachTrack(df::LineID trackID, df::MarkGroupID groupID); - void DetachTrack(df::LineID trackID, df::MarkGroupID groupID); - void DeleteTrack(df::LineID trackID); + void AttachTrack(df::LineID trackId, df::MarkGroupID groupId); + void DetachTrack(df::LineID trackId, df::MarkGroupID groupId); + void DeleteTrack(df::LineID trackId); - void ClearGroup(df::MarkGroupID groupID); + void ClearGroup(df::MarkGroupID groupId); void SetIsVisible(df::MarkGroupID groupId, bool visible); - bool DeleteBmCategory(df::MarkGroupID groupID); + bool DeleteBmCategory(df::MarkGroupID groupId); void ClearCategories(); void MoveBookmark(df::MarkID bmID, df::MarkGroupID curGroupID, df::MarkGroupID newGroupID); void UpdateBookmark(df::MarkID bmId, BookmarkData const & bm); - UserMark const * GetMark(df::MarkID markID) const; + UserMark const * GetMark(df::MarkID markId) const; - UserMarkLayer const * FindContainer(df::MarkGroupID containerId) const; - UserMarkLayer * FindContainer(df::MarkGroupID containerId); + UserMarkLayer const * GetGroup(df::MarkGroupID groupId) const; + UserMarkLayer * GetGroup(df::MarkGroupID groupId); BookmarkCategory * GetBmCategory(df::MarkGroupID categoryId) const; Bookmark * AddBookmark(std::unique_ptr && bookmark); diff --git a/map/framework.cpp b/map/framework.cpp index 447ceb2489..5e72dd6139 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -731,8 +731,8 @@ void Framework::ResetBookmarkInfo(Bookmark const & bmk, place_page::Info & info) { info.SetBookmarkCategoryName(""); info.SetBookmarkData({}); - info.SetBookmarkId(0); - info.SetBookmarkCategoryId(0); + info.SetBookmarkId(df::kInvalidMarkId); + info.SetBookmarkCategoryId(df::kInvalidMarkGroupId); FillPointInfo(bmk.GetPivot(), {} /* customTitle */, info); } diff --git a/map/map_tests/bookmarks_test.cpp b/map/map_tests/bookmarks_test.cpp index a7a6522bb3..88d5d2c9ae 100644 --- a/map/map_tests/bookmarks_test.cpp +++ b/map/map_tests/bookmarks_test.cpp @@ -339,7 +339,6 @@ UNIT_TEST(Bookmarks_Timestamp) TEST_EQUAL(bmManager.GetUserMarkIds(cat1).size(), 2, ()); TEST_EQUAL(bmManager.GetUserMarkIds(cat2).size(), 1, ()); - // TODO(darina): Check that files have been deleted. DeleteCategoryFiles(arrCat); } diff --git a/map/place_page_info.hpp b/map/place_page_info.hpp index f79ef41dbd..2b1d4fca1e 100644 --- a/map/place_page_info.hpp +++ b/map/place_page_info.hpp @@ -69,7 +69,7 @@ public: /// Place traits bool IsFeature() const { return m_featureID.IsValid(); } - bool IsBookmark() const { return m_markGroupId != 0; } + bool IsBookmark() const { return m_markGroupId != df::kInvalidMarkGroupId && m_markId != df::kInvalidMarkId; } bool IsMyPosition() const { return m_isMyPosition; } bool IsRoutePoint() const { return m_isRoutePoint; } @@ -236,9 +236,9 @@ private: std::string m_customName; /// Bookmarks - /// If not empty, bookmark is bound to this place page. - df::MarkID m_markId = 0; - df::MarkGroupID m_markGroupId = 0; + /// If not invalid, bookmark is bound to this place page. + df::MarkID m_markId = df::kInvalidMarkId; + df::MarkGroupID m_markGroupId = df::kInvalidMarkGroupId;; /// Bookmark category name. Empty, if it's not bookmark; std::string m_bookmarkCategoryName; BookmarkData m_bookmarkData; diff --git a/map/routing_manager.cpp b/map/routing_manager.cpp index 5750942600..f066cab765 100644 --- a/map/routing_manager.cpp +++ b/map/routing_manager.cpp @@ -247,9 +247,9 @@ RoutingManager::RoutingManager(Callbacks && callbacks, Delegate & delegate) #ifdef SHOW_ROUTE_DEBUG_MARKS if (m_bmManager == nullptr) return; - m_bmManager->SetIsVisible(UserMark::Type::DEBUG_MARK, true); - m_bmManager->CreateUserMark(pt); - m_bmManager->NotifyChanges(UserMark::Type::DEBUG_MARK); + auto editSession = m_bmManager->GetEditSession(); + editSession.SetIsVisible(UserMark::Type::DEBUG_MARK, true); + editSession.CreateUserMark(pt); #endif }); diff --git a/map/track.cpp b/map/track.cpp index 45a1fe8f9e..265f88cf54 100644 --- a/map/track.cpp +++ b/map/track.cpp @@ -83,10 +83,10 @@ std::vector const & Track::GetPoints() const return m_polyline.GetPoints(); } -void Track::Attach(df::MarkGroupID groupID) +void Track::Attach(df::MarkGroupID groupId) { ASSERT(!m_groupID, ()); - m_groupID = groupID; + m_groupID = groupId; } void Track::Detach() diff --git a/map/track.hpp b/map/track.hpp index 8941a22ff2..afa4fc202c 100644 --- a/map/track.hpp +++ b/map/track.hpp @@ -51,7 +51,7 @@ public: std::vector const & GetPoints() const override; df::MarkGroupID GetGroupId() const { return m_groupID; } - void Attach(df::MarkGroupID groupID); + void Attach(df::MarkGroupID groupId); void Detach(); private: diff --git a/xcode/openlr/openlr.xcodeproj/project.pbxproj b/xcode/openlr/openlr.xcodeproj/project.pbxproj index 9d8cff2257..002a4771e7 100644 --- a/xcode/openlr/openlr.xcodeproj/project.pbxproj +++ b/xcode/openlr/openlr.xcodeproj/project.pbxproj @@ -189,6 +189,13 @@ isa = XCBuildConfiguration; baseConfigurationReference = 671E791F1E6A503F00B2859B /* common-debug.xcconfig */; buildSettings = { + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(OMIM_ROOT)", + "$(BOOST_ROOT)", + "$(OMIM_ROOT)/3party/jansson/src", + ); + "LIBRARY_SEARCH_PATHS[arch=*]" = ""; }; name = Debug; }; @@ -196,6 +203,12 @@ isa = XCBuildConfiguration; baseConfigurationReference = 671E79201E6A503F00B2859B /* common-release.xcconfig */; buildSettings = { + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(OMIM_ROOT)", + "$(BOOST_ROOT)", + "$(OMIM_ROOT)/3party/jansson/src", + ); }; name = Release; }; @@ -219,6 +232,12 @@ isa = XCBuildConfiguration; baseConfigurationReference = 671E79201E6A503F00B2859B /* common-release.xcconfig */; buildSettings = { + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(OMIM_ROOT)", + "$(BOOST_ROOT)", + "$(OMIM_ROOT)/3party/jansson/src", + ); }; name = "Production Full"; };