diff --git a/iphone/CoreApi/CoreApi/PlacePageData/PlacePageData.mm b/iphone/CoreApi/CoreApi/PlacePageData/PlacePageData.mm index d9e1b3449..b034b1fac 100644 --- a/iphone/CoreApi/CoreApi/PlacePageData/PlacePageData.mm +++ b/iphone/CoreApi/CoreApi/PlacePageData/PlacePageData.mm @@ -35,6 +35,8 @@ static PlacePageRoadType convertRoadType(RoadWarningMarkType roadType) { @property(nonatomic, readwrite) PlacePagePreviewData *previewData; @property(nonatomic, readwrite) CLLocationCoordinate2D locationCoordinate; +- (PlacePageObjectType)objectTypeFromRawData; + @end @implementation PlacePageData @@ -46,7 +48,6 @@ static PlacePageRoadType convertRoadType(RoadWarningMarkType roadType) { _infoData = [[PlacePageInfoData alloc] initWithRawData:rawData() ohLocalization:localization]; if (rawData().IsBookmark()) { - _objectType = PlacePageObjectTypeBookmark; _bookmarkData = [[PlacePageBookmarkData alloc] initWithRawData:rawData()]; } @@ -68,7 +69,6 @@ static PlacePageRoadType convertRoadType(RoadWarningMarkType roadType) { } if (rawData().IsTrack()) { - _objectType = PlacePageObjectTypeTrack; auto const & track = GetFramework().GetBookmarkManager().GetTrack(rawData().GetTrackId()); __weak auto weakSelf = self; _trackData = [[PlacePageTrackData alloc] initWithTrack:*track onActivePointChanged:^(void) { @@ -84,6 +84,8 @@ static PlacePageRoadType convertRoadType(RoadWarningMarkType roadType) { [[MWMStorage sharedStorage] addObserver:self]; } + _objectType = [self objectTypeFromRawData]; + m_featureID = rawData().GetID(); m_mercator = rawData().GetMercator(); m_rawTypes = rawData().GetRawTypes(); @@ -146,11 +148,24 @@ static PlacePageRoadType convertRoadType(RoadWarningMarkType roadType) { _bookmarkData = nil; } _previewData = [[PlacePagePreviewData alloc] initWithRawData:rawData()]; + _objectType = [self objectTypeFromRawData]; if (self.onBookmarkStatusUpdate != nil) { self.onBookmarkStatusUpdate(); } } +- (PlacePageObjectType)objectTypeFromRawData { + if (rawData().IsBookmark()) { + return PlacePageObjectTypeBookmark; + } else if (rawData().IsTrack()) { + return PlacePageObjectTypeTrack; + } else if (self.trackData) { + return PlacePageObjectTypeTrackRecording; + } else { + return PlacePageObjectTypePOI; + } +} + #pragma mark - MWMStorageObserver - (void)processCountryEvent:(NSString *)countryId {