[ios] Fixed status bar style.

This commit is contained in:
Ilya Grechuhin 2016-07-22 12:54:35 +03:00
parent c6fe78e051
commit 66efa01868
4 changed files with 20 additions and 9 deletions

View file

@ -25,6 +25,8 @@
- (instancetype)init __attribute__((unavailable("init is not available")));
- (instancetype)initWithParentController:(MapViewController *)controller;
- (UIStatusBarStyle)preferredStatusBarStyle;
#pragma mark - Layout
- (void)refreshLayout;

View file

@ -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

View file

@ -107,6 +107,7 @@ using TInfoDisplays = NSHashTable<__kindof TInfoDisplay>;
self.routePreview = nil;
[self.navigationInfoView remove];
self.navigationInfoView = nil;
[MWMMapViewControlsManager manager].searchHidden = YES;
}
- (void)showStatePrepare

View file

@ -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]; }