Skip to content
Permalink
Browse files
[CB-3672] blackberry 10 battery plugin breakout
  • Loading branch information
lorinbeer committed Jun 21, 2013
1 parent 290b1de commit 478154b6683a151de7f846cbb71e2077a4598d5b
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 0 deletions.
@@ -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="/*">
@@ -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);
}
}
};

0 comments on commit 478154b

Please sign in to comment.