Compare commits

...

15 Commits

Author SHA1 Message Date
Steve Gill
e445123e4c CB-8110 Updated version and RELEASENOTES.md for release 0.1.9 2014-12-02 16:07:02 -08:00
Andrew Grieve
3bc16d942b Fix onload attribute within <feature> to be a <param>
This syntax worked on iOS, but not Android.
2014-11-27 14:51:49 -05:00
Shazron Abdullah
a96226a074 CB-8010 - Statusbar colour does not change to orange 2014-11-19 16:24:12 -08:00
Jesse MacFadyen
c89fdd4617 added checks for running on windows when StatusBar is NOT available 2014-11-12 18:04:38 -08:00
Jesse MacFadyen
251e904492 rejiggered some stuff around 2014-11-12 14:53:44 -08:00
Jesse MacFadyen
7bc7c326c8 Renamed to proxy 2014-11-12 14:53:06 -08:00
Jesse MacFadyen
83978519ad Merge branch 'CB-7986' of https://github.com/MSOpenTech/cordova-plugin-statusbar 2014-11-12 14:27:13 -08:00
daserge
a6344f14f9 CB-7986 Add cordova-plugin-statusbar support for Windows Phone 8.1
Added Windows Phone 8.1 support
Updated the documentation
2014-11-10 22:20:42 +03:00
Josh Soref
8685564ec1 CB-7977 Mention deviceready in plugin docs 2014-11-06 17:34:03 -05:00
Josh Soref
1e9d588101 CB-7979 Each plugin doc should have a ## Installation section 2014-11-06 17:33:46 -05:00
Josh Soref
f1c76226e1 Inserting leading space after # for consistency 2014-11-06 17:13:34 -05:00
Shazron Abdullah
5658e7548c CB-7549 - (Re-fix) [StatusBar][iOS 8] Landscape issue (closes #15) 2014-10-06 14:43:12 -07:00
Victor Sosa
33674fffd3 CB-7700 cordova-plugin-statusbar documentation translation: cordova-plugin-statusbar 2014-10-02 18:13:25 -05:00
Marcel Kinard
68d5508539 CB-7571 Bump version of nested plugin to match parent plugin 2014-09-17 16:27:18 -04:00
Marcel Kinard
6481e0fc8a CB-7571 Incremented plugin version. 2014-09-17 15:35:02 -04:00
9 changed files with 171 additions and 31 deletions

View File

@@ -51,3 +51,15 @@
* Renamed test dir, added nested plugin.xml
* added documentation for manual tests, moved background color test below overlay test
* CB-7195 ported statusbar tests to framework
### 0.1.9 (Dec 02, 2014)
* Fix onload attribute within <feature> to be a <param>
* CB-8010 - Statusbar colour does not change to orange
* added checks for running on windows when StatusBar is NOT available
* CB-7986 Add cordova-plugin-statusbar support for **Windows Phone 8.1**
* CB-7977 Mention `deviceready` in plugin docs
* CB-7979 Each plugin doc should have a ## Installation section
* Inserting leading space after # for consistency
* CB-7549 - (Re-fix) `StatusBar` **iOS 8** Landscape issue (closes #15)
* CB-7700 cordova-plugin-statusbar documentation translation: cordova-plugin-statusbar
* CB-7571 Bump version of nested plugin to match parent plugin

View File

@@ -94,7 +94,7 @@ Auf iOS 7 zu der Statusbar wie iOS 6 erscheinen auf False festgelegt. Legen Sie
* iOS
## Kleines Beispiel
## Kurzes Beispiel
StatusBar.overlaysWebView(true);
StatusBar.overlaysWebView(false);

View File

@@ -16,7 +16,7 @@
specific language governing permissions and limitations
under the License.
-->
#org.apache.cordova.statusbar
# org.apache.cordova.statusbar
StatusBar
======
@@ -24,6 +24,10 @@ StatusBar
> The `StatusBar` object provides some functions to customize the iOS and Android StatusBar.
## Installation
cordova plugin add org.apache.cordova.statusbar
Preferences
-----------
@@ -57,6 +61,14 @@ Add/edit these two attributes if not present. Set **"Status bar is initially hid
Methods
-------
This plugin defines global `StatusBar` object.
Although in the global scope, it is not available until after the `deviceready` event.
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(StatusBar);
}
- StatusBar.overlaysWebView
- StatusBar.styleDefault
@@ -120,6 +132,7 @@ Supported Platforms
- iOS
- Windows Phone 7
- Windows Phone 8
- Windows Phone 8.1
StatusBar.styleLightContent
=================
@@ -135,6 +148,7 @@ Supported Platforms
- iOS
- Windows Phone 7
- Windows Phone 8
- Windows Phone 8.1
StatusBar.styleBlackTranslucent
=================
@@ -150,6 +164,7 @@ Supported Platforms
- iOS
- Windows Phone 7
- Windows Phone 8
- Windows Phone 8.1
StatusBar.styleBlackOpaque
=================
@@ -165,6 +180,7 @@ Supported Platforms
- iOS
- Windows Phone 7
- Windows Phone 8
- Windows Phone 8.1
StatusBar.backgroundColorByName
@@ -185,6 +201,7 @@ Supported Platforms
- iOS
- Windows Phone 7
- Windows Phone 8
- Windows Phone 8.1
StatusBar.backgroundColorByHexString
=================
@@ -208,6 +225,7 @@ Supported Platforms
- iOS
- Windows Phone 7
- Windows Phone 8
- Windows Phone 8.1
StatusBar.hide
=================
@@ -224,6 +242,7 @@ Supported Platforms
- Android
- Windows Phone 7
- Windows Phone 8
- Windows Phone 8.1
StatusBar.show
=================
@@ -240,6 +259,7 @@ Supported Platforms
- Android
- Windows Phone 7
- Windows Phone 8
- Windows Phone 8.1
StatusBar.isVisible
@@ -259,5 +279,6 @@ Supported Platforms
- Android
- Windows Phone 7
- Windows Phone 8
- Windows Phone 8.1

View File

@@ -66,7 +66,7 @@
* StatusBar.hide
* StatusBar.show
## Свойства
## Параметры
* StatusBar.isVisible
@@ -94,7 +94,7 @@
* iOS
## Быстрый пример
## Краткий пример
StatusBar.overlaysWebView(true);
StatusBar.overlaysWebView(false);

View File

@@ -22,7 +22,7 @@
xmlns:rim="http://www.blackberry.com/ns/widgets"
xmlns:android="http://schemas.android.com/apk/res/android"
id="org.apache.cordova.statusbar"
version="0.1.8">
version="0.1.9">
<name>StatusBar</name>
<description>Cordova StatusBar Plugin</description>
<license>Apache 2.0</license>
@@ -41,7 +41,8 @@
<config-file target="res/xml/config.xml" parent="/*">
<feature name="StatusBar">
<param name="android-package" value="org.apache.cordova.statusbar.StatusBar" onload="true" />
<param name="android-package" value="org.apache.cordova.statusbar.StatusBar" />
<param name="onload" value="true" />
</feature>
</config-file>
</platform>
@@ -51,7 +52,8 @@
<config-file target="config.xml" parent="/*">
<feature name="StatusBar">
<param name="ios-package" value="CDVStatusBar" onload="true" />
<param name="ios-package" value="CDVStatusBar" />
<param name="onload" value="true" />
</feature>
<preference name="StatusBarOverlaysWebView" value="true" />
<preference name="StatusBarStyle" value="lightcontent" />
@@ -82,4 +84,10 @@
<source-file src="src/wp/StatusBar.cs" />
</platform>
<!-- windows -->
<platform name="windows">
<js-module src="src/windows/StatusBarProxy.js" name="StatusBarProxy">
<runs />
</js-module>
</platform>
</plugin>

View File

@@ -168,10 +168,7 @@ static const void *kStatusBarStyle = &kStatusBarStyle;
- (void) initializeStatusBarBackgroundView
{
CGRect statusBarFrame = [UIApplication sharedApplication].statusBarFrame;
if (UIDeviceOrientationIsLandscape(self.viewController.interfaceOrientation) && !IsAtLeastiOSVersion(@"8.0")) {
// swap width and height. set origin to zero
statusBarFrame = CGRectMake(0, 0, statusBarFrame.size.height, statusBarFrame.size.width);
}
statusBarFrame = [self invertFrameIfNeeded:statusBarFrame orientation:self.viewController.interfaceOrientation];
_statusBarBackgroundView = [[UIView alloc] initWithFrame:statusBarFrame];
_statusBarBackgroundView.backgroundColor = _statusBarBackgroundColor;
@@ -179,6 +176,19 @@ static const void *kStatusBarStyle = &kStatusBarStyle;
_statusBarBackgroundView.autoresizesSubviews = YES;
}
- (CGRect) invertFrameIfNeeded:(CGRect)rect orientation:(UIInterfaceOrientation)orientation {
// landscape is where (width > height). On iOS < 8, we need to invert since frames are
// always in Portrait context
if (UIDeviceOrientationIsLandscape(orientation) && (rect.size.width < rect.size.height) ) {
CGFloat temp = rect.size.width;
rect.size.width = rect.size.height;
rect.size.height = temp;
rect.origin = CGPointZero;
}
return rect;
}
- (void) setStatusBarOverlaysWebView:(BOOL)statusBarOverlaysWebView
{
// we only care about the latest iOS version or a change in setting
@@ -200,18 +210,13 @@ static const void *kStatusBarStyle = &kStatusBarStyle;
} else {
CGRect statusBarFrame = [UIApplication sharedApplication].statusBarFrame;
statusBarFrame = [self invertFrameIfNeeded:statusBarFrame orientation:self.viewController.interfaceOrientation];
[self initializeStatusBarBackgroundView];
CGRect frame = self.webView.frame;
if (UIDeviceOrientationIsLandscape(self.viewController.interfaceOrientation) && !IsAtLeastiOSVersion(@"8.0")) {
frame.origin.y = statusBarFrame.size.width;
frame.size.height -= statusBarFrame.size.width;
} else {
frame.origin.y = statusBarFrame.size.height;
frame.size.height -= statusBarFrame.size.height;
}
frame.origin.y = statusBarFrame.size.height;
frame.size.height -= statusBarFrame.size.height;
self.webView.frame = frame;
[self.webView.superview addSubview:_statusBarBackgroundView];
@@ -408,6 +413,7 @@ static const void *kStatusBarStyle = &kStatusBarStyle;
self.viewController.view.frame = [[UIScreen mainScreen] bounds];
CGRect statusBarFrame = [UIApplication sharedApplication].statusBarFrame;
statusBarFrame = [self invertFrameIfNeeded:statusBarFrame orientation:self.viewController.interfaceOrientation];
if (!self.statusBarOverlaysWebView) {
@@ -415,16 +421,9 @@ static const void *kStatusBarStyle = &kStatusBarStyle;
// from the current one. Therefore we need to expand the statusBarBackgroundView as well to the
// statusBar's current size
CGRect sbBgFrame = _statusBarBackgroundView.frame;
if (UIDeviceOrientationIsLandscape(self.viewController.interfaceOrientation)) {
frame.origin.y = statusBarFrame.size.width;
frame.size.height -= statusBarFrame.size.width;
sbBgFrame.size = CGSizeMake(statusBarFrame.size.height, statusBarFrame.size.width);
} else {
frame.origin.y = statusBarFrame.size.height;
frame.size.height -= statusBarFrame.size.height;
sbBgFrame.size = statusBarFrame.size;
}
frame.origin.y = statusBarFrame.size.height;
frame.size.height -= statusBarFrame.size.height;
sbBgFrame.size = statusBarFrame.size;
_statusBarBackgroundView.frame = sbBgFrame;
[self.webView.superview addSubview:_statusBarBackgroundView];

View File

@@ -0,0 +1,100 @@
/*
*
* 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.
*
*/
var isSupported = true; // we assume
function getViewStatusBar() {
if(isSupported) {
var ViewMan = Windows.UI.ViewManagement; // quick alias to save char
if( ViewMan.StatusBar &&
ViewMan.StatusBar.getForCurrentView ) {
return ViewMan.StatusBar.getForCurrentView();
}
else {
isSupported = false; // so we won't check again
}
}
return null;
}
function hexToRgb(hex) {
// Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF")
var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
hex = hex.replace(shorthandRegex, function (m, r, g, b) {
return r + r + g + g + b + b;
});
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result ? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
} : null;
}
module.exports = {
_ready: function(win, fail) {
win(statusBar.occludedRect.height !== 0);
},
overlaysWebView: function () {
// not supported
},
styleDefault: function () {
// dark text ( to be used on a light background )
getViewStatusBar().foregroundColor = { a: 0, r: 0, g: 0, b: 0 };
},
styleLightContent: function () {
// light text ( to be used on a dark background )
getViewStatusBar().foregroundColor = { a: 0, r: 255, g: 255, b: 255 };
},
styleBlackTranslucent: function () {
// #88000000 ? Apple says to use lightContent instead
return this.styleLightContent();
},
styleBlackOpaque: function () {
// #FF000000 ? Apple says to use lightContent instead
return this.styleLightContent();
},
backgroundColorByHexString: function (win, fail, args) {
var rgb = hexToRgb(args[0]);
var statusBar = getViewStatusBar();
if(statusBar) {
statusBar.backgroundColor = { a: 0, r: rgb.r, g: rgb.g, b: rgb.b };
statusBar.backgroundOpacity = 1;
}
},
show: function (win, fail) {
getViewStatusBar().showAsync().done(win, fail);
},
hide: function (win, fail) {
getViewStatusBar().hideAsync().done(win, fail);
}
};
require("cordova/exec/proxy").add("StatusBar", module.exports);

View File

@@ -22,7 +22,7 @@
xmlns:rim="http://www.blackberry.com/ns/widgets"
xmlns:android="http://schemas.android.com/apk/res/android"
id="org.apache.cordova.statusbar.tests"
version="0.1.8">
version="0.1.9">
<name>Cordova StatusBar Plugin Tests</name>
<license>Apache 2.0</license>

View File

@@ -33,7 +33,7 @@ var namedColors = {
"cyan": "#00FFFF",
"yellow": "#FFFF00",
"magenta": "#FF00FF",
"orange": "##FFA500",
"orange": "#FFA500",
"purple": "#800080",
"brown": "#A52A2A"
};