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;