forked from organicmaps/organicmaps
[fix] [ios] Added place page data retain.
This commit is contained in:
parent
8123902824
commit
8033854b5b
4 changed files with 42 additions and 24 deletions
|
@ -114,15 +114,16 @@ void logSponsoredEvent(MWMPlacePageData * data, NSString * eventName)
|
|||
|
||||
- (void)handleBookmarkDeleting:(NSNotification *)notification
|
||||
{
|
||||
NSAssert(self.data && self.layout, @"It must be openned place page!");
|
||||
if (!self.data.isBookmark)
|
||||
auto data = self.data;
|
||||
NSAssert(data && self.layout, @"It must be openned place page!");
|
||||
if (!data.isBookmark)
|
||||
return;
|
||||
|
||||
auto value = static_cast<NSValue *>(notification.object);
|
||||
auto deletedBac = BookmarkAndCategory();
|
||||
[value getValue:&deletedBac];
|
||||
NSAssert(deletedBac.IsValid(), @"Place page must have valid bookmark and category.");
|
||||
auto bac = self.data.bac;
|
||||
auto bac = data.bac;
|
||||
if (bac.m_bookmarkIndex != deletedBac.m_bookmarkIndex || bac.m_categoryIndex != deletedBac.m_categoryIndex)
|
||||
return;
|
||||
|
||||
|
@ -131,12 +132,13 @@ void logSponsoredEvent(MWMPlacePageData * data, NSString * eventName)
|
|||
|
||||
- (void)handleBookmarkCategoryDeleting:(NSNotification *)notification
|
||||
{
|
||||
NSAssert(self.data && self.layout, @"It must be openned place page!");
|
||||
if (!self.data.isBookmark)
|
||||
auto data = self.data;
|
||||
NSAssert(data && self.layout, @"It must be openned place page!");
|
||||
if (!data.isBookmark)
|
||||
return;
|
||||
|
||||
auto deletedIndex = static_cast<NSNumber *>(notification.object).integerValue;
|
||||
auto index = self.data.bac.m_categoryIndex;
|
||||
auto index = data.bac.m_categoryIndex;
|
||||
if (index != deletedIndex)
|
||||
return;
|
||||
|
||||
|
@ -283,16 +285,13 @@ void logSponsoredEvent(MWMPlacePageData * data, NSString * eventName)
|
|||
|
||||
- (void)removeStop
|
||||
{
|
||||
switch (self.data.routeMarkType)
|
||||
auto data = self.data;
|
||||
switch (data.routeMarkType)
|
||||
{
|
||||
case RouteMarkType::Start:
|
||||
[MWMRouter removeStartPointAndRebuild:self.data.intermediateIndex];
|
||||
break;
|
||||
case RouteMarkType::Finish:
|
||||
[MWMRouter removeFinishPointAndRebuild:self.data.intermediateIndex];
|
||||
break;
|
||||
case RouteMarkType::Start: [MWMRouter removeStartPointAndRebuild:data.intermediateIndex]; break;
|
||||
case RouteMarkType::Finish: [MWMRouter removeFinishPointAndRebuild:data.intermediateIndex]; break;
|
||||
case RouteMarkType::Intermediate:
|
||||
[MWMRouter removeIntermediatePointAndRebuild:self.data.intermediateIndex];
|
||||
[MWMRouter removeIntermediatePointAndRebuild:data.intermediateIndex];
|
||||
break;
|
||||
}
|
||||
[self shouldClose];
|
||||
|
@ -473,7 +472,7 @@ void logSponsoredEvent(MWMPlacePageData * data, NSString * eventName)
|
|||
if (!data)
|
||||
return;
|
||||
logSponsoredEvent(self.data, kStatPlacePageHotelGallery);
|
||||
auto galleryModel = [[MWMGalleryModel alloc] initWithTitle:self.hotelName items:self.data.photos];
|
||||
auto galleryModel = [[MWMGalleryModel alloc] initWithTitle:self.hotelName items:data.photos];
|
||||
auto initialPhoto = galleryModel.items[index];
|
||||
auto photoVC = [[MWMPhotosViewController alloc] initWithPhotos:galleryModel
|
||||
initialPhoto:initialPhoto
|
||||
|
@ -491,7 +490,7 @@ void logSponsoredEvent(MWMPlacePageData * data, NSString * eventName)
|
|||
if (!data)
|
||||
return;
|
||||
logSponsoredEvent(self.data, kStatPlacePageHotelGallery);
|
||||
auto galleryModel = [[MWMGalleryModel alloc] initWithTitle:self.hotelName items:self.data.photos];
|
||||
auto galleryModel = [[MWMGalleryModel alloc] initWithTitle:self.hotelName items:data.photos];
|
||||
auto galleryVc = [MWMGalleryViewController instanceWithModel:galleryModel];
|
||||
[[MapViewController controller].navigationController pushViewController:galleryVc animated:YES];
|
||||
}
|
||||
|
|
|
@ -145,8 +145,9 @@ NSAttributedString * richStringFromDay(osmoh::Day const & day, BOOL isClosedNow)
|
|||
{
|
||||
auto tableView = self.tableView;
|
||||
auto const & day = m_days[indexPath.row];
|
||||
auto data = self.data;
|
||||
|
||||
if (self.data.metainfoRows[indexPath.row] == place_page::MetainfoRows::OpeningHours)
|
||||
if (data.metainfoRows[indexPath.row] == place_page::MetainfoRows::OpeningHours)
|
||||
{
|
||||
Class cls = [_MWMOHHeaderCell class];
|
||||
auto cell = static_cast<_MWMOHHeaderCell *>(
|
||||
|
@ -222,7 +223,10 @@ NSAttributedString * richStringFromDay(osmoh::Day const & day, BOOL isClosedNow)
|
|||
|
||||
- (NSInteger)indexOfMetainfoSection
|
||||
{
|
||||
auto & sections = self.data.sections;
|
||||
auto data = self.data;
|
||||
if (!data)
|
||||
return 0;
|
||||
auto & sections = data.sections;
|
||||
auto it = find(sections.begin(), sections.end(), place_page::Sections::Metainfo);
|
||||
if (it == sections.end())
|
||||
return NSNotFound;
|
||||
|
@ -236,8 +240,11 @@ NSAttributedString * richStringFromDay(osmoh::Day const & day, BOOL isClosedNow)
|
|||
LOG(LWARNING, ("Incorrect number of days!"));
|
||||
return NO;
|
||||
}
|
||||
auto data = self.data;
|
||||
if (!data)
|
||||
return NO;
|
||||
|
||||
auto & metainfoRows = self.data.mutableMetainfoRows;
|
||||
auto & metainfoRows = data.mutableMetainfoRows;
|
||||
using place_page::MetainfoRows;
|
||||
|
||||
auto it = find(metainfoRows.begin(), metainfoRows.end(), MetainfoRows::OpeningHours);
|
||||
|
@ -253,7 +260,11 @@ NSAttributedString * richStringFromDay(osmoh::Day const & day, BOOL isClosedNow)
|
|||
|
||||
- (void)reduceMetainfoRows
|
||||
{
|
||||
auto & metainfoRows = self.data.mutableMetainfoRows;
|
||||
auto data = self.data;
|
||||
if (!data)
|
||||
return;
|
||||
|
||||
auto & metainfoRows = data.mutableMetainfoRows;
|
||||
metainfoRows.erase(remove(metainfoRows.begin(), metainfoRows.end(), place_page::MetainfoRows::ExtendedOpeningHours), metainfoRows.end());
|
||||
}
|
||||
|
||||
|
|
|
@ -521,7 +521,8 @@ map<MetainfoRows, Class> const kMetaInfoCells = {
|
|||
|
||||
- (void)update
|
||||
{
|
||||
if (self.data)
|
||||
auto data = self.data;
|
||||
if (data)
|
||||
[self.placePageView.tableView refresh];
|
||||
}
|
||||
|
||||
|
|
|
@ -308,7 +308,10 @@ array<Class, 8> const kPreviewCells = {{[_MWMPPPTitle class], [_MWMPPPExternalTi
|
|||
|
||||
- (void)setSpeedAndAltitude:(NSString *)speedAndAltitude
|
||||
{
|
||||
if ([speedAndAltitude isEqualToString:_speedAndAltitude] || !self.data.isMyPosition)
|
||||
auto data = self.data;
|
||||
if (!data)
|
||||
return;
|
||||
if ([speedAndAltitude isEqualToString:_speedAndAltitude] || !data.isMyPosition)
|
||||
return;
|
||||
|
||||
_speedAndAltitude = speedAndAltitude;
|
||||
|
@ -317,7 +320,10 @@ array<Class, 8> const kPreviewCells = {{[_MWMPPPTitle class], [_MWMPPPExternalTi
|
|||
|
||||
- (void)insertRowAtTheEnd
|
||||
{
|
||||
auto const & previewRows = self.data.previewRows;
|
||||
auto data = self.data;
|
||||
if (!data)
|
||||
return;
|
||||
auto const & previewRows = data.previewRows;
|
||||
auto const size = previewRows.size();
|
||||
self.lastCellIsBanner = previewRows.back() == place_page::PreviewRows::Banner;
|
||||
self.lastCellIndexPath =
|
||||
|
@ -348,7 +354,8 @@ array<Class, 8> const kPreviewCells = {{[_MWMPPPTitle class], [_MWMPPPExternalTi
|
|||
if (IPAD)
|
||||
return;
|
||||
|
||||
if (!self.data)
|
||||
auto data = self.data;
|
||||
if (!data)
|
||||
return;
|
||||
|
||||
[self.tableView update:^{
|
||||
|
|
Loading…
Add table
Reference in a new issue