diff --git a/src/plugins/flashlight.ts b/src/plugins/flashlight.ts new file mode 100644 index 00000000..68cd68f0 --- /dev/null +++ b/src/plugins/flashlight.ts @@ -0,0 +1,93 @@ +import {Plugin, Cordova} from './plugin'; + +/** + * @name Flashlight + * @description This plugin allows you to switch the flashlight / torch of the device on and off. + * + * Requires Cordova plugin: `cordova-plugin-flashlight`. For more info, please see the [Flashlight plugin docs](https://github.com/EddyVerbruggen/Flashlight-PhoneGap-Plugin). + * + * @usage + * ```js + * ``` + */ +@Plugin({ + plugin: 'https://github.com/EddyVerbruggen/Flashlight-PhoneGap-Plugin.git', + pluginRef: 'window.plugins.flashlight' +}) +export class Flashlight { + + + /** + * Checks if the flash light is available + * @returns {Promise} Returns a promise that resolves with a boolean stating if the flash light is available. + */ + @Cordova() + static available() : Promise{ + // This Promise is replaced by one from the @Cordova decorator that wraps + // the plugin's callbacks. We provide a dummy one here so TypeScript + // knows that the correct return type is Promise, because there's no way + // for it to know the return type from a decorator. + // See https://github.com/Microsoft/TypeScript/issues/4881 + + return new Promise((res,rej)=>{}); + } + + /** + * Switches the flashlight on + * @returns {Promise} + */ + @Cordova() + static switchOn() : Promise{ + // This Promise is replaced by one from the @Cordova decorator that wraps + // the plugin's callbacks. We provide a dummy one here so TypeScript + // knows that the correct return type is Promise, because there's no way + // for it to know the return type from a decorator. + // See https://github.com/Microsoft/TypeScript/issues/4881 + + return new Promise((res,rej)=>{}); + } + + /** + * Switches the flash light off + * @returns {Promise} + */ + @Cordova() + static switchOff() : Promise{ + // This Promise is replaced by one from the @Cordova decorator that wraps + // the plugin's callbacks. We provide a dummy one here so TypeScript + // knows that the correct return type is Promise, because there's no way + // for it to know the return type from a decorator. + // See https://github.com/Microsoft/TypeScript/issues/4881 + + return new Promise((res,rej)=>{}); + } + + /** + * Toggles the flashlight + * @returns {Promise} + */ + @Cordova() + static toggle() : Promise { + // This Promise is replaced by one from the @Cordova decorator that wraps + // the plugin's callbacks. We provide a dummy one here so TypeScript + // knows that the correct return type is Promise, because there's no way + // for it to know the return type from a decorator. + // See https://github.com/Microsoft/TypeScript/issues/4881 + + return new Promise((res,rej)=>{}); + } + + + /** + * Checks if the flash light is turned on. + * Returns a boolean + */ + @Cordova({ + sync: true + }) + static isSwitchedOn() : boolean { + // DUMMY BOOLEAN, @Cordova decorator will replace value. + return true; + } + +} \ No newline at end of file