diff --git a/iphone/Maps/UI/PlacePage/MWMPlacePageData.h b/iphone/Maps/UI/PlacePage/MWMPlacePageData.h index 2fc64ed5d4..25e9eed398 100644 --- a/iphone/Maps/UI/PlacePage/MWMPlacePageData.h +++ b/iphone/Maps/UI/PlacePage/MWMPlacePageData.h @@ -4,6 +4,8 @@ #include "partners_api/booking_api.hpp" +@class MWMPlacePageData; + namespace place_page { enum class Sections @@ -88,7 +90,7 @@ enum class OpeningHours Unknown }; -using NewSectionsAreReady = void (^)(NSRange const & range); +using NewSectionsAreReady = void (^)(NSRange const & range, MWMPlacePageData * data); using BannerIsReady = void (^)(); } // namespace place_page diff --git a/iphone/Maps/UI/PlacePage/MWMPlacePageData.mm b/iphone/Maps/UI/PlacePage/MWMPlacePageData.mm index 5ebd03ebf1..b3cc99d2dc 100644 --- a/iphone/Maps/UI/PlacePage/MWMPlacePageData.mm +++ b/iphone/Maps/UI/PlacePage/MWMPlacePageData.mm @@ -27,6 +27,7 @@ using namespace place_page; @property(copy, nonatomic) NSString * cachedMinPrice; @property(nonatomic) FBNativeAd * nativeAd; +@property(copy, nonatomic) NSArray * photos; @end @@ -186,6 +187,7 @@ using namespace place_page; api->GetHotelInfo(hotelId, [[AppInfo sharedInfo] twoLetterLanguageId].UTF8String, [hotelId, self](booking::HotelInfo const & hotelInfo) { + if (hotelId != hotelInfo.m_hotelId) return; @@ -250,7 +252,7 @@ using namespace place_page; length++; } - self.sectionsAreReadyCallback({position, length}); + self.sectionsAreReadyCallback({position, length}, self); }); }); }); @@ -404,6 +406,9 @@ using namespace place_page; - (NSURL *)URLToAllReviews { return [NSURL URLWithString:@(m_info.GetSponsoredReviewUrl().c_str())]; } - (NSArray *)photos { + if (_photos) + return _photos; + NSMutableArray * res = [@[] mutableCopy]; for (auto const & p : m_hotelInfo.m_photos) { @@ -415,7 +420,9 @@ using namespace place_page; auto photo = [[MWMGalleryItemModel alloc] initWithImageURL:big previewURL:preview]; [res addObject:photo]; } - return res; + + self.photos = res; + return _photos; } #pragma mark - Bookmark diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/MWMPlacePageLayout.mm b/iphone/Maps/UI/PlacePage/PlacePageLayout/MWMPlacePageLayout.mm index 9f559b0285..18fa64cc57 100644 --- a/iphone/Maps/UI/PlacePage/PlacePageLayout/MWMPlacePageLayout.mm +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/MWMPlacePageLayout.mm @@ -118,7 +118,11 @@ map const kMetaInfoCells = { { self.isPlacePageButtonsEnabled = YES; self.data = data; - data.sectionsAreReadyCallback = ^(NSRange const & range) { + + data.sectionsAreReadyCallback = ^(NSRange const & range, MWMPlacePageData * d) { + if (![self.data isEqual:d]) + return; + [self.placePageView.tableView insertSections:[NSIndexSet indexSetWithIndexesInRange:range] withRowAnimation:UITableViewRowAnimationAutomatic]; };