You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by sh...@apache.org on 2014/03/13 20:58:41 UTC
[12/35] git commit: Implement StatusBar.isVisible
Implement StatusBar.isVisible
Project: http://git-wip-us.apache.org/repos/asf/cordova-statusbar/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-statusbar/commit/c2f13fe2
Tree: http://git-wip-us.apache.org/repos/asf/cordova-statusbar/tree/c2f13fe2
Diff: http://git-wip-us.apache.org/repos/asf/cordova-statusbar/diff/c2f13fe2
Branch: refs/heads/master
Commit: c2f13fe2319b5a6744c50808a2f8ac097e9fcb9b
Parents: 4be7bcc
Author: Shazron Abdullah <sh...@apache.org>
Authored: Mon Oct 7 17:53:04 2013 -0700
Committer: Shazron Abdullah <sh...@apache.org>
Committed: Mon Oct 7 17:53:04 2013 -0700
----------------------------------------------------------------------
README.md | 17 ++++++++++++++++-
src/ios/CDVStatusBar.h | 2 ++
src/ios/CDVStatusBar.m | 24 ++++++++++++++++++++++++
www/statusbar.js | 4 +++-
4 files changed, 45 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-statusbar/blob/c2f13fe2/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index 9863f11..94ca746 100644
--- a/README.md
+++ b/README.md
@@ -21,7 +21,7 @@ Methods
Properties
--------
-- StatusBar.isVisible (TODO: not implemented yet)
+- StatusBar.isVisible
Permissions
-----------
@@ -144,6 +144,21 @@ Supported Platforms
- iOS
+StatusBar.isVisible
+=================
+
+Read this property to see if the statusbar is visible or not.
+
+ if (StatusBar.isVisible) {
+ // do something
+ }
+
+
+Supported Platforms
+-------------------
+
+- iOS
+
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cordova-statusbar/blob/c2f13fe2/src/ios/CDVStatusBar.h
----------------------------------------------------------------------
diff --git a/src/ios/CDVStatusBar.h b/src/ios/CDVStatusBar.h
index f2ce759..d8cb709 100644
--- a/src/ios/CDVStatusBar.h
+++ b/src/ios/CDVStatusBar.h
@@ -39,4 +39,6 @@
- (void) backgroundColorByName:(CDVInvokedUrlCommand*)command;
- (void) backgroundColorByHexString:(CDVInvokedUrlCommand*)command;
+- (void) _ready:(CDVInvokedUrlCommand*)command;
+
@end
http://git-wip-us.apache.org/repos/asf/cordova-statusbar/blob/c2f13fe2/src/ios/CDVStatusBar.m
----------------------------------------------------------------------
diff --git a/src/ios/CDVStatusBar.m b/src/ios/CDVStatusBar.m
index da4ae57..71dcfe0 100644
--- a/src/ios/CDVStatusBar.m
+++ b/src/ios/CDVStatusBar.m
@@ -40,8 +40,21 @@
}
}
+- (void)observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void*)context
+{
+ if ([keyPath isEqual:@"statusBarHidden"]) {
+ NSNumber* newValue = [change objectForKey:NSKeyValueChangeNewKey];
+ BOOL boolValue = [newValue boolValue];
+
+ [self.commandDelegate evalJs:[NSString stringWithFormat:@"StatusBar.isVisible = %@;", boolValue? @"true" : @"false" ]];
+ }
+}
+
- (void)pluginInitialize
{
+ // observe the statusBarHidden property
+ [[UIApplication sharedApplication] addObserver:self forKeyPath:@"statusBarHidden" options:NSKeyValueObservingOptionNew context:NULL];
+
_statusBarOverlaysWebView = YES; // default
CGRect frame = [[UIApplication sharedApplication] statusBarFrame];
@@ -65,6 +78,12 @@
}
}
+- (void) _ready:(CDVInvokedUrlCommand*)command
+{
+ // set the initial value
+ [self.commandDelegate evalJs:[NSString stringWithFormat:@"StatusBar.isVisible = %@;", [UIApplication sharedApplication].statusBarHidden? @"false" : @"true" ]];
+}
+
- (void) setStatusBarOverlaysWebView:(BOOL)statusBarOverlaysWebView
{
// we only care about the latest iOS version or a change in setting
@@ -184,5 +203,10 @@
[self _backgroundColorByHexString:value];
}
+- (void) dealloc
+{
+ [[UIApplication sharedApplication] removeObserver:self forKeyPath:@"statusBarHidden"];
+}
+
@end
http://git-wip-us.apache.org/repos/asf/cordova-statusbar/blob/c2f13fe2/www/statusbar.js
----------------------------------------------------------------------
diff --git a/www/statusbar.js b/www/statusbar.js
index a2a8249..6de8bf2 100644
--- a/www/statusbar.js
+++ b/www/statusbar.js
@@ -23,6 +23,9 @@ var argscheck = require('cordova/argscheck'),
utils = require('cordova/utils'),
exec = require('cordova/exec');
+// prime it
+exec(null, null, "StatusBar", "_ready", []);
+
var StatusBar = function() {
};
@@ -54,7 +57,6 @@ StatusBar.backgroundColorByHexString = function(hexString) {
exec(null, null, "StatusBar", "backgroundColorByHexString", [hexString]);
}
-// TODO:
StatusBar.isVisible = true;
module.exports = StatusBar;