forked from organicmaps/organicmaps
Got rid of the UserMarkNotificationGuard.
This commit is contained in:
parent
573b3a2dc3
commit
f0c7638eac
7 changed files with 9 additions and 34 deletions
|
@ -51,8 +51,8 @@ static NSString * const kKeyPath = @"subviews";
|
|||
Framework & f = GetFramework();
|
||||
f.DeactivateMapSelection(true);
|
||||
auto & bmManager = f.GetBookmarkManager();
|
||||
UserMarkNotificationGuard guard(bmManager, UserMark::Type::API);
|
||||
bmManager.ClearUserMarks(UserMark::Type::API);
|
||||
bmManager.NotifyChanges(UserMark::Type::API);
|
||||
NSURL * url = [NSURL URLWithString:@(f.GetApiDataHolder().GetGlobalBackUrl().c_str())];
|
||||
[UIApplication.sharedApplication openURL:url];
|
||||
}
|
||||
|
|
|
@ -804,13 +804,3 @@ void BookmarkManager::MergeCategories(CategoriesCollection && newCategories)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
UserMarkNotificationGuard::UserMarkNotificationGuard(BookmarkManager & mng, size_t containerId)
|
||||
: m_manager(mng),
|
||||
m_containerId(containerId)
|
||||
{}
|
||||
|
||||
UserMarkNotificationGuard::~UserMarkNotificationGuard()
|
||||
{
|
||||
m_manager.NotifyChanges(m_containerId);
|
||||
}
|
||||
|
|
|
@ -197,13 +197,3 @@ private:
|
|||
|
||||
DISALLOW_COPY_AND_MOVE(BookmarkManager);
|
||||
};
|
||||
|
||||
class UserMarkNotificationGuard
|
||||
{
|
||||
public:
|
||||
UserMarkNotificationGuard(BookmarkManager & mng, size_t containerId);
|
||||
~UserMarkNotificationGuard();
|
||||
|
||||
BookmarkManager & m_manager;
|
||||
size_t m_containerId;
|
||||
};
|
||||
|
|
|
@ -1610,8 +1610,6 @@ void Framework::FillSearchResultsMarks(bool clear, search::Results::ConstIter be
|
|||
SearchMarkPostProcesing fn /* = nullptr */)
|
||||
{
|
||||
auto & bmManager = GetBookmarkManager();
|
||||
UserMarkNotificationGuard guard(bmManager, UserMark::Type::SEARCH);
|
||||
|
||||
if (clear)
|
||||
bmManager.ClearUserMarks(UserMark::Type::SEARCH);
|
||||
bmManager.SetIsVisible(UserMark::Type::SEARCH, true);
|
||||
|
@ -1641,6 +1639,7 @@ void Framework::FillSearchResultsMarks(bool clear, search::Results::ConstIter be
|
|||
if (fn)
|
||||
fn(*mark);
|
||||
}
|
||||
bmManager.NotifyChanges(UserMark::Type::SEARCH);
|
||||
}
|
||||
|
||||
void Framework::ClearSearchResultsMarks()
|
||||
|
@ -2038,9 +2037,9 @@ url_scheme::ParsedMapApi::ParsingResult Framework::ParseAndSetApiURL(string cons
|
|||
// Clear every current API-mark.
|
||||
{
|
||||
auto & bmManager = GetBookmarkManager();
|
||||
UserMarkNotificationGuard guard(bmManager, UserMark::Type::API);
|
||||
bmManager.ClearUserMarks(UserMark::Type::API);
|
||||
bmManager.SetIsVisible(UserMark::Type::API, true);
|
||||
bmManager.NotifyChanges(UserMark::Type::API);
|
||||
}
|
||||
|
||||
return m_ParsedMapApi.SetUriAndParse(url);
|
||||
|
|
|
@ -144,7 +144,6 @@ void CreateLocalAdsMarks(BookmarkManager * bmManager, CampaignData const & campa
|
|||
// Here we copy campaign data, because we can create user marks only from UI thread.
|
||||
GetPlatform().RunTask(Platform::Thread::Gui, [bmManager, campaignData]()
|
||||
{
|
||||
UserMarkNotificationGuard guard(*bmManager, UserMark::Type::LOCAL_ADS);
|
||||
for (auto const & data : campaignData)
|
||||
{
|
||||
auto userMark = bmManager->CreateUserMark(UserMark::Type::LOCAL_ADS, data.second.m_position);
|
||||
|
@ -153,6 +152,7 @@ void CreateLocalAdsMarks(BookmarkManager * bmManager, CampaignData const & campa
|
|||
mark->SetData(LocalAdsMarkData(data.second));
|
||||
mark->SetFeatureId(data.first);
|
||||
}
|
||||
bmManager->NotifyChanges(UserMark::Type::LOCAL_ADS);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -163,7 +163,6 @@ void DeleteLocalAdsMarks(BookmarkManager * bmManager, MwmSet::MwmId const & mwmI
|
|||
|
||||
GetPlatform().RunTask(Platform::Thread::Gui, [bmManager, mwmId]()
|
||||
{
|
||||
UserMarkNotificationGuard guard(*bmManager, UserMark::Type::LOCAL_ADS);
|
||||
for (size_t i = 0; i < bmManager->GetUserMarkCount(UserMark::Type::LOCAL_ADS);)
|
||||
{
|
||||
auto userMark = bmManager->GetUserMark(UserMark::Type::LOCAL_ADS, i);
|
||||
|
@ -174,6 +173,7 @@ void DeleteLocalAdsMarks(BookmarkManager * bmManager, MwmSet::MwmId const & mwmI
|
|||
else
|
||||
++i;
|
||||
}
|
||||
bmManager->NotifyChanges(UserMark::Type::LOCAL_ADS);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -184,8 +184,8 @@ void DeleteAllLocalAdsMarks(BookmarkManager * bmManager)
|
|||
|
||||
GetPlatform().RunTask(Platform::Thread::Gui, [bmManager]()
|
||||
{
|
||||
UserMarkNotificationGuard guard(*bmManager, UserMark::Type::LOCAL_ADS);
|
||||
bmManager->ClearUserMarks(UserMark::Type::LOCAL_ADS);
|
||||
bmManager->NotifyChanges(UserMark::Type::LOCAL_ADS);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -193,7 +193,6 @@ ParsedMapApi::ParsingResult ParsedMapApi::Parse(Uri const & uri)
|
|||
return ParsingResult::Incorrect;
|
||||
|
||||
ASSERT(m_bmManager != nullptr, ());
|
||||
UserMarkNotificationGuard guard(*m_bmManager, UserMark::Type::API);
|
||||
for (auto const & p : points)
|
||||
{
|
||||
m2::PointD glPoint(MercatorBounds::FromLatLon(p.m_lat, p.m_lon));
|
||||
|
@ -202,6 +201,7 @@ ParsedMapApi::ParsingResult ParsedMapApi::Parse(Uri const & uri)
|
|||
mark->SetApiID(p.m_id);
|
||||
mark->SetStyle(style::GetSupportedStyle(p.m_style, p.m_name, ""));
|
||||
}
|
||||
m_bmManager->NotifyChanges(UserMark::Type::API);
|
||||
|
||||
return ParsingResult::Map;
|
||||
}
|
||||
|
@ -446,9 +446,7 @@ void ParsedMapApi::Reset()
|
|||
bool ParsedMapApi::GetViewportRect(m2::RectD & rect) const
|
||||
{
|
||||
ASSERT(m_bmManager != nullptr, ());
|
||||
UserMarkNotificationGuard guard(*m_bmManager, UserMark::Type::API);
|
||||
|
||||
size_t markCount = m_bmManager->GetUserMarkCount(UserMark::Type::API);
|
||||
size_t const markCount = m_bmManager->GetUserMarkCount(UserMark::Type::API);
|
||||
if (markCount == 1 && m_zoomLevel >= 1)
|
||||
{
|
||||
double zoom = min(static_cast<double>(scales::GetUpperComfortScale()), m_zoomLevel);
|
||||
|
@ -474,8 +472,6 @@ bool ParsedMapApi::GetViewportRect(m2::RectD & rect) const
|
|||
ApiMarkPoint const * ParsedMapApi::GetSinglePoint() const
|
||||
{
|
||||
ASSERT(m_bmManager != nullptr, ());
|
||||
UserMarkNotificationGuard guard(*m_bmManager, UserMark::Type::API);
|
||||
|
||||
if (m_bmManager->GetUserMarkCount(UserMark::Type::API) != 1)
|
||||
return nullptr;
|
||||
|
||||
|
|
|
@ -126,7 +126,6 @@ void SearchMarks::SetPreparingState(std::vector<FeatureID> const & features, boo
|
|||
|
||||
ASSERT(std::is_sorted(features.begin(), features.end()), ());
|
||||
|
||||
UserMarkNotificationGuard guard(*m_bmManager, UserMark::Type::SEARCH);
|
||||
size_t const count = m_bmManager->GetUserMarkCount(UserMark::Type::SEARCH);
|
||||
for (size_t i = 0; i < count; ++i)
|
||||
{
|
||||
|
@ -134,4 +133,5 @@ void SearchMarks::SetPreparingState(std::vector<FeatureID> const & features, boo
|
|||
if (std::binary_search(features.begin(), features.end(), mark->GetFeatureID()))
|
||||
mark->SetPreparing(isPreparing);
|
||||
}
|
||||
m_bmManager->NotifyChanges(UserMark::Type::SEARCH);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue