Added ability to disable release on pause (Android), and added usage to readme

I've added a function for Android to allow the disabling of wakelock release
on pause. This is for my use case where the screen will be off most of the
time the wakelock is enabled. I added usage for it to the readme, along with
the existing functions.
pull/1/merge
Gearóid Moroney 9 years ago
parent 317a3ccbf3
commit 5b32ddf7cd

@ -17,6 +17,47 @@ Install the plugin using the cordova command line utility:
`$ cordova plugin add https://github.com/Viras-/cordova-plugin-powermanagement.git`
Usage
-----
### window.powerManagement.acquire(successCallback, failureCallback)
Acquire a wakelock by calling this.
window.powerManagement.acquire(function() {
console.log('Wakelock acquired');
}, function() {
console.log('Failed to acquire wakelock');
});
### window.powerManagement.dim(successCallback, failureCallback)
This acquires a partial wakelock, allowing the screen to be dimmed.
window.powerManagement.dim(function() {
console.log('Wakelock acquired');
}, function() {
console.log('Failed to acquire wakelock');
});
### window.powerManagement.release(successCallback, failureCallback)
Release the wakelock. It's important to do this when you're finished with the wakelock, to avoid unnecessary battery drain.
window.powerManagement.release(function() {
console.log('Wakelock released');
}, function() {
console.log('Failed to release wakelock');
});
### [Android Only] window.powerManagement.setReleaseOnPause(enabled, successCallback, failureCallback)
By default, the plugin will automatically release a wakelock when your app is paused (e.g. when the screen is turned off, or the user switches to another app). It will reacquire the wakelock upon app resume. If you would prefer to disable this behaviour, you can use this function.
window.powerManagement.setReleaseOnPause(false, function() {
console.log('Set successfully');
}, function() {
console.log('Failed to set');
});
Note that in all the above examples, all callbacks are optional.
License
=======
Copyright 2013 Wolfgang Koller

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://cordova.apache.org/ns/plugins/1.0"
id="at.gofg.sportscomputer.powermanagement"
version="1.0.0">
version="1.1.0">
<name>PowerManagement</name>
<description>PowerManagement plugin for Cordova</description>
<license>Apache 2.0</license>

@ -41,6 +41,7 @@ public class PowerManagement extends CordovaPlugin {
// As we only allow one wake-lock, we keep a reference to it here
private PowerManager.WakeLock wakeLock = null;
private PowerManager powerManager = null;
private boolean releaseOnPause = true;
/**
* Fetch a reference to the power-service when the plugin is initialized
@ -69,9 +70,15 @@ public class PowerManagement extends CordovaPlugin {
else {
result = this.acquire( PowerManager.FULL_WAKE_LOCK );
}
}
else if( action.equals("release") ) {
} else if( action.equals("release") ) {
result = this.release();
} else if( action.equals("setReleaseOnPause") ) {
try {
this.releaseOnPause = args.getBoolean(0);
result = new PluginResult(PluginResult.Status.OK);
} catch (Exception e) {
result = new PluginResult(PluginResult.Status.ERROR, "Could not set releaseOnPause");
}
}
}
catch( JSONException e ) {
@ -138,7 +145,9 @@ public class PowerManagement extends CordovaPlugin {
*/
@Override
public void onPause(boolean multitasking) {
if( this.wakeLock != null ) this.wakeLock.release();
if( this.releaseOnPause && this.wakeLock != null ) {
this.wakeLock.release();
}
super.onPause(multitasking);
}
@ -148,7 +157,9 @@ public class PowerManagement extends CordovaPlugin {
*/
@Override
public void onResume(boolean multitasking) {
if( this.wakeLock != null ) this.wakeLock.acquire();
if( this.releaseOnPause && this.wakeLock != null ) {
this.wakeLock.acquire();
}
super.onResume(multitasking);
}

@ -37,6 +37,17 @@ PowerManagement.prototype.release = function(successCallback,failureCallback) {
cordova.exec(successCallback, failureCallback, 'PowerManagement', 'release', []);
}
/**
* Enable or disable releasing of the wakelock on pause
*
* @param enabled boolean - true to enable releasing of wakelock on pause, or false to disable
* @param successCallback
* @param errorCallback
*/
PowerManagement.prototype.setReleaseOnPause = function(enabled, successCallback, failureCallback) {
cordova.exec(successCallback, failureCallback, 'PowerManagement', 'setReleaseOnPause', [enabled]);
}
/**
* Acquire a partial wake-lock, allowing the device to dim the screen
*

Loading…
Cancel
Save