diff options
Diffstat (limited to 'iphone/Maps/Classes/MapViewController.mm')
-rw-r--r-- | iphone/Maps/Classes/MapViewController.mm | 52 |
1 files changed, 21 insertions, 31 deletions
diff --git a/iphone/Maps/Classes/MapViewController.mm b/iphone/Maps/Classes/MapViewController.mm index 230b555828..212288d2dc 100644 --- a/iphone/Maps/Classes/MapViewController.mm +++ b/iphone/Maps/Classes/MapViewController.mm @@ -102,8 +102,8 @@ NSString * const kEditorSegue = @"Map2EditorSegue"; @end @interface MapViewController ()<MTRGNativeAppwallAdDelegate, MWMFrameworkRouteBuilderObserver, - MWMFrameworkMyPositionObserver, MWMFrameworkUserMarkObserver, - MWMFrameworkDrapeObserver, MWMFrameworkStorageObserver> + MWMFrameworkMyPositionObserver, MWMFrameworkDrapeObserver, + MWMFrameworkStorageObserver> @property (nonatomic, readwrite) MWMMapViewControlsManager * controlsManager; @property (nonatomic) MWMBottomMenuState menuRestoreState; @@ -203,9 +203,19 @@ NSString * const kEditorSegue = @"Map2EditorSegue"; [self.controlsManager dismissPlacePage]; } -- (void)onMyPositionClicked:(id)sender +- (void)onMapObjectDeselected:(bool)switchFullScreenMode { - GetFramework().SwitchMyPositionNextMode(); + [self dismissPlacePage]; + + auto & f = GetFramework(); + if (switchFullScreenMode && self.controlsManager.searchHidden && !f.IsRouteNavigable()) + self.controlsManager.hidden = !self.controlsManager.hidden; +} + +- (void)onMapObjectSelected:(place_page::Info const &)info +{ + self.controlsManager.hidden = NO; + [self.controlsManager showPlacePage:info]; } - (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController @@ -365,8 +375,6 @@ NSString * const kEditorSegue = @"Map2EditorSegue"; return; [[NSNotificationCenter defaultCenter] removeObserver:self name:UIDeviceOrientationDidChangeNotification object:nil]; - self.skipPlacePageDismissOnViewDisappear = NO; - [self.controlsManager reloadPlacePage]; self.controlsManager.menuState = self.menuRestoreState; [self refreshAd]; @@ -426,8 +434,6 @@ NSString * const kEditorSegue = @"Map2EditorSegue"; { [super viewWillDisappear:animated]; self.menuRestoreState = self.controlsManager.menuState; - if (!self.skipPlacePageDismissOnViewDisappear) - [self dismissPlacePage]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil]; } @@ -485,6 +491,10 @@ NSString * const kEditorSegue = @"Map2EditorSegue"; - (void)initialize { + Framework & f = GetFramework(); + + f.SetMapSelectionListeners([self](place_page::Info const & info) { [self onMapObjectSelected:info]; }, + [self](bool switchFullScreen){ [self onMapObjectDeselected:switchFullScreen]; }); m_predictor = [[LocationPredictor alloc] initWithObserver:self]; self.forceRoutingStateChange = ForceRoutingStateChangeNone; self.userTouchesAction = UserTouchesActionNone; @@ -559,7 +569,7 @@ NSString * const kEditorSegue = @"Map2EditorSegue"; { case routing::IRouter::ResultCode::NoError: { - GetFramework().ActivateUserMark(nullptr, true); + GetFramework().DeactivateMapSelection(true); if (self.forceRoutingStateChange == ForceRoutingStateChangeStartFollowing) [self.controlsManager routingNavigation]; else @@ -615,25 +625,6 @@ NSString * const kEditorSegue = @"Map2EditorSegue"; } } -#pragma mark - MWMFrameworkUserMarkObserver - -- (void)processUserMarkEvent:(UserMark const *)mark -{ - if (mark == nullptr) - { - [self dismissPlacePage]; - - auto & f = GetFramework(); - if (!f.HasActiveUserMark() && self.controlsManager.searchHidden && !f.IsRouteNavigable()) - self.controlsManager.hidden = !self.controlsManager.hidden; - } - else - { - self.controlsManager.hidden = NO; - [self.controlsManager showPlacePage]; - } -} - #pragma mark - MWMFrameworkStorageObserver - (void)processCountryEvent:(TCountryId const &)countryId @@ -784,7 +775,7 @@ NSString * const kEditorSegue = @"Map2EditorSegue"; { Framework & f = GetFramework(); if (self.popoverVC) - f.ActivateUserMark(nullptr, true); + f.DeactivateMapSelection(true); CGFloat const sf = self.view.contentScaleFactor; @@ -822,10 +813,9 @@ NSString * const kEditorSegue = @"Map2EditorSegue"; { if ([segue.identifier isEqualToString:kEditorSegue]) { - self.skipPlacePageDismissOnViewDisappear = YES; UINavigationController * dvc = segue.destinationViewController; MWMEditorViewController * editorVC = (MWMEditorViewController *)[dvc topViewController]; - editorVC.entity = sender; + [editorVC setFeatureToEdit:((MWMPlacePageEntity *)sender).featureID]; } else if ([segue.identifier isEqualToString:kAuthorizationSegue]) { |