Compare commits

...
16 Commits
Author SHA1 Message Date
Steve Gill 6a1c8c258f CB-12519 Updated version and RELEASENOTES.md for release 2.2.2 2017-03-02 16:48:19 -08:00
olln3andSteve Gill 603354a132 CB-12188 Status Bar is not changing in some specific android phone (Red MI 3s Prime)
This closes #76
2017-03-02 16:48:19 -08:00
Nikita MatrosovandSteve Gill dfe548170f CB-12369: Add plugin typings from DefinitelyTyped
This closes #75
2017-03-02 16:48:19 -08:00
Alexander SorokinandSteve Gill 1040688064 CB-12363 Added build badges for iOS 9.3 and 10.0 2017-03-02 16:48:19 -08:00
Julio CésarandSteve Gill aebe3c60bf CB-12196 (iOS) fix Status Bar Not Hiding
This closes #74
2017-03-02 16:48:19 -08:00
Julio CésarandSteve Gill 3dd497135f CB-12141 (ios) fix white app screen after camera overlay shown on iPad
This closes #73
2017-03-02 16:48:19 -08:00
Alexander SorokinandSteve Gill 7ff3f4bd21 CB-12230 Removed Windows 8.1 build badges 2017-03-02 16:48:19 -08:00
Shazron AbdullahandSteve Gill f964e9512b CB-12224 Incremented plugin version. 2017-03-02 16:48:19 -08:00
Shazron Abdullah fad6608be8 CB-12236 - Fixed RELEASENOTES for cordova-plugin-statusbar 2016-12-12 11:24:05 -08:00
Shazron Abdullah a50208bda2 CB-12224 Updated version and RELEASENOTES.md for release 2.2.1 2016-12-07 16:39:46 -08:00
Jonathan LiandJulio César 6bfc749f84 CB-10288 statusbar plugin interaction with iOS multitasking
This closes #62
2016-11-13 23:14:11 +01:00
Julio Cesar Sanchez Hernandez b7dc5ef7cb CB-10158 (ios) fix StatusBar issue when recovering from fullscreen video
This closes #70
2016-10-30 17:48:37 +01:00
Julio Cesar Sanchez Hernandez 086234b881 CB-10341 ios, document statusTap event
This closes #69
2016-10-30 17:46:36 +01:00
Julio César 2c036c9c91 CB-11191: Statusbar plugin causing issues with webview size
This closes #65
2016-10-29 00:10:20 +02:00
Shazron AbdullahandShazron Abdullah 940a8ee920 CB-11917 - Remove pull request template checklist item: "iCLA has been submitted…"
This closes #66
2016-10-04 21:34:54 -07:00
Steve Gill 53d0b04ed6 CB-11832 Incremented plugin version. 2016-09-09 16:08:04 -07:00
10 changed files with 151 additions and 35 deletions
-1
View File
@@ -17,7 +17,6 @@ Thanks!
### Checklist
- [ ] [ICLA](http://www.apache.org/licenses/icla.txt) has been signed and submitted to secretary@apache.org.
- [ ] [Reported an issue](http://cordova.apache.org/contribute/issues.html) in the JIRA database
- [ ] Commit message follows the format: "CB-3232: (android) Fix bug with resolving file paths", where CB-xxxx is the JIRA ID & "android" is the platform affected.
- [ ] Added automated test coverage as appropriate for this change.
+23 -2
View File
@@ -21,9 +21,9 @@ description: Control the device status bar.
# under the License.
-->
|Android|iOS| Windows 8.1 Store | Windows 8.1 Phone | Windows 10 Store | Travis CI |
|Android 4.4|Android 5.1|iOS 9.3|iOS 10.0|Windows 10 Store|Travis CI|
|:-:|:-:|:-:|:-:|:-:|:-:|
|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=android,PLUGIN=cordova-plugin-statusbar)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=android,PLUGIN=cordova-plugin-statusbar/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=ios,PLUGIN=cordova-plugin-statusbar)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=ios,PLUGIN=cordova-plugin-statusbar/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=windows-8.1-store,PLUGIN=cordova-plugin-statusbar)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=windows-8.1-store,PLUGIN=cordova-plugin-statusbar/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=windows-8.1-phone,PLUGIN=cordova-plugin-statusbar)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=windows-8.1-phone,PLUGIN=cordova-plugin-statusbar/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=windows-10-store,PLUGIN=cordova-plugin-statusbar)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=windows-10-store,PLUGIN=cordova-plugin-statusbar/)|[![Build Status](https://travis-ci.org/apache/cordova-plugin-statusbar.svg?branch=master)](https://travis-ci.org/apache/cordova-plugin-statusbar)|
|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=android-4.4,PLUGIN=cordova-plugin-statusbar)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=android-4.4,PLUGIN=cordova-plugin-statusbar/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=android-5.1,PLUGIN=cordova-plugin-statusbar)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=android-5.1,PLUGIN=cordova-plugin-statusbar/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=ios-9.3,PLUGIN=cordova-plugin-statusbar)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=ios-9.3,PLUGIN=cordova-plugin-statusbar/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=ios-10.0,PLUGIN=cordova-plugin-statusbar)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=ios-10.0,PLUGIN=cordova-plugin-statusbar/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=windows-10-store,PLUGIN=cordova-plugin-statusbar)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=windows-10-store,PLUGIN=cordova-plugin-statusbar/)|[![Build Status](https://travis-ci.org/apache/cordova-plugin-statusbar.svg?branch=master)](https://travis-ci.org/apache/cordova-plugin-statusbar)|
# cordova-plugin-statusbar
@@ -113,6 +113,11 @@ Properties
- StatusBar.isVisible
Events
------
- statusTap
Permissions
-----------
@@ -310,3 +315,19 @@ Supported Platforms
- Windows Phone 7
- Windows Phone 8
- Windows Phone 8.1
statusTap
=========
Listen for this event to know if the statusbar was tapped.
window.addEventListener('statusTap', function() {
// scroll-up with document.body.scrollTop = 0; or do whatever you want
});
Supported Platforms
-------------------
- iOS
+18 -1
View File
@@ -20,6 +20,23 @@
-->
# Release Notes
### 2.2.2 (Feb 28, 2017)
* [CB-12188](https://issues.apache.org/jira/browse/CB-12188) Status Bar is not changing in some specific **Android** phone (Red MI 3s Prime)
* [CB-12369](https://issues.apache.org/jira/browse/CB-12369) Add plugin typings from `DefinitelyTyped`
* [CB-12363](https://issues.apache.org/jira/browse/CB-12363) Added build badges for **iOS 9.3** and **iOS 10.0**
* [CB-12196](https://issues.apache.org/jira/browse/CB-12196) **iOS** fix Status Bar Not Hiding
* [CB-12141](https://issues.apache.org/jira/browse/CB-12141) **iOS** fix white app screen after camera overlay shown on iPad
* [CB-12230](https://issues.apache.org/jira/browse/CB-12230) Removed **Windows 8.1** build badges
### 2.2.1 (Dec 07, 2016)
* [CB-12224](https://issues.apache.org/jira/browse/CB-12224) Updated version and RELEASENOTES.md for release 2.2.1
* [CB-10288](https://issues.apache.org/jira/browse/CB-10288) statusbar plugin interaction with iOS multitasking
* [CB-10158](https://issues.apache.org/jira/browse/CB-10158) (ios) fix StatusBar issue when recovering from fullscreen video
* [CB-10341](https://issues.apache.org/jira/browse/CB-10341) ios, document statusTap event
* [CB-11191](https://issues.apache.org/jira/browse/CB-11191) Statusbar plugin causing issues with webview size
* [CB-11917](https://issues.apache.org/jira/browse/CB-11917) - Remove pull request template checklist item: "iCLA has been submitted…"
* [CB-11832](https://issues.apache.org/jira/browse/CB-11832) Incremented plugin version.
### 2.2.0 (Sep 08, 2016)
* [CB-11795](https://issues.apache.org/jira/browse/CB-11795) Add 'protective' entry to cordovaDependencies
* Handle extended status bar on **iOS**
@@ -66,7 +83,7 @@
### 1.0.1 (Jun 17, 2015)
* add auto-tests for basic api
* [CB-9180](https://issues.apache.org/jira/browse/CB-9180) Add correct supported check for Windows 8.1 desktop
* [CB-9180](https://issues.apache.org/jira/browse/CB-9180) Add correct supported check for **Windows 8.1** desktop
* [CB-9128](https://issues.apache.org/jira/browse/CB-9128) cordova-plugin-statusbar documentation translation: cordova-plugin-statusbar
* fix npm md issue
+2 -1
View File
@@ -1,7 +1,8 @@
{
"name": "cordova-plugin-statusbar",
"version": "2.2.0",
"version": "2.2.2",
"description": "Cordova StatusBar Plugin",
"types": "./types/index.d.ts",
"cordova": {
"id": "cordova-plugin-statusbar",
"platforms": [
+1 -1
View File
@@ -22,7 +22,7 @@
xmlns:rim="http://www.blackberry.com/ns/widgets"
xmlns:android="http://schemas.android.com/apk/res/android"
id="cordova-plugin-statusbar"
version="2.2.0">
version="2.2.2">
<name>StatusBar</name>
<description>Cordova StatusBar Plugin</description>
<license>Apache 2.0</license>
+1 -1
View File
@@ -154,7 +154,7 @@ public class StatusBar extends CordovaPlugin {
window.addFlags(0x80000000); // SDK 21: WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
try {
// Using reflection makes sure any 5.0+ device will work without having to compile with SDK level 21
window.getClass().getDeclaredMethod("setStatusBarColor", int.class).invoke(window, Color.parseColor(colorPref));
window.getClass().getMethod("setStatusBarColor", int.class).invoke(window, Color.parseColor(colorPref));
} catch (IllegalArgumentException ignore) {
LOG.e(TAG, "Invalid hexString argument, use f.i. '#999999'");
} catch (Exception ignore) {
+1
View File
@@ -30,6 +30,7 @@
}
@property (atomic, assign) BOOL statusBarOverlaysWebView;
@property (atomic, assign) BOOL statusBarVisible;
- (void) overlaysWebView:(CDVInvokedUrlCommand*)command;
+27 -27
View File
@@ -90,6 +90,11 @@ static const void *kStatusBarStyle = &kStatusBarStyle;
}
}
-(void)cordovaViewWillAppear:(NSNotification*)notification
{
[self resizeWebView];
}
-(void)statusBarDidChangeFrame:(NSNotification*)notification
{
//add a small delay for iOS 7 ( 0.1 seconds )
@@ -112,6 +117,8 @@ static const void *kStatusBarStyle = &kStatusBarStyle;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarDidChangeFrame:) name: UIApplicationDidChangeStatusBarFrameNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(cordovaViewWillAppear:) name: @"CDVViewWillAppearNotification" object:nil];
_statusBarOverlaysWebView = YES; // default
[self initializeStatusBarBackgroundView];
@@ -139,6 +146,8 @@ static const void *kStatusBarStyle = &kStatusBarStyle;
[self.viewController.view sendSubviewToBack:fakeScrollView]; // Send it to the very back of the view heirarchy
fakeScrollView.contentSize = CGSizeMake(UIScreen.mainScreen.bounds.size.width, UIScreen.mainScreen.bounds.size.height * 2.0f); // Make the scroll view longer than the screen itself
fakeScrollView.contentOffset = CGPointMake(0.0f, UIScreen.mainScreen.bounds.size.height); // Scroll down so a tap will take scroll view back to the top
_statusBarVisible = ![UIApplication sharedApplication].isStatusBarHidden;
}
- (void)onReset {
@@ -182,7 +191,7 @@ static const void *kStatusBarStyle = &kStatusBarStyle;
CGRect statusBarFrame = [UIApplication sharedApplication].statusBarFrame;
if ([[UIApplication sharedApplication]statusBarOrientation] == UIInterfaceOrientationPortraitUpsideDown &&
statusBarFrame.size.height + statusBarFrame.origin.y == [[UIScreen mainScreen] bounds].size.height) {
statusBarFrame.size.height + statusBarFrame.origin.y == [self.viewController.view.window bounds].size.height) {
// When started in upside-down orientation on iOS 7, status bar will be bound to lower edge of the
// screen (statusBarFrame.origin.y will be somewhere around screen height). In this case we need to
@@ -200,8 +209,8 @@ static const void *kStatusBarStyle = &kStatusBarStyle;
- (CGRect) invertFrameIfNeeded:(CGRect)rect {
// landscape is where (width > height). On iOS < 8, we need to invert since frames are
// always in Portrait context
if (UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation]) && (rect.size.width < rect.size.height)) {
// always in Portrait context. Do not run this on ios 8 or above to avoid breaking ipad pro multitask layout
if (!IsAtLeastiOSVersion(@"8.0") && UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation])) {
CGFloat temp = rect.size.width;
rect.size.width = rect.size.height;
rect.size.height = temp;
@@ -372,6 +381,7 @@ static const void *kStatusBarStyle = &kStatusBarStyle;
- (void) hide:(CDVInvokedUrlCommand*)command
{
_statusBarVisible = NO;
UIApplication* app = [UIApplication sharedApplication];
if (!app.isStatusBarHidden)
@@ -404,6 +414,7 @@ static const void *kStatusBarStyle = &kStatusBarStyle;
- (void) show:(CDVInvokedUrlCommand*)command
{
_statusBarVisible = YES;
UIApplication* app = [UIApplication sharedApplication];
if (app.isStatusBarHidden)
@@ -440,42 +451,31 @@ static const void *kStatusBarStyle = &kStatusBarStyle;
BOOL isIOS7 = (IsAtLeastiOSVersion(@"7.0"));
if (isIOS7) {
CGRect bounds = [[UIScreen mainScreen] bounds];
CGRect bounds = [self.viewController.view.window bounds];
if (CGRectEqualToRect(bounds, CGRectZero)) {
bounds = [[UIScreen mainScreen] bounds];
}
bounds = [self invertFrameIfNeeded:bounds];
if (UIInterfaceOrientationIsPortrait([[UIApplication sharedApplication] statusBarOrientation])) {
self.viewController.view.frame = bounds;
} else if (self.viewController.presentedViewController != nil) {
// https://issues.apache.org/jira/browse/CB-11018
BOOL isIOS8 = (IsAtLeastiOSVersion(@"8.0"));
BOOL isIOS9 = (IsAtLeastiOSVersion(@"9.0"));
if (isIOS8 && !isIOS9) {
// iOS 8
bounds = CGRectMake(0, 0, bounds.size.width, bounds.size.height);
} else {
// iOS7, iOS9+
if ([self.viewController.presentedViewController.presentationController isKindOfClass:[UIPopoverPresentationController class]] || UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad) {
bounds = CGRectMake(0, 0, bounds.size.width, bounds.size.height);
} else {
bounds = CGRectMake(0, 0, bounds.size.height, bounds.size.width);
}
}
}
self.viewController.view.frame = bounds;
self.webView.frame = bounds;
CGRect statusBarFrame = [UIApplication sharedApplication].statusBarFrame;
statusBarFrame = [self invertFrameIfNeeded:statusBarFrame];
CGRect frame = self.webView.frame;
CGFloat height = statusBarFrame.size.height;
if (!self.statusBarOverlaysWebView) {
frame.origin.y = statusBarFrame.size.height;
frame.size.height -= statusBarFrame.size.height;
if (_statusBarVisible) {
// CB-10158 If a full screen video is playing the status bar height will be 0, set it to 20 if _statusBarVisible
frame.origin.y = height > 0 ? height: 20;
}
} else {
// even if overlay is used, we want to handle in-call/recording/hotspot larger status bar
CGFloat height = statusBarFrame.size.height;
// Even if overlay is used, we want to handle in-call/recording/hotspot larger status bar
frame.origin.y = height >= 20 ? height - 20 : 0;
frame.size.height -= frame.origin.y;
}
frame.size.height -= frame.origin.y;
self.webView.frame = frame;
} else {
CGRect bounds = [[UIScreen mainScreen] applicationFrame];
+1 -1
View File
@@ -22,7 +22,7 @@
xmlns:rim="http://www.blackberry.com/ns/widgets"
xmlns:android="http://schemas.android.com/apk/res/android"
id="cordova-plugin-statusbar-tests"
version="2.2.0">
version="2.2.2">
<name>Cordova StatusBar Plugin Tests</name>
<license>Apache 2.0</license>
+77
View File
@@ -0,0 +1,77 @@
// Type definitions for Apache Cordova StatusBar plugin
// Project: https://github.com/apache/cordova-plugin-statusbar
// Definitions by: Xinkai Chen <https://github.com/Xinkai>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/**
* Global object StatusBar.
*/
interface Window {
StatusBar: StatusBar;
}
/**
* The StatusBar object provides some functions to customize the iOS and Android StatusBar.
*/
interface StatusBar {
/**
* On iOS 7, make the statusbar overlay or not overlay the WebView.
* @param isOverlay On iOS 7, set to false to make the statusbar appear like iOS 6.
* Set the style and background color to suit using the other functions.
*/
overlaysWebView: (isOverlay: boolean) => void;
/**
* Use the default statusbar (dark text, for light backgrounds).
*/
styleDefault: () => void;
/**
* Use the lightContent statusbar (light text, for dark backgrounds).
*/
styleLightContent: () => void;
/**
* Use the blackTranslucent statusbar (light text, for dark backgrounds).
*/
styleBlackTranslucent: () => void;
/**
* Use the blackOpaque statusbar (light text, for dark backgrounds).
*/
styleBlackOpaque: () => void;
/**
* On iOS 7, when you set StatusBar.statusBarOverlaysWebView to false,
* you can set the background color of the statusbar by color name.
* @param color Supported color names are:
* black, darkGray, lightGray, white, gray, red, green, blue, cyan, yellow, magenta, orange, purple, brown
*/
backgroundColorByName: (color: string) => void;
/**
* Sets the background color of the statusbar by a hex string.
* @param color CSS shorthand properties are also supported.
* On iOS 7, when you set StatusBar.statusBarOverlaysWebView to false, you can set the background color of the statusbar by a hex string (#RRGGBB).
* On WP7 and WP8 you can also specify values as #AARRGGBB, where AA is an alpha value
*/
backgroundColorByHexString: (color: string) => void;
/**
* Hide the statusbar.
*/
hide: () => void;
/**
* Show the statusbar.
*/
show: () => void;
/**
* Read this property to see if the statusbar is visible or not.
*/
isVisible: boolean;
}
declare var StatusBar: StatusBar;