You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by lo...@apache.org on 2013/06/21 21:45:57 UTC

git commit: [CB-3672] blackberry 10 battery plugin breakout

Updated Branches:
  refs/heads/master 290b1decb -> 478154b66


[CB-3672] blackberry 10 battery plugin breakout


Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-battery-status/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-battery-status/commit/478154b6
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-battery-status/tree/478154b6
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-battery-status/diff/478154b6

Branch: refs/heads/master
Commit: 478154b6683a151de7f846cbb71e2077a4598d5b
Parents: 290b1de
Author: lorinbeer <lo...@adobe.com>
Authored: Fri Jun 21 12:45:50 2013 -0700
Committer: lorinbeer <lo...@adobe.com>
Committed: Fri Jun 21 12:45:50 2013 -0700

----------------------------------------------------------------------
 plugin.xml                |  8 +++++
 src/blackberry10/index.js | 72 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 80 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugin-battery-status/blob/478154b6/plugin.xml
----------------------------------------------------------------------
diff --git a/plugin.xml b/plugin.xml
index f4ce680..9c919ba 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -31,6 +31,14 @@ id="org.apache.cordova.core.BatteryListener" version="0.1.0">
 	    <source-file src="src/ios/CDVBattery.m" />
     </platform>
 
+    <!-- blackberry10 -->
+    <platform name="blackberry10">
+    <source-file src="src/blackberry10/index.js" target-dir="Battery" />
+        <config-file target="www/config.xml" parent="/widget">
+            <feature name="Battery" value="Battery"/>
+        </config-file>
+    </platform>
+
     <!-- wp7 -->
     <platform name="wp7">
         <config-file target="config.xml" parent="/*">

http://git-wip-us.apache.org/repos/asf/cordova-plugin-battery-status/blob/478154b6/src/blackberry10/index.js
----------------------------------------------------------------------
diff --git a/src/blackberry10/index.js b/src/blackberry10/index.js
new file mode 100644
index 0000000..4d3816f
--- /dev/null
+++ b/src/blackberry10/index.js
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2010-2011 Research In Motion Limited.
+ *
+ * Licensed 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 _clientListeners = {},
+        _webkitBattery = navigator.webkitBattery || navigator.battery;
+
+module.exports = {
+    start: function (success, fail, args, env) {
+        var result = new PluginResult(args, env),
+            listener = function (info) {
+                var resultInfo = {};
+                if (info) {
+                    if (info.srcElement) {
+                        //webkitBattery listeners store webkitBattery in srcElement object
+                        info = info.srcElement;
+                    }
+
+                    //put data from webkitBattery into a format cordova expects
+                    //webkitBattery seems to return level as a decimal pre 10.2
+                    resultInfo.level = info.level <= 1 ? info.level * 100 : info.level,
+                    resultInfo.isPlugged = info.charging
+                }
+
+                result.callbackOk(resultInfo, true);
+            };
+
+        if (_clientListeners[env.webview.id]) {
+            //TODO: Change back to erroring out after reset is implemented
+            //result.error("Battery listener already running");
+            _webkitBattery.onchargingchange = null;
+            _webkitBattery.onlevelchange = null;
+        }
+
+        _clientListeners[env.webview.id] = listener;
+
+        _webkitBattery.onchargingchange = listener;
+        _webkitBattery.onlevelchange = listener;
+
+        setTimeout(function(){
+            //Call callback with webkitBattery data right away
+            listener(_webkitBattery);
+        });
+
+        result.noResult(true);
+    },
+    stop: function (success, fail, args, env) {
+        var result = new PluginResult(args, env),
+            listener = _clientListeners[env.webview.id];
+
+        if (!listener) {
+            result.error("Battery listener has not started");
+        } else {
+            _webkitBattery.onchargingchange = null;
+            _webkitBattery.onlevelchange = null;
+            delete _clientListeners[env.webview.id];
+            result.noResult(false);
+        }
+    }
+};