From 3d0c9fc4d93bcb65d1f9c2b64b4eeb50371a8366 Mon Sep 17 00:00:00 2001 From: Zoia Pribytkova Date: Tue, 20 Aug 2019 16:24:42 +0300 Subject: [PATCH] [iOS] Fixed the logic for displaying the tutorial --- .../MapViewControls/MWMMapViewControlsManager.mm | 9 +++++++-- iphone/Maps/Classes/MapViewController.h | 2 ++ iphone/Maps/Classes/MapViewController.mm | 2 +- iphone/Maps/UI/PlacePage/MWMPlacePageManager.mm | 4 ++++ iphone/Maps/UI/PlacePage/MWMPlacePageProtocol.h | 1 + 5 files changed, 15 insertions(+), 3 deletions(-) diff --git a/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.mm b/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.mm index 93070dcb58..27b237759c 100644 --- a/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.mm +++ b/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.mm @@ -2,6 +2,7 @@ #import "MWMAddPlaceNavigationBar.h" #import "MWMBottomMenuControllerProtocol.h" #import "MWMCommon.h" +#import "MWMMapDownloadDialog.h" #import "MWMNetworkPolicy.h" #import "MWMPlacePageManager.h" #import "MWMPlacePageProtocol.h" @@ -471,14 +472,18 @@ extern NSString * const kAlohalyticsTapEventKey; - (BOOL)showTutorialIfNeeded { if (self.tutorialViewContoller != nil) return YES; + + auto ownerController = self.ownerController; + + if ([self.placePageManager isPPShown] || ownerController.downloadDialog.superview != nil) { + return NO; + } self.tutorialType = [MWMEye getTipType]; self.tutorialViewContoller = [self tutorialWithType:self.tutorialType]; if (!self.tutorialViewContoller) return NO; - auto ownerController = self.ownerController; - [self logTutorialEvent:kStatTipsTricksShow additionalOptions:nil]; self.hidden = NO; [ownerController addChildViewController:self.tutorialViewContoller]; diff --git a/iphone/Maps/Classes/MapViewController.h b/iphone/Maps/Classes/MapViewController.h index 855970b798..7f0077c51e 100644 --- a/iphone/Maps/Classes/MapViewController.h +++ b/iphone/Maps/Classes/MapViewController.h @@ -8,6 +8,7 @@ @class MWMAPIBar; @class MWMPlacePageData; @class EAGLView; +@class MWMMapDownloadDialog; @protocol MWMLocationModeListener; @interface MapViewController : MWMViewController @@ -51,6 +52,7 @@ @property(nonatomic, readonly) MWMMapViewControlsManager * controlsManager; @property(nonatomic) MWMAPIBar * apiBar; @property(nonatomic) MWMWelcomePageController * welcomePageController; +@property(nonatomic, readonly) MWMMapDownloadDialog * downloadDialog; @property(nonatomic) MWMMyPositionMode currentPositionMode; diff --git a/iphone/Maps/Classes/MapViewController.mm b/iphone/Maps/Classes/MapViewController.mm index 2cf968bce5..fbf7987e8c 100644 --- a/iphone/Maps/Classes/MapViewController.mm +++ b/iphone/Maps/Classes/MapViewController.mm @@ -87,7 +87,7 @@ NSString * const kHotelFacilitiesSegue = @"Map2FacilitiesSegue"; @property(nonatomic) UserTouchesAction userTouchesAction; -@property(nonatomic) MWMMapDownloadDialog * downloadDialog; +@property(nonatomic, readwrite) MWMMapDownloadDialog * downloadDialog; @property(nonatomic) BOOL skipForceTouch; diff --git a/iphone/Maps/UI/PlacePage/MWMPlacePageManager.mm b/iphone/Maps/UI/PlacePage/MWMPlacePageManager.mm index 663e15bcab..ac788c1b8c 100644 --- a/iphone/Maps/UI/PlacePage/MWMPlacePageManager.mm +++ b/iphone/Maps/UI/PlacePage/MWMPlacePageManager.mm @@ -129,6 +129,10 @@ void RegisterEventIfPossible(eye::MapObject::Event::Type const type, place_page: [self processCountryEvent:[self.data countryId]]; } +- (BOOL)isPPShown { + return self.data != nil; +} + - (void)dismiss { [self.layout close]; diff --git a/iphone/Maps/UI/PlacePage/MWMPlacePageProtocol.h b/iphone/Maps/UI/PlacePage/MWMPlacePageProtocol.h index 0c3f351770..a09cb7d0e4 100644 --- a/iphone/Maps/UI/PlacePage/MWMPlacePageProtocol.h +++ b/iphone/Maps/UI/PlacePage/MWMPlacePageProtocol.h @@ -51,6 +51,7 @@ struct HotelFacility; - (void)show:(place_page::Info const &)info; - (void)showReview:(place_page::Info const &)info; +- (BOOL)isPPShown; - (void)dismiss; - (void)mwm_refreshUI; - (void)didBecomeActive;