diff --git a/iphone/Maps/Classes/CustomAlert/DefaultAlert/MWMDefaultAlert.mm b/iphone/Maps/Classes/CustomAlert/DefaultAlert/MWMDefaultAlert.mm index 56fd386875..56de398587 100644 --- a/iphone/Maps/Classes/CustomAlert/DefaultAlert/MWMDefaultAlert.mm +++ b/iphone/Maps/Classes/CustomAlert/DefaultAlert/MWMDefaultAlert.mm @@ -1,7 +1,6 @@ #import "MWMDefaultAlert.h" #import "MWMAlertViewController.h" #import "MWMDefaultAlert_Protected.h" -#import "MWMPlacePageViewManager.h" #import "MapViewController.h" #import "MapsAppDelegate.h" #import "Statistics.h" diff --git a/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.h b/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.h index 5af2b8b449..a17e2ce56a 100644 --- a/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.h +++ b/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.h @@ -8,7 +8,6 @@ #include "platform/location.hpp" @class MapViewController; -@class MWMPlacePageEntity; @protocol MWMFeatureHolder; @interface MWMMapViewControlsManager : NSObject @@ -43,7 +42,6 @@ - (void)dismissPlacePage; - (void)showPlacePage:(place_page::Info const &)info; -- (void)addPlacePageViews:(NSArray *)views; - (void)addPlace:(BOOL)isBusiness hasPoint:(BOOL)hasPoint point:(m2::PointD const &)point; - (void)dragPlacePage:(CGRect)frame; diff --git a/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.mm b/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.mm index 72eee3b7f6..1518b27cdb 100644 --- a/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.mm +++ b/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.mm @@ -9,9 +9,7 @@ #import "MWMButton.h" #import "MWMFrameworkListener.h" #import "MWMObjectsCategorySelectorController.h" -#import "MWMPlacePageEntity.h" #import "MWMPlacePageManager.h" -#import "MWMPlacePageViewManager.h" #import "MWMRoutePreview.h" #import "MWMRouter.h" #import "MWMSearchManager.h" @@ -306,20 +304,6 @@ extern NSString * const kAlohalyticsTapEventKey; [self.sideButtons setBottomBound:frame.origin.y]; } -- (void)addPlacePageViews:(NSArray *)views -{ - UIView * ownerView = self.ownerController.view; - for (UIView * view in views) - [ownerView addSubview:view]; - for (UIView * view in self.searchManager.topViews) - [ownerView bringSubviewToFront:view]; - if (IPAD) - { - [ownerView bringSubviewToFront:self.menuController.view]; - [ownerView bringSubviewToFront:self.navigationManager.routePreview]; - } -} - #pragma mark - MWMNavigationDashboardManager - (void)routePreviewDidChangeFrame:(CGRect)newFrame diff --git a/iphone/Maps/Classes/MWMAnimator.h b/iphone/Maps/Classes/MWMAnimator.h deleted file mode 100644 index 71555ba27a..0000000000 --- a/iphone/Maps/Classes/MWMAnimator.h +++ /dev/null @@ -1,21 +0,0 @@ -#import - -@protocol Animation - -- (void)animationTick:(CFTimeInterval)dt finished:(BOOL *)finished; - -@end - -@interface MWMAnimator : NSObject - -+ (instancetype)animatorWithScreen:(UIScreen *)screen; -- (void)addAnimation:(id)animatable; -- (void)removeAnimation:(id)animatable; - -@end - -@interface UIView (AnimatorAdditions) - -- (MWMAnimator *)animator; - -@end diff --git a/iphone/Maps/Classes/MWMAnimator.mm b/iphone/Maps/Classes/MWMAnimator.mm deleted file mode 100644 index f191ff8ff3..0000000000 --- a/iphone/Maps/Classes/MWMAnimator.mm +++ /dev/null @@ -1,85 +0,0 @@ -#import "MWMAnimator.h" -#import - -@interface MWMAnimator () - -@property (nonatomic) CADisplayLink * displayLink; -@property (nonatomic) NSMutableSet * animations; - -@end - -@implementation MWMAnimator - -+ (instancetype)animatorWithScreen:(UIScreen *)screen -{ - if (!screen) - screen = [UIScreen mainScreen]; - - MWMAnimator * animator = objc_getAssociatedObject(screen, _cmd); - if (!animator) - { - animator = [[self alloc] initWithScreen:screen]; - objc_setAssociatedObject(screen, _cmd, animator, OBJC_ASSOCIATION_RETAIN_NONATOMIC); - } - return animator; -} - -- (instancetype)initWithScreen:(UIScreen *)screen -{ - self = [super init]; - if (self) - { - self.displayLink = [screen displayLinkWithTarget:self selector:@selector(animationTick:)]; - self.displayLink.paused = YES; - [self.displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes]; - self.animations = [NSMutableSet set]; - } - return self; -} - -- (void)animationTick:(CADisplayLink *)displayLink -{ - CFTimeInterval const dt = displayLink.duration; - for (id a in self.animations.copy) - { - BOOL finished = NO; - [a animationTick:dt finished:&finished]; - - if (finished) - [self.animations removeObject:a]; - - } - - if (self.animations.count == 0) - self.displayLink.paused = YES; -} - -- (void)addAnimation:(id)animation -{ - [self.animations addObject:animation]; - - if (self.animations.count == 1) - self.displayLink.paused = NO; -} - -- (void)removeAnimation:(id )animatable -{ - if (animatable == nil) - return; - - [self.animations removeObject:animatable]; - - if (self.animations.count == 0) - self.displayLink.paused = YES; -} - -@end - -@implementation UIView (AnimatorAdditions) - -- (MWMAnimator *)animator -{ - return [MWMAnimator animatorWithScreen:self.window.screen]; -} - -@end diff --git a/iphone/Maps/Classes/MWMBasePlacePageView.h b/iphone/Maps/Classes/MWMBasePlacePageView.h deleted file mode 100644 index dde6e9651d..0000000000 --- a/iphone/Maps/Classes/MWMBasePlacePageView.h +++ /dev/null @@ -1,29 +0,0 @@ -@class MWMPlacePageEntity, MWMDirectionView, MWMPlacePageTypeDescriptionView; - -@interface MWMBasePlacePageView : SolidTouchView - -@property (weak, nonatomic) IBOutlet UILabel * titleLabel; -@property (weak, nonatomic) IBOutlet UIView * downloadProgressView; -@property (weak, nonatomic) IBOutlet UILabel * externalTitleLabel; -@property (weak, nonatomic) IBOutlet UILabel * subtitleLabel; -@property (weak, nonatomic) IBOutlet UILabel * placeScheduleLabel; -@property (weak, nonatomic) IBOutlet UILabel * addressLabel; -@property (weak, nonatomic) IBOutlet UILabel * distanceLabel; -@property (weak, nonatomic) IBOutlet UIImageView * directionArrow; -@property (weak, nonatomic) IBOutlet UITableView * featureTable; -@property (weak, nonatomic) IBOutlet UIView * separatorView; -@property (weak, nonatomic) IBOutlet UIButton * directionButton; -@property (weak, nonatomic) IBOutlet UIView * ppPreview; -@property (weak, nonatomic) IBOutlet UIView * bookingView; -@property (weak, nonatomic) IBOutlet UILabel * bookingRatingLabel; -@property (weak, nonatomic) IBOutlet UILabel * bookingPriceLabel; -@property (weak, nonatomic) IBOutlet UIImageView * bookingSeparator; - -- (void)configureWithEntity:(MWMPlacePageEntity *)entity; -- (void)addBookmark; -- (void)removeBookmark; -- (void)reloadBookmarkCell; -- (void)updateAndLayoutMyPositionSpeedAndAltitude:(NSString *)text; -- (void)setDistance:(NSString *)distance; - -@end diff --git a/iphone/Maps/Classes/MWMBasePlacePageView.mm b/iphone/Maps/Classes/MWMBasePlacePageView.mm deleted file mode 100644 index a3830df112..0000000000 --- a/iphone/Maps/Classes/MWMBasePlacePageView.mm +++ /dev/null @@ -1,793 +0,0 @@ -#import "MWMBasePlacePageView.h" -#import "Common.h" -#import "MWMCircularProgress.h" -#import "MWMFrameworkListener.h" -#import "MWMLocationHelpers.h" -#import "MWMPlacePage.h" -#import "MWMPlacePageActionBar.h" -#import "MWMPlacePageBookmarkCell.h" -#import "MWMPlacePageBookmarkDelegate.h" -#import "MWMPlacePageButtonCell.h" -#import "MWMPlacePageEntity.h" -#import "MWMPlacePageInfoCell.h" -#import "MWMPlacePageOpeningHoursCell.h" -#import "MWMPlacePageViewManager.h" -#import "MWMStorage.h" -#import "MWMViewController.h" -#import "MapViewController.h" -#import "MapsAppDelegate.h" -#import "NSString+Categories.h" -#import "Statistics.h" -#import "UIColor+MapsMeColor.h" - -#include "map/place_page_info.hpp" - -#include "3party/opening_hours/opening_hours.hpp" -#include "editor/opening_hours_ui.hpp" -#include "editor/ui2oh.hpp" -#include "platform/local_country_file_utils.hpp" - -namespace -{ -CGFloat const kDownloadProgressViewLeftOffset = 12.; -CGFloat const kDownloadProgressViewTopOffset = 4.; -CGFloat const kLabelsBetweenMainOffset = 8.; -CGFloat const kLabelsBetweenSmallOffset = 4.; -CGFloat const kBottomPlacePageOffset = 16.; -CGFloat const kLeftOffset = 16.; -CGFloat const kDefaultHeaderHeight = 16.; -CGFloat const kLabelsPadding = kLeftOffset * 2; -CGFloat const kDirectionArrowSide = 20.; -CGFloat const kOffsetFromLabelsToDistance = 8.; -CGFloat const kOffsetFromDistanceToArrow = 5.; -CGFloat const kMaximumWidth = 360.; - -enum class PlacePageSection -{ - Bookmark, - Metadata, - Editing, - Booking -}; - -vector const kSectionBookmarkCellTypes{MWMPlacePageCellTypeBookmark}; - -vector const kSectionMetadataCellTypes{ - MWMPlacePageCellTypePostcode, MWMPlacePageCellTypePhoneNumber, MWMPlacePageCellTypeWebsite, - MWMPlacePageCellTypeURL, MWMPlacePageCellTypeEmail, MWMPlacePageCellTypeOpenHours, - MWMPlacePageCellTypeWiFi, MWMPlacePageCellTypeCoordinate}; - -vector const kSectionEditingCellTypes{MWMPlacePageCellTypeEditButton, - MWMPlacePageCellTypeAddBusinessButton, - MWMPlacePageCellTypeAddPlaceButton}; - -vector const kSectionBookingCellTypes{MWMPlacePageCellTypeBookingMore}; - -using TCellTypesSectionMap = pair, PlacePageSection>; - -vector const kCellTypesSectionMap{ - {kSectionBookmarkCellTypes, PlacePageSection::Bookmark}, - {kSectionMetadataCellTypes, PlacePageSection::Metadata}, - {kSectionEditingCellTypes, PlacePageSection::Editing}, - {kSectionBookingCellTypes, PlacePageSection::Booking}}; - -MWMPlacePageCellTypeValueMap const kCellType2ReuseIdentifier{ - {MWMPlacePageCellTypeWiFi, "PlacePageInfoCell"}, - {MWMPlacePageCellTypeCoordinate, "PlacePageInfoCell"}, - {MWMPlacePageCellTypePostcode, "PlacePageInfoCell"}, - {MWMPlacePageCellTypeURL, "PlacePageLinkCell"}, - {MWMPlacePageCellTypeWebsite, "PlacePageLinkCell"}, - {MWMPlacePageCellTypeEmail, "PlacePageLinkCell"}, - {MWMPlacePageCellTypePhoneNumber, "PlacePageLinkCell"}, - {MWMPlacePageCellTypeOpenHours, "MWMPlacePageOpeningHoursCell"}, - {MWMPlacePageCellTypeBookmark, "PlacePageBookmarkCell"}, - {MWMPlacePageCellTypeEditButton, "MWMPlacePageButtonCell"}, - {MWMPlacePageCellTypeAddBusinessButton, "MWMPlacePageButtonCell"}, - {MWMPlacePageCellTypeAddPlaceButton, "MWMPlacePageButtonCell"}, - {MWMPlacePageCellTypeBookingMore, "MWMPlacePageButtonCell"}}; - -NSString * reuseIdentifier(MWMPlacePageCellType cellType) -{ - auto const it = kCellType2ReuseIdentifier.find(cellType); - BOOL const haveCell = (it != kCellType2ReuseIdentifier.end()); - ASSERT(haveCell, ()); - return haveCell ? @(it->second.c_str()) : @""; -} - -CGFloat placePageWidth() -{ - CGSize const size = UIScreen.mainScreen.bounds.size; - return IPAD ? kMaximumWidth - : (size.width > size.height ? MIN(kMaximumWidth, size.height) : size.width); -} - -enum class AttributePosition -{ - Title, - ExternalTitle, - Subtitle, - Schedule, - Address -}; -} // namespace - -using namespace storage; - -@interface MWMBasePlacePageView ()< - UITableViewDelegate, UITableViewDataSource, MWMPlacePageOpeningHoursCellProtocol, - MWMPlacePageBookmarkDelegate, MWMCircularProgressProtocol, MWMFrameworkStorageObserver> -{ - vector m_sections; - map> m_cells; -} - -@property(weak, nonatomic) MWMPlacePageEntity * entity; -@property(weak, nonatomic) IBOutlet MWMPlacePage * ownerPlacePage; - -@property(nonatomic, readwrite) BOOL openingHoursCellExpanded; -@property(nonatomic) BOOL isBookmarkCellExpanded; - -@property(nonatomic) MWMCircularProgress * mapDownloadProgress; -@property(nonatomic) TMwmSize downloadMapSize; - -@property(nonatomic) MWMPlacePageBookmarkCell * bookmarkCell; -@property(nonatomic) MWMPlacePageOpeningHoursCell * openingHoursCell; - -@end - -@implementation MWMBasePlacePageView - -- (void)awakeFromNib -{ - [super awakeFromNib]; - self.featureTable.delegate = self; - self.featureTable.dataSource = self; - self.featureTable.separatorColor = [UIColor blackDividers]; - - for (auto const & type : kCellType2ReuseIdentifier) - { - NSString * identifier = @(type.second.c_str()); - [self.featureTable registerNib:[UINib nibWithNibName:identifier bundle:nil] - forCellReuseIdentifier:identifier]; - } - - self.directionArrow.autoresizingMask = UIViewAutoresizingNone; -} - -- (void)configureWithEntity:(MWMPlacePageEntity *)entity -{ - self.entity = entity; - self.isBookmarkCellExpanded = NO; - [self configTable]; - [self configure]; -} - -- (void)configTable -{ - m_sections.clear(); - m_cells.clear(); - self.openingHoursCell = nil; - self.bookmarkCell = nil; - for (auto const cellSection : kCellTypesSectionMap) - { - for (auto const cellType : cellSection.first) - { - if (![self.entity getCellValue:cellType]) - continue; - m_sections.push_back(cellSection.second); - m_cells[cellSection.second].push_back(cellType); - } - } - - sort(m_sections.begin(), m_sections.end()); - m_sections.erase(unique(m_sections.begin(), m_sections.end()), m_sections.end()); -} - -- (void)configure -{ - [self configureMapDownloader]; - - MWMPlacePageEntity * entity = self.entity; - if (entity.isBookmark) - { - if (![entity.bookmarkTitle isEqualToString:entity.title] && entity.bookmarkTitle.length > 0) - { - self.titleLabel.text = entity.bookmarkTitle; - self.externalTitleLabel.text = entity.title; - } - else - { - self.titleLabel.text = entity.title; - self.externalTitleLabel.text = @""; - } - } - else - { - self.titleLabel.text = entity.title; - self.externalTitleLabel.text = @""; - } - - NSMutableString * subtitle = [entity.subtitle mutableCopy]; - NSString * sizeStr = self.downloadProgressView.hidden ? nil : formattedSize(self.downloadMapSize); - if (subtitle) - { - NSString * separator = @(place_page::Info::kSubtitleSeparator); - if (sizeStr) - [subtitle appendString:[NSString stringWithFormat:@"%@%@", separator, sizeStr]]; - NSMutableAttributedString * str = [[NSMutableAttributedString alloc] initWithString:subtitle]; - auto const separatorRanges = [subtitle rangesOfString:separator]; - if (!separatorRanges.empty()) - { - for (auto const & r : separatorRanges) - [str addAttributes:@{ NSForegroundColorAttributeName : [UIColor blackHintText] } range:r]; - } - - auto const starsRanges = [subtitle rangesOfString:@(place_page::Info::kStarSymbol)]; - if (!starsRanges.empty()) - { - for (auto const & r : starsRanges) - [str addAttributes:@{ NSForegroundColorAttributeName : [UIColor yellow] } range:r]; - } - - self.subtitleLabel.attributedText = str; - } - else - { - self.subtitleLabel.text = sizeStr; - } - - BOOL const isMyPosition = entity.isMyPosition; - self.addressLabel.text = entity.address; - - if (!entity.bookingOnlinePrice.length) - { - self.bookingPriceLabel.text = entity.bookingPrice; - [entity onlinePricingWithCompletionBlock:^{ - if (!entity.bookingOnlinePrice.length) - return; - self.bookingPriceLabel.text = entity.bookingOnlinePrice; - [self setNeedsLayout]; - [UIView animateWithDuration:kDefaultAnimationDuration - animations:^{ - [self layoutIfNeeded]; - }]; - } - failure:^{ - // TODO(Vlad): Process an error. - }]; - } - else - { - self.bookingPriceLabel.text = entity.bookingOnlinePrice; - } - - self.bookingRatingLabel.text = entity.bookingRating; - self.bookingView.hidden = !entity.bookingPrice.length && !entity.bookingRating.length; - BOOL const isHeadingAvaible = [CLLocationManager headingAvailable]; - BOOL const noLocation = location_helpers::isMyPositionPendingOrNoPosition(); - self.distanceLabel.hidden = noLocation || isMyPosition; - BOOL const hideDirection = noLocation || isMyPosition || !isHeadingAvaible; - self.directionArrow.hidden = hideDirection; - self.directionButton.hidden = hideDirection; - - [self.featureTable reloadData]; - [self configureCurrentShedule]; - [MWMFrameworkListener addObserver:self]; - [self setNeedsLayout]; - [self layoutIfNeeded]; -} - -- (void)configureMapDownloader -{ - TCountryId const & countryId = self.entity.countryId; - if (countryId == kInvalidCountryId || platform::migrate::NeedMigrate()) - { - self.downloadProgressView.hidden = YES; - } - else - { - self.downloadProgressView.hidden = NO; - [self setNeedsLayout]; - NodeAttrs nodeAttrs; - GetFramework().GetStorage().GetNodeAttrs(countryId, nodeAttrs); - MWMCircularProgress * progress = self.mapDownloadProgress; - self.downloadMapSize = nodeAttrs.m_mwmSize - nodeAttrs.m_localMwmSize; - switch (nodeAttrs.m_status) - { - case NodeStatus::NotDownloaded: - case NodeStatus::Partly: - { - MWMCircularProgressStateVec const affectedStates = {MWMCircularProgressStateNormal, - MWMCircularProgressStateSelected}; - [progress setImageName:@"ic_download" forStates:affectedStates]; - [progress setColoring:MWMButtonColoringBlue forStates:affectedStates]; - progress.state = MWMCircularProgressStateNormal; - break; - } - case NodeStatus::Downloading: - { - auto const & prg = nodeAttrs.m_downloadingProgress; - progress.progress = static_cast(prg.first) / prg.second; - break; - } - case NodeStatus::InQueue: progress.state = MWMCircularProgressStateSpinner; break; - case NodeStatus::Undefined: - case NodeStatus::Error: progress.state = MWMCircularProgressStateFailed; break; - case NodeStatus::OnDisk: - case NodeStatus::OnDiskOutOfDate: - { - self.downloadProgressView.hidden = YES; - [self setNeedsLayout]; - [UIView animateWithDuration:kDefaultAnimationDuration - animations:^{ - [self layoutIfNeeded]; - }]; - break; - } - } - } -} - -- (void)configureCurrentShedule -{ - MWMPlacePageOpeningHoursCell * cell = self.openingHoursCell; - if (cell) - { - self.placeScheduleLabel.text = cell.isClosed ? L(@"closed_now") : L(@"editor_time_open"); - self.placeScheduleLabel.textColor = - cell.isClosed ? [UIColor red] : [UIColor blackSecondaryText]; - } - else - { - self.placeScheduleLabel.text = @""; - } -} - -#pragma mark - Layout - -- (AttributePosition)distanceAttributePosition -{ - if (self.addressLabel.text.length) - return AttributePosition::Address; - else if (!self.addressLabel.text.length && self.placeScheduleLabel.text.length) - return AttributePosition::Schedule; - else if (!self.placeScheduleLabel.text.length && self.subtitleLabel.text.length) - return AttributePosition::Subtitle; - else if (self.externalTitleLabel.text.length) - return AttributePosition::ExternalTitle; - else - return AttributePosition::Title; -} - -- (void)setupLabelsWidthWithBoundedWidth:(CGFloat)bound distancePosition:(AttributePosition)position -{ - auto const defaultMaxWidth = placePageWidth() - kLabelsPadding; - CGFloat const labelsMaxWidth = - self.downloadProgressView.hidden - ? defaultMaxWidth - : defaultMaxWidth - 2 * kDownloadProgressViewLeftOffset - self.downloadProgressView.width; - switch (position) - { - case AttributePosition::Title: - self.titleLabel.width = labelsMaxWidth - bound; - self.subtitleLabel.width = self.addressLabel.width = self.externalTitleLabel.width = - self.placeScheduleLabel.width = 0; - break; - case AttributePosition::ExternalTitle: - self.addressLabel.width = self.subtitleLabel.width = self.placeScheduleLabel.width = 0; - self.externalTitleLabel.width = labelsMaxWidth - bound; - self.titleLabel.width = self.titleLabel.text.length > 0 ? labelsMaxWidth : 0; - break; - case AttributePosition::Subtitle: - self.addressLabel.width = self.placeScheduleLabel.width = 0; - self.titleLabel.width = self.titleLabel.text.length > 0 ? labelsMaxWidth : 0; - self.externalTitleLabel.width = self.externalTitleLabel.text.length > 0 ? labelsMaxWidth : 0; - self.subtitleLabel.width = labelsMaxWidth - bound; - break; - case AttributePosition::Schedule: - self.addressLabel.width = 0; - self.titleLabel.width = self.titleLabel.text.length > 0 ? labelsMaxWidth : 0; - self.externalTitleLabel.width = self.externalTitleLabel.text.length > 0 ? labelsMaxWidth : 0; - self.subtitleLabel.width = self.subtitleLabel.text.length > 0 ? labelsMaxWidth : 0; - self.placeScheduleLabel.width = labelsMaxWidth - bound; - break; - case AttributePosition::Address: - self.titleLabel.width = self.titleLabel.text.length > 0 ? labelsMaxWidth : 0; - self.subtitleLabel.width = self.subtitleLabel.text.length > 0 ? labelsMaxWidth : 0; - self.externalTitleLabel.width = self.externalTitleLabel.text.length > 0 ? labelsMaxWidth : 0; - self.placeScheduleLabel.width = self.placeScheduleLabel.text.length > 0 ? labelsMaxWidth : 0; - self.addressLabel.width = labelsMaxWidth - bound; - break; - } - - self.externalTitleLabel.width = self.entity.isBookmark ? labelsMaxWidth : 0; - - CGFloat const bookingWidth = labelsMaxWidth / 2; - self.bookingRatingLabel.width = bookingWidth; - self.bookingPriceLabel.width = bookingWidth - kLabelsBetweenSmallOffset; - self.bookingView.width = labelsMaxWidth; - - [self.titleLabel sizeToFit]; - [self.subtitleLabel sizeToFit]; - [self.addressLabel sizeToFit]; - [self.externalTitleLabel sizeToFit]; - [self.placeScheduleLabel sizeToFit]; - [self.bookingRatingLabel sizeToFit]; - [self.bookingPriceLabel sizeToFit]; -} - -- (void)setDistance:(NSString *)distance -{ - self.distanceLabel.text = distance; - self.distanceLabel.width = placePageWidth() - kLabelsPadding; - [self.distanceLabel sizeToFit]; - [self layoutDistanceBoxWithPosition:[self distanceAttributePosition]]; -} - -- (void)layoutSubviews -{ - [super layoutSubviews]; - CGFloat const bound = self.distanceLabel.width + kDirectionArrowSide + - kOffsetFromDistanceToArrow + kOffsetFromLabelsToDistance; - AttributePosition const position = [self distanceAttributePosition]; - [self setupLabelsWidthWithBoundedWidth:bound distancePosition:position]; - [self setupBookingView]; - [self layoutLabelsAndBooking]; - [self layoutTableViewWithPosition:position]; - [self setDistance:self.distanceLabel.text]; - self.height = self.featureTable.height + self.ppPreview.height; -} - -- (void)setupBookingView -{ - self.bookingRatingLabel.origin = {}; - self.bookingPriceLabel.origin = {self.bookingView.width - self.bookingPriceLabel.width, 0}; - self.bookingSeparator.origin = {0, self.bookingRatingLabel.maxY + kLabelsBetweenMainOffset}; - self.bookingView.height = self.bookingSeparator.maxY + kLabelsBetweenMainOffset; -} - -- (void)layoutLabelsAndBooking -{ - BOOL const isDownloadProgressViewHidden = self.downloadProgressView.hidden; - if (!isDownloadProgressViewHidden) - self.downloadProgressView.origin = {kDownloadProgressViewLeftOffset, - kDownloadProgressViewTopOffset}; - - CGFloat const leftOffset = isDownloadProgressViewHidden - ? kLeftOffset - : self.downloadProgressView.maxX + kDownloadProgressViewLeftOffset; - - auto originFrom = ^CGPoint(UIView * v, BOOL isBigOffset) { - CGFloat const offset = isBigOffset ? kLabelsBetweenMainOffset : kLabelsBetweenSmallOffset; - if ([v isKindOfClass:[UILabel class]]) - return {leftOffset, (static_cast(v).text.length == 0 ? v.minY : v.maxY) + offset}; - return {leftOffset, v.hidden ? v.minY : v.maxY + offset}; - }; - - self.titleLabel.origin = {leftOffset, kLabelsBetweenSmallOffset}; - self.externalTitleLabel.origin = originFrom(self.titleLabel, NO); - self.subtitleLabel.origin = originFrom(self.externalTitleLabel, NO); - self.placeScheduleLabel.origin = originFrom(self.subtitleLabel, NO); - self.bookingView.origin = originFrom(self.placeScheduleLabel, NO); - self.addressLabel.origin = originFrom(self.bookingView, YES); -} - -- (void)layoutDistanceBoxWithPosition:(AttributePosition)position -{ - auto getY = ^CGFloat(AttributePosition p) { - // Have to align distance box for the first label's line. - CGFloat const defaultCenter = p == AttributePosition::Title ? 12 : 8; - switch (position) - { - case AttributePosition::Title: return self.titleLabel.minY + defaultCenter; - case AttributePosition::ExternalTitle: return self.externalTitleLabel.minY + defaultCenter; - case AttributePosition::Subtitle: return self.subtitleLabel.minY + defaultCenter; - case AttributePosition::Schedule: return self.placeScheduleLabel.minY + defaultCenter; - case AttributePosition::Address: return self.addressLabel.minY + defaultCenter; - } - }; - - CGFloat const distanceX = placePageWidth() - kLeftOffset - self.distanceLabel.width; - CGFloat const directionX = distanceX - kOffsetFromDistanceToArrow - kDirectionArrowSide; - CGFloat const y = getY(position); - CGPoint const center = {directionX + kDirectionArrowSide / 2, y}; - self.directionArrow.center = center; - self.directionButton.origin = {center.x - self.directionButton.width / 2, - center.y - self.directionButton.height / 2}; - self.distanceLabel.center = {distanceX + self.distanceLabel.width / 2, - self.directionArrow.center.y}; -} - -- (void)layoutTableViewWithPosition:(AttributePosition)position -{ - auto getY = ^CGFloat(AttributePosition p) { - if (self.bookingView.hidden) - { - switch (position) - { - case AttributePosition::Title: return self.titleLabel.maxY + kBottomPlacePageOffset; - case AttributePosition::ExternalTitle: - return self.externalTitleLabel.maxY + kBottomPlacePageOffset; - case AttributePosition::Subtitle: return self.subtitleLabel.maxY + kBottomPlacePageOffset; - case AttributePosition::Schedule: - return self.placeScheduleLabel.maxY + kBottomPlacePageOffset; - case AttributePosition::Address: return self.addressLabel.maxY + kBottomPlacePageOffset; - } - } - else - { - switch (position) - { - case AttributePosition::Title: - case AttributePosition::ExternalTitle: - case AttributePosition::Subtitle: - case AttributePosition::Schedule: return self.bookingView.maxY + kBottomPlacePageOffset; - case AttributePosition::Address: return self.addressLabel.maxY + kBottomPlacePageOffset; - } - } - }; - - self.separatorView.minY = getY(position); - self.ppPreview.frame = {{}, {self.ppPreview.superview.width, self.separatorView.maxY}}; - self.featureTable.minY = self.separatorView.maxY; - self.featureTable.height = self.featureTable.contentSize.height; -} - -#pragma mark - Actions - -- (void)addBookmark -{ - [Statistics logEvent:kStatEventName(kStatPlacePage, kStatToggleBookmark) - withParameters:@{kStatValue : kStatAdd}]; - [self.subtitleLabel sizeToFit]; - - m_sections.push_back(PlacePageSection::Bookmark); - m_cells[PlacePageSection::Bookmark].push_back(MWMPlacePageCellTypeBookmark); - sort(m_sections.begin(), m_sections.end()); - [self configure]; -} - -- (void)removeBookmark -{ - [Statistics logEvent:kStatEventName(kStatPlacePage, kStatToggleBookmark) - withParameters:@{kStatValue : kStatRemove}]; - - auto const it = find(m_sections.begin(), m_sections.end(), PlacePageSection::Bookmark); - if (it != m_sections.end()) - { - m_sections.erase(it); - m_cells.erase(PlacePageSection::Bookmark); - } - - self.bookmarkCell = nil; - - [self configure]; -} - -- (void)reloadBookmarkCell -{ - MWMPlacePageCellType const type = MWMPlacePageCellTypeBookmark; - [self fillCell:self.bookmarkCell withType:type]; - [self configure]; - [CATransaction begin]; - [CATransaction setCompletionBlock:^{ - [self setNeedsLayout]; - dispatch_async(dispatch_get_main_queue(), ^{ - [self.ownerPlacePage refresh]; - }); - }]; - [CATransaction commit]; -} - -- (IBAction)directionButtonTap -{ - [Statistics logEvent:kStatEventName(kStatPlacePage, kStatCompass)]; - [self.ownerPlacePage.manager showDirectionViewWithTitle:self.titleLabel.text - type:self.subtitleLabel.text]; -} - -- (void)updateAndLayoutMyPositionSpeedAndAltitude:(NSString *)text -{ - self.subtitleLabel.text = text; - [self setNeedsLayout]; -} - -#pragma mark - MWMPlacePageBookmarkDelegate - -- (void)reloadBookmark { [self reloadBookmarkCell]; } -- (void)editBookmarkTap { [self.ownerPlacePage editBookmark]; } -- (void)moreTap -{ - self.isBookmarkCellExpanded = YES; - [self reloadBookmarkCell]; -} - -#pragma mark - MWMPlacePageOpeningHoursCellProtocol - -- (BOOL)forcedButton { return NO; } -- (BOOL)isPlaceholder { return NO; } -- (BOOL)isEditor { return NO; } -- (void)setOpeningHoursCellExpanded:(BOOL)openingHoursCellExpanded -{ - _openingHoursCellExpanded = openingHoursCellExpanded; - UITableView * tv = self.featureTable; - MWMPlacePageCellType const type = MWMPlacePageCellTypeOpenHours; - [self fillCell:self.openingHoursCell withType:type]; - [tv beginUpdates]; - [CATransaction begin]; - [CATransaction setCompletionBlock:^{ - [self setNeedsLayout]; - dispatch_async(dispatch_get_main_queue(), ^{ - [self.ownerPlacePage refresh]; - }); - }]; - [tv endUpdates]; - [CATransaction commit]; -} - -#pragma mark - UITableView - -- (MWMPlacePageCellType)cellTypeForIndexPath:(NSIndexPath *)indexPath -{ - return [self cellsForSection:indexPath.section][indexPath.row]; -} - -- (NSString *)cellIdentifierForIndexPath:(NSIndexPath *)indexPath -{ - MWMPlacePageCellType const cellType = [self cellTypeForIndexPath:indexPath]; - return reuseIdentifier(cellType); -} - -- (void)fillCell:(UITableViewCell *)cell withType:(MWMPlacePageCellType)cellType -{ - MWMPlacePageEntity * entity = self.entity; - switch (cellType) - { - case MWMPlacePageCellTypeBookmark: - [static_cast(cell) configWithText:entity.bookmarkDescription - delegate:self - placePageWidth:placePageWidth() - isOpen:self.isBookmarkCellExpanded - isHtml:entity.isHTMLDescription]; - break; - case MWMPlacePageCellTypeOpenHours: - [(MWMPlacePageOpeningHoursCell *)cell configWithDelegate:self - info:[entity getCellValue:cellType]]; - break; - case MWMPlacePageCellTypeEditButton: - case MWMPlacePageCellTypeAddBusinessButton: - case MWMPlacePageCellTypeAddPlaceButton: - case MWMPlacePageCellTypeBookingMore: - [static_cast(cell) config:self.ownerPlacePage.manager - forType:cellType]; - break; - default: - { - MWMPlacePageInfoCell * tCell = (MWMPlacePageInfoCell *)cell; - tCell.currentEntity = entity; - [tCell configureWithType:cellType info:[entity getCellValue:cellType]]; - break; - } - } -} - -- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath -{ - MWMPlacePageCellType const cellType = [self cellTypeForIndexPath:indexPath]; - switch (cellType) - { - case MWMPlacePageCellTypeBookmark: return self.bookmarkCell.cellHeight; - case MWMPlacePageCellTypeOpenHours: return self.openingHoursCell.cellHeight; - default: return UITableViewAutomaticDimension; - } -} - -- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath -{ - return UITableViewAutomaticDimension; -} - -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section -{ - return [self cellsForSection:section].size(); -} - -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return m_sections.size(); } -- (UITableViewCell *)tableView:(UITableView *)tableView - cellForRowAtIndexPath:(NSIndexPath *)indexPath -{ - MWMPlacePageCellType const type = [self cellTypeForIndexPath:indexPath]; - NSString * identifier = reuseIdentifier(type); - UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:identifier]; - switch (type) - { - case MWMPlacePageCellTypeBookmark: - if (self.bookmarkCell) - return self.bookmarkCell; - - self.bookmarkCell = static_cast(cell); - break; - case MWMPlacePageCellTypeOpenHours: - if (self.openingHoursCell) - return self.openingHoursCell; - - self.openingHoursCell = static_cast(cell); - break; - default: break; - } - [self fillCell:cell withType:type]; - return cell; -} - -- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section -{ - return section == m_sections.size() - 1 ? kDefaultHeaderHeight : 0.; -} - -- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section -{ - if (m_sections[section] == PlacePageSection::Bookmark) - return 0.001; - return kDefaultHeaderHeight; -} - -- (vector)cellsForSection:(NSInteger)section -{ - NSAssert(m_sections.size() > section, @"Invalid section"); - return m_cells[m_sections[section]]; -} - -#pragma mark - MWMFrameworkStorageObserver - -- (void)processCountryEvent:(TCountryId const &)countryId -{ - if (countryId != self.entity.countryId) - return; - [self configureMapDownloader]; -} - -- (void)processCountry:(TCountryId const &)countryId - progress:(MapFilesDownloader::TProgress const &)progress -{ - if (countryId != self.entity.countryId) - return; - self.mapDownloadProgress.progress = static_cast(progress.first) / progress.second; -} - -#pragma mark - MWMCircularProgressProtocol - -- (void)progressButtonPressed:(nonnull MWMCircularProgress *)progress -{ - TCountryId const & countryId = self.entity.countryId; - NodeAttrs nodeAttrs; - GetFramework().GetStorage().GetNodeAttrs(countryId, nodeAttrs); - MWMAlertViewController * avc = self.ownerPlacePage.manager.ownerViewController.alertController; - switch (nodeAttrs.m_status) - { - case NodeStatus::NotDownloaded: - case NodeStatus::Partly: - [MWMStorage downloadNode:countryId alertController:avc onSuccess:nil]; - break; - case NodeStatus::Undefined: - case NodeStatus::Error: [MWMStorage retryDownloadNode:countryId alertController:avc]; break; - case NodeStatus::OnDiskOutOfDate: [MWMStorage updateNode:countryId alertController:avc]; break; - case NodeStatus::Downloading: - case NodeStatus::InQueue: [MWMStorage cancelDownloadNode:countryId]; break; - case NodeStatus::OnDisk: break; - } -} - -#pragma mark - Properties - -- (MWMCircularProgress *)mapDownloadProgress -{ - if (!_mapDownloadProgress) - { - _mapDownloadProgress = - [MWMCircularProgress downloaderProgressForParentView:self.downloadProgressView]; - _mapDownloadProgress.delegate = self; - } - return _mapDownloadProgress; -} - -@end diff --git a/iphone/Maps/Classes/MWMDirectionView.h b/iphone/Maps/Classes/MWMDirectionView.h index e9f8d99ee9..830862dcc6 100644 --- a/iphone/Maps/Classes/MWMDirectionView.h +++ b/iphone/Maps/Classes/MWMDirectionView.h @@ -10,14 +10,11 @@ @property (weak, nonatomic) IBOutlet UIImageView * directionArrow; @property (weak, nonatomic) IBOutlet UIView * contentView; -- (instancetype)initWithManager:(MWMPlacePageViewManager *)manager; - (void)setDirectionArrowTransform:(CGAffineTransform)transform; - (void)show; - (instancetype)initWithCoder:(NSCoder *)aDecoder __attribute__((unavailable("initWithCoder is not available"))); - (instancetype)initWithFrame:(CGRect)frame __attribute__((unavailable("initWithFrame is not available"))); -- (instancetype)init __attribute__((unavailable("init is not available"))); - @end diff --git a/iphone/Maps/Classes/MWMDirectionView.mm b/iphone/Maps/Classes/MWMDirectionView.mm index 9026fc4638..73eb046cd7 100644 --- a/iphone/Maps/Classes/MWMDirectionView.mm +++ b/iphone/Maps/Classes/MWMDirectionView.mm @@ -1,6 +1,5 @@ #import "MWMDirectionView.h" #import "MWMMapViewControlsManager.h" -#import "MWMPlacePageViewManager.h" #import "MapViewController.h" #import "MapsAppDelegate.h" #import "UIFont+MapsMeFonts.h" @@ -10,23 +9,21 @@ static CGFloat const kDirectionArrowSide = IPAD ? 260. : 160.; @interface MWMDirectionView () -@property (weak, nonatomic) MWMPlacePageViewManager * manager; @property (nonatomic) CGSize defaultSize; @end @implementation MWMDirectionView -- (instancetype)initWithManager:(MWMPlacePageViewManager *)manager +- (instancetype)init { self = [[[NSBundle mainBundle] loadNibNamed:kDirectionViewNibName owner:nil options:nil] firstObject]; - [self setup:manager]; + [self setup]; return self; } -- (void)setup:(MWMPlacePageViewManager *)manager +- (void)setup { - self.manager = manager; self.directionArrow.size = CGSizeMake(kDirectionArrowSide, kDirectionArrowSide); self.directionArrow.image = [UIImage imageNamed:IPAD ? @"direction_big" : @"direction_mini"]; diff --git a/iphone/Maps/Classes/MWMEditBookmarkController.h b/iphone/Maps/Classes/MWMEditBookmarkController.h index 1f0ae89665..d8d47c6e20 100644 --- a/iphone/Maps/Classes/MWMEditBookmarkController.h +++ b/iphone/Maps/Classes/MWMEditBookmarkController.h @@ -1,11 +1,9 @@ #import "MWMTableViewController.h" -@class MWMPlacePageViewManager; @class MWMPlacePageData; @interface MWMEditBookmarkController : MWMTableViewController @property(weak, nonatomic) MWMPlacePageData * data; -@property (nonatomic) MWMPlacePageViewManager * manager; @end diff --git a/iphone/Maps/Classes/MWMEditBookmarkController.mm b/iphone/Maps/Classes/MWMEditBookmarkController.mm index 1ec165021d..f5ec046b5e 100644 --- a/iphone/Maps/Classes/MWMEditBookmarkController.mm +++ b/iphone/Maps/Classes/MWMEditBookmarkController.mm @@ -5,8 +5,6 @@ #import "MWMButtonCell.h" #import "MWMNoteCell.h" #import "MWMPlacePageData.h" -#import "MWMPlacePageEntity.h" -#import "MWMPlacePageViewManager.h" #import "SelectSetVC.h" #import "UIImageView+Coloring.h" #import "UIViewController+Navigation.h" @@ -53,25 +51,12 @@ enum RowInMetaInfo { [super viewDidLoad]; auto data = self.data; - NSAssert(self.manager || data, @"Entity and data can't be nil both!"); -// if (IPAD) -// { -// MWMPlacePageEntity * en = self.manager.entity; -// self.cachedDescription = en.bookmarkDescription; -// self.cachedTitle = en.bookmarkTitle; -// self.cachedCategory = en.bookmarkCategory; -// self.cachedColor = en.bookmarkColor; -// m_cachedBac = en.bac; -// } -// else -// { - self.cachedDescription = data.bookmarkDescription; - self.cachedTitle = data.externalTitle ? data.externalTitle : data.title; - self.cachedCategory = data.bookmarkCategory; - self.cachedColor = data.bookmarkColor; - m_cachedBac = data.bac; -// } - + NSAssert(data, @"Entity and data can't be nil both!"); + self.cachedDescription = data.bookmarkDescription; + self.cachedTitle = data.externalTitle ? data.externalTitle : data.title; + self.cachedCategory = data.bookmarkCategory; + self.cachedColor = data.bookmarkColor; + m_cachedBac = data.bac; [self configNavBar]; [self registerCells]; } @@ -109,50 +94,28 @@ enum RowInMetaInfo - (void)onSave { [self.view endEditing:YES]; -// if (IPAD) -// { -// MWMPlacePageEntity * en = self.manager.entity; -// en.bookmarkDescription = self.cachedDescription; -// en.bookmarkColor = self.cachedColor; -// en.bookmarkCategory = self.cachedCategory; -// en.bookmarkTitle = self.cachedTitle; -// en.bac = m_cachedBac; -// [en synchronize]; -// [self.manager reloadBookmark]; -// } -// else -// { - Framework & f = GetFramework(); - BookmarkCategory * category = f.GetBmCategory(m_cachedBac.m_categoryIndex); - if (!category) + Framework & f = GetFramework(); + BookmarkCategory * category = f.GetBmCategory(m_cachedBac.m_categoryIndex); + if (!category) + return; + + { + BookmarkCategory::Guard guard(*category); + Bookmark * bookmark = + static_cast(guard.m_controller.GetUserMarkForEdit(m_cachedBac.m_bookmarkIndex)); + if (!bookmark) return; - { - BookmarkCategory::Guard guard(*category); - Bookmark * bookmark = - static_cast(guard.m_controller.GetUserMarkForEdit(m_cachedBac.m_bookmarkIndex)); - if (!bookmark) - return; + bookmark->SetType(self.cachedColor.UTF8String); + bookmark->SetDescription(self.cachedDescription.UTF8String); + bookmark->SetName(self.cachedTitle.UTF8String); + } - bookmark->SetType(self.cachedColor.UTF8String); - bookmark->SetDescription(self.cachedDescription.UTF8String); - bookmark->SetName(self.cachedTitle.UTF8String); - } - - category->SaveToKMLFile(); - f.UpdatePlacePageInfoForCurrentSelection(); -// } + category->SaveToKMLFile(); + f.UpdatePlacePageInfoForCurrentSelection(); [self backTap]; } -- (void)backTap -{ -// if (IPAD) -// [self dismissViewControllerAnimated:YES completion:nil]; -// else - [super backTap]; -} - #pragma mark - UITableView - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView @@ -277,15 +240,8 @@ enum RowInMetaInfo - (void)cellSelect:(UITableViewCell *)cell { -// if (IPAD) -// { -// [self.manager removeBookmark]; -// } -// else -// { - [self.data updateBookmarkStatus:NO]; - GetFramework().UpdatePlacePageInfoForCurrentSelection(); -// } + [self.data updateBookmarkStatus:NO]; + GetFramework().UpdatePlacePageInfoForCurrentSelection(); [self backTap]; } diff --git a/iphone/Maps/Classes/MWMExtendedPlacePageView.h b/iphone/Maps/Classes/MWMExtendedPlacePageView.h deleted file mode 100644 index 59143b9e2e..0000000000 --- a/iphone/Maps/Classes/MWMExtendedPlacePageView.h +++ /dev/null @@ -1,3 +0,0 @@ -@interface MWMExtendedPlacePageView : SolidTouchView - -@end diff --git a/iphone/Maps/Classes/MWMExtendedPlacePageView.mm b/iphone/Maps/Classes/MWMExtendedPlacePageView.mm deleted file mode 100644 index 4a03cfc352..0000000000 --- a/iphone/Maps/Classes/MWMExtendedPlacePageView.mm +++ /dev/null @@ -1,13 +0,0 @@ -#import "MWMExtendedPlacePageView.h" - -@implementation MWMExtendedPlacePageView - -- (instancetype)initWithCoder:(NSCoder *)aDecoder -{ - self = [super initWithCoder:aDecoder]; - if (self) - self.autoresizingMask = UIViewAutoresizingNone; - return self; -} - -@end diff --git a/iphone/Maps/Classes/MWMPPPreviewLayoutHelper.mm b/iphone/Maps/Classes/MWMPPPreviewLayoutHelper.mm index 8d182e2bc9..6fcc397cde 100644 --- a/iphone/Maps/Classes/MWMPPPreviewLayoutHelper.mm +++ b/iphone/Maps/Classes/MWMPPPreviewLayoutHelper.mm @@ -268,4 +268,11 @@ array kPreviewCells = {{@"_MWMPPPTitle", @"_MWMPPPExternalTitle", return rect.origin.y + rect.size.height; } +- (MWMDirectionView *)directionView +{ + if (!_directionView) + _directionView = [[MWMDirectionView alloc] init]; + return _directionView; +} + @end diff --git a/iphone/Maps/Classes/MWMPlacePage+Animation.h b/iphone/Maps/Classes/MWMPlacePage+Animation.h deleted file mode 100644 index 6f01dec9a5..0000000000 --- a/iphone/Maps/Classes/MWMPlacePage+Animation.h +++ /dev/null @@ -1,14 +0,0 @@ -#import "MWMPlacePage.h" -#import "MWMSpringAnimation.h" - -@class MWMSpringAnimation; - -@interface MWMPlacePage (Animation) - -@property (nonatomic) MWMSpringAnimation * springAnimation; - -- (void)cancelSpringAnimation; -- (void)startAnimatingPlacePage:(MWMPlacePage *)placePage initialVelocity:(CGPoint)velocity completion:(TMWMVoidBlock)completion; -- (CGPoint)targetPoint; - -@end diff --git a/iphone/Maps/Classes/MWMPlacePage+Animation.mm b/iphone/Maps/Classes/MWMPlacePage+Animation.mm deleted file mode 100644 index 3dc7837823..0000000000 --- a/iphone/Maps/Classes/MWMPlacePage+Animation.mm +++ /dev/null @@ -1,37 +0,0 @@ -#import "MWMPlacePage+Animation.h" -#import "MWMPlacePageViewManager.h" -#import "MWMViewController.h" -#import - -@implementation MWMPlacePage (Animation) - -- (void)setSpringAnimation:(MWMSpringAnimation *)springAnimation -{ - objc_setAssociatedObject(self, @selector(springAnimation), springAnimation, OBJC_ASSOCIATION_RETAIN_NONATOMIC); -} - -- (MWMSpringAnimation *)springAnimation -{ - return objc_getAssociatedObject(self, @selector(springAnimation)); -} - -- (CGPoint)targetPoint -{ - [self doesNotRecognizeSelector:_cmd]; - return CGPointZero; -} - -- (void)cancelSpringAnimation -{ - [self.manager.ownerViewController.view.animator removeAnimation:self.springAnimation]; - self.springAnimation = nil; -} - -- (void)startAnimatingPlacePage:(MWMPlacePage *)placePage initialVelocity:(CGPoint)velocity completion:(TMWMVoidBlock)completion -{ - [self cancelSpringAnimation]; - self.springAnimation = [MWMSpringAnimation animationWithView:placePage.extendedPlacePageView target:placePage.targetPoint velocity:velocity completion:completion]; - [self.manager.ownerViewController.view.animator addAnimation:self.springAnimation]; -} - -@end diff --git a/iphone/Maps/Classes/MWMPlacePage.h b/iphone/Maps/Classes/MWMPlacePage.h deleted file mode 100644 index ac4ae5b5f5..0000000000 --- a/iphone/Maps/Classes/MWMPlacePage.h +++ /dev/null @@ -1,41 +0,0 @@ -#import - -@class MWMBasePlacePageView, MWMPlacePageViewManager, MWMPlacePageActionBar; - -@interface MWMPlacePage : NSObject - -@property (nonatomic) IBOutlet MWMBasePlacePageView * basePlacePageView; -@property (nonatomic) IBOutlet UIView * extendedPlacePageView; -@property (nonatomic) IBOutlet UIImageView * anchorImageView; -@property (nonatomic) IBOutlet UIPanGestureRecognizer * panRecognizer; -@property (weak, nonatomic, readonly) MWMPlacePageViewManager * manager; -@property (nonatomic) MWMPlacePageActionBar * actionBar; -@property (nonatomic) CGFloat topBound; -@property (nonatomic) CGFloat leftBound; -@property (nonatomic) CGFloat parentViewHeight; -@property (nonatomic) CGFloat keyboardHeight; - -- (instancetype)initWithManager:(MWMPlacePageViewManager *)manager; -- (void)show; -- (void)hide; -- (void)dismiss; -- (void)configure; - -#pragma mark - Actions -- (void)addBookmark; -- (void)removeBookmark; -- (void)editBookmark; -- (void)reloadBookmark; -- (void)addPlacePageShadowToView:(UIView *)view offset:(CGSize)offset; - -- (IBAction)didTap:(UITapGestureRecognizer *)sender; - -- (void)setDirectionArrowTransform:(CGAffineTransform)transform; -- (void)setDistance:(NSString *)distance; -- (void)updateMyPositionStatus:(NSString *)status; - -- (void)refresh; - -- (instancetype)init __attribute__((unavailable("call initWithManager: instead"))); - -@end diff --git a/iphone/Maps/Classes/MWMPlacePage.mm b/iphone/Maps/Classes/MWMPlacePage.mm deleted file mode 100644 index 9d411d5e9e..0000000000 --- a/iphone/Maps/Classes/MWMPlacePage.mm +++ /dev/null @@ -1,167 +0,0 @@ -#import "MapsAppDelegate.h" -#import "MapViewController.h" -#import "MWMBasePlacePageView.h" -#import "MWMDirectionView.h" -#import "MWMPlacePage.h" -#import "MWMPlacePageActionBar.h" -#import "MWMPlacePageEntity.h" -#import "MWMPlacePageViewManager.h" -#import "Statistics.h" - -static NSString * const kPlacePageNibIdentifier = @"PlacePageView"; -static NSString * const kPlacePageViewCenterKeyPath = @"center"; -static NSString * const kPP2BookmarkEditingSegue = @"PP2BookmarkEditing"; -extern NSString * const kPP2BookmarkEditingIPADSegue = @"PP2BookmarkEditingIPAD"; - -@interface MWMPlacePage () - -@property (weak, nonatomic, readwrite) MWMPlacePageViewManager * manager; - -@end - -@implementation MWMPlacePage - -- (instancetype)initWithManager:(MWMPlacePageViewManager *)manager -{ - self = [super init]; - if (self) - { - [[NSBundle mainBundle] loadNibNamed:kPlacePageNibIdentifier owner:self options:nil]; - self.manager = manager; - if (!IPAD) - [self.extendedPlacePageView addObserver:self - forKeyPath:kPlacePageViewCenterKeyPath - options:NSKeyValueObservingOptionNew - context:nullptr]; - } - return self; -} - -- (void)dealloc -{ - if (!IPAD) - [self.extendedPlacePageView removeObserver:self forKeyPath:kPlacePageViewCenterKeyPath]; -} - -- (void)observeValueForKeyPath:(NSString *)keyPath - ofObject:(id)object - change:(NSDictionary *)change - context:(void *)context -{ - if ([self.extendedPlacePageView isEqual:object] && [keyPath isEqualToString:kPlacePageViewCenterKeyPath]) - [self.manager dragPlacePage:self.extendedPlacePageView.frame]; -} - -- (void)configure -{ - MWMPlacePageViewManager * manager = self.manager; - MWMPlacePageEntity * entity = manager.entity; - [self.basePlacePageView configureWithEntity:entity]; - BOOL const isPrepareRouteMode = MapsAppDelegate.theApp.routingPlaneMode != MWMRoutingPlaneModeNone; - if (self.actionBar.isPrepareRouteMode == isPrepareRouteMode) - { - [self.actionBar configureWithPlacePageManager:manager]; - } - else - { - [self.actionBar removeFromSuperview]; - self.actionBar = [MWMPlacePageActionBar actionBarForPlacePageManager:manager]; - } -} - -- (void)show -{ - // Should override this method if you want to show place page with custom animation. -} - -- (void)hide -{ - // Should override this method if you want to hide place page with custom animation. -} - -- (void)dismiss -{ - [self.extendedPlacePageView removeFromSuperview]; - [self.actionBar removeFromSuperview]; - self.actionBar = nil; -} - -#pragma mark - Actions - -- (void)addBookmark -{ - [self.basePlacePageView addBookmark]; - self.actionBar.isBookmark = YES; -} - -- (void)removeBookmark -{ - [self.basePlacePageView removeBookmark]; - self.actionBar.isBookmark = NO; -} - -- (void)addPlacePageShadowToView:(UIView *)view offset:(CGSize)offset -{ - CALayer * layer = view.layer; - layer.masksToBounds = NO; - layer.shadowColor = UIColor.blackColor.CGColor; - layer.shadowRadius = 4.; - layer.shadowOpacity = 0.24f; - layer.shadowOffset = offset; - layer.shouldRasterize = YES; - layer.rasterizationScale = [[UIScreen mainScreen] scale]; -} - -- (void)setDirectionArrowTransform:(CGAffineTransform)transform -{ - self.basePlacePageView.directionArrow.transform = transform; -} - -- (void)setDistance:(NSString *)distance -{ - self.basePlacePageView.distance = distance; -} - -- (void)updateMyPositionStatus:(NSString *)status -{ - [self.basePlacePageView updateAndLayoutMyPositionSpeedAndAltitude:status]; -} - -- (void)editBookmark -{ - MWMPlacePageViewManager * manager = self.manager; - [manager.ownerViewController - performSegueWithIdentifier:IPAD ? kPP2BookmarkEditingIPADSegue : kPP2BookmarkEditingSegue - sender:manager]; -} - -- (void)reloadBookmark -{ - [self.basePlacePageView reloadBookmarkCell]; -} - -- (IBAction)didTap:(UITapGestureRecognizer *)sender -{ -// This method should be оverridden if you want to process custom tap. -} - -- (IBAction)didPan:(UIPanGestureRecognizer *)sender -{ - // This method should be оverridden if you want to process custom pan. -} - -- (void)refresh -{ - // This method should be оverridden. -} - -#pragma mark - Properties - -- (MWMPlacePageActionBar *)actionBar -{ - if (!_actionBar) - _actionBar = [MWMPlacePageActionBar actionBarForPlacePageManager:self.manager]; - return _actionBar; -} - -@end diff --git a/iphone/Maps/Classes/MWMPlacePageActionBar.h b/iphone/Maps/Classes/MWMPlacePageActionBar.h index 9d8aef44a5..b04e7666c1 100644 --- a/iphone/Maps/Classes/MWMPlacePageActionBar.h +++ b/iphone/Maps/Classes/MWMPlacePageActionBar.h @@ -1,4 +1,3 @@ -@class MWMPlacePageViewManager; @class MWMPlacePageData; #import "MWMCircularProgress.h" @@ -32,9 +31,6 @@ - (UIView *)shareAnchor; - (BOOL)isPrepareRouteMode; -+ (MWMPlacePageActionBar *)actionBarForPlacePageManager:(MWMPlacePageViewManager *)placePageManager; -- (void)configureWithPlacePageManager:(MWMPlacePageViewManager *)placePageManager; - - (instancetype)init __attribute__((unavailable("call actionBarForPlacePage: instead"))); - (instancetype)initWithCoder:(NSCoder *)aDecoder __attribute__((unavailable("call actionBarForPlacePage: instead"))); - (instancetype)initWithFrame:(CGRect)frame __attribute__((unavailable("call actionBarForPlacePage: instead"))); diff --git a/iphone/Maps/Classes/MWMPlacePageActionBar.mm b/iphone/Maps/Classes/MWMPlacePageActionBar.mm index 43f8e46333..eb028e4dd5 100644 --- a/iphone/Maps/Classes/MWMPlacePageActionBar.mm +++ b/iphone/Maps/Classes/MWMPlacePageActionBar.mm @@ -1,10 +1,7 @@ #import "MWMPlacePageActionBar.h" #import "Common.h" #import "MWMActionBarButton.h" -#import "MWMBasePlacePageView.h" -#import "MWMPlacePageEntity.h" #import "MWMPlacePageProtocol.h" -#import "MWMPlacePageViewManager.h" #import "MapViewController.h" #import "MapsAppDelegate.h" @@ -20,7 +17,6 @@ extern NSString * const kAlohalyticsTapEventKey; vector m_additionalButtons; } -@property(weak, nonatomic) MWMPlacePageViewManager * placePageManager; @property(copy, nonatomic) IBOutletCollection(UIView) NSArray * buttons; @property(weak, nonatomic) IBOutlet UIImageView * separator; @property(nonatomic) BOOL isPrepareRouteMode; @@ -49,23 +45,6 @@ extern NSString * const kAlohalyticsTapEventKey; self.autoresizingMask = UIViewAutoresizingNone; } -+ (MWMPlacePageActionBar *)actionBarForPlacePageManager:(MWMPlacePageViewManager *)placePageManager -{ - MWMPlacePageActionBar * bar = - [[NSBundle.mainBundle loadNibNamed:[self className] owner:nil options:nil] firstObject]; - [bar configureWithPlacePageManager:placePageManager]; - return bar; -} - -- (void)configureWithPlacePageManager:(MWMPlacePageViewManager *)placePageManager -{ - self.placePageManager = placePageManager; - self.isPrepareRouteMode = MapsAppDelegate.theApp.routingPlaneMode != MWMRoutingPlaneModeNone; - self.isBookmark = placePageManager.entity.isBookmark; - [self configureButtons]; - self.autoresizingMask = UIViewAutoresizingNone; -} - - (void)configureButtons { m_visibleButtons.clear(); diff --git a/iphone/Maps/Classes/MWMPlacePageBookmarkCell.h b/iphone/Maps/Classes/MWMPlacePageBookmarkCell.h deleted file mode 100644 index ac32f2671f..0000000000 --- a/iphone/Maps/Classes/MWMPlacePageBookmarkCell.h +++ /dev/null @@ -1,16 +0,0 @@ -#import "MWMTableViewCell.h" - -@protocol MWMPlacePageBookmarkDelegate; -@class MWMPlacePage; - -@interface MWMPlacePageBookmarkCell : MWMTableViewCell - -- (void)configWithText:(NSString *)text - delegate:(id)delegate - placePageWidth:(CGFloat)width - isOpen:(BOOL)isOpen - isHtml:(BOOL)isHtml; - -- (CGFloat)cellHeight; - -@end diff --git a/iphone/Maps/Classes/MWMPlacePageBookmarkCell.mm b/iphone/Maps/Classes/MWMPlacePageBookmarkCell.mm deleted file mode 100644 index c9a256babd..0000000000 --- a/iphone/Maps/Classes/MWMPlacePageBookmarkCell.mm +++ /dev/null @@ -1,210 +0,0 @@ -#import "MWMPlacePageBookmarkCell.h" -#import "Common.h" -#import "MWMPlacePageBookmarkDelegate.h" -#import "MapViewController.h" -#import "Statistics.h" -#import "UIColor+MapsMeColor.h" -#import "UIFont+MapsMeFonts.h" - -namespace -{ -CGFloat const kBoundedTextViewHeight = 240.; -CGFloat const kTextViewTopOffset = 12.; -CGFloat const kMoreButtonHeight = 33.; -CGFloat const kTextViewLeft = 16.; - -void performRenderingInConcurrentQueue(TMWMVoidBlock block) -{ - if (block) - dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), block); -} - -} // namespace - -@interface MWMPlacePageBookmarkCell () - -@property(weak, nonatomic) IBOutlet UITextView * textView; -@property(weak, nonatomic) IBOutlet UIButton * moreButton; -@property(weak, nonatomic) IBOutlet UIButton * editButton; -@property(weak, nonatomic) IBOutlet UIImageView * separator; -@property(weak, nonatomic) IBOutlet UIImageView * gradient; -@property(weak, nonatomic) IBOutlet UIImageView * spinner; - -@property(weak, nonatomic) IBOutlet NSLayoutConstraint * textViewTopOffset; -@property(weak, nonatomic) IBOutlet NSLayoutConstraint * textViewBottomOffset; -@property(weak, nonatomic) IBOutlet NSLayoutConstraint * textViewHeight; -@property(weak, nonatomic) IBOutlet NSLayoutConstraint * moreButtonHeight; - -@property(weak, nonatomic) id delegate; - -@property(copy, nonatomic) NSAttributedString * attributedHtml; -@property(copy, nonatomic) NSString * cachedHtml; - -@end - -@implementation MWMPlacePageBookmarkCell - -- (void)configWithText:(NSString *)text - delegate:(id)delegate - placePageWidth:(CGFloat)width - isOpen:(BOOL)isOpen - isHtml:(BOOL)isHtml -{ - self.delegate = delegate; - self.textView.width = width - 2 * kTextViewLeft; - self.textView.keyboardAppearance = - [UIColor isNightMode] ? UIKeyboardAppearanceDark : UIKeyboardAppearanceDefault; - BOOL const isEmpty = text.length == 0; - if (isEmpty) - [self configEmptyDescription]; - else if (isHtml) - [self configHtmlDescription:text isOpen:isOpen]; - else - [self configPlaintTextDescription:text isOpen:isOpen]; -} - -- (void)configEmptyDescription -{ - self.textView.hidden = self.separator.hidden = self.gradient.hidden = self.moreButton.hidden = - self.spinner.hidden = YES; - self.textViewTopOffset.constant = self.textViewBottomOffset.constant = - self.textViewHeight.constant = self.moreButtonHeight.constant = 0; -} - -- (void)startSpinner -{ - self.editButton.hidden = YES; - NSUInteger const animationImagesCount = 12; - NSMutableArray * animationImages = [NSMutableArray arrayWithCapacity:animationImagesCount]; - NSString * postfix = [UIColor isNightMode] ? @"dark" : @"light"; - for (NSUInteger i = 0; i < animationImagesCount; ++i) - animationImages[i] = - [UIImage imageNamed:[NSString stringWithFormat:@"Spinner_%@_%@", @(i + 1), postfix]]; - - self.spinner.animationDuration = 0.8; - self.spinner.animationImages = animationImages; - self.spinner.hidden = NO; - [self.spinner startAnimating]; -} - -- (void)stopSpinner -{ - [self.spinner stopAnimating]; - self.editButton.hidden = NO; - self.spinner.hidden = YES; -} - -- (void)configPlaintTextDescription:(NSString *)text isOpen:(BOOL)isOpen -{ - self.spinner.hidden = YES; - [self textViewScrollEnabled:YES]; - self.textViewTopOffset.constant = kTextViewTopOffset; - self.textView.hidden = self.separator.hidden = NO; - self.textView.text = text; - CGFloat const textViewHeight = self.textView.contentSize.height; - if (textViewHeight > kBoundedTextViewHeight && !isOpen) - { - self.textViewHeight.constant = kBoundedTextViewHeight; - self.moreButton.hidden = self.gradient.hidden = NO; - self.moreButtonHeight.constant = kMoreButtonHeight; - self.textViewBottomOffset.constant = 0; - } - else - { - self.textViewHeight.constant = textViewHeight; - self.moreButton.hidden = self.gradient.hidden = YES; - self.moreButtonHeight.constant = 0; - self.textViewBottomOffset.constant = kTextViewTopOffset; - } - [self textViewScrollEnabled:NO]; -} - -- (void)configHtmlDescription:(NSString *)text isOpen:(BOOL)isOpen -{ - // html already was rendered and text is same as text which was cached into html - if (self.attributedHtml && [self.cachedHtml isEqualToString:text]) - { - [self textViewScrollEnabled:YES]; - self.textViewTopOffset.constant = kTextViewTopOffset; - self.textView.hidden = self.separator.hidden = NO; - self.textView.attributedText = self.attributedHtml; - CGFloat const textViewHeight = self.textView.contentSize.height; - if (textViewHeight > kBoundedTextViewHeight && !isOpen) - { - self.textViewHeight.constant = kBoundedTextViewHeight; - self.moreButton.hidden = self.gradient.hidden = NO; - self.moreButtonHeight.constant = kMoreButtonHeight; - self.textViewBottomOffset.constant = 0; - } - else - { - self.textViewHeight.constant = textViewHeight; - self.moreButton.hidden = self.gradient.hidden = YES; - self.moreButtonHeight.constant = 0; - self.textViewBottomOffset.constant = kTextViewTopOffset; - } - [self textViewScrollEnabled:NO]; - } - else - { - [self configEmptyDescription]; - [self startSpinner]; - performRenderingInConcurrentQueue(^{ - self.cachedHtml = text; - NSDictionary * attr = @{ - NSForegroundColorAttributeName : [UIColor blackPrimaryText], - NSFontAttributeName : [UIFont regular12] - }; - NSError * error = nil; - NSMutableAttributedString * str = [[NSMutableAttributedString alloc] - initWithData:[text dataUsingEncoding:NSUnicodeStringEncoding] - options:@{ - NSDocumentTypeDocumentAttribute : NSHTMLTextDocumentType - } - documentAttributes:nil - error:&error]; - if (error) - { - // If we failed while attempting to render html than just show plain text in bookmark. - // Ussualy there is a problem only in iOS7. - self.attributedHtml = [[NSAttributedString alloc] initWithString:text attributes:attr]; - } - else - { - [str addAttributes:attr range:{0, str.length}]; - self.attributedHtml = str; - } - dispatch_async(dispatch_get_main_queue(), ^{ - [self stopSpinner]; - [self.delegate reloadBookmark]; - }); - }); - } -} - -- (void)textViewScrollEnabled:(BOOL)isEnabled -{ - self.textView.scrollEnabled = isEnabled; -} - -- (IBAction)moreTap { [self.delegate moreTap]; } -- (IBAction)editTap { [self.delegate editBookmarkTap]; } -- (CGFloat)cellHeight -{ - return self.textViewTopOffset.constant + self.textViewHeight.constant + - self.textViewBottomOffset.constant + self.moreButtonHeight.constant + - self.separator.height + self.editButton.height; -} - -#pragma mark - UITextViewDelegate - -- (BOOL)textView:(UITextView *)textView - shouldInteractWithURL:(NSURL *)URL - inRange:(NSRange)characterRange -{ - UIViewController * vc = static_cast([MapViewController controller]); - [vc openUrl:URL]; - return NO; -} - -@end diff --git a/iphone/Maps/Classes/MWMPlacePageButtonCell.h b/iphone/Maps/Classes/MWMPlacePageButtonCell.h index 2f431e5453..52a94b01b1 100644 --- a/iphone/Maps/Classes/MWMPlacePageButtonCell.h +++ b/iphone/Maps/Classes/MWMPlacePageButtonCell.h @@ -1,20 +1,14 @@ #import "MWMPlacePageData.h" -#import "MWMPlacePageEntity.h" #import "MWMTableViewCell.h" -@class MWMPlacePageViewManager; - @protocol MWMPlacePageButtonsProtocol; @interface MWMPlacePageButtonCell : MWMTableViewCell -- (void)config:(MWMPlacePageViewManager *)manager - forType:(MWMPlacePageCellType)type NS_DEPRECATED_IOS(7_0, 8_0, "Use configForRow:withDelegate: instead"); - - (void)configForRow:(place_page::ButtonsRows)row - withDelegate:(id)delegate NS_AVAILABLE_IOS(8_0); + withDelegate:(id)delegate; -- (void)setEnabled:(BOOL)enabled NS_AVAILABLE_IOS(8_0); -- (BOOL)isEnabled NS_AVAILABLE_IOS(8_0); +- (void)setEnabled:(BOOL)enabled; +- (BOOL)isEnabled; @end diff --git a/iphone/Maps/Classes/MWMPlacePageButtonCell.mm b/iphone/Maps/Classes/MWMPlacePageButtonCell.mm index 996e6e186b..e454b90e09 100644 --- a/iphone/Maps/Classes/MWMPlacePageButtonCell.mm +++ b/iphone/Maps/Classes/MWMPlacePageButtonCell.mm @@ -1,16 +1,11 @@ #import "MWMPlacePageButtonCell.h" #import "Common.h" -#import "MWMFrameworkListener.h" #import "MWMPlacePageProtocol.h" -#import "MWMPlacePageViewManager.h" #import "UIColor+MapsMeColor.h" -@interface MWMPlacePageButtonCell () +@interface MWMPlacePageButtonCell () -@property(weak, nonatomic) MWMPlacePageViewManager * manager; @property(weak, nonatomic) IBOutlet UIButton * titleButton; -@property(nonatomic) MWMPlacePageCellType type; -@property(nonatomic) storage::TCountryId countryId; @property(weak, nonatomic) id delegate; @property(nonatomic) place_page::ButtonsRows rowType; @@ -25,14 +20,6 @@ [self.titleButton setTitleColor:[UIColor linkBlue] forState:UIControlStateNormal]; } -- (void)config:(MWMPlacePageViewManager *)manager forType:(MWMPlacePageCellType)type -{ - self.countryId = GetFramework().GetCountryInfoGetter().GetRegionCountryId(manager.entity.mercator); - self.manager = manager; - self.type = type; - [self refreshButtonEnabledState]; -} - - (void)setEnabled:(BOOL)enabled { self.titleButton.enabled = enabled; } - (BOOL)isEnabled { return self.titleButton.isEnabled; } - (void)configForRow:(place_page::ButtonsRows)row @@ -74,56 +61,4 @@ } } -- (void)refreshButtonEnabledState -{ - if (self.countryId == kInvalidCountryId) - { - self.titleButton.enabled = YES; - return; - } - NodeStatuses nodeStatuses; - GetFramework().GetStorage().GetNodeStatuses(self.countryId, nodeStatuses); - auto const & status = nodeStatuses.m_status; - self.titleButton.enabled = status == NodeStatus::OnDisk || status == NodeStatus::OnDiskOutOfDate; -} - -#pragma mark - MWMFrameworkStorageObserver - -- (void)processCountryEvent:(TCountryId const &)countryId -{ - if (self.countryId != countryId) - return; - [self refreshButtonEnabledState]; -} - -#pragma mark - Properties - -- (void)setType:(MWMPlacePageCellType)type -{ - _type = type; - NSString * title; - switch (type) - { - case MWMPlacePageCellTypeAddBusinessButton: - title = L(@"placepage_add_business_button"); - [MWMFrameworkListener addObserver:self]; - break; - case MWMPlacePageCellTypeEditButton: - title = L(@"edit_place"); - [MWMFrameworkListener addObserver:self]; - break; - case MWMPlacePageCellTypeAddPlaceButton: - title = L(@"placepage_add_place_button"); - [MWMFrameworkListener addObserver:self]; - break; - case MWMPlacePageCellTypeBookingMore: - title = L(@"details"); - break; - default: NSAssert(false, @"Invalid place page cell type!"); break; - } - - [self.titleButton setTitle:title forState:UIControlStateNormal]; - [self.titleButton setTitle:title forState:UIControlStateDisabled]; -} - @end diff --git a/iphone/Maps/Classes/MWMPlacePageData.mm b/iphone/Maps/Classes/MWMPlacePageData.mm index e334d7db36..cd1d0093a2 100644 --- a/iphone/Maps/Classes/MWMPlacePageData.mm +++ b/iphone/Maps/Classes/MWMPlacePageData.mm @@ -221,7 +221,6 @@ using namespace place_page; - (void)assignOnlinePriceToLabel:(UILabel *)label { - // TODO(Vlad): Remove similar code from MWMPlacePageEntity.mm when new iPAD place page will be finished. NSAssert(self.isBooking, @"Online price must be assigned to booking object!"); if (Platform::ConnectionStatus() == Platform::EConnectionType::CONNECTION_NONE) return; diff --git a/iphone/Maps/Classes/MWMPlacePageEntity.mm b/iphone/Maps/Classes/MWMPlacePageEntity.mm index aadc989775..cd64a9d8a2 100644 --- a/iphone/Maps/Classes/MWMPlacePageEntity.mm +++ b/iphone/Maps/Classes/MWMPlacePageEntity.mm @@ -1,6 +1,5 @@ #import "MWMPlacePageEntity.h" #import "MWMMapViewControlsManager.h" -#import "MWMPlacePageViewManager.h" #import "MapViewController.h" #import "MapsAppDelegate.h" diff --git a/iphone/Maps/Classes/MWMPlacePageInfoCell.h b/iphone/Maps/Classes/MWMPlacePageInfoCell.h index 5a57318b23..576b5e1b17 100644 --- a/iphone/Maps/Classes/MWMPlacePageInfoCell.h +++ b/iphone/Maps/Classes/MWMPlacePageInfoCell.h @@ -1,18 +1,13 @@ -#import "MWMPlacePageEntity.h" #import "MWMTableViewCell.h" #import "MWMPlacePageData.h" @interface MWMPlacePageInfoCell : MWMTableViewCell -- (void)configureWithType:(MWMPlacePageCellType)type - info:(NSString *)info NS_DEPRECATED_IOS(7_0, 8_0, "Use configWithRow:data: instead"); - - (void)configWithRow:(place_page::MetainfoRows)row - data:(MWMPlacePageData *)data NS_AVAILABLE_IOS(8_0); + data:(MWMPlacePageData *)data; @property(weak, nonatomic, readonly) IBOutlet UIImageView * icon; @property(weak, nonatomic, readonly) IBOutlet id textContainer; -@property(nonatomic) MWMPlacePageEntity * currentEntity; @end diff --git a/iphone/Maps/Classes/MWMPlacePageInfoCell.mm b/iphone/Maps/Classes/MWMPlacePageInfoCell.mm index efff7a7d5d..6a59942f39 100644 --- a/iphone/Maps/Classes/MWMPlacePageInfoCell.mm +++ b/iphone/Maps/Classes/MWMPlacePageInfoCell.mm @@ -18,9 +18,8 @@ @property(weak, nonatomic) IBOutlet UIButton * upperButton; @property(weak, nonatomic) IBOutlet UIImageView * toggleImage; -@property(nonatomic) MWMPlacePageCellType type NS_DEPRECATED_IOS(7_0, 8_0, "Use rowType instead"); -@property(nonatomic) place_page::MetainfoRows rowType NS_AVAILABLE_IOS(8_0); -@property(weak, nonatomic) MWMPlacePageData * data NS_AVAILABLE_IOS(8_0); +@property(nonatomic) place_page::MetainfoRows rowType; +@property(weak, nonatomic) MWMPlacePageData * data; @end @@ -83,43 +82,6 @@ [self configWithIconName:name data:[data stringForRow:row]]; } -- (void)configureWithType:(MWMPlacePageCellType)type info:(NSString *)info; -{ - self.type = type; - NSString * typeName; - switch (type) - { - case MWMPlacePageCellTypeURL: - case MWMPlacePageCellTypeWebsite: - self.toggleImage.hidden = YES; - typeName = @"website"; - break; - case MWMPlacePageCellTypeEmail: - self.toggleImage.hidden = YES; - typeName = @"email"; - break; - case MWMPlacePageCellTypePhoneNumber: - self.toggleImage.hidden = YES; - typeName = @"phone_number"; - break; - case MWMPlacePageCellTypeCoordinate: - self.toggleImage.hidden = NO; - typeName = @"coordinate"; - break; - case MWMPlacePageCellTypePostcode: - self.toggleImage.hidden = YES; - typeName = @"postcode"; - break; - case MWMPlacePageCellTypeWiFi: - self.toggleImage.hidden = YES; - typeName = @"wifi"; - break; - default: NSAssert(false, @"Incorrect type!"); break; - } - - [self configWithIconName:typeName data:info]; -} - - (void)configWithIconName:(NSString *)name data:(NSString *)data { UIImage * image = @@ -166,30 +128,6 @@ - (IBAction)cellTap { -// if (IPAD) -// { -// switch (self.type) -// { -// case MWMPlacePageCellTypeURL: -// case MWMPlacePageCellTypeWebsite: -// [Statistics logEvent:kStatEventName(kStatPlacePage, kStatOpenSite)]; -// break; -// case MWMPlacePageCellTypeEmail: -// [Statistics logEvent:kStatEventName(kStatPlacePage, kStatSendEmail)]; -// break; -// case MWMPlacePageCellTypePhoneNumber: -// [Statistics logEvent:kStatEventName(kStatPlacePage, kStatCallPhoneNumber)]; -// break; -// case MWMPlacePageCellTypeCoordinate: -// [Statistics logEvent:kStatEventName(kStatPlacePage, kStatToggleCoordinates)]; -// [self.currentEntity toggleCoordinateSystem]; -// [self changeText:[self.currentEntity getCellValue:MWMPlacePageCellTypeCoordinate]]; -// break; -// default: break; -// } -// return; -// } - switch (self.rowType) { case place_page::MetainfoRows::Phone: diff --git a/iphone/Maps/Classes/MWMPlacePageLayout.mm b/iphone/Maps/Classes/MWMPlacePageLayout.mm index afe421762e..684285015e 100644 --- a/iphone/Maps/Classes/MWMPlacePageLayout.mm +++ b/iphone/Maps/Classes/MWMPlacePageLayout.mm @@ -7,7 +7,6 @@ #import "MWMPPPreviewLayoutHelper.h" #import "MWMBookmarkCell.h" #import "MWMOpeningHoursLayoutHelper.h" -#import "MWMPlacePageBookmarkCell.h" #import "MWMPlacePageButtonCell.h" #import "MWMPlacePageInfoCell.h" #import "MWMPlacePageLayoutImpl.h" diff --git a/iphone/Maps/Classes/MWMPlacePageManager.mm b/iphone/Maps/Classes/MWMPlacePageManager.mm index 8d0c9ce200..9ae7f5ff0d 100644 --- a/iphone/Maps/Classes/MWMPlacePageManager.mm +++ b/iphone/Maps/Classes/MWMPlacePageManager.mm @@ -22,8 +22,6 @@ @interface MWMPlacePageManager () -@property(nonatomic) MWMPlacePageEntity * entity; - @property(nonatomic) MWMPlacePageLayout * layout; @property(nonatomic) MWMPlacePageData * data; diff --git a/iphone/Maps/Classes/MWMPlacePageNavigationBar.h b/iphone/Maps/Classes/MWMPlacePageNavigationBar.h deleted file mode 100644 index 43de973807..0000000000 --- a/iphone/Maps/Classes/MWMPlacePageNavigationBar.h +++ /dev/null @@ -1,13 +0,0 @@ -@class MWMiPhonePortraitPlacePage; - -@interface MWMPlacePageNavigationBar : SolidTouchView - -+ (void)dismissNavigationBar; -+ (void)showNavigationBarForPlacePage:(MWMiPhonePortraitPlacePage *)placePage; -+ (void)remove; - -- (instancetype)init __attribute__((unavailable("call navigationBarWithPlacePage: instead"))); -- (instancetype)initWithCoder:(NSCoder *)aDecoder __attribute__((unavailable("call navigationBarWithPlacePage: instead"))); -- (instancetype)initWithFrame:(CGRect)frame __attribute__((unavailable("call navigationBarWithPlacePage: instead"))); - -@end diff --git a/iphone/Maps/Classes/MWMPlacePageNavigationBar.mm b/iphone/Maps/Classes/MWMPlacePageNavigationBar.mm deleted file mode 100644 index 52f364ac2d..0000000000 --- a/iphone/Maps/Classes/MWMPlacePageNavigationBar.mm +++ /dev/null @@ -1,112 +0,0 @@ -#import "Common.h" -#import "MWMBasePlacePageView.h" -#import "MWMiPhonePortraitPlacePage.h" -#import "MWMPlacePageEntity.h" -#import "MWMPlacePageNavigationBar.h" -#import "MWMPlacePageViewManager.h" -#import "MWMViewController.h" -#import "Statistics.h" -#import - -static NSString * const kPlacePageNavigationBarNibName = @"PlacePageNavigationBar"; -static CGFloat const kNavigationBarHeight = 36.; - -static inline CGPoint const openCenter(CGFloat xPosition) -{ - return CGPointMake(xPosition, kNavigationBarHeight / 2.); -} - -static inline CGPoint const dismissCenter(CGFloat xPosition) -{ - return CGPointMake(xPosition, - kNavigationBarHeight / 2.); -} - -@interface MWMPlacePageNavigationBar () - -@property (weak, nonatomic) MWMiPhonePortraitPlacePage * placePage; - -@end - -@implementation MWMPlacePageNavigationBar - -+ (void)remove -{ - UIScreen * screen = [UIScreen mainScreen]; - MWMPlacePageNavigationBar * navBar = objc_getAssociatedObject(screen, @selector(navigationBarWithPlacePage:)); - if (!navBar) - return; - - [navBar removeFromSuperview]; - objc_setAssociatedObject(screen, @selector(navigationBarWithPlacePage:), nil, OBJC_ASSOCIATION_RETAIN_NONATOMIC); -} - -+ (void)showNavigationBarForPlacePage:(MWMiPhonePortraitPlacePage *)placePage -{ - UIView const * superview = placePage.manager.ownerViewController.view; - UIScreen * screen = [UIScreen mainScreen]; - MWMPlacePageNavigationBar * navBar = objc_getAssociatedObject(screen, @selector(navigationBarWithPlacePage:)); - if (!navBar) - { - navBar = [self navigationBarWithPlacePage:placePage]; - objc_setAssociatedObject(screen, @selector(navigationBarWithPlacePage:), navBar, OBJC_ASSOCIATION_RETAIN_NONATOMIC); - [superview addSubview:navBar]; - } - - navBar.placePage = placePage; - [navBar show]; -} - -+ (void)dismissNavigationBar -{ - UIScreen * screen = [UIScreen mainScreen]; - MWMPlacePageNavigationBar * navBar = objc_getAssociatedObject(screen, @selector(navigationBarWithPlacePage:)); - if (!navBar) - return; - - [navBar dismiss]; -} - -- (void)dismiss -{ - [UIView animateWithDuration:kDefaultAnimationDuration animations:^ - { - self.center = dismissCenter(self.center.x); - }]; -} - -- (void)show -{ - [UIView animateWithDuration:kDefaultAnimationDuration animations:^ - { - self.center = openCenter(self.center.x); - }]; -} - -+ (instancetype)navigationBarWithPlacePage:(MWMiPhonePortraitPlacePage *)placePage -{ - MWMPlacePageNavigationBar * navBar = [[[NSBundle mainBundle] loadNibNamed:kPlacePageNavigationBarNibName owner:nil options:nil] firstObject]; - navBar.placePage = placePage; - navBar.autoresizingMask = UIViewAutoresizingNone; - UIView const * superview = placePage.manager.ownerViewController.view; - navBar.center = dismissCenter(superview.center.x); - CGSize const size = [[UIScreen mainScreen] bounds].size; - BOOL const isLandscape = size.width > size.height; - CGFloat const width = isLandscape ? size.height : size.width; - navBar.width = width; - return navBar; -} - -- (IBAction)dismissTap -{ - [Statistics logEvent:kStatEventName(kStatPlacePage, kStatBack)]; - [self dismiss]; - [self.placePage.manager refreshPlacePage]; -} - -- (void)layoutSubviews -{ - if (self) - self.origin = CGPointZero; -} - -@end diff --git a/iphone/Maps/Classes/MWMPlacePageProtocol.h b/iphone/Maps/Classes/MWMPlacePageProtocol.h index 6334d49013..8a5a4c2835 100644 --- a/iphone/Maps/Classes/MWMPlacePageProtocol.h +++ b/iphone/Maps/Classes/MWMPlacePageProtocol.h @@ -2,7 +2,7 @@ #include "Framework.h" -@class MWMPlacePageEntity, MWMViewController; +@class MWMViewController; @protocol MWMActionBarProtocol diff --git a/iphone/Maps/Classes/MWMPlacePageViewManager.h b/iphone/Maps/Classes/MWMPlacePageViewManager.h deleted file mode 100644 index f495df9592..0000000000 --- a/iphone/Maps/Classes/MWMPlacePageViewManager.h +++ /dev/null @@ -1,42 +0,0 @@ -#import "MWMMapViewControlsManager.h" - -#include "Framework.h" - -#include "MWMPlacePageProtocol.h" - -@class MWMPlacePageEntity, MWMPlacePageNavigationBar, MWMViewController; - -@interface MWMPlacePageViewManager : NSObject - -@property(weak, nonatomic, readonly) MWMViewController * ownerViewController; -@property(nonatomic, readonly) MWMPlacePageEntity * entity; -@property(nonatomic) CGFloat topBound; -@property(nonatomic) CGFloat leftBound; - -- (void)showPlacePage:(place_page::Info const &)info; -- (void)refreshPlacePage; -- (void)mwm_refreshUI; -- (BOOL)hasPlacePage; -- (void)dismissPlacePage; -- (void)hidePlacePage; -- (void)routeFrom; -- (void)routeTo; -- (void)share; -- (void)editPlace; -- (void)addBusiness; -- (void)addPlace; -- (void)addBookmark; -- (void)removeBookmark; -- (void)book:(BOOL)isDecription; -- (void)call; -- (void)apiBack; -- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)orientation; -- (void)viewWillTransitionToSize:(CGSize)size - withTransitionCoordinator:(id)coordinator; -- (void)reloadBookmark; -- (void)dragPlacePage:(CGRect)frame; -- (void)showDirectionViewWithTitle:(NSString *)title type:(NSString *)type; -- (void)addSubviews:(NSArray *)views withNavigationController:(UINavigationController *)controller; -- (void)changeHeight:(CGFloat)height; - -@end diff --git a/iphone/Maps/Classes/MWMPlacePageViewManager.mm b/iphone/Maps/Classes/MWMPlacePageViewManager.mm deleted file mode 100644 index cb2b99709f..0000000000 --- a/iphone/Maps/Classes/MWMPlacePageViewManager.mm +++ /dev/null @@ -1,397 +0,0 @@ -#import "MWMPlacePageViewManager.h" -#import -#import "Common.h" -#import "MWMAPIBar.h" -#import "MWMActivityViewController.h" -#import "MWMBasePlacePageView.h" -#import "MWMDirectionView.h" -#import "MWMFrameworkListener.h" -#import "MWMLocationHelpers.h" -#import "MWMLocationManager.h" -#import "MWMPlacePage.h" -#import "MWMPlacePageActionBar.h" -#import "MWMPlacePageEntity.h" -#import "MWMPlacePageNavigationBar.h" -#import "MWMRouter.h" -#import "MWMiPadPlacePage.h" -#import "MWMiPhoneLandscapePlacePage.h" -#import "MWMiPhonePortraitPlacePage.h" -#import "MapViewController.h" -#import "MapsAppDelegate.h" -#import "Statistics.h" - -#import "3party/Alohalytics/src/alohalytics_objc.h" - -#include "MWMRoutePoint.h" - -#include "geometry/distance_on_sphere.hpp" -#include "map/place_page_info.hpp" -#include "platform/measurement_utils.hpp" - -extern NSString * const kAlohalyticsTapEventKey; -extern NSString * const kBookmarksChangedNotification; - -@interface MWMPlacePageViewManager () - -@property(nonatomic, readwrite) MWMPlacePageEntity * entity; -@property(nonatomic) MWMPlacePage * placePage; -@property(nonatomic) MWMDirectionView * directionView; - -@end - -@implementation MWMPlacePageViewManager - -- (void)hidePlacePage { [self.placePage hide]; } -- (void)dismissPlacePage -{ - [self.placePage dismiss]; - [MWMLocationManager removeObserver:self]; - GetFramework().DeactivateMapSelection(false); - self.placePage = nil; -} - -- (void)showPlacePage:(place_page::Info const &)info -{ - [MWMLocationManager addObserver:self]; - self.entity = [[MWMPlacePageEntity alloc] initWithInfo:info]; - if (IPAD) - [self setPlacePageForiPad]; - else - [self setPlacePageForiPhoneWithOrientation:self.ownerViewController.interfaceOrientation]; - [self configPlacePage]; -} - -- (FeatureID const &)featureId { return self.entity.featureID; } -#pragma mark - Layout - -- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)orientation -{ - [self rotateToOrientation:orientation]; -} - -- (void)viewWillTransitionToSize:(CGSize)size - withTransitionCoordinator:(id)coordinator -{ - [self rotateToOrientation:size.height > size.width ? UIInterfaceOrientationPortrait - : UIInterfaceOrientationLandscapeLeft]; -} - -- (void)rotateToOrientation:(UIInterfaceOrientation)orientation -{ - if (!self.placePage) - return; - - if (IPAD) - { - self.placePage.parentViewHeight = self.ownerViewController.view.width; - [(MWMiPadPlacePage *)self.placePage updatePlacePageLayoutAnimated:NO]; - } - else - { - [self.placePage dismiss]; - [self setPlacePageForiPhoneWithOrientation:orientation]; - [self configPlacePage]; - } -} - -- (void)configPlacePage -{ - if (self.entity.isMyPosition) - self.entity.subtitle = - location_helpers::formattedSpeedAndAltitude([MWMLocationManager lastLocation]); - self.placePage.parentViewHeight = self.ownerViewController.view.height; - [self.placePage configure]; - self.placePage.topBound = self.topBound; - self.placePage.leftBound = self.leftBound; - [self refreshPlacePage]; -} - -- (void)refreshPlacePage -{ - [self.placePage show]; - [self updateDistance]; -} - -- (void)mwm_refreshUI -{ - [self.placePage.extendedPlacePageView mwm_refreshUI]; - [self.placePage.actionBar mwm_refreshUI]; -} - -- (BOOL)hasPlacePage { return self.placePage != nil; } -- (void)setPlacePageForiPad -{ - [self.placePage dismiss]; - self.placePage = [[MWMiPadPlacePage alloc] initWithManager:self]; -} - -- (void)updateMyPositionSpeedAndAltitude -{ - if (self.entity.isMyPosition) - [self.placePage updateMyPositionStatus:location_helpers::formattedSpeedAndAltitude( - [MWMLocationManager lastLocation])]; -} - -- (void)setPlacePageForiPhoneWithOrientation:(UIInterfaceOrientation)orientation -{ - switch (orientation) - { - case UIInterfaceOrientationLandscapeLeft: - case UIInterfaceOrientationLandscapeRight: - if (![self.placePage isKindOfClass:[MWMiPhoneLandscapePlacePage class]]) - self.placePage = [[MWMiPhoneLandscapePlacePage alloc] initWithManager:self]; - break; - - case UIInterfaceOrientationPortrait: - case UIInterfaceOrientationPortraitUpsideDown: - if (![self.placePage isKindOfClass:[MWMiPhonePortraitPlacePage class]]) - self.placePage = [[MWMiPhonePortraitPlacePage alloc] initWithManager:self]; - break; - - case UIInterfaceOrientationUnknown: break; - } -} - -- (void)addSubviews:(NSArray *)views withNavigationController:(UINavigationController *)controller -{ - if (controller) - [self.ownerViewController addChildViewController:controller]; - [[MWMMapViewControlsManager manager] addPlacePageViews:views]; -} - -- (void)routeFrom -{ - [Statistics logEvent:kStatEventName(kStatPlacePage, kStatBuildRoute) - withParameters:@{kStatValue : kStatSource}]; - [Alohalytics logEvent:kAlohalyticsTapEventKey withValue:@"ppRoute"]; - [[MWMRouter router] buildFromPoint:self.target bestRouter:YES]; - [self hidePlacePage]; -} - -- (void)routeTo -{ - [Statistics logEvent:kStatEventName(kStatPlacePage, kStatBuildRoute) - withParameters:@{kStatValue : kStatDestination}]; - [Alohalytics logEvent:kAlohalyticsTapEventKey withValue:@"ppRoute"]; - auto r = [MWMRouter router]; - [r buildToPoint:self.target bestRouter:YES]; - [self hidePlacePage]; -} - -- (MWMRoutePoint)target -{ - NSString * name = nil; - if (self.entity.title.length > 0) - name = self.entity.title; - else if (self.entity.address.length > 0) - name = self.entity.address; - else if (self.entity.subtitle.length > 0) - name = self.entity.subtitle; - else if (self.entity.isBookmark) - name = self.entity.bookmarkTitle; - else - name = L(@"placepage_unknown_place"); - - m2::PointD const & org = self.entity.mercator; - return self.entity.isMyPosition ? MWMRoutePoint(org) : MWMRoutePoint(org, name); -} - -- (void)share -{ - [Statistics logEvent:kStatEventName(kStatPlacePage, kStatShare)]; - [Alohalytics logEvent:kAlohalyticsTapEventKey withValue:@"ppShare"]; - MWMPlacePageEntity * entity = self.entity; - MWMActivityViewController * shareVC = [MWMActivityViewController - shareControllerForPlacePageObject:static_cast>(entity)]; - [shareVC presentInParentViewController:self.ownerViewController - anchorView:self.placePage.actionBar.shareAnchor]; -} - -- (void)book:(BOOL)isDescription -{ - MWMPlacePageEntity * data = self.entity; - BOOL const isBooking = data.isBooking; - auto const & latLon = data.latLon; - NSMutableDictionary * stat = [@{} mutableCopy]; - if (isBooking) - { - stat[kStatProvider] = kStatBooking; - stat[kStatHotel] = data.sponsoredId; - stat[kStatHotelLat] = @(latLon.lat); - stat[kStatHotelLon] = @(latLon.lon); - } - else - { - stat[kStatProvider] = kStatOpentable; - stat[kStatRestaurant] = data.sponsoredId; - stat[kStatRestaurantLat] = @(latLon.lat); - stat[kStatRestaurantLon] = @(latLon.lon); - } - - NSString * eventName = isBooking ? kPlacePageHotelBook : kPlacePageRestaurantBook; - [Statistics logEvent:isDescription ? kPlacePageHotelDetails : eventName - withParameters:stat - atLocation:[MWMLocationManager lastLocation]]; - - UIViewController * vc = static_cast([MapViewController controller]); - NSURL * url = isDescription ? self.entity.sponsoredDescriptionURL : self.entity.sponsoredURL; - NSAssert(url, @"Sponsored url can't be nil!"); - [vc openUrl:url]; -} - -- (void)call -{ - NSString * tel = [self.entity getCellValue:MWMPlacePageCellTypePhoneNumber]; - NSAssert(tel, @"Phone number can't be nil!"); - NSString * phoneNumber = [[@"telprompt:" stringByAppendingString:tel] - stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; - [[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]]; -} - -- (void)apiBack -{ - [Statistics logEvent:kStatEventName(kStatPlacePage, kStatAPI)]; - [[UIApplication sharedApplication] openURL:[NSURL URLWithString:self.entity.apiURL]]; - [((MapViewController *)self.ownerViewController).apiBar back]; -} - -- (void)editPlace -{ - [Statistics logEvent:kStatEventName(kStatPlacePage, kStatEdit)]; - GetPlatform().GetMarketingService().SendPushWooshTag(marketing::kEditorEditDiscovered); - [(MapViewController *)self.ownerViewController openEditor]; -} - -- (void)addBusiness -{ - [Statistics logEvent:kStatEditorAddClick withParameters:@{kStatValue : kStatPlacePage}]; - [[MWMMapViewControlsManager manager] addPlace:YES hasPoint:NO point:m2::PointD()]; -} - -- (void)addPlace -{ - [Statistics logEvent:kStatEditorAddClick - withParameters:@{kStatValue : kStatPlacePageNonBuilding}]; - [[MWMMapViewControlsManager manager] addPlace:NO hasPoint:YES point:self.entity.mercator]; -} - -- (void)addBookmark -{ - [Statistics logEvent:kStatEventName(kStatPlacePage, kStatBookmarks) - withParameters:@{kStatValue : kStatAdd}]; - Framework & f = GetFramework(); - BookmarkData bmData = {self.entity.titleForNewBookmark, f.LastEditedBMType()}; - auto const categoryIndex = f.LastEditedBMCategory(); - auto const bookmarkIndex = f.GetBookmarkManager().AddBookmark(categoryIndex, self.entity.mercator, bmData); - self.entity.bac = {bookmarkIndex, categoryIndex}; - self.entity.bookmarkTitle = @(bmData.GetName().c_str()); - self.entity.bookmarkCategory = @(f.GetBmCategory(categoryIndex)->GetName().c_str()); - [NSNotificationCenter.defaultCenter postNotificationName:kBookmarksChangedNotification - object:nil - userInfo:nil]; - [self updateDistance]; - [self.placePage addBookmark]; -} - -- (void)removeBookmark -{ - [Statistics logEvent:kStatEventName(kStatPlacePage, kStatBookmarks) - withParameters:@{kStatValue : kStatRemove}]; - Framework & f = GetFramework(); - BookmarkCategory * bookmarkCategory = - f.GetBookmarkManager().GetBmCategory(self.entity.bac.m_categoryIndex); - if (bookmarkCategory) - { - { - BookmarkCategory::Guard guard(*bookmarkCategory); - guard.m_controller.DeleteUserMark(self.entity.bac.m_bookmarkIndex); - } - bookmarkCategory->SaveToKMLFile(); - } - self.entity.bac = {}; - self.entity.bookmarkTitle = nil; - self.entity.bookmarkCategory = nil; - [NSNotificationCenter.defaultCenter postNotificationName:kBookmarksChangedNotification - object:nil - userInfo:nil]; - [self updateDistance]; - [self.placePage removeBookmark]; -} - -- (void)reloadBookmark -{ - [self.entity synchronize]; - [self.placePage reloadBookmark]; - [self updateDistance]; -} - -- (void)dragPlacePage:(CGRect)frame { [[MWMMapViewControlsManager manager] dragPlacePage:frame]; } -- (void)updateDistance -{ - NSString * distance = [self distance]; - self.directionView.distanceLabel.text = distance; - [self.placePage setDistance:distance]; -} - -- (NSString *)distance -{ - CLLocation * lastLocation = [MWMLocationManager lastLocation]; - if (!lastLocation) - return @""; - string distance; - CLLocationCoordinate2D const coord = lastLocation.coordinate; - ms::LatLon const & target = self.entity.latLon; - measurement_utils::FormatDistance( - ms::DistanceOnEarth(coord.latitude, coord.longitude, target.lat, target.lon), distance); - return @(distance.c_str()); -} - -- (void)showDirectionViewWithTitle:(NSString *)title type:(NSString *)type -{ - MWMDirectionView * directionView = self.directionView; - directionView.titleLabel.text = title; - directionView.typeLabel.text = type; - [directionView show]; - [self updateDistance]; -} - -- (void)changeHeight:(CGFloat)height -{ - if (!IPAD) - return; - ((MWMiPadPlacePage *)self.placePage).height = height; -} - -#pragma mark - MWMLocationObserver - -- (void)onHeadingUpdate:(location::CompassInfo const &)info -{ - CLLocation * lastLocation = [MWMLocationManager lastLocation]; - if (!lastLocation) - return; - CGFloat const angle = ang::AngleTo(lastLocation.mercator, self.entity.mercator) + info.m_bearing; - CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI_2 - angle); - [self.placePage setDirectionArrowTransform:transform]; - [self.directionView setDirectionArrowTransform:transform]; -} - -- (void)onLocationUpdate:(location::GpsInfo const &)locationInfo -{ - [self updateDistance]; - [self updateMyPositionSpeedAndAltitude]; -} - -#pragma mark - Properties - -- (MWMDirectionView *)directionView -{ - if (!_directionView) - _directionView = [[MWMDirectionView alloc] initWithManager:self]; - return _directionView; -} - -- (MapViewController *)ownerViewController { return [MapViewController controller]; } -- (void)setTopBound:(CGFloat)topBound { _topBound = self.placePage.topBound = topBound; } -- (void)setLeftBound:(CGFloat)leftBound { _leftBound = self.placePage.leftBound = leftBound; } -- (void)editBookmark {} -@end diff --git a/iphone/Maps/Classes/MWMSpringAnimation.h b/iphone/Maps/Classes/MWMSpringAnimation.h deleted file mode 100644 index 783b363569..0000000000 --- a/iphone/Maps/Classes/MWMSpringAnimation.h +++ /dev/null @@ -1,11 +0,0 @@ -#import "MWMAnimator.h" - -@interface MWMSpringAnimation : NSObject - -@property (nonatomic, readonly) CGPoint velocity; - -+ (instancetype)animationWithView:(UIView *)view target:(CGPoint)target velocity:(CGPoint)velocity completion:(TMWMVoidBlock)completion; - -+ (CGFloat)approxTargetFor:(CGFloat)startValue velocity:(CGFloat)velocity; - -@end diff --git a/iphone/Maps/Classes/MWMSpringAnimation.mm b/iphone/Maps/Classes/MWMSpringAnimation.mm deleted file mode 100644 index 71b0d46cb6..0000000000 --- a/iphone/Maps/Classes/MWMSpringAnimation.mm +++ /dev/null @@ -1,65 +0,0 @@ -#import "MWMSpringAnimation.h" - -@interface MWMSpringAnimation () - -@property (nonatomic) CGPoint velocity; -@property (nonatomic) CGPoint targetPoint; -@property (nonatomic) UIView * view; -@property (copy, nonatomic) TMWMVoidBlock completion; - -@end - -@implementation MWMSpringAnimation - -+ (instancetype)animationWithView:(UIView *)view target:(CGPoint)target velocity:(CGPoint)velocity completion:(TMWMVoidBlock)completion -{ - return [[self alloc] initWithView:view target:target velocity:velocity completion:completion]; -} - -- (instancetype)initWithView:(UIView *)view target:(CGPoint)target velocity:(CGPoint)velocity completion:(TMWMVoidBlock)completion -{ - self = [super init]; - if (self) - { - self.view = view; - self.targetPoint = target; - self.velocity = velocity; - self.completion = completion; - } - return self; -} - -- (void)animationTick:(CFTimeInterval)dt finished:(BOOL *)finished -{ - CGFloat const frictionConstant = 25.; - CGFloat const springConstant = 300.; - - // friction force = velocity * friction constant - CGPoint const frictionForce = MultiplyCGPoint(self.velocity, frictionConstant); - // spring force = (target point - current position) * spring constant - CGPoint const springForce = MultiplyCGPoint(SubtractCGPoint(self.targetPoint, self.view.center), springConstant); - // force = spring force - friction force - CGPoint const force = SubtractCGPoint(springForce, frictionForce); - // velocity = current velocity + force * time / mass - self.velocity = AddCGPoint(self.velocity, MultiplyCGPoint(force, dt)); - // position = current position + velocity * time - self.view.center = AddCGPoint(self.view.center, MultiplyCGPoint(self.velocity, dt)); - - CGFloat const speed = LengthCGPoint(self.velocity); - CGFloat const distanceToGoal = LengthCGPoint(SubtractCGPoint(self.targetPoint, self.view.center)); - if (speed < 0.05 && distanceToGoal < 1) - { - self.view.center = self.targetPoint; - *finished = YES; - if (self.completion) - self.completion(); - } -} - -+ (CGFloat)approxTargetFor:(CGFloat)startValue velocity:(CGFloat)velocity -{ - CGFloat const decelaration = (velocity > 0 ? -1.0 : 1.0) * 300.0; - return startValue - (velocity * velocity) / (2.0 * decelaration); -} - -@end diff --git a/iphone/Maps/Classes/MWMiPadPlacePage.h b/iphone/Maps/Classes/MWMiPadPlacePage.h deleted file mode 100644 index f2c3991269..0000000000 --- a/iphone/Maps/Classes/MWMiPadPlacePage.h +++ /dev/null @@ -1,9 +0,0 @@ -#import "MWMPlacePage.h" - -@interface MWMiPadPlacePage : MWMPlacePage - -@property (nonatomic) CGFloat height; - -- (void)updatePlacePageLayoutAnimated:(BOOL)animated; - -@end diff --git a/iphone/Maps/Classes/MWMiPadPlacePage.mm b/iphone/Maps/Classes/MWMiPadPlacePage.mm deleted file mode 100644 index 50ac0e8c62..0000000000 --- a/iphone/Maps/Classes/MWMiPadPlacePage.mm +++ /dev/null @@ -1,314 +0,0 @@ -#import "Common.h" -#import "MWMBasePlacePageView.h" -#import "MWMiPadPlacePage.h" -#import "MWMPlacePageActionBar.h" -#import "MWMPlacePageViewManager.h" -#import "MWMViewController.h" -#import "UIColor+MapsMeColor.h" -#import "UIViewController+Navigation.h" - -static CGFloat const kLeftOffset = 12.; -static CGFloat const kTopOffset = 36.; -static CGFloat const kBottomOffset = 60.; -static CGFloat const kKeyboardOffset = 12.; - -@interface MWMiPadPlacePageViewController : MWMViewController - -@property (nonatomic) UIView * placePageView; -@property (nonatomic) UIView * actionBarView; - -@end - -@implementation MWMiPadPlacePageViewController - -- (instancetype)initWithPlacepageView:(UIView *)ppView actionBar:(UIView *)actionBar -{ - self = [super init]; - if (self) - { - self.view.backgroundColor = [UIColor white]; - self.placePageView = ppView; - self.actionBarView = actionBar; - [self.view addSubview:ppView]; - [self.view addSubview:actionBar]; - } - return self; -} - -- (void)viewWillAppear:(BOOL)animated -{ - [super viewWillAppear:animated]; - [self.navigationController setNavigationBarHidden:YES]; - self.view.autoresizingMask = UIViewAutoresizingNone; -} - -@end - -@interface MWMiPadNavigationController : UINavigationController - -@property (weak, nonatomic) MWMiPadPlacePage * placePage; -@property (nonatomic) CGFloat height; - -@end - -@implementation MWMiPadNavigationController - -- (instancetype)initWithViewController:(UIViewController *)viewController frame:(CGRect)frame -{ - self = [super initWithRootViewController:viewController]; - if (self) - { - self.view.frame = viewController.view.frame = frame; - [self setNavigationBarHidden:YES]; - [self.navigationBar setTranslucent:NO]; - self.view.autoresizingMask = UIViewAutoresizingNone; - } - return self; -} - -- (void)backTap:(id)sender -{ - [self popViewControllerAnimated:YES]; -} - -- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated -{ - viewController.view.frame = self.view.bounds; - [super pushViewController:viewController animated:animated]; -} - -- (UIViewController *)popViewControllerAnimated:(BOOL)animated -{ - [self.view endEditing:YES]; - NSUInteger const count = self.viewControllers.count; - UIViewController * viewController = self.viewControllers.lastObject; - if (count == 2) - { - [super popViewControllerAnimated:animated]; - [self.placePage updatePlacePageLayoutAnimated:YES]; - } - else - { - CGFloat const height = count > 1 ? ((UIViewController *)self.viewControllers[count - 2]).view.height : 0.0; - - [UIView animateWithDuration:kDefaultAnimationDuration animations:^ - { - self.height = height; - } - completion:^(BOOL finished) - { - [super popViewControllerAnimated:animated]; - }]; - } - return viewController; -} - -- (void)setHeight:(CGFloat)height -{ - self.view.height = height; - UIViewController * vc = self.topViewController; - vc.view.height = height; - if ([vc isKindOfClass:[MWMiPadPlacePageViewController class]]) - { - MWMiPadPlacePageViewController * ppVC = (MWMiPadPlacePageViewController *)vc; - ppVC.placePageView.height = height; - ppVC.actionBarView.origin = {0, height - ppVC.actionBarView.height}; - } -} - -- (CGFloat)height -{ - return self.view.height; -} - -@end - -@interface MWMiPadPlacePage () - -@property (nonatomic) MWMiPadNavigationController * navigationController; - -@end - -@implementation MWMiPadPlacePage - -- (void)configure -{ - [super configure]; - - CGFloat const defaultWidth = 360.; - CGFloat const actionBarHeight = self.actionBar.height; - self.height = - self.basePlacePageView.height + self.anchorImageView.height + actionBarHeight - 1; - self.extendedPlacePageView.frame = {{0, 0}, {defaultWidth, self.height}}; - self.actionBar.frame = {{0, self.height - actionBarHeight},{defaultWidth, actionBarHeight}}; - MWMiPadPlacePageViewController * viewController = - [[MWMiPadPlacePageViewController alloc] initWithPlacepageView:self.extendedPlacePageView - actionBar:self.actionBar]; - self.navigationController = [[MWMiPadNavigationController alloc] - initWithViewController:viewController - frame:{{-defaultWidth, self.topBound + kTopOffset}, - {defaultWidth, self.height}}]; - self.navigationController.placePage = self; - [self updatePlacePagePosition]; - [self addPlacePageShadowToView:self.navigationController.view offset:{0, -2}]; - - [self.manager addSubviews:@[ self.navigationController.view ] - withNavigationController:self.navigationController]; - self.anchorImageView.image = nil; - self.anchorImageView.backgroundColor = [UIColor white]; - [self configureContentInset]; -} - -- (void)show -{ - UIView * view = self.navigationController.view; - [UIView animateWithDuration:kDefaultAnimationDuration animations:^ - { - view.minY = self.topBound + kTopOffset; - view.minX = self.leftBound + kLeftOffset; - view.alpha = 1.0; - }]; -} - -- (void)hide -{ - [self.manager dismissPlacePage]; -} - -- (void)dismiss -{ - UIView * view = self.navigationController.view; - UIViewController * controller = self.navigationController; - [UIView animateWithDuration:kDefaultAnimationDuration animations:^ - { - view.maxX = 0.0; - view.alpha = 0.0; - } - completion:^(BOOL finished) - { - [view removeFromSuperview]; - [controller removeFromParentViewController]; - [super dismiss]; - }]; -} - -- (void)addBookmark -{ - [super addBookmark]; - [self refresh]; -} - -- (void)removeBookmark -{ - [super removeBookmark]; - [self refresh]; -} - -- (void)reloadBookmark -{ - [super reloadBookmark]; - [self refresh]; -} - -- (void)refresh -{ - [self updatePlacePageLayoutAnimated:YES]; -} - -- (IBAction)didPan:(UIPanGestureRecognizer *)sender -{ - UIView * view = self.navigationController.view; - UIView * superview = view.superview; - - CGFloat const leftOffset = self.leftBound + kLeftOffset; - view.minX += [sender translationInView:superview].x; - view.minX = MIN(view.minX, leftOffset); - [sender setTranslation:CGPointZero inView:superview]; - - CGFloat const alpha = MAX(0.0, view.maxX) / (view.width + leftOffset); - view.alpha = alpha; - UIGestureRecognizerState const state = sender.state; - if (state == UIGestureRecognizerStateEnded || state == UIGestureRecognizerStateCancelled) - { - if (alpha < 0.8) - [self.manager dismissPlacePage]; - else - [self show]; - } -} - -- (void)updatePlacePageLayoutAnimated:(BOOL)animated -{ - if (![self.navigationController.topViewController isKindOfClass:[MWMiPadPlacePageViewController class]]) - return; - [UIView animateWithDuration:animated ? kDefaultAnimationDuration : 0.0 animations:^ - { - CGFloat const ppHeight = self.basePlacePageView.height; - CGFloat const anchorHeight = self.anchorImageView.height; - CGFloat const actionBarHeight = self.actionBar.height; - self.height = ppHeight + anchorHeight + actionBarHeight - 1; - [self updatePlacePagePosition]; - }]; -} - -- (void)updatePlacePagePosition -{ - UIView * view = self.navigationController.view; - view.minY = MIN([self getAvailableHeight] + kTopOffset - view.height, self.topBound + kTopOffset); - [self configureContentInset]; -} - -- (void)configureContentInset -{ - UITableView * featureTable = self.basePlacePageView.featureTable; - CGFloat const height = self.navigationController.view.height; - CGFloat const tableContentHeight = featureTable.contentSize.height; - CGFloat const headerHeight = self.basePlacePageView.ppPreview.height; - CGFloat const actionBarHeight = self.actionBar.height; - CGFloat const anchorHeight = self.anchorImageView.height; - CGFloat const availableTableHeight = height - headerHeight - actionBarHeight - anchorHeight; - CGFloat const externalHeight = tableContentHeight - availableTableHeight; - if (externalHeight > 0.) - { - featureTable.contentInset = UIEdgeInsetsMake(0., 0., externalHeight, 0.); - featureTable.scrollEnabled = YES; - } - else - { - featureTable.contentInset = UIEdgeInsetsZero; - featureTable.scrollEnabled = NO; - } -} - -- (CGFloat)getAvailableHeight -{ - CGFloat const bottomOffset = self.keyboardHeight > 0.0 ? kKeyboardOffset : kBottomOffset; - CGFloat const availableHeight = self.parentViewHeight - self.keyboardHeight - kTopOffset - bottomOffset; - return availableHeight; -} - -#pragma mark - Properties - -- (void)setHeight:(CGFloat)height -{ - _height = self.navigationController.height = MIN(height, [self getAvailableHeight]); -} - -- (void)setTopBound:(CGFloat)topBound -{ - super.topBound = topBound; - [UIView animateWithDuration:kDefaultAnimationDuration animations:^ - { - self.navigationController.view.minY = topBound + kTopOffset; - }]; -} - -- (void)setLeftBound:(CGFloat)leftBound -{ - super.leftBound = leftBound; - [UIView animateWithDuration:kDefaultAnimationDuration animations:^ - { - self.navigationController.view.minX = leftBound + kLeftOffset; - }]; -} -@end diff --git a/iphone/Maps/Classes/MWMiPhoneLandscapePlacePage.h b/iphone/Maps/Classes/MWMiPhoneLandscapePlacePage.h deleted file mode 100644 index ed4b2eb618..0000000000 --- a/iphone/Maps/Classes/MWMiPhoneLandscapePlacePage.h +++ /dev/null @@ -1,5 +0,0 @@ -#import "MWMPlacePage.h" - -@interface MWMiPhoneLandscapePlacePage : MWMPlacePage - -@end diff --git a/iphone/Maps/Classes/MWMiPhoneLandscapePlacePage.mm b/iphone/Maps/Classes/MWMiPhoneLandscapePlacePage.mm deleted file mode 100644 index 75d5df3262..0000000000 --- a/iphone/Maps/Classes/MWMiPhoneLandscapePlacePage.mm +++ /dev/null @@ -1,183 +0,0 @@ -#import "Common.h" -#import "MWMBasePlacePageView.h" -#import "MWMiPhoneLandscapePlacePage.h" -#import "MWMPlacePage+Animation.h" -#import "MWMPlacePageActionBar.h" -#import "MWMPlacePageViewManager.h" -#import "MWMSpringAnimation.h" -#import "UIColor+MapsMeColor.h" - -#include "Framework.h" - -static CGFloat const kMaximumPlacePageWidth = 360.; -extern CGFloat const kBookmarkCellHeight; - -typedef NS_ENUM(NSUInteger, MWMiPhoneLandscapePlacePageState) -{ - MWMiPhoneLandscapePlacePageStateClosed, - MWMiPhoneLandscapePlacePageStateOpen -}; - -@interface MWMiPhoneLandscapePlacePage () - -@property (nonatomic) MWMiPhoneLandscapePlacePageState state; -@property (nonatomic) CGPoint targetPoint; -@property (nonatomic) CGFloat panVelocity; - -@end - -@implementation MWMiPhoneLandscapePlacePage - -- (void)configure -{ - [super configure]; - self.anchorImageView.backgroundColor = [UIColor white]; - self.anchorImageView.image = nil; - [self refresh]; - [self addPlacePageShadowToView:self.extendedPlacePageView offset:CGSizeMake(2.0, 4.0)]; - [self.extendedPlacePageView addSubview:self.actionBar]; - [self.manager addSubviews:@[self.extendedPlacePageView] withNavigationController:nil]; -} - -- (void)show -{ - if (self.state == MWMiPhoneLandscapePlacePageStateOpen) - return; - CGSize const size = self.extendedPlacePageView.superview.size; - CGFloat const height = MIN(size.width, size.height); - CGFloat const offset = MIN(height, kMaximumPlacePageWidth); - self.extendedPlacePageView.minX = -offset; - self.extendedPlacePageView.width = offset; - self.actionBar.width = offset; - self.actionBar.minX = 0.0; - self.state = MWMiPhoneLandscapePlacePageStateOpen; -} - -- (void)hide -{ - if (self.state == MWMiPhoneLandscapePlacePageStateClosed) - return; - self.state = MWMiPhoneLandscapePlacePageStateClosed; -} - -- (void)configureContentInset -{ - CGFloat const height = self.extendedPlacePageView.height - self.anchorImageView.height; - CGFloat const actionBarHeight = self.actionBar.height; - UITableView * featureTable = self.basePlacePageView.featureTable; - CGFloat const tableContentHeight = featureTable.contentSize.height; - CGFloat const headerViewHeight = self.basePlacePageView.ppPreview.height; - CGFloat const availableTableHeight = height - headerViewHeight - actionBarHeight; - CGFloat const externalHeight = tableContentHeight - availableTableHeight; - if (externalHeight > 0) - { - featureTable.contentInset = UIEdgeInsetsMake(0., 0., externalHeight, 0.); - featureTable.scrollEnabled = YES; - } - else - { - [featureTable setContentOffset:CGPointZero animated:YES]; - featureTable.scrollEnabled = NO; - } -} - -- (void)addBookmark -{ - [super addBookmark]; - [self refresh]; -} - -- (void)removeBookmark -{ - [super removeBookmark]; - [self refresh]; -} - -- (void)reloadBookmark -{ - [super reloadBookmark]; - [self refresh]; -} - -- (void)refresh -{ - [self configureContentInset]; -} - -- (void)updateTargetPoint -{ - CGSize const size = UIScreen.mainScreen.bounds.size; - CGFloat const height = MIN(size.width, size.height); - CGFloat const offset = MIN(height, kMaximumPlacePageWidth); - switch (self.state) - { - case MWMiPhoneLandscapePlacePageStateClosed: - self.targetPoint = CGPointMake(-offset / 2., (height + self.topBound) / 2.); - break; - case MWMiPhoneLandscapePlacePageStateOpen: - self.targetPoint = CGPointMake(offset / 2., (height + self.topBound) / 2.); - break; - } -} -#pragma mark - Actions - -- (IBAction)didPan:(UIPanGestureRecognizer *)sender -{ - UIView * ppv = self.extendedPlacePageView; - UIView * ppvSuper = ppv.superview; - ppv.midX = MIN(ppv.midX + [sender translationInView:ppvSuper].x, ppv.width / 2.0); - [sender setTranslation:CGPointZero inView:ppvSuper]; - [self cancelSpringAnimation]; - UIGestureRecognizerState const state = sender.state; - if (state == UIGestureRecognizerStateEnded || state == UIGestureRecognizerStateCancelled) - { - self.panVelocity = [sender velocityInView:ppvSuper].x; - self.state = self.panVelocity > 0 ? MWMiPhoneLandscapePlacePageStateOpen : MWMiPhoneLandscapePlacePageStateClosed; - [self updateTargetPoint]; - } -} - -#pragma mark - Properties - -- (void)setState:(MWMiPhoneLandscapePlacePageState)state -{ - if (_state == state) - return; - _state = state; - [self updateTargetPoint]; -} - -- (void)setTopBound:(CGFloat)topBound -{ - super.topBound = topBound; - CGRect const frame = self.extendedPlacePageView.frame; - CGSize const size = self.extendedPlacePageView.superview.size; - CGFloat const height = MIN(size.width, size.height) - topBound; - CGFloat const width = frame.size.width; - CGFloat const actionBarHeight = self.actionBar.height; - self.extendedPlacePageView.frame = {{frame.origin.x, topBound}, {width, height}}; - self.actionBar.frame = {{0, height - actionBarHeight}, {width, actionBarHeight}}; - if (self.state == MWMiPhoneLandscapePlacePageStateOpen) - [self updateTargetPoint]; - [self refresh]; -} - -- (void)setTargetPoint:(CGPoint)targetPoint -{ - _targetPoint = targetPoint; - __weak MWMiPhoneLandscapePlacePage * weakSelf = self; - BOOL const stateClosed = self.state == MWMiPhoneLandscapePlacePageStateClosed; - if (stateClosed) - GetFramework().DeactivateMapSelection(false); - - self.panRecognizer.enabled = !stateClosed; - [self startAnimatingPlacePage:self initialVelocity:CGPointMake(self.panVelocity, 0.0) completion:^ - { - __strong MWMiPhoneLandscapePlacePage * self = weakSelf; - if (stateClosed) - [self.manager dismissPlacePage]; - }]; - self.panVelocity = 0.0; -} - -@end diff --git a/iphone/Maps/Classes/MWMiPhonePortraitPlacePage.h b/iphone/Maps/Classes/MWMiPhonePortraitPlacePage.h deleted file mode 100644 index 384e8e00a4..0000000000 --- a/iphone/Maps/Classes/MWMiPhonePortraitPlacePage.h +++ /dev/null @@ -1,5 +0,0 @@ -#import "MWMPlacePage.h" - -@interface MWMiPhonePortraitPlacePage : MWMPlacePage - -@end diff --git a/iphone/Maps/Classes/MWMiPhonePortraitPlacePage.mm b/iphone/Maps/Classes/MWMiPhonePortraitPlacePage.mm deleted file mode 100644 index f8d36a4415..0000000000 --- a/iphone/Maps/Classes/MWMiPhonePortraitPlacePage.mm +++ /dev/null @@ -1,332 +0,0 @@ -#import "Common.h" -#import "MapViewController.h" -#import "MWMBasePlacePageView.h" -#import "MWMiPhonePortraitPlacePage.h" -#import "MWMMapViewControlsManager.h" -#import "MWMPlacePage+Animation.h" -#import "MWMPlacePageActionBar.h" -#import "MWMPlacePageEntity.h" -#import "MWMPlacePageNavigationBar.h" -#import "MWMPlacePageViewManager.h" -#import "MWMSpringAnimation.h" -#import "UIImageView+Coloring.h" - -#include "Framework.h" - -typedef NS_ENUM(NSUInteger, MWMiPhonePortraitPlacePageState) -{ - MWMiPhonePortraitPlacePageStateClosed, - MWMiPhonePortraitPlacePageStatePreview, - MWMiPhonePortraitPlacePageStateOpen, - MWMiPhonePortraitPlacePageStateHover -}; - -@interface MWMiPhonePortraitPlacePage () - -@property (nonatomic) MWMiPhonePortraitPlacePageState state; -@property (nonatomic) CGPoint targetPoint; -@property (nonatomic) CGFloat panVelocity; -@property (nonatomic) BOOL isHover; - -@end - -@implementation MWMiPhonePortraitPlacePage - -- (void)configure -{ - [super configure]; - self.basePlacePageView.featureTable.scrollEnabled = NO; - CGSize const size = UIScreen.mainScreen.bounds.size; - CGFloat const width = MIN(size.width, size.height); - CGFloat const height = MAX(size.width, size.height); - UIView * ppv = self.extendedPlacePageView; - [self determineIfIsHover]; - ppv.frame = CGRectMake(0., height, width, 2 * height); - _targetPoint = ppv.center; - self.actionBar.width = width; - self.actionBar.center = {width / 2, height + self.actionBar.height / 2}; - [self.manager addSubviews:@[ppv, self.actionBar] withNavigationController:nil]; - [UIView animateWithDuration:kDefaultAnimationDuration delay:0. options:UIViewAnimationOptionCurveEaseOut animations:^ - { - self.actionBar.center = {width / 2, height - self.actionBar.height / 2}; - } - completion:nil]; -} - -- (void)determineIfIsHover -{ - CGSize const size = UIScreen.mainScreen.bounds.size; - CGFloat const height = MAX(size.width, size.height); - CGFloat const maximumY = height / 4.; - self.isHover = self.topY < maximumY; -} - -- (void)show -{ - self.state = MWMiPhonePortraitPlacePageStatePreview; -} - -- (void)hide -{ - self.state = MWMiPhonePortraitPlacePageStateClosed; -} - -- (void)dismiss -{ - [MWMPlacePageNavigationBar remove]; - [super dismiss]; -} - -- (void)addBookmark -{ - [super addBookmark]; - self.state = MWMiPhonePortraitPlacePageStateOpen; -} - -- (void)removeBookmark -{ - [super removeBookmark]; - self.state = MWMiPhonePortraitPlacePageStatePreview; -} - -- (void)reloadBookmark -{ - [super reloadBookmark]; - [self refresh]; -} - -- (void)updateMyPositionStatus:(NSString *)status -{ - [super updateMyPositionStatus:status]; - [self refresh]; -} - -- (void)refresh -{ - [self updateTargetPoint]; -} - -- (void)setState:(MWMiPhonePortraitPlacePageState)state -{ - _state = state; - [self refresh]; - switch (state) - { - case MWMiPhonePortraitPlacePageStateClosed: - [self.actionBar removeFromSuperview]; - [MWMPlacePageNavigationBar remove]; - break; - case MWMiPhonePortraitPlacePageStatePreview: - [MWMPlacePageNavigationBar remove]; - break; - case MWMiPhonePortraitPlacePageStateOpen: - case MWMiPhonePortraitPlacePageStateHover: - break; - } - [self setAnchorImage]; -} - -- (void)updateTargetPoint -{ - [self determineIfIsHover]; - UIView * ppv = self.extendedPlacePageView; - switch (self.state) - { - case MWMiPhonePortraitPlacePageStateClosed: - self.targetPoint = {ppv.width / 2, ppv.height * 2}; - break; - case MWMiPhonePortraitPlacePageStatePreview: - self.targetPoint = [self getPreviewTargetPoint]; - break; - case MWMiPhonePortraitPlacePageStateOpen: - self.targetPoint = [self getOpenTargetPoint]; - break; - case MWMiPhonePortraitPlacePageStateHover: - self.targetPoint = [self getHoverTargetPoint]; - break; - } -} - -- (CGPoint)getPreviewTargetPoint -{ - CGSize const size = UIScreen.mainScreen.bounds.size; - BOOL const isLandscape = size.width > size.height; - CGFloat const width = isLandscape ? size.height : size.width; - CGFloat const height = isLandscape ? size.width : size.height; - CGFloat const h = height - (self.topPlacePageHeight); - return {width / 2, height + h}; -} - -- (CGPoint)getOpenTargetPoint -{ - CGSize const size = UIScreen.mainScreen.bounds.size; - BOOL const isLandscape = size.width > size.height; - CGFloat const width = isLandscape ? size.height : size.width; - CGFloat const height = isLandscape ? size.width : size.height; - return {width / 2, height + self.topY}; -} - -- (CGPoint)getHoverTargetPoint -{ - CGSize const size = UIScreen.mainScreen.bounds.size; - CGFloat const height = size.height; - return {size.width / 2, height + height / 4}; -} - -- (CGFloat)topY -{ - MWMBasePlacePageView * basePPV = self.basePlacePageView; - CGSize const size = UIScreen.mainScreen.bounds.size; - CGFloat const height = MAX(size.width, size.height); - CGFloat const tableViewHeight = basePPV.featureTable.height; - return height - (self.topPlacePageHeight + tableViewHeight); -} - -- (CGFloat)topPlacePageHeight -{ - MWMBasePlacePageView * basePPV = self.basePlacePageView; - CGFloat const anchorHeight = self.anchorImageView.height; - CGFloat const actionBarHeight = self.actionBar.height; - return anchorHeight + basePPV.ppPreview.height + actionBarHeight - 1; -} - -#pragma mark - Actions - -- (IBAction)didPan:(UIPanGestureRecognizer *)sender -{ - UIView * ppv = self.extendedPlacePageView; - UIView * ppvSuper = ppv.superview; - - ppv.midY = MAX(ppv.midY + [sender translationInView:ppvSuper].y, [self getOpenTargetPoint].y); - _targetPoint = ppv.center; - if (ppv.minY <= 0.0) - [MWMPlacePageNavigationBar showNavigationBarForPlacePage:self]; - else - [MWMPlacePageNavigationBar dismissNavigationBar]; - [sender setTranslation:CGPointZero inView:ppvSuper]; - [self cancelSpringAnimation]; - UIGestureRecognizerState const state = sender.state; - if (state == UIGestureRecognizerStateEnded || state == UIGestureRecognizerStateCancelled) - { - self.panVelocity = [sender velocityInView:ppvSuper].y; - CGFloat const estimatedYPosition = [MWMSpringAnimation approxTargetFor:ppv.frame.origin.y velocity:self.panVelocity]; - CGFloat const bound1 = ppvSuper.height * 0.2; - CGFloat const bound2 = ppvSuper.height * (self.isHover ? 0.72 : 0.5); - - if (estimatedYPosition < bound1) - { - if (self.isHover) - { - if (self.state != MWMiPhonePortraitPlacePageStateHover) - self.state = MWMiPhonePortraitPlacePageStateHover; - } - else - { - self.state = MWMiPhonePortraitPlacePageStateOpen; - } - } - else if (self.panVelocity <= 0.0) - { - self.state = self.isHover ? MWMiPhonePortraitPlacePageStateHover : MWMiPhonePortraitPlacePageStateOpen; - } - else if (ppv.minY < bound2) - { - if (self.isHover && self.state == MWMiPhonePortraitPlacePageStateHover) - { - if (self.targetPoint.y > self.getHoverTargetPoint.y) - self.state = MWMiPhonePortraitPlacePageStatePreview; - } - else - { - self.state = MWMiPhonePortraitPlacePageStatePreview; - } - } - else - { - [self.manager dismissPlacePage]; - } - } -} - -- (IBAction)didTap:(UITapGestureRecognizer *)sender -{ - [super didTap:sender]; - switch (self.state) - { - case MWMiPhonePortraitPlacePageStateClosed: - self.state = MWMiPhonePortraitPlacePageStatePreview; - break; - case MWMiPhonePortraitPlacePageStatePreview: - self.state = self.isHover ? MWMiPhonePortraitPlacePageStateHover : MWMiPhonePortraitPlacePageStateOpen; - break; - case MWMiPhonePortraitPlacePageStateOpen: - self.state = MWMiPhonePortraitPlacePageStatePreview; - case MWMiPhonePortraitPlacePageStateHover: - if (!self.isHover) - { - self.state = MWMiPhonePortraitPlacePageStatePreview; - } - else - { - if (self.targetPoint.y < self.getHoverTargetPoint.y) - self.state = MWMiPhonePortraitPlacePageStateHover; - else - self.state = MWMiPhonePortraitPlacePageStatePreview; - } - break; - } -} - -- (void)setAnchorImage -{ - NSString * anchorImageName = nil; - switch (self.state) - { - case MWMiPhonePortraitPlacePageStateClosed: - break; - case MWMiPhonePortraitPlacePageStatePreview: - anchorImageName = @"bg_placepage_tablet_normal_"; - break; - case MWMiPhonePortraitPlacePageStateOpen: - case MWMiPhonePortraitPlacePageStateHover: - anchorImageName = @"bg_placepage_tablet_open_"; - break; - } - if (anchorImageName) - { - CGSize const size = UIScreen.mainScreen.bounds.size; - CGFloat const width = MIN(size.height, size.width); - self.anchorImageView.mwm_name = [anchorImageName stringByAppendingString:@((NSUInteger)width).stringValue]; - } -} - -#pragma mark - Properties - -- (void)setTargetPoint:(CGPoint)targetPoint -{ - if (CGPointEqualToPoint(_targetPoint, targetPoint)) - return; - _targetPoint = targetPoint; - __weak MWMiPhonePortraitPlacePage * weakSelf = self; - if (self.state == MWMiPhonePortraitPlacePageStateClosed) - GetFramework().DeactivateMapSelection(false); - - [self startAnimatingPlacePage:self initialVelocity:{0.0, self.panVelocity} completion:^ - { - __strong MWMiPhonePortraitPlacePage * self = weakSelf; - if (self.state == MWMiPhonePortraitPlacePageStateClosed) - { - [self.manager dismissPlacePage]; - } - else - { - if (self.extendedPlacePageView.minY <= 0.0) - [MWMPlacePageNavigationBar showNavigationBarForPlacePage:self]; - else - [MWMPlacePageNavigationBar dismissNavigationBar]; - } - }]; - self.panVelocity = 0.0; -} - -@end diff --git a/iphone/Maps/Classes/MapViewController.mm b/iphone/Maps/Classes/MapViewController.mm index 060a7c3ff5..f71e9e3bb7 100644 --- a/iphone/Maps/Classes/MapViewController.mm +++ b/iphone/Maps/Classes/MapViewController.mm @@ -19,7 +19,6 @@ #import "MWMMapDownloaderViewController.h" #import "MWMMapViewControlsManager.h" #import "MWMPlacePageData.h" -#import "MWMPlacePageEntity.h" #import "MWMPlacePageProtocol.h" #import "MWMRouter.h" #import "MWMRouterSavedState.h" @@ -587,17 +586,6 @@ BOOL gIsFirstMyPositionMode = YES; MWMAuthorizationWebViewLoginViewController * dvc = segue.destinationViewController; dvc.authType = MWMWebViewAuthorizationTypeGoogle; } - else if ([segue.identifier isEqualToString:@"PP2BookmarkEditingIPAD"]) - { - UINavigationController * nav = segue.destinationViewController; - MWMEditBookmarkController * dvc = nav.viewControllers.firstObject; - dvc.manager = sender; - } - else if ([segue.identifier isEqualToString:@"PP2BookmarkEditing"]) - { - MWMEditBookmarkController * dvc = segue.destinationViewController; - dvc.manager = sender; - } } #pragma mark - Properties diff --git a/iphone/Maps/Classes/PlacePageBookmarkCell.xib b/iphone/Maps/Classes/PlacePageBookmarkCell.xib deleted file mode 100644 index 684449d1c5..0000000000 --- a/iphone/Maps/Classes/PlacePageBookmarkCell.xib +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iphone/Maps/Classes/PlacePageNavigationBar.xib b/iphone/Maps/Classes/PlacePageNavigationBar.xib deleted file mode 100644 index 49efc607db..0000000000 --- a/iphone/Maps/Classes/PlacePageNavigationBar.xib +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iphone/Maps/Classes/PlacePageView.xib b/iphone/Maps/Classes/PlacePageView.xib deleted file mode 100644 index 4be95a80ba..0000000000 --- a/iphone/Maps/Classes/PlacePageView.xib +++ /dev/null @@ -1,250 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iphone/Maps/Classes/Share/MWMShareActivityItem.mm b/iphone/Maps/Classes/Share/MWMShareActivityItem.mm index 10071719df..501114b89f 100644 --- a/iphone/Maps/Classes/Share/MWMShareActivityItem.mm +++ b/iphone/Maps/Classes/Share/MWMShareActivityItem.mm @@ -1,5 +1,4 @@ #import "MWMShareActivityItem.h" -#import "MWMPlacePageEntity.h" #import "Macros.h" #import "Statistics.h" diff --git a/iphone/Maps/Maps.xcodeproj/project.pbxproj b/iphone/Maps/Maps.xcodeproj/project.pbxproj index 83208cc0e6..2dcf89fa1b 100644 --- a/iphone/Maps/Maps.xcodeproj/project.pbxproj +++ b/iphone/Maps/Maps.xcodeproj/project.pbxproj @@ -95,7 +95,6 @@ 342AD76F1B53D30C00E0B997 /* UIButton+RuntimeAttributes.mm in Sources */ = {isa = PBXBuildFile; fileRef = 342AD76E1B53D30C00E0B997 /* UIButton+RuntimeAttributes.mm */; }; 342AD7721B53D32F00E0B997 /* UIView+RuntimeAttributes.mm in Sources */ = {isa = PBXBuildFile; fileRef = 342AD7711B53D32F00E0B997 /* UIView+RuntimeAttributes.mm */; }; 342AF0E01BE24E9A0016F3AE /* MWMMapDownloaderViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 342AF0DF1BE24E9A0016F3AE /* MWMMapDownloaderViewController.mm */; }; - 342BB7AB1BC7CC5C00DF6443 /* PlacePageBookmarkCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 342BB7AA1BC7CC5C00DF6443 /* PlacePageBookmarkCell.xib */; }; 342CC5F11C2D7730005F3FE5 /* MWMAuthorizationLoginViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 342CC5F01C2D7730005F3FE5 /* MWMAuthorizationLoginViewController.mm */; }; 342CC5F21C2D7730005F3FE5 /* MWMAuthorizationLoginViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 342CC5F01C2D7730005F3FE5 /* MWMAuthorizationLoginViewController.mm */; }; 342EE4111C43DAA7009F6A49 /* MWMAuthorizationWebViewLoginViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 342EE4101C43DAA7009F6A49 /* MWMAuthorizationWebViewLoginViewController.mm */; }; @@ -421,7 +420,6 @@ 671182E51C7F0DDB00CB8177 /* packed_polygons_obsolete.bin in Resources */ = {isa = PBXBuildFile; fileRef = 671182DF1C7F0DD400CB8177 /* packed_polygons_obsolete.bin */; }; 671182E61C7F0DDD00CB8177 /* countries_obsolete.txt in Resources */ = {isa = PBXBuildFile; fileRef = 671182DE1C7F0DD400CB8177 /* countries_obsolete.txt */; }; 6741A9421BF340DE002C974C /* sound-strings in Resources */ = {isa = PBXBuildFile; fileRef = 5605022E1B6211E100169CAD /* sound-strings */; }; - 6741A9441BF340DE002C974C /* PlacePageBookmarkCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 342BB7AA1BC7CC5C00DF6443 /* PlacePageBookmarkCell.xib */; }; 6741A9451BF340DE002C974C /* classificator.txt in Resources */ = {isa = PBXBuildFile; fileRef = EE026F0511D6AC0D00645242 /* classificator.txt */; }; 6741A9461BF340DE002C974C /* MWMSearchTabbedViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34CC4C081B81F3B500E44C1F /* MWMSearchTabbedViewController.xib */; }; 6741A9471BF340DE002C974C /* MWMSearchCategoryCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34B82AC91B8465C100180497 /* MWMSearchCategoryCell.xib */; }; @@ -452,7 +450,6 @@ 6741A9661BF340DE002C974C /* MWMSearchHistoryRequestCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34B82AB91B837FFD00180497 /* MWMSearchHistoryRequestCell.xib */; }; 6741A9671BF340DE002C974C /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 34B6CF5C1BBBFC6B009203C6 /* LaunchScreen.storyboard */; }; 6741A9681BF340DE002C974C /* faq.html in Resources */ = {isa = PBXBuildFile; fileRef = 978D4A30199A11E600D72CA7 /* faq.html */; }; - 6741A9691BF340DE002C974C /* PlacePageView.xib in Resources */ = {isa = PBXBuildFile; fileRef = F66A8FB11B0A0954001B9C97 /* PlacePageView.xib */; }; 6741A96B1BF340DE002C974C /* MWMBottomMenuViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 349C26B41BB02C6F0005DF2F /* MWMBottomMenuViewController.xib */; }; 6741A96C1BF340DE002C974C /* MWMDownloadTransitMapAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = F64F19981AB81A00006EAF7E /* MWMDownloadTransitMapAlert.xib */; }; 6741A96D1BF340DE002C974C /* MWMLocationAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6BBF2C71B4FFB8C000CF8E2 /* MWMLocationAlert.xib */; }; @@ -472,7 +469,6 @@ 6741A97D1BF340DE002C974C /* synonyms.txt in Resources */ = {isa = PBXBuildFile; fileRef = FAAEA7D0161BD26600CCD661 /* synonyms.txt */; }; 6741A97E1BF340DE002C974C /* drules_proto_dark.bin in Resources */ = {isa = PBXBuildFile; fileRef = 4A00DBDE1AB704C400113624 /* drules_proto_dark.bin */; }; 6741A97F1BF340DE002C974C /* resources-mdpi_clear in Resources */ = {isa = PBXBuildFile; fileRef = 4A23D1581B8B4DD700D4EB6F /* resources-mdpi_clear */; }; - 6741A9801BF340DE002C974C /* PlacePageNavigationBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6FE2C101B03A015009814AA /* PlacePageNavigationBar.xib */; }; 6741A9811BF340DE002C974C /* MWMRateAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = F61579351AC2CEB60032D8E9 /* MWMRateAlert.xib */; }; 6741A9821BF340DE002C974C /* MWMBottomMenuCollectionViewLandscapeCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34634B1A1BB42D270013573C /* MWMBottomMenuCollectionViewLandscapeCell.xib */; }; 6741A9831BF340DE002C974C /* Mapsme.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 347FDDA01BB59B4E00871410 /* Mapsme.storyboard */; }; @@ -506,7 +502,6 @@ 6741A9A91BF340DE002C974C /* MWMDefaultAlert.mm in Sources */ = {isa = PBXBuildFile; fileRef = F64F198B1AB81A00006EAF7E /* MWMDefaultAlert.mm */; }; 6741A9AA1BF340DE002C974C /* MWMSearchShowOnMapCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3438CDF61B8616760051AA78 /* MWMSearchShowOnMapCell.mm */; }; 6741A9AC1BF340DE002C974C /* MWMSearchTabButtonsView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34F45E8D1B96E88100AC93F8 /* MWMSearchTabButtonsView.mm */; }; - 6741A9AD1BF340DE002C974C /* MWMSpringAnimation.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6C9343F1AE64E4200DDC624 /* MWMSpringAnimation.mm */; }; 6741A9AE1BF340DE002C974C /* MWMSearchCategoryCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34B82AC81B8465C100180497 /* MWMSearchCategoryCell.mm */; }; 6741A9B01BF340DE002C974C /* MapsAppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* MapsAppDelegate.mm */; }; 6741A9B11BF340DE002C974C /* MWMAPIBarView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 341522BE1B666A550077AA8F /* MWMAPIBarView.mm */; }; @@ -521,20 +516,15 @@ 6741A9BE1BF340DE002C974C /* UILabel+RuntimeAttributes.mm in Sources */ = {isa = PBXBuildFile; fileRef = F62404FA1AAF3DB200B58DB6 /* UILabel+RuntimeAttributes.mm */; }; 6741A9BF1BF340DE002C974C /* MWMSearchTabbedCollectionViewCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34CC4C0C1B82069C00E44C1F /* MWMSearchTabbedCollectionViewCell.mm */; }; 6741A9C01BF340DE002C974C /* MWMTextView.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6588E2B1B15C26700EE1E58 /* MWMTextView.mm */; }; - 6741A9C21BF340DE002C974C /* MWMiPhonePortraitPlacePage.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6F722F71AE1572400DA3DA1 /* MWMiPhonePortraitPlacePage.mm */; }; 6741A9C31BF340DE002C974C /* MWMPlacePageActionBar.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6CB21671AEFC6AA00FB8963 /* MWMPlacePageActionBar.mm */; }; 6741A9C61BF340DE002C974C /* MWMSearchCommonCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34B82ADC1B84A4A000180497 /* MWMSearchCommonCell.mm */; }; - 6741A9C81BF340DE002C974C /* MWMiPhoneLandscapePlacePage.mm in Sources */ = {isa = PBXBuildFile; fileRef = F66A8FA71B09F052001B9C97 /* MWMiPhoneLandscapePlacePage.mm */; }; 6741A9C91BF340DE002C974C /* ToastView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 974386DC19373EA400FD5659 /* ToastView.mm */; }; - 6741A9CA1BF340DE002C974C /* MWMAnimator.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6C9343B1AE4F94A00DDC624 /* MWMAnimator.mm */; }; 6741A9CB1BF340DE002C974C /* MWMSearchContentView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3438CDFB1B862F5C0051AA78 /* MWMSearchContentView.mm */; }; 6741A9CC1BF340DE002C974C /* MWMSearchTableViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3485C0101B85C20E00F7712D /* MWMSearchTableViewController.mm */; }; 6741A9CE1BF340DE002C974C /* MWMSearchManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34CFFE8A1B7DE6FD009D0C9F /* MWMSearchManager.mm */; }; 6741A9CF1BF340DE002C974C /* MWMLocationAlert.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6BBF2C51B4FFB72000CF8E2 /* MWMLocationAlert.mm */; }; - 6741A9D01BF340DE002C974C /* MWMPlacePage.mm in Sources */ = {isa = PBXBuildFile; fileRef = F66A8FAF1B09F268001B9C97 /* MWMPlacePage.mm */; }; 6741A9D41BF340DE002C974C /* MWMAlertViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F64F19821AB81A00006EAF7E /* MWMAlertViewController.mm */; }; 6741A9D51BF340DE002C974C /* WebViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = FAFCB63513366E78001A5C59 /* WebViewController.mm */; }; - 6741A9D61BF340DE002C974C /* MWMPlacePageNavigationBar.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6FE2C0E1B03A006009814AA /* MWMPlacePageNavigationBar.mm */; }; 6741A9DA1BF340DE002C974C /* UIKitCategories.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9747264118323080006B7CB7 /* UIKitCategories.mm */; }; 6741A9DB1BF340DE002C974C /* MWMRoutePreview.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6BD337E1B62403B00F2CE18 /* MWMRoutePreview.mm */; }; 6741A9DC1BF340DE002C974C /* MWMRoutePointLayout.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6BB6CC21BB1860D00DF1DF2 /* MWMRoutePointLayout.mm */; }; @@ -542,22 +532,17 @@ 6741A9E01BF340DE002C974C /* MWMDownloaderDialogHeader.mm in Sources */ = {isa = PBXBuildFile; fileRef = F64F4B731B4A45FD0081A24A /* MWMDownloaderDialogHeader.mm */; }; 6741A9E11BF340DE002C974C /* MWMSearchTableView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34F8ADD81B97229A004184CC /* MWMSearchTableView.mm */; }; 6741A9E31BF340DE002C974C /* TimeUtils.mm in Sources */ = {isa = PBXBuildFile; fileRef = B08AA8D91A26299A00810B1C /* TimeUtils.mm */; }; - 6741A9E41BF340DE002C974C /* MWMPlacePageBookmarkCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6CB216C1AF13EBD00FB8963 /* MWMPlacePageBookmarkCell.mm */; }; - 6741A9E51BF340DE002C974C /* MWMPlacePageViewManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = F653D4221AE9398700282659 /* MWMPlacePageViewManager.mm */; }; - 6741A9E61BF340DE002C974C /* MWMPlacePage+Animation.mm in Sources */ = {isa = PBXBuildFile; fileRef = F65243341B0B634F00BFA9D4 /* MWMPlacePage+Animation.mm */; }; 6741A9E71BF340DE002C974C /* MWMCircularProgressView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 349A35791B53D4C9009677EE /* MWMCircularProgressView.mm */; }; 6741A9E81BF340DE002C974C /* MWMAPIBar.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3465E7D71B6658C000854C4D /* MWMAPIBar.mm */; }; 6741A9EB1BF340DE002C974C /* ContextViews.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6D409F91B319BD70041730F /* ContextViews.mm */; }; 6741A9EC1BF340DE002C974C /* MWMCircularProgress.mm in Sources */ = {isa = PBXBuildFile; fileRef = 349A35761B53D4C9009677EE /* MWMCircularProgress.mm */; }; 6741A9EE1BF340DE002C974C /* MWMSearchCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34B82AD91B847FFC00180497 /* MWMSearchCell.mm */; }; - 6741A9EF1BF340DE002C974C /* MWMiPadPlacePage.mm in Sources */ = {isa = PBXBuildFile; fileRef = F66A8FAB1B09F137001B9C97 /* MWMiPadPlacePage.mm */; }; 6741A9F01BF340DE002C974C /* MWMSettingsViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 978F9239183B660F000D6C7C /* MWMSettingsViewController.mm */; }; 6741A9F11BF340DE002C974C /* MWMNavigationDashboardEntity.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6BD33861B62412E00F2CE18 /* MWMNavigationDashboardEntity.mm */; }; 6741A9F21BF340DE002C974C /* MWMPlacePageInfoCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6CB215F1AEE7A5B00FB8963 /* MWMPlacePageInfoCell.mm */; }; 6741A9F31BF340DE002C974C /* MWMSearchHistoryManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = 340E105F1B944DAB00D975D5 /* MWMSearchHistoryManager.mm */; }; 6741A9F41BF340DE002C974C /* CALayer+RuntimeAttributes.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6DBF9B51AA8779300F2EC2C /* CALayer+RuntimeAttributes.mm */; }; 6741A9F51BF340DE002C974C /* BookmarksVC.mm in Sources */ = {isa = PBXBuildFile; fileRef = FA36B80615403A4F004560CC /* BookmarksVC.mm */; }; - 6741A9F61BF340DE002C974C /* MWMExtendedPlacePageView.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6ED135A1B18AA930095C6DE /* MWMExtendedPlacePageView.mm */; }; 6741A9F91BF340DE002C974C /* MWMSearchSuggestionCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34B82AD41B84746E00180497 /* MWMSearchSuggestionCell.mm */; }; 6741A9FA1BF340DE002C974C /* MWMBookmarkColorViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6588E2E1B15D2BC00EE1E58 /* MWMBookmarkColorViewController.mm */; }; 6741A9FC1BF340DE002C974C /* iosOGLContextFactory.mm in Sources */ = {isa = PBXBuildFile; fileRef = A32B6D4B1A14980500E54A65 /* iosOGLContextFactory.mm */; }; @@ -592,13 +577,11 @@ 6741AA231BF340DE002C974C /* UIFont+MapsMeFonts.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3472EC041B4D44BE0085CB79 /* UIFont+MapsMeFonts.mm */; }; 6741AA241BF340DE002C974C /* UIButton+RuntimeAttributes.mm in Sources */ = {isa = PBXBuildFile; fileRef = 342AD76E1B53D30C00E0B997 /* UIButton+RuntimeAttributes.mm */; }; 6741AA251BF340DE002C974C /* MWMBottomMenuView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 349C26B81BB04ED30005DF2F /* MWMBottomMenuView.mm */; }; - 6741AA271BF340DE002C974C /* MWMBasePlacePageView.mm in Sources */ = {isa = PBXBuildFile; fileRef = F63732951AE9431E00A03764 /* MWMBasePlacePageView.mm */; }; 6741AA281BF340DE002C974C /* MWMAlert.mm in Sources */ = {isa = PBXBuildFile; fileRef = F64F19861AB81A00006EAF7E /* MWMAlert.mm */; }; 6741AA291BF340DE002C974C /* ColorPickerView.mm in Sources */ = {isa = PBXBuildFile; fileRef = ED48BBB417C267F5003E7E92 /* ColorPickerView.mm */; }; 6741AA2B1BF340DE002C974C /* CircleView.mm in Sources */ = {isa = PBXBuildFile; fileRef = ED48BBB917C2B1E2003E7E92 /* CircleView.mm */; }; 6741AA2C1BF340DE002C974C /* MWMSearchBookmarksManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = 340E10621B949D1900D975D5 /* MWMSearchBookmarksManager.mm */; }; 6741AA2D1BF340DE002C974C /* AddSetTableViewCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34D15BA61BD8F93C00C8BCBE /* AddSetTableViewCell.mm */; }; - 6741AA2F1BF340DE002C974C /* MWMPlacePageEntity.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6FE2C141B04A44E009814AA /* MWMPlacePageEntity.mm */; }; 6741AA301BF340DE002C974C /* MWMSearchTextField.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34B82AB11B8344E300180497 /* MWMSearchTextField.mm */; }; 6741AA321BF340DE002C974C /* FBSDKLoginKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 34570A401B13229300E6D4FD /* FBSDKLoginKit.framework */; settings = {ATTRIBUTES = (Required, ); }; }; 6741AA331BF340DE002C974C /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97C9864D186C5ED300AF7E9E /* Social.framework */; settings = {ATTRIBUTES = (Required, ); }; }; @@ -755,7 +738,6 @@ F634C8FD1D79998C00BE04E2 /* _MWMPPPBooking.xib in Resources */ = {isa = PBXBuildFile; fileRef = F634C8FB1D79998C00BE04E2 /* _MWMPPPBooking.xib */; }; F634C8FF1D79999A00BE04E2 /* _MWMPPPAddress.xib in Resources */ = {isa = PBXBuildFile; fileRef = F634C8FE1D79999A00BE04E2 /* _MWMPPPAddress.xib */; }; F634C9001D79999A00BE04E2 /* _MWMPPPAddress.xib in Resources */ = {isa = PBXBuildFile; fileRef = F634C8FE1D79999A00BE04E2 /* _MWMPPPAddress.xib */; }; - F63732961AE9431E00A03764 /* MWMBasePlacePageView.mm in Sources */ = {isa = PBXBuildFile; fileRef = F63732951AE9431E00A03764 /* MWMBasePlacePageView.mm */; }; F63774E71B59375E00BCF54D /* MWMRoutingDisclaimerAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = F63774E61B59375E00BCF54D /* MWMRoutingDisclaimerAlert.xib */; }; F63774EA1B59376F00BCF54D /* MWMRoutingDisclaimerAlert.mm in Sources */ = {isa = PBXBuildFile; fileRef = F63774E91B59376F00BCF54D /* MWMRoutingDisclaimerAlert.mm */; }; F6381BF51CD12045004CA943 /* LocaleTranslator.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6381BF41CD12045004CA943 /* LocaleTranslator.mm */; }; @@ -787,7 +769,6 @@ F64F4B6F1B46A5380081A24A /* MWMDownloaderDialogCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F64F4B6E1B46A5380081A24A /* MWMDownloaderDialogCell.xib */; }; F64F4B711B4A41D40081A24A /* MWMDownloaderDialogHeader.xib in Resources */ = {isa = PBXBuildFile; fileRef = F64F4B701B4A41D40081A24A /* MWMDownloaderDialogHeader.xib */; }; F64F4B741B4A45FD0081A24A /* MWMDownloaderDialogHeader.mm in Sources */ = {isa = PBXBuildFile; fileRef = F64F4B731B4A45FD0081A24A /* MWMDownloaderDialogHeader.mm */; }; - F65243351B0B634F00BFA9D4 /* MWMPlacePage+Animation.mm in Sources */ = {isa = PBXBuildFile; fileRef = F65243341B0B634F00BFA9D4 /* MWMPlacePage+Animation.mm */; }; F652B2EA1C6DE8E500D20C8C /* MWMDropDown.xib in Resources */ = {isa = PBXBuildFile; fileRef = F652B2E91C6DE8E500D20C8C /* MWMDropDown.xib */; }; F652D9141CFEE47000FC29A0 /* SafariServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F659FC691CF35C24000A06B1 /* SafariServices.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; F653CE0E1C6DEB2E00A453F1 /* MWMDropDown.xib in Resources */ = {isa = PBXBuildFile; fileRef = F652B2E91C6DE8E500D20C8C /* MWMDropDown.xib */; }; @@ -797,7 +778,6 @@ F653CE181C71F62400A453F1 /* MWMAddPlaceNavigationBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = F653CE171C71F62400A453F1 /* MWMAddPlaceNavigationBar.xib */; }; F653CE191C71F62700A453F1 /* MWMAddPlaceNavigationBar.mm in Sources */ = {isa = PBXBuildFile; fileRef = F653CE151C71F60200A453F1 /* MWMAddPlaceNavigationBar.mm */; }; F653CE1C1C7361DA00A453F1 /* MWMObjectsCategorySelectorController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F653CE1B1C7361DA00A453F1 /* MWMObjectsCategorySelectorController.mm */; }; - F653D4231AE9398700282659 /* MWMPlacePageViewManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = F653D4221AE9398700282659 /* MWMPlacePageViewManager.mm */; }; F6588E2C1B15C26700EE1E58 /* MWMTextView.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6588E2B1B15C26700EE1E58 /* MWMTextView.mm */; }; F6588E2F1B15D2BC00EE1E58 /* MWMBookmarkColorViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6588E2E1B15D2BC00EE1E58 /* MWMBookmarkColorViewController.mm */; }; F6588E331B15D73100EE1E58 /* MWMBookmarkColorViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6588E321B15D73100EE1E58 /* MWMBookmarkColorViewController.xib */; }; @@ -808,10 +788,6 @@ F65B31F61DD2106700105FDE /* MWMiPadPlacePageLayoutImpl.mm in Sources */ = {isa = PBXBuildFile; fileRef = F65B31F41DD2106700105FDE /* MWMiPadPlacePageLayoutImpl.mm */; }; F6671C6B1BA2EFD500548008 /* libFlurry_7.1.0.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F6671C6A1BA2EFD500548008 /* libFlurry_7.1.0.a */; }; F668F6561BCD4507002D6FFC /* MWMTTSSettingsViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F668F6551BCD4507002D6FFC /* MWMTTSSettingsViewController.mm */; }; - F66A8FA81B09F052001B9C97 /* MWMiPhoneLandscapePlacePage.mm in Sources */ = {isa = PBXBuildFile; fileRef = F66A8FA71B09F052001B9C97 /* MWMiPhoneLandscapePlacePage.mm */; }; - F66A8FAC1B09F137001B9C97 /* MWMiPadPlacePage.mm in Sources */ = {isa = PBXBuildFile; fileRef = F66A8FAB1B09F137001B9C97 /* MWMiPadPlacePage.mm */; }; - F66A8FB01B09F268001B9C97 /* MWMPlacePage.mm in Sources */ = {isa = PBXBuildFile; fileRef = F66A8FAF1B09F268001B9C97 /* MWMPlacePage.mm */; }; - F66A8FB21B0A0954001B9C97 /* PlacePageView.xib in Resources */ = {isa = PBXBuildFile; fileRef = F66A8FB11B0A0954001B9C97 /* PlacePageView.xib */; }; F67223781D74800600A3BDA2 /* MWMPlacePagePreviewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F67223751D74800600A3BDA2 /* MWMPlacePagePreviewCell.xib */; }; F67223791D74800600A3BDA2 /* MWMPlacePagePreviewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F67223751D74800600A3BDA2 /* MWMPlacePagePreviewCell.xib */; }; F67517A21D76FC46008FE34F /* MWMPlacePageLayout.mm in Sources */ = {isa = PBXBuildFile; fileRef = F67517A11D76FC46008FE34F /* MWMPlacePageLayout.mm */; }; @@ -848,6 +824,8 @@ F6AD57BD1C870A3C00CED368 /* MWMEditorCategoryCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6AD57BC1C870A3C00CED368 /* MWMEditorCategoryCell.xib */; }; F6AD57BE1C870A3C00CED368 /* MWMEditorCategoryCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6AD57BC1C870A3C00CED368 /* MWMEditorCategoryCell.xib */; }; F6B2E61F1C3D5F31005562DF /* MWMNightModeController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6B2E61E1C3D5F31005562DF /* MWMNightModeController.mm */; }; + F6B870161DDCA03600BE8D94 /* MWMPlacePageEntity.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6B870151DDCA03600BE8D94 /* MWMPlacePageEntity.mm */; }; + F6B870171DDCA03600BE8D94 /* MWMPlacePageEntity.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6B870151DDCA03600BE8D94 /* MWMPlacePageEntity.mm */; }; F6B97B261CD0CA990009B612 /* MWMBookmarkNameCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6B97B251CD0CA990009B612 /* MWMBookmarkNameCell.mm */; }; F6B97B271CD0CA990009B612 /* MWMBookmarkNameCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6B97B251CD0CA990009B612 /* MWMBookmarkNameCell.mm */; }; F6B97B291CD0CB170009B612 /* MWMBookmarkNameCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6B97B281CD0CB170009B612 /* MWMBookmarkNameCell.xib */; }; @@ -872,14 +850,11 @@ F6BED3771CE3726A008D31E7 /* MWMBookmarkTitleCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6BED3761CE3726A008D31E7 /* MWMBookmarkTitleCell.xib */; }; F6BED3781CE3726A008D31E7 /* MWMBookmarkTitleCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6BED3761CE3726A008D31E7 /* MWMBookmarkTitleCell.xib */; }; F6C641B01C15BBE6008FCAF3 /* MWMRecentTrackSettingsController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6C641AF1C15BBE6008FCAF3 /* MWMRecentTrackSettingsController.mm */; }; - F6C9343C1AE4F94A00DDC624 /* MWMAnimator.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6C9343B1AE4F94A00DDC624 /* MWMAnimator.mm */; }; - F6C934401AE64E4200DDC624 /* MWMSpringAnimation.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6C9343F1AE64E4200DDC624 /* MWMSpringAnimation.mm */; }; F6CB215C1AEE704D00FB8963 /* PlacePageInfoCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6CB215B1AEE704D00FB8963 /* PlacePageInfoCell.xib */; }; F6CB21601AEE7A5B00FB8963 /* MWMPlacePageInfoCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6CB215F1AEE7A5B00FB8963 /* MWMPlacePageInfoCell.mm */; }; F6CB21621AEE902B00FB8963 /* PlacePageLinkCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6CB21611AEE902B00FB8963 /* PlacePageLinkCell.xib */; }; F6CB21641AEFC42800FB8963 /* MWMPlacePageActionBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6CB21631AEFC42800FB8963 /* MWMPlacePageActionBar.xib */; }; F6CB21681AEFC6AA00FB8963 /* MWMPlacePageActionBar.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6CB21671AEFC6AA00FB8963 /* MWMPlacePageActionBar.mm */; }; - F6CB216D1AF13EBD00FB8963 /* MWMPlacePageBookmarkCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6CB216C1AF13EBD00FB8963 /* MWMPlacePageBookmarkCell.mm */; }; F6D1A0B11D76E33D0070A015 /* MWMPlacePageData.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6D1A0B01D76E33D0070A015 /* MWMPlacePageData.mm */; }; F6D1A0B21D76E33D0070A015 /* MWMPlacePageData.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6D1A0B01D76E33D0070A015 /* MWMPlacePageData.mm */; }; F6D409FA1B319BD70041730F /* ContextViews.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6D409F91B319BD70041730F /* ContextViews.mm */; }; @@ -904,14 +879,9 @@ F6E9BF331CE3658D0050E534 /* MWMBookmarkTitleCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F6E9BF311CE3658D0050E534 /* MWMBookmarkTitleCell.m */; }; F6ED13541B1643900095C6DE /* MWMDirectionView.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6ED13531B1643900095C6DE /* MWMDirectionView.mm */; }; F6ED13561B16439E0095C6DE /* MWMDirectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6ED13551B16439E0095C6DE /* MWMDirectionView.xib */; }; - F6ED135B1B18AA930095C6DE /* MWMExtendedPlacePageView.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6ED135A1B18AA930095C6DE /* MWMExtendedPlacePageView.mm */; }; F6F533A31B3C248900C1940B /* UIColor+MapsMeColor.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6F533A21B3C248900C1940B /* UIColor+MapsMeColor.mm */; }; F6F6ACFC1C15C1010060FDD0 /* MWMRecentTrackSettingsController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6C641AF1C15BBE6008FCAF3 /* MWMRecentTrackSettingsController.mm */; }; - F6F722F81AE1572400DA3DA1 /* MWMiPhonePortraitPlacePage.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6F722F71AE1572400DA3DA1 /* MWMiPhonePortraitPlacePage.mm */; }; F6F7787A1DABC6D800B603E7 /* MWMTaxiCollectionLayout.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6F778791DABC6D800B603E7 /* MWMTaxiCollectionLayout.mm */; }; - F6FE2C0F1B03A006009814AA /* MWMPlacePageNavigationBar.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6FE2C0E1B03A006009814AA /* MWMPlacePageNavigationBar.mm */; }; - F6FE2C111B03A016009814AA /* PlacePageNavigationBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6FE2C101B03A015009814AA /* PlacePageNavigationBar.xib */; }; - F6FE2C151B04A44E009814AA /* MWMPlacePageEntity.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6FE2C141B04A44E009814AA /* MWMPlacePageEntity.mm */; }; F6FE3C381CC50FFD00A73196 /* MWMPlaceDoesntExistAlert.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6FE3C371CC50FFD00A73196 /* MWMPlaceDoesntExistAlert.mm */; }; F6FE3C391CC50FFD00A73196 /* MWMPlaceDoesntExistAlert.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6FE3C371CC50FFD00A73196 /* MWMPlaceDoesntExistAlert.mm */; }; F6FE3C3B1CC5106500A73196 /* MWMPlaceDoesntExistAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6FE3C3A1CC5106500A73196 /* MWMPlaceDoesntExistAlert.xib */; }; @@ -1050,7 +1020,6 @@ 342AD7711B53D32F00E0B997 /* UIView+RuntimeAttributes.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "UIView+RuntimeAttributes.mm"; sourceTree = ""; }; 342AF0DE1BE24E9A0016F3AE /* MWMMapDownloaderViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMMapDownloaderViewController.h; sourceTree = ""; }; 342AF0DF1BE24E9A0016F3AE /* MWMMapDownloaderViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMMapDownloaderViewController.mm; sourceTree = ""; }; - 342BB7AA1BC7CC5C00DF6443 /* PlacePageBookmarkCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PlacePageBookmarkCell.xib; sourceTree = ""; }; 342CC5EF1C2D7730005F3FE5 /* MWMAuthorizationLoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMAuthorizationLoginViewController.h; sourceTree = ""; }; 342CC5F01C2D7730005F3FE5 /* MWMAuthorizationLoginViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMAuthorizationLoginViewController.mm; sourceTree = ""; }; 342EE40F1C43DAA7009F6A49 /* MWMAuthorizationWebViewLoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMAuthorizationWebViewLoginViewController.h; sourceTree = ""; }; @@ -1556,8 +1525,6 @@ F634C8F81D79998200BE04E2 /* _MWMPPPSchedule.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = _MWMPPPSchedule.xib; sourceTree = ""; }; F634C8FB1D79998C00BE04E2 /* _MWMPPPBooking.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = _MWMPPPBooking.xib; sourceTree = ""; }; F634C8FE1D79999A00BE04E2 /* _MWMPPPAddress.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = _MWMPPPAddress.xib; sourceTree = ""; }; - F63732941AE9431E00A03764 /* MWMBasePlacePageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMBasePlacePageView.h; sourceTree = ""; }; - F63732951AE9431E00A03764 /* MWMBasePlacePageView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMBasePlacePageView.mm; sourceTree = ""; }; F63774E61B59375E00BCF54D /* MWMRoutingDisclaimerAlert.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMRoutingDisclaimerAlert.xib; sourceTree = ""; }; F63774E81B59376F00BCF54D /* MWMRoutingDisclaimerAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMRoutingDisclaimerAlert.h; sourceTree = ""; }; F63774E91B59376F00BCF54D /* MWMRoutingDisclaimerAlert.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMRoutingDisclaimerAlert.mm; sourceTree = ""; }; @@ -1594,8 +1561,6 @@ F64F4B701B4A41D40081A24A /* MWMDownloaderDialogHeader.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMDownloaderDialogHeader.xib; sourceTree = ""; }; F64F4B721B4A45FD0081A24A /* MWMDownloaderDialogHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMDownloaderDialogHeader.h; sourceTree = ""; }; F64F4B731B4A45FD0081A24A /* MWMDownloaderDialogHeader.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMDownloaderDialogHeader.mm; sourceTree = ""; }; - F65243331B0B634F00BFA9D4 /* MWMPlacePage+Animation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "MWMPlacePage+Animation.h"; sourceTree = ""; }; - F65243341B0B634F00BFA9D4 /* MWMPlacePage+Animation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "MWMPlacePage+Animation.mm"; sourceTree = ""; }; F652B2E91C6DE8E500D20C8C /* MWMDropDown.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMDropDown.xib; sourceTree = ""; }; F653CE0F1C6DEB5A00A453F1 /* MWMDropDown.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMDropDown.h; sourceTree = ""; }; F653CE101C6DEB5A00A453F1 /* MWMDropDown.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMDropDown.mm; sourceTree = ""; }; @@ -1604,8 +1569,6 @@ F653CE171C71F62400A453F1 /* MWMAddPlaceNavigationBar.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMAddPlaceNavigationBar.xib; sourceTree = ""; }; F653CE1A1C7361DA00A453F1 /* MWMObjectsCategorySelectorController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMObjectsCategorySelectorController.h; sourceTree = ""; }; F653CE1B1C7361DA00A453F1 /* MWMObjectsCategorySelectorController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; path = MWMObjectsCategorySelectorController.mm; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; - F653D4211AE9398700282659 /* MWMPlacePageViewManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMPlacePageViewManager.h; sourceTree = ""; }; - F653D4221AE9398700282659 /* MWMPlacePageViewManager.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; path = MWMPlacePageViewManager.mm; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; F6588E2A1B15C26700EE1E58 /* MWMTextView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMTextView.h; sourceTree = ""; }; F6588E2B1B15C26700EE1E58 /* MWMTextView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMTextView.mm; sourceTree = ""; }; F6588E2D1B15D2BC00EE1E58 /* MWMBookmarkColorViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMBookmarkColorViewController.h; sourceTree = ""; }; @@ -1620,13 +1583,6 @@ F6671C6A1BA2EFD500548008 /* libFlurry_7.1.0.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libFlurry_7.1.0.a; path = Frameworks/libFlurry_7.1.0.a; sourceTree = ""; }; F668F6541BCD4507002D6FFC /* MWMTTSSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMTTSSettingsViewController.h; sourceTree = ""; }; F668F6551BCD4507002D6FFC /* MWMTTSSettingsViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMTTSSettingsViewController.mm; sourceTree = ""; }; - F66A8FA61B09F052001B9C97 /* MWMiPhoneLandscapePlacePage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMiPhoneLandscapePlacePage.h; sourceTree = ""; }; - F66A8FA71B09F052001B9C97 /* MWMiPhoneLandscapePlacePage.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMiPhoneLandscapePlacePage.mm; sourceTree = ""; }; - F66A8FAA1B09F137001B9C97 /* MWMiPadPlacePage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMiPadPlacePage.h; sourceTree = ""; }; - F66A8FAB1B09F137001B9C97 /* MWMiPadPlacePage.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMiPadPlacePage.mm; sourceTree = ""; }; - F66A8FAE1B09F268001B9C97 /* MWMPlacePage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMPlacePage.h; sourceTree = ""; }; - F66A8FAF1B09F268001B9C97 /* MWMPlacePage.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMPlacePage.mm; sourceTree = ""; }; - F66A8FB11B0A0954001B9C97 /* PlacePageView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PlacePageView.xib; sourceTree = ""; }; F67223751D74800600A3BDA2 /* MWMPlacePagePreviewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMPlacePagePreviewCell.xib; sourceTree = ""; }; F67517A01D76FC46008FE34F /* MWMPlacePageLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMPlacePageLayout.h; sourceTree = ""; }; F67517A11D76FC46008FE34F /* MWMPlacePageLayout.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMPlacePageLayout.mm; sourceTree = ""; }; @@ -1656,6 +1612,8 @@ F6AD57BC1C870A3C00CED368 /* MWMEditorCategoryCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMEditorCategoryCell.xib; sourceTree = ""; }; F6B2E61D1C3D5F31005562DF /* MWMNightModeController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMNightModeController.h; sourceTree = ""; }; F6B2E61E1C3D5F31005562DF /* MWMNightModeController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMNightModeController.mm; sourceTree = ""; }; + F6B870141DDCA03600BE8D94 /* MWMPlacePageEntity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMPlacePageEntity.h; sourceTree = ""; }; + F6B870151DDCA03600BE8D94 /* MWMPlacePageEntity.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMPlacePageEntity.mm; sourceTree = ""; }; F6B97B241CD0CA990009B612 /* MWMBookmarkNameCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMBookmarkNameCell.h; sourceTree = ""; }; F6B97B251CD0CA990009B612 /* MWMBookmarkNameCell.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMBookmarkNameCell.mm; sourceTree = ""; }; F6B97B281CD0CB170009B612 /* MWMBookmarkNameCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMBookmarkNameCell.xib; sourceTree = ""; }; @@ -1685,10 +1643,6 @@ F6BED3761CE3726A008D31E7 /* MWMBookmarkTitleCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMBookmarkTitleCell.xib; sourceTree = ""; }; F6C641AE1C15BBE6008FCAF3 /* MWMRecentTrackSettingsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMRecentTrackSettingsController.h; sourceTree = ""; }; F6C641AF1C15BBE6008FCAF3 /* MWMRecentTrackSettingsController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMRecentTrackSettingsController.mm; sourceTree = ""; }; - F6C9343A1AE4F94A00DDC624 /* MWMAnimator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMAnimator.h; sourceTree = ""; }; - F6C9343B1AE4F94A00DDC624 /* MWMAnimator.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMAnimator.mm; sourceTree = ""; }; - F6C9343E1AE64E4200DDC624 /* MWMSpringAnimation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMSpringAnimation.h; sourceTree = ""; }; - F6C9343F1AE64E4200DDC624 /* MWMSpringAnimation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMSpringAnimation.mm; sourceTree = ""; }; F6CB215B1AEE704D00FB8963 /* PlacePageInfoCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PlacePageInfoCell.xib; sourceTree = ""; }; F6CB215E1AEE7A5B00FB8963 /* MWMPlacePageInfoCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMPlacePageInfoCell.h; sourceTree = ""; }; F6CB215F1AEE7A5B00FB8963 /* MWMPlacePageInfoCell.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; path = MWMPlacePageInfoCell.mm; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; @@ -1696,8 +1650,6 @@ F6CB21631AEFC42800FB8963 /* MWMPlacePageActionBar.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMPlacePageActionBar.xib; sourceTree = ""; }; F6CB21661AEFC6AA00FB8963 /* MWMPlacePageActionBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMPlacePageActionBar.h; sourceTree = ""; }; F6CB21671AEFC6AA00FB8963 /* MWMPlacePageActionBar.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; path = MWMPlacePageActionBar.mm; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; - F6CB216B1AF13EBD00FB8963 /* MWMPlacePageBookmarkCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMPlacePageBookmarkCell.h; sourceTree = ""; }; - F6CB216C1AF13EBD00FB8963 /* MWMPlacePageBookmarkCell.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; path = MWMPlacePageBookmarkCell.mm; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; F6D1A0AF1D76E33D0070A015 /* MWMPlacePageData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMPlacePageData.h; sourceTree = ""; }; F6D1A0B01D76E33D0070A015 /* MWMPlacePageData.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMPlacePageData.mm; sourceTree = ""; }; F6D409F81B319BD70041730F /* ContextViews.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContextViews.h; sourceTree = ""; }; @@ -1723,21 +1675,12 @@ F6ED13521B1643900095C6DE /* MWMDirectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMDirectionView.h; sourceTree = ""; }; F6ED13531B1643900095C6DE /* MWMDirectionView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMDirectionView.mm; sourceTree = ""; }; F6ED13551B16439E0095C6DE /* MWMDirectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMDirectionView.xib; sourceTree = ""; }; - F6ED13591B18AA930095C6DE /* MWMExtendedPlacePageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMExtendedPlacePageView.h; sourceTree = ""; }; - F6ED135A1B18AA930095C6DE /* MWMExtendedPlacePageView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMExtendedPlacePageView.mm; sourceTree = ""; }; F6EE7BC11B78A1AB00FF6500 /* FlurryWatch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FlurryWatch.h; path = ../Frameworks/FlurryWatch.h; sourceTree = ""; }; F6F533A11B3C248900C1940B /* UIColor+MapsMeColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIColor+MapsMeColor.h"; sourceTree = ""; }; F6F533A21B3C248900C1940B /* UIColor+MapsMeColor.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "UIColor+MapsMeColor.mm"; sourceTree = ""; }; - F6F722F61AE1572400DA3DA1 /* MWMiPhonePortraitPlacePage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMiPhonePortraitPlacePage.h; sourceTree = ""; }; - F6F722F71AE1572400DA3DA1 /* MWMiPhonePortraitPlacePage.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMiPhonePortraitPlacePage.mm; sourceTree = ""; }; F6F778781DABC6D800B603E7 /* MWMTaxiCollectionLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMTaxiCollectionLayout.h; sourceTree = ""; }; F6F778791DABC6D800B603E7 /* MWMTaxiCollectionLayout.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMTaxiCollectionLayout.mm; sourceTree = ""; }; F6F9BD221AD3C3A600308C33 /* Macros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Macros.h; path = ../Macros.h; sourceTree = ""; }; - F6FE2C0D1B03A006009814AA /* MWMPlacePageNavigationBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMPlacePageNavigationBar.h; sourceTree = ""; }; - F6FE2C0E1B03A006009814AA /* MWMPlacePageNavigationBar.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMPlacePageNavigationBar.mm; sourceTree = ""; }; - F6FE2C101B03A015009814AA /* PlacePageNavigationBar.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PlacePageNavigationBar.xib; sourceTree = ""; }; - F6FE2C131B04A44E009814AA /* MWMPlacePageEntity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMPlacePageEntity.h; sourceTree = ""; }; - F6FE2C141B04A44E009814AA /* MWMPlacePageEntity.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; path = MWMPlacePageEntity.mm; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; F6FE3C361CC50FFD00A73196 /* MWMPlaceDoesntExistAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMPlaceDoesntExistAlert.h; sourceTree = ""; }; F6FE3C371CC50FFD00A73196 /* MWMPlaceDoesntExistAlert.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; path = MWMPlaceDoesntExistAlert.mm; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; F6FE3C3A1CC5106500A73196 /* MWMPlaceDoesntExistAlert.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMPlaceDoesntExistAlert.xib; sourceTree = ""; }; @@ -3045,48 +2988,6 @@ path = DownloadTransitMapsAlert; sourceTree = ""; }; - F652432E1B0B516000BFA9D4 /* NavigationBar */ = { - isa = PBXGroup; - children = ( - F6FE2C0D1B03A006009814AA /* MWMPlacePageNavigationBar.h */, - F6FE2C0E1B03A006009814AA /* MWMPlacePageNavigationBar.mm */, - F6FE2C101B03A015009814AA /* PlacePageNavigationBar.xib */, - ); - name = NavigationBar; - sourceTree = ""; - }; - F652432F1B0B517600BFA9D4 /* BaseView */ = { - isa = PBXGroup; - children = ( - F63732941AE9431E00A03764 /* MWMBasePlacePageView.h */, - F63732951AE9431E00A03764 /* MWMBasePlacePageView.mm */, - ); - name = BaseView; - sourceTree = ""; - }; - F65243301B0B517F00BFA9D4 /* Data */ = { - isa = PBXGroup; - children = ( - F6FE2C131B04A44E009814AA /* MWMPlacePageEntity.h */, - F6FE2C141B04A44E009814AA /* MWMPlacePageEntity.mm */, - ); - name = Data; - sourceTree = ""; - }; - F65243311B0B51A000BFA9D4 /* Base */ = { - isa = PBXGroup; - children = ( - F6ED13591B18AA930095C6DE /* MWMExtendedPlacePageView.h */, - F6ED135A1B18AA930095C6DE /* MWMExtendedPlacePageView.mm */, - F66A8FB11B0A0954001B9C97 /* PlacePageView.xib */, - F66A8FAE1B09F268001B9C97 /* MWMPlacePage.h */, - F66A8FAF1B09F268001B9C97 /* MWMPlacePage.mm */, - F65243331B0B634F00BFA9D4 /* MWMPlacePage+Animation.h */, - F65243341B0B634F00BFA9D4 /* MWMPlacePage+Animation.mm */, - ); - name = Base; - sourceTree = ""; - }; F652B2E81C6DE8CF00D20C8C /* DropDown */ = { isa = PBXGroup; children = ( @@ -3137,35 +3038,6 @@ name = Impl; sourceTree = ""; }; - F66A8FA51B09F02A001B9C97 /* OrientationVariants */ = { - isa = PBXGroup; - children = ( - F6FE2C121B04A2AF009814AA /* iPhonePortrait */, - F66A8FA91B09F069001B9C97 /* iPhoneLandscape */, - F66A8FAD1B09F13C001B9C97 /* iPadPlacePageView */, - F65243311B0B51A000BFA9D4 /* Base */, - ); - name = OrientationVariants; - sourceTree = ""; - }; - F66A8FA91B09F069001B9C97 /* iPhoneLandscape */ = { - isa = PBXGroup; - children = ( - F66A8FA61B09F052001B9C97 /* MWMiPhoneLandscapePlacePage.h */, - F66A8FA71B09F052001B9C97 /* MWMiPhoneLandscapePlacePage.mm */, - ); - name = iPhoneLandscape; - sourceTree = ""; - }; - F66A8FAD1B09F13C001B9C97 /* iPadPlacePageView */ = { - isa = PBXGroup; - children = ( - F66A8FAA1B09F137001B9C97 /* MWMiPadPlacePage.h */, - F66A8FAB1B09F137001B9C97 /* MWMiPadPlacePage.mm */, - ); - name = iPadPlacePageView; - sourceTree = ""; - }; F681DE941BFB38D700B547C7 /* Welcome */ = { isa = PBXGroup; children = ( @@ -3237,26 +3109,6 @@ name = AuthAlert; sourceTree = ""; }; - F6C9343D1AE6473F00DDC624 /* Animation */ = { - isa = PBXGroup; - children = ( - F6C9343A1AE4F94A00DDC624 /* MWMAnimator.h */, - F6C9343B1AE4F94A00DDC624 /* MWMAnimator.mm */, - F6C9343E1AE64E4200DDC624 /* MWMSpringAnimation.h */, - F6C9343F1AE64E4200DDC624 /* MWMSpringAnimation.mm */, - ); - name = Animation; - sourceTree = ""; - }; - F6CB215A1AED126900FB8963 /* PlacePageManager */ = { - isa = PBXGroup; - children = ( - F653D4211AE9398700282659 /* MWMPlacePageViewManager.h */, - F653D4221AE9398700282659 /* MWMPlacePageViewManager.mm */, - ); - name = PlacePageManager; - sourceTree = ""; - }; F6CB215D1AEE7A3300FB8963 /* Cells */ = { isa = PBXGroup; children = ( @@ -3265,9 +3117,6 @@ F6CB215E1AEE7A5B00FB8963 /* MWMPlacePageInfoCell.h */, F6CB215F1AEE7A5B00FB8963 /* MWMPlacePageInfoCell.mm */, F6CB21611AEE902B00FB8963 /* PlacePageLinkCell.xib */, - F6CB216B1AF13EBD00FB8963 /* MWMPlacePageBookmarkCell.h */, - F6CB216C1AF13EBD00FB8963 /* MWMPlacePageBookmarkCell.mm */, - 342BB7AA1BC7CC5C00DF6443 /* PlacePageBookmarkCell.xib */, 3491E7C81C06F1F10042FE24 /* MWMPlacePageButtonCell.h */, 3491E7C91C06F1F10042FE24 /* MWMPlacePageButtonCell.mm */, 3491E7CA1C06F1F10042FE24 /* MWMPlacePageButtonCell.xib */, @@ -3347,32 +3196,19 @@ F645B6461D6C47D500A69989 /* 2.0 */, F6D409F81B319BD70041730F /* ContextViews.h */, F6D409F91B319BD70041730F /* ContextViews.mm */, - F6CB215A1AED126900FB8963 /* PlacePageManager */, - F6C9343D1AE6473F00DDC624 /* Animation */, - F652432F1B0B517600BFA9D4 /* BaseView */, - F66A8FA51B09F02A001B9C97 /* OrientationVariants */, F6CB215D1AEE7A3300FB8963 /* Cells */, F6CB21651AEFC69500FB8963 /* ActionBar */, - F652432E1B0B516000BFA9D4 /* NavigationBar */, - F65243301B0B517F00BFA9D4 /* Data */, F6E9BF2B1CE3653B0050E534 /* EditBookmark */, F6ED13521B1643900095C6DE /* MWMDirectionView.h */, F6ED13531B1643900095C6DE /* MWMDirectionView.mm */, F6ED13551B16439E0095C6DE /* MWMDirectionView.xib */, + F6B870141DDCA03600BE8D94 /* MWMPlacePageEntity.h */, + F6B870151DDCA03600BE8D94 /* MWMPlacePageEntity.mm */, ); name = PlacePage; path = ../..; sourceTree = ""; }; - F6FE2C121B04A2AF009814AA /* iPhonePortrait */ = { - isa = PBXGroup; - children = ( - F6F722F61AE1572400DA3DA1 /* MWMiPhonePortraitPlacePage.h */, - F6F722F71AE1572400DA3DA1 /* MWMiPhonePortraitPlacePage.mm */, - ); - name = iPhonePortrait; - sourceTree = ""; - }; F6FE3C351CC50FDF00A73196 /* PlaceDoesntExist */ = { isa = PBXGroup; children = ( @@ -3564,7 +3400,7 @@ ORGANIZATIONNAME = MapsWithMe; TargetAttributes = { 1D6058900D05DD3D006BFB54 = { - DevelopmentTeam = L2QFT5NA2Q; + DevelopmentTeam = 3T6FSDE8C7; ProvisioningStyle = Automatic; SystemCapabilities = { com.apple.ApplicationGroups.iOS = { @@ -3654,7 +3490,6 @@ 5605022F1B6211E100169CAD /* sound-strings in Resources */, 34CCFDE21C22A2EF00F28959 /* MWMPlacePageOpeningHoursCell.xib in Resources */, 452FCA3B1B6A3DF7007019AB /* colors.txt in Resources */, - 342BB7AB1BC7CC5C00DF6443 /* PlacePageBookmarkCell.xib in Resources */, EE026F0611D6AC0D00645242 /* classificator.txt in Resources */, 34CC4C0A1B81F3B500E44C1F /* MWMSearchTabbedViewController.xib in Resources */, F634C8F91D79998200BE04E2 /* _MWMPPPSchedule.xib in Resources */, @@ -3718,7 +3553,6 @@ 978D4A31199A11E600D72CA7 /* faq.html in Resources */, 348868EE1D8721800069BBA3 /* MWMSearchNoResults.xib in Resources */, 3491E7CD1C06F1F10042FE24 /* MWMPlacePageButtonCell.xib in Resources */, - F66A8FB21B0A0954001B9C97 /* PlacePageView.xib in Resources */, F6BED3771CE3726A008D31E7 /* MWMBookmarkTitleCell.xib in Resources */, 349C26B61BB02C6F0005DF2F /* MWMBottomMenuViewController.xib in Resources */, 347FD8871C60B2CE002FB65E /* MWMOpeningHoursTimeSelectorTableViewCell.xib in Resources */, @@ -3754,7 +3588,6 @@ F6D4A7351CC103FB00BD4E5B /* MWMEditorNotesFooter.xib in Resources */, 4A00DBDF1AB704C400113624 /* drules_proto_dark.bin in Resources */, 4A23D15D1B8B4DD700D4EB6F /* resources-mdpi_clear in Resources */, - F6FE2C111B03A016009814AA /* PlacePageNavigationBar.xib in Resources */, 34B646C01CEB6FE000E0C7A5 /* MWMEditorAdditionalNameTableViewCell.xib in Resources */, F61579361AC2CEB60032D8E9 /* MWMRateAlert.xib in Resources */, F6B97B291CD0CB170009B612 /* MWMBookmarkNameCell.xib in Resources */, @@ -3818,7 +3651,6 @@ 6741A9421BF340DE002C974C /* sound-strings in Resources */, 3401CD801C3CF1BE0028C6F8 /* MWMEditorSwitchTableViewCell.xib in Resources */, F623DA6F1C9C2E62006A3436 /* MWMAddPlaceNavigationBar.xib in Resources */, - 6741A9441BF340DE002C974C /* PlacePageBookmarkCell.xib in Resources */, 6741A9451BF340DE002C974C /* classificator.txt in Resources */, F634C9001D79999A00BE04E2 /* _MWMPPPAddress.xib in Resources */, 6741A9461BF340DE002C974C /* MWMSearchTabbedViewController.xib in Resources */, @@ -3885,7 +3717,6 @@ F6AD57BE1C870A3C00CED368 /* MWMEditorCategoryCell.xib in Resources */, 6741A9681BF340DE002C974C /* faq.html in Resources */, 3491E7CE1C06F1F10042FE24 /* MWMPlacePageButtonCell.xib in Resources */, - 6741A9691BF340DE002C974C /* PlacePageView.xib in Resources */, 6741A96B1BF340DE002C974C /* MWMBottomMenuViewController.xib in Resources */, 6741A96C1BF340DE002C974C /* MWMDownloadTransitMapAlert.xib in Resources */, 6741A96D1BF340DE002C974C /* MWMLocationAlert.xib in Resources */, @@ -3923,7 +3754,6 @@ F6B97B2A1CD0CB170009B612 /* MWMBookmarkNameCell.xib in Resources */, F67223791D74800600A3BDA2 /* MWMPlacePagePreviewCell.xib in Resources */, 6741A97F1BF340DE002C974C /* resources-mdpi_clear in Resources */, - 6741A9801BF340DE002C974C /* PlacePageNavigationBar.xib in Resources */, 3401CD791C3CED1E0028C6F8 /* MWMEditorSelectTableViewCell.xib in Resources */, 6741A9811BF340DE002C974C /* MWMRateAlert.xib in Resources */, 341F99E41C6B1165001C67B8 /* MWMMapDownloaderTableViewCell.xib in Resources */, @@ -4025,7 +3855,6 @@ 347FD86B1C60B2CE002FB65E /* MWMOpeningHoursAddScheduleTableViewCell.mm in Sources */, 34FED5501D21121000183B1B /* CLLocation+Mercator.mm in Sources */, 34002A6D1D2F9D0700AC201E /* MWMRouter.mm in Sources */, - F6C934401AE64E4200DDC624 /* MWMSpringAnimation.mm in Sources */, 34B82ACA1B8465C100180497 /* MWMSearchCategoryCell.mm in Sources */, 1D3623260D0F684500981E51 /* MapsAppDelegate.mm in Sources */, 341522BF1B666A550077AA8F /* MWMAPIBarView.mm in Sources */, @@ -4055,7 +3884,6 @@ 34C2431B1CEDBDBA0006B7DC /* MWMEditorAdditionalNamesTableViewController.mm in Sources */, 34FE4C451BCC013500066718 /* MWMMapWidgets.mm in Sources */, 347FD8831C60B2CE002FB65E /* MWMOpeningHoursTableViewCell.mm in Sources */, - F6F722F81AE1572400DA3DA1 /* MWMiPhonePortraitPlacePage.mm in Sources */, F65B31F51DD2106700105FDE /* MWMiPadPlacePageLayoutImpl.mm in Sources */, F6CB21681AEFC6AA00FB8963 /* MWMPlacePageActionBar.mm in Sources */, 34E273251C73876500463965 /* MWMMigrationView.mm in Sources */, @@ -4063,10 +3891,8 @@ 340C20E31C3E565600111D22 /* MWMCuisineEditorViewController.mm in Sources */, 3499C6861D51D3A600A1048A /* UIButton+Orientation.mm in Sources */, 34B82ADE1B84A4A000180497 /* MWMSearchCommonCell.mm in Sources */, - F66A8FA81B09F052001B9C97 /* MWMiPhoneLandscapePlacePage.mm in Sources */, 974386DD19373EA400FD5659 /* ToastView.mm in Sources */, 34BBB71E1DD07A4B0002E025 /* MWMSearchManager+Filter.mm in Sources */, - F6C9343C1AE4F94A00DDC624 /* MWMAnimator.mm in Sources */, 347FD8771C60B2CE002FB65E /* MWMOpeningHoursDaysSelectorTableViewCell.mm in Sources */, 342EE4111C43DAA7009F6A49 /* MWMAuthorizationWebViewLoginViewController.mm in Sources */, 3438CDFC1B862F5C0051AA78 /* MWMSearchContentView.mm in Sources */, @@ -4084,7 +3910,6 @@ 34257D111DC9FB0D00DC5BB9 /* MWMSearchFilterTransitioning.mm in Sources */, 34A759CF1DC795140078C3AE /* MWMWhatsNewNightModeController.mm in Sources */, F6BBF2C61B4FFB72000CF8E2 /* MWMLocationAlert.mm in Sources */, - F66A8FB01B09F268001B9C97 /* MWMPlacePage.mm in Sources */, F6FE3C381CC50FFD00A73196 /* MWMPlaceDoesntExistAlert.mm in Sources */, F64F19991AB81A00006EAF7E /* MWMAlertViewController.mm in Sources */, 341223BB1BEB58FA007227E9 /* MWMBaseMapDownloaderViewController.mm in Sources */, @@ -4097,7 +3922,6 @@ F64DA8021C524BDE00330E9E /* UISwitch+RuntimeAttributes.m in Sources */, F607C18E1C047FDC00B53A87 /* MWMSegue.mm in Sources */, 34DCDE3A1C75CD8100652CAC /* Framework.cpp in Sources */, - F6FE2C0F1B03A006009814AA /* MWMPlacePageNavigationBar.mm in Sources */, 341138801C15B50B002E3B3E /* MWMOpeningHoursModel.mm in Sources */, 9747264318323080006B7CB7 /* UIKitCategories.mm in Sources */, F6BD33811B62403B00F2CE18 /* MWMRoutePreview.mm in Sources */, @@ -4111,11 +3935,8 @@ 3436FE821D366CDD005CD87B /* MWMSearch.mm in Sources */, 34257D171DC9FB0D00DC5BB9 /* MWMSearchHotelsFilterViewController.mm in Sources */, B08AA8DA1A26299A00810B1C /* TimeUtils.mm in Sources */, - F6CB216D1AF13EBD00FB8963 /* MWMPlacePageBookmarkCell.mm in Sources */, - F653D4231AE9398700282659 /* MWMPlacePageViewManager.mm in Sources */, 3462258E1DDC5DBA001E8752 /* MWMSearchNoResultsAlert.mm in Sources */, 341F99ED1C6B28A7001C67B8 /* MWMMapDownloaderExtendedDataSource.mm in Sources */, - F65243351B0B634F00BFA9D4 /* MWMPlacePage+Animation.mm in Sources */, 349A357C1B53D4C9009677EE /* MWMCircularProgressView.mm in Sources */, 34B104261D6F040E00C8B577 /* MWMAboutController.mm in Sources */, 3465E7D81B6658C000854C4D /* MWMAPIBar.mm in Sources */, @@ -4127,7 +3948,6 @@ 349A357A1B53D4C9009677EE /* MWMCircularProgress.mm in Sources */, 34B82ADA1B847FFC00180497 /* MWMSearchCell.mm in Sources */, F6FEA82D1C58E89B007223CC /* MWMButton.mm in Sources */, - F66A8FAC1B09F137001B9C97 /* MWMiPadPlacePage.mm in Sources */, 978F9240183B660F000D6C7C /* MWMSettingsViewController.mm in Sources */, F67517A21D76FC46008FE34F /* MWMPlacePageLayout.mm in Sources */, F6BD33871B62412E00F2CE18 /* MWMNavigationDashboardEntity.mm in Sources */, @@ -4140,7 +3960,6 @@ F668F6561BCD4507002D6FFC /* MWMTTSSettingsViewController.mm in Sources */, 34ABA61B1C2D4DCC00FE1BEC /* UITextField+RuntimeAttributes.mm in Sources */, 34EC270A1CB2A7120084FA36 /* fabric_logging_ios.mm in Sources */, - F6ED135B1B18AA930095C6DE /* MWMExtendedPlacePageView.mm in Sources */, 3418CEAE1CBF9E3300641B25 /* MWMNoMapsViewController.mm in Sources */, 3401CD7D1C3CF1BE0028C6F8 /* MWMEditorSwitchTableViewCell.mm in Sources */, 34B82AD61B84746E00180497 /* MWMSearchSuggestionCell.mm in Sources */, @@ -4213,6 +4032,7 @@ 342AD7721B53D32F00E0B997 /* UIView+RuntimeAttributes.mm in Sources */, F626D52E1C3E6CAA00C17D15 /* MWMTableViewCell.mm in Sources */, F64F4B6D1B46A51F0081A24A /* MWMDownloaderDialogCell.mm in Sources */, + F6B870161DDCA03600BE8D94 /* MWMPlacePageEntity.mm in Sources */, 3491E7CB1C06F1F10042FE24 /* MWMPlacePageButtonCell.mm in Sources */, 348C26051D701B9F00813924 /* MWMHelpController.mm in Sources */, 348868EB1D8721650069BBA3 /* MWMSearchNoResults.mm in Sources */, @@ -4239,7 +4059,6 @@ 34AB39C11D2BD8310021857D /* MWMStopButton.mm in Sources */, 34B924421DC8A29C0008D971 /* MWMMailViewController.mm in Sources */, 349C26B91BB04ED30005DF2F /* MWMBottomMenuView.mm in Sources */, - F63732961AE9431E00A03764 /* MWMBasePlacePageView.mm in Sources */, F64F199B1AB81A00006EAF7E /* MWMAlert.mm in Sources */, 345FD7E01CEC7AD400F58045 /* MWMEditorAddAdditionalNameTableViewCell.mm in Sources */, ED48BBB517C267F5003E7E92 /* ColorPickerView.mm in Sources */, @@ -4253,7 +4072,6 @@ 34D15BA81BD8F93C00C8BCBE /* AddSetTableViewCell.mm in Sources */, F6A218491CA3F26800BE2CC6 /* MWMEditorViralActivityItem.mm in Sources */, F62F1D951C3281F1006CF38E /* UIImageView+Coloring.mm in Sources */, - F6FE2C151B04A44E009814AA /* MWMPlacePageEntity.mm in Sources */, 34B82AB21B8344E300180497 /* MWMSearchTextField.mm in Sources */, 34A759CD1DC795140078C3AE /* MWMWhatsNewEditorController.mm in Sources */, ); @@ -4282,7 +4100,6 @@ 6741A9AC1BF340DE002C974C /* MWMSearchTabButtonsView.mm in Sources */, 3490D2DF1CE9DD2500D0B838 /* MWMSideButtons.mm in Sources */, 342FDDE61C6C9071000038A0 /* MWMMapDownloaderDataSource.mm in Sources */, - 6741A9AD1BF340DE002C974C /* MWMSpringAnimation.mm in Sources */, 34002A6E1D2F9D0700AC201E /* MWMRouter.mm in Sources */, 34A759DA1DC797790078C3AE /* MWMFirstLaunchController.mm in Sources */, 347FD86C1C60B2CE002FB65E /* MWMOpeningHoursAddScheduleTableViewCell.mm in Sources */, @@ -4308,7 +4125,6 @@ F645B64A1D6C482400A69989 /* MWMPlacePageManager.mm in Sources */, F6D4A7301CC1030E00BD4E5B /* MWMEditorNotesFooter.mm in Sources */, 34A759E01DC797990078C3AE /* MWMWhatsNewNavigationController.mm in Sources */, - 6741A9C21BF340DE002C974C /* MWMiPhonePortraitPlacePage.mm in Sources */, 34B646BE1CEB6FC000E0C7A5 /* MWMEditorAdditionalNameTableViewCell.mm in Sources */, 347FD8841C60B2CE002FB65E /* MWMOpeningHoursTableViewCell.mm in Sources */, 34C2431C1CEDBDBA0006B7DC /* MWMEditorAdditionalNamesTableViewController.mm in Sources */, @@ -4318,10 +4134,8 @@ F65B31F61DD2106700105FDE /* MWMiPadPlacePageLayoutImpl.mm in Sources */, 34E273261C73876500463965 /* MWMMigrationView.mm in Sources */, 340C20E41C3E565600111D22 /* MWMCuisineEditorViewController.mm in Sources */, - 6741A9C81BF340DE002C974C /* MWMiPhoneLandscapePlacePage.mm in Sources */, F653CE191C71F62700A453F1 /* MWMAddPlaceNavigationBar.mm in Sources */, 6741A9C91BF340DE002C974C /* ToastView.mm in Sources */, - 6741A9CA1BF340DE002C974C /* MWMAnimator.mm in Sources */, 3499C6871D51D3A700A1048A /* UIButton+Orientation.mm in Sources */, 6741A9CB1BF340DE002C974C /* MWMSearchContentView.mm in Sources */, 34BBB71F1DD07A4B0002E025 /* MWMSearchManager+Filter.mm in Sources */, @@ -4342,7 +4156,6 @@ F6D1A0B21D76E33D0070A015 /* MWMPlacePageData.mm in Sources */, 34257D121DC9FB0D00DC5BB9 /* MWMSearchFilterTransitioning.mm in Sources */, 34ABA6171C2D185C00FE1BEC /* MWMAuthorizationOSMLoginViewController.mm in Sources */, - 6741A9D01BF340DE002C974C /* MWMPlacePage.mm in Sources */, 3492CC131C6DF00F0057D8E8 /* (null) in Sources */, 34E0EECF1CC51B1D008E4919 /* MWMMapDownloaderButtonTableViewCell.mm in Sources */, 3476B8CC1BFDCB6700874594 /* MWMTTSSettingsViewController.mm in Sources */, @@ -4354,7 +4167,6 @@ 6741A9D51BF340DE002C974C /* WebViewController.mm in Sources */, 34C9BD031C6DB693000DC38D /* MWMTableViewController.mm in Sources */, 34AA7DA01D63543E00254037 /* MWMRouterSavedState.mm in Sources */, - 6741A9D61BF340DE002C974C /* MWMPlacePageNavigationBar.mm in Sources */, F64DA8031C52520000330E9E /* UISwitch+RuntimeAttributes.m in Sources */, 676507631C1055BB00830BB3 /* MWMTTSLanguageViewController.mm in Sources */, 341138811C15B50B002E3B3E /* MWMOpeningHoursModel.mm in Sources */, @@ -4373,9 +4185,6 @@ 341F99EE1C6B28A7001C67B8 /* MWMMapDownloaderExtendedDataSource.mm in Sources */, 3436FE831D366CDD005CD87B /* MWMSearch.mm in Sources */, 3462258F1DDC5DBA001E8752 /* MWMSearchNoResultsAlert.mm in Sources */, - 6741A9E41BF340DE002C974C /* MWMPlacePageBookmarkCell.mm in Sources */, - 6741A9E51BF340DE002C974C /* MWMPlacePageViewManager.mm in Sources */, - 6741A9E61BF340DE002C974C /* MWMPlacePage+Animation.mm in Sources */, 6741A9E71BF340DE002C974C /* MWMCircularProgressView.mm in Sources */, F626D5301C3E840600C17D15 /* MWMNightModeController.mm in Sources */, 6741A9E81BF340DE002C974C /* MWMAPIBar.mm in Sources */, @@ -4386,7 +4195,6 @@ 342CC5F21C2D7730005F3FE5 /* MWMAuthorizationLoginViewController.mm in Sources */, 6741A9EE1BF340DE002C974C /* MWMSearchCell.mm in Sources */, F617B4E41D8FDDD5007A1A4E /* MWMBookmarkCell.mm in Sources */, - 6741A9EF1BF340DE002C974C /* MWMiPadPlacePage.mm in Sources */, 6741A9F01BF340DE002C974C /* MWMSettingsViewController.mm in Sources */, 6741A9F11BF340DE002C974C /* MWMNavigationDashboardEntity.mm in Sources */, 6741A9F21BF340DE002C974C /* MWMPlacePageInfoCell.mm in Sources */, @@ -4395,7 +4203,6 @@ 6741A9F41BF340DE002C974C /* CALayer+RuntimeAttributes.mm in Sources */, 56C74C391C74A3BC00B71B9F /* MWMInputEmailValidator.mm in Sources */, 6741A9F51BF340DE002C974C /* BookmarksVC.mm in Sources */, - 6741A9F61BF340DE002C974C /* MWMExtendedPlacePageView.mm in Sources */, 347FD8741C60B2CE002FB65E /* MWMOpeningHoursClosedSpanTableViewCell.mm in Sources */, 3490D2E11CE9DD2500D0B838 /* MWMSideButtonsView.mm in Sources */, 6741A9F91BF340DE002C974C /* MWMSearchSuggestionCell.mm in Sources */, @@ -4472,6 +4279,7 @@ 3491E7CC1C06F1F10042FE24 /* MWMPlacePageButtonCell.mm in Sources */, 6741AA1C1BF340DE002C974C /* MWMRoutingDisclaimerAlert.mm in Sources */, 34A759E21DC797A00078C3AE /* MWMWhatsNewProfileBookingController.mm in Sources */, + F6B870171DDCA03600BE8D94 /* MWMPlacePageEntity.mm in Sources */, 6741AA1D1BF340DE002C974C /* MWMDownloadTransitMapAlert.mm in Sources */, 341F99DA1C6B1165001C67B8 /* MWMMapDownloaderPlaceTableViewCell.mm in Sources */, 341F99D61C6B1165001C67B8 /* MWMMapDownloaderLargeCountryTableViewCell.mm in Sources */, @@ -4499,7 +4307,6 @@ 34B924431DC8A29C0008D971 /* MWMMailViewController.mm in Sources */, F6D4A7421CC1643100BD4E5B /* MWMButtonCell.mm in Sources */, 34AB39C21D2BD8310021857D /* MWMStopButton.mm in Sources */, - 6741AA271BF340DE002C974C /* MWMBasePlacePageView.mm in Sources */, F64D9C9B1C8861BA0063FA30 /* MWMObjectsCategorySelectorController.mm in Sources */, 6741AA281BF340DE002C974C /* MWMAlert.mm in Sources */, 345FD7E11CEC7AD400F58045 /* MWMEditorAddAdditionalNameTableViewCell.mm in Sources */, @@ -4512,7 +4319,6 @@ 6741AA2C1BF340DE002C974C /* MWMSearchBookmarksManager.mm in Sources */, F6A2184A1CA3F26800BE2CC6 /* MWMEditorViralActivityItem.mm in Sources */, 6741AA2D1BF340DE002C974C /* AddSetTableViewCell.mm in Sources */, - 6741AA2F1BF340DE002C974C /* MWMPlacePageEntity.mm in Sources */, 34A759E31DC797CB0078C3AE /* MWMPageController.mm in Sources */, 6741AA301BF340DE002C974C /* MWMSearchTextField.mm in Sources */, ); diff --git a/tools/kothic b/tools/kothic index 1ffa4306fe..c32d9c5e22 160000 --- a/tools/kothic +++ b/tools/kothic @@ -1 +1 @@ -Subproject commit 1ffa4306fe949c6345414823946ee7b1bbf8a07e +Subproject commit c32d9c5e22d6f42c582c2234e9881cda5f6db4f5