Got rid of the UserMarkNotificationGuard.

This commit is contained in:
Daria Volvenkova 2018-02-01 01:31:26 +03:00 committed by Roman Kuznetsov
parent 573b3a2dc3
commit f0c7638eac
7 changed files with 9 additions and 34 deletions

View file

@ -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];
}

View file

@ -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);
}

View file

@ -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;
};

View file

@ -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);

View file

@ -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);
});
}

View file

@ -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;

View file

@ -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);
}