| /* |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| */ |
| |
| #import "CDVInAppBrowserNavigationController.h" |
| |
| #define STATUSBAR_HEIGHT 20.0 |
| |
| @implementation CDVInAppBrowserNavigationController : UINavigationController |
| |
| - (void) dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion { |
| if ( self.presentedViewController) { |
| [super dismissViewControllerAnimated:flag completion:completion]; |
| } |
| } |
| |
| - (void) viewDidLoad { |
| |
| CGRect statusBarFrame = [self invertFrameIfNeeded:[UIApplication sharedApplication].statusBarFrame]; |
| statusBarFrame.size.height = STATUSBAR_HEIGHT; |
| // simplified from: http://stackoverflow.com/a/25669695/219684 |
| |
| UIToolbar* bgToolbar = [[UIToolbar alloc] initWithFrame:statusBarFrame]; |
| bgToolbar.barStyle = UIBarStyleDefault; |
| [bgToolbar setAutoresizingMask:UIViewAutoresizingFlexibleWidth]; |
| [self.view addSubview:bgToolbar]; |
| |
| [super viewDidLoad]; |
| } |
| |
| - (CGRect) invertFrameIfNeeded:(CGRect)rect { |
| if (UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation])) { |
| CGFloat temp = rect.size.width; |
| rect.size.width = rect.size.height; |
| rect.size.height = temp; |
| } |
| rect.origin = CGPointZero; |
| return rect; |
| } |
| |
| #pragma mark CDVScreenOrientationDelegate |
| |
| - (BOOL)shouldAutorotate |
| { |
| if ((self.orientationDelegate != nil) && [self.orientationDelegate respondsToSelector:@selector(shouldAutorotate)]) { |
| return [self.orientationDelegate shouldAutorotate]; |
| } |
| return YES; |
| } |
| |
| - (NSUInteger)supportedInterfaceOrientations |
| { |
| if ((self.orientationDelegate != nil) && [self.orientationDelegate respondsToSelector:@selector(supportedInterfaceOrientations)]) { |
| return [self.orientationDelegate supportedInterfaceOrientations]; |
| } |
| |
| return 1 << UIInterfaceOrientationPortrait; |
| } |
| |
| - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation |
| { |
| if ((self.orientationDelegate != nil) && [self.orientationDelegate respondsToSelector:@selector(shouldAutorotateToInterfaceOrientation:)]) { |
| return [self.orientationDelegate shouldAutorotateToInterfaceOrientation:interfaceOrientation]; |
| } |
| |
| return YES; |
| } |
| |
| |
| @end |