86 lines
2.9 KiB
Objective-C
86 lines
2.9 KiB
Objective-C
/*
|
|
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
|