From b283dc2e761dd897556a8ed955a312b663ca9c5e Mon Sep 17 00:00:00 2001 From: Fabio Martino Date: Sat, 31 Dec 2022 08:56:42 +0100 Subject: [PATCH] feat(power-management): add power management support (#4443) Co-authored-by: Fabio Martino --- docs/plugins/power-management.md | 19 ++++++ .../power-management/power-management.md | 19 ++++++ .../plugins/power-management/index.ts | 68 +++++++++++++++++++ 3 files changed, 106 insertions(+) create mode 100644 docs/plugins/power-management.md create mode 100644 docs/plugins/power-management/power-management.md create mode 100644 src/@awesome-cordova-plugins/plugins/power-management/index.ts diff --git a/docs/plugins/power-management.md b/docs/plugins/power-management.md new file mode 100644 index 0000000000..0b89bc6d4d --- /dev/null +++ b/docs/plugins/power-management.md @@ -0,0 +1,19 @@ +# Power Management + +```text +$ ionic cordova plugin add cordova-plugin-powermanagement +$ npm install @awesome-cordova-plugins/power-management +``` + +## [Usage Documentation](https://github.com/Viras-/cordova-plugin-powermanagement/) + +Plugin Repo: [https://github.com/Viras-/cordova-plugin-powermanagement](https://github.com/Viras-/cordova-plugin-powermanagement) + +A Cordova plugin that offers access to the devices power-management functionality. +It should be used for applications which keep running for a long time without any user interaction. + +## Supported platforms + +* Android +* iOS + diff --git a/docs/plugins/power-management/power-management.md b/docs/plugins/power-management/power-management.md new file mode 100644 index 0000000000..0b89bc6d4d --- /dev/null +++ b/docs/plugins/power-management/power-management.md @@ -0,0 +1,19 @@ +# Power Management + +```text +$ ionic cordova plugin add cordova-plugin-powermanagement +$ npm install @awesome-cordova-plugins/power-management +``` + +## [Usage Documentation](https://github.com/Viras-/cordova-plugin-powermanagement/) + +Plugin Repo: [https://github.com/Viras-/cordova-plugin-powermanagement](https://github.com/Viras-/cordova-plugin-powermanagement) + +A Cordova plugin that offers access to the devices power-management functionality. +It should be used for applications which keep running for a long time without any user interaction. + +## Supported platforms + +* Android +* iOS + diff --git a/src/@awesome-cordova-plugins/plugins/power-management/index.ts b/src/@awesome-cordova-plugins/plugins/power-management/index.ts new file mode 100644 index 0000000000..66b038dddb --- /dev/null +++ b/src/@awesome-cordova-plugins/plugins/power-management/index.ts @@ -0,0 +1,68 @@ +import { Injectable } from '@angular/core'; +import { Cordova, AwesomeCordovaNativePlugin, Plugin } from '@awesome-cordova-plugins/core'; +/** + * @name Power Management + * @description + * The PowerManagement plugin offers access to the devices power-management functionality. + * It should be used for applications which keep running for a long time without any user interaction. + * @usage + * ``` + * import { PowerManagement } from '@awesome-cordova-plugins/power-management/ngx'; + * + * constructor(private powerManagement: PowerManagement) { } + * + * ... + * + * this.powerManagement.acquire() + * .then(onSuccess) + * .catch(onError); + * + * ``` + */ +@Plugin({ + pluginName: 'PowerManagement', + plugin: 'cordova-plugin-powermanagement-orig', + pluginRef: 'powerManagement', + repo: 'https://github.com/Viras-/cordova-plugin-powermanagement', + platforms: ['Android', 'iOS'], +}) +@Injectable() +export class PowerManagement extends AwesomeCordovaNativePlugin { + /** + * Acquire a wakelock by calling this. + * @returns {Promise} + */ + @Cordova() + acquire(): Promise { + return; + } + + /** + * This acquires a partial wakelock, allowing the screen to be dimmed. + * @returns {Promise} + */ + @Cordova() + dim(): Promise { + return; + } + + /** + * Release the wakelock. It's important to do this when you're finished with the wakelock, to avoid unnecessary battery drain. + * @returns {Promise} + */ + @Cordova() + release(): Promise { + return; + } + + /** + * 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. + * @param set {boolean} + * @returns {Promise} + */ + @Cordova() + setReleaseOnPause(set: boolean): Promise { + return; + } +}