diff --git a/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.h b/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.h index 5fda194301..9814a20e27 100644 --- a/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.h +++ b/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.h @@ -25,6 +25,8 @@ - (instancetype)init __attribute__((unavailable("init is not available"))); - (instancetype)initWithParentController:(MapViewController *)controller; +- (UIStatusBarStyle)preferredStatusBarStyle; + #pragma mark - Layout - (void)refreshLayout; diff --git a/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.mm b/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.mm index 4c669ced94..f14dcea28b 100644 --- a/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.mm +++ b/iphone/Maps/Classes/CustomViews/MapViewControls/MWMMapViewControlsManager.mm @@ -19,6 +19,7 @@ #import "MapViewController.h" #import "MapsAppDelegate.h" #import "Statistics.h" +#import "UIColor+MapsMeColor.h" #import "3party/Alohalytics/src/alohalytics_objc.h" @@ -70,6 +71,21 @@ extern NSString * const kAlohalyticsTapEventKey; return self; } +- (UIStatusBarStyle)preferredStatusBarStyle +{ + BOOL const isNightMode = [UIColor isNightMode]; + BOOL const isLight = (self.searchManager.state == MWMSearchManagerStateMapSearch && + self.navigationState != MWMNavigationDashboardStateNavigation) || + (self.searchManager.state != MWMSearchManagerStateMapSearch && + self.searchManager.state != MWMSearchManagerStateHidden) || + self.navigationState == MWMNavigationDashboardStatePlanning || + self.menuState == MWMBottomMenuStateActive || self.isDirectionViewShown || + (isNightMode && self.navigationState != MWMNavigationDashboardStateHidden) || + MapsAppDelegate.theApp.routingPlaneMode != MWMRoutingPlaneModeNone; + return (isLight || (!isLight && isNightMode)) ? UIStatusBarStyleLightContent + : UIStatusBarStyleDefault; +} + #pragma mark - My Position - (void)processMyPositionStateModeEvent:(location::EMyPositionMode)mode diff --git a/iphone/Maps/Classes/CustomViews/NavigationDashboard/MWMNavigationDashboardManager.mm b/iphone/Maps/Classes/CustomViews/NavigationDashboard/MWMNavigationDashboardManager.mm index b1aa5c79b3..8ba71172ea 100644 --- a/iphone/Maps/Classes/CustomViews/NavigationDashboard/MWMNavigationDashboardManager.mm +++ b/iphone/Maps/Classes/CustomViews/NavigationDashboard/MWMNavigationDashboardManager.mm @@ -107,6 +107,7 @@ using TInfoDisplays = NSHashTable<__kindof TInfoDisplay>; self.routePreview = nil; [self.navigationInfoView remove]; self.navigationInfoView = nil; + [MWMMapViewControlsManager manager].searchHidden = YES; } - (void)showStatePrepare diff --git a/iphone/Maps/Classes/MapViewController.mm b/iphone/Maps/Classes/MapViewController.mm index 7ccbf82bbc..aa94fd49f5 100644 --- a/iphone/Maps/Classes/MapViewController.mm +++ b/iphone/Maps/Classes/MapViewController.mm @@ -371,15 +371,7 @@ BOOL gIsFirstMyPositionMode = YES; - (BOOL)prefersStatusBarHidden { return self.apiBar.isVisible; } - (UIStatusBarStyle)preferredStatusBarStyle { - BOOL const isNightMode = [UIColor isNightMode]; - BOOL const isLight = - !self.controlsManager.searchHidden || - self.controlsManager.menuState == MWMBottomMenuStateActive || - self.controlsManager.isDirectionViewShown || - (isNightMode && self.controlsManager.navigationState != MWMNavigationDashboardStateHidden) || - MapsAppDelegate.theApp.routingPlaneMode != MWMRoutingPlaneModeNone; - return (isLight || (!isLight && isNightMode)) ? UIStatusBarStyleLightContent - : UIStatusBarStyleDefault; + return [self.controlsManager preferredStatusBarStyle]; } - (void)updateStatusBarStyle { [self setNeedsStatusBarAppearanceUpdate]; }