From 57178639b4c0eec8015b002a5e220a08d0f98f95 Mon Sep 17 00:00:00 2001 From: Ilya Grechuhin Date: Tue, 18 Jul 2017 17:52:03 +0300 Subject: [PATCH] [cherry] [MAPSME-5080] [ios] Fixed next turn arrow rotation. --- .../Views/MWMNavigationInfoView.mm | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/MWMNavigationInfoView.mm b/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/MWMNavigationInfoView.mm index d67f19322b..428c095897 100644 --- a/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/MWMNavigationInfoView.mm +++ b/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/MWMNavigationInfoView.mm @@ -359,15 +359,17 @@ BOOL defaultOrientation(CGSize const & size) - (void)onHeadingUpdate:(location::CompassInfo const &)info { - CLLocation * lastLocation = [MWMLocationManager lastLocation]; - if (!lastLocation) - return; - - CGFloat const angle = - ang::AngleTo(lastLocation.mercator, - location_helpers::ToMercator(self.navigationInfo.pedestrianDirectionPosition)) + - info.m_bearing; - self.nextTurnImageView.layer.transform = CATransform3DMakeRotation(M_PI_2 - angle, 0, 0, 1); + auto transform = CATransform3DIdentity; + auto lastLocation = [MWMLocationManager lastLocation]; + if (lastLocation && self.state == MWMNavigationInfoViewStateNavigation && + [MWMRouter type] == MWMRouterTypePedestrian) + { + auto const mercator = + location_helpers::ToMercator(self.navigationInfo.pedestrianDirectionPosition); + auto const angle = ang::AngleTo(lastLocation.mercator, mercator) + info.m_bearing; + transform = CATransform3DMakeRotation(M_PI_2 - angle, 0, 0, 1); + } + self.nextTurnImageView.layer.transform = transform; } #pragma mark - SolidTouchView