[ios] Added status bar style update on menu state change.

This commit is contained in:
Ilya Grechuhin 2015-06-17 16:13:18 +03:00 committed by Alex Zolotarev
parent 99d5fd1360
commit fc7fcb7078
5 changed files with 27 additions and 13 deletions

View file

@ -6,6 +6,8 @@
// Copyright (c) 2015 MapsWithMe. All rights reserved.
//
#import "MWMSideMenuManager.h"
#import <Foundation/Foundation.h>
typedef NS_ENUM(NSUInteger, MWMMapViewControlsButton)
@ -21,7 +23,7 @@ typedef NS_ENUM(NSUInteger, MWMMapViewControlsButton)
@property (nonatomic) BOOL hidden;
@property (nonatomic) BOOL zoomHidden;
@property (nonatomic) BOOL menuHidden;
@property (nonatomic) MWMSideMenuState menuState;
@property (nonatomic) BOOL locationHidden;
- (instancetype)init __attribute__((unavailable("init is not available")));

View file

@ -36,7 +36,7 @@
self.menuManager = [[MWMSideMenuManager alloc] initWithParentController:controller];
self.hidden = NO;
self.zoomHidden = NO;
self.menuHidden = NO;
self.menuState = MWMSideMenuStateInactive;
return self;
}
@ -71,7 +71,7 @@
return;
_hidden = hidden;
self.zoomHidden = _zoomHidden;
self.menuHidden = _menuHidden;
self.menuState = self.menuManager.state;
self.locationHidden = _locationHidden;
GetFramework().SetFullScreenMode(hidden);
}
@ -82,10 +82,14 @@
self.zoomButtons.hidden = self.hidden || zoomHidden;
}
- (void)setMenuHidden:(BOOL)menuHidden
- (void)setMenuState:(MWMSideMenuState)menuState
{
_menuHidden = menuHidden;
self.menuManager.state = (self.hidden || menuHidden) ? MWMSideMenuStateHidden : MWMSideMenuStateInactive;
self.menuManager.state = self.hidden ? MWMSideMenuStateHidden : menuState;
}
- (MWMSideMenuState)menuState
{
return self.menuManager.state;
}
- (void)setLocationHidden:(BOOL)locationHidden

View file

@ -162,6 +162,7 @@ extern NSString * const kAlohalyticsTapEventKey;
if (_state == state)
return;
_state = state;
[self.controller updateStatusBarStyle];
switch (state)
{
case MWMSideMenuStateActive:

View file

@ -40,6 +40,8 @@ namespace search { struct AddressInfo; }
- (void)setMapStyle:(MapStyle)mapStyle;
- (void)updateStatusBarStyle;
@property (nonatomic) UIPopoverController * popoverVC;
@property (nonatomic, readonly) BOOL apiMode;
@property (nonatomic) SearchView * searchView;

View file

@ -605,7 +605,7 @@ typedef NS_ENUM(NSUInteger, UserTouchesAction)
else
{
UIStatusBarStyle style = UIStatusBarStyleDefault;
if (self.searchView.state != SearchViewStateHidden)
if (self.searchView.state != SearchViewStateHidden || self.controlsManager.menuState == MWMSideMenuStateActive)
style = UIStatusBarStyleLightContent;
if (self.containerView.placePage.state != PlacePageStateHidden)
style = UIStatusBarStyleDefault;
@ -613,6 +613,14 @@ typedef NS_ENUM(NSUInteger, UserTouchesAction)
}
}
- (void)updateStatusBarStyle
{
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)])
[self setNeedsStatusBarAppearanceUpdate];
else
[UIApplication sharedApplication].statusBarStyle = [self preferredStatusBarStyle];
}
- (BOOL)prefersStatusBarHidden
{
return NO;
@ -1053,8 +1061,7 @@ typedef NS_ENUM(NSUInteger, UserTouchesAction)
{
if (object == self.containerView.placePage && [keyPath isEqualToString:@"state"])
{
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)])
[self setNeedsStatusBarAppearanceUpdate];
[self updateStatusBarStyle];
switch (self.containerView.placePage.state)
{
case PlacePageStateHidden:
@ -1126,8 +1133,7 @@ typedef NS_ENUM(NSUInteger, UserTouchesAction)
}
else if (object == self.searchView && [keyPath isEqualToString:@"state"])
{
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)])
[self setNeedsStatusBarAppearanceUpdate];
[self updateStatusBarStyle];
if (self.searchView.state == SearchViewStateFullscreen)
{
GetFramework().ActivateUserMark(NULL);
@ -1196,8 +1202,7 @@ typedef NS_ENUM(NSUInteger, UserTouchesAction)
_apiMode = apiMode;
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)])
[self setNeedsStatusBarAppearanceUpdate];
[self updateStatusBarStyle];
}
- (void)cleanUserMarks