From e9fa3ee6f24128dc870cef3ec4e2edcc7ffc9653 Mon Sep 17 00:00:00 2001 From: Marius Backes Date: Fri, 12 Jul 2019 11:39:23 +0200 Subject: [PATCH] feat(theme-detection): add plugin (#3082) --- .../plugins/theme-detection/index.ts | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/@ionic-native/plugins/theme-detection/index.ts diff --git a/src/@ionic-native/plugins/theme-detection/index.ts b/src/@ionic-native/plugins/theme-detection/index.ts new file mode 100644 index 000000000..58a539451 --- /dev/null +++ b/src/@ionic-native/plugins/theme-detection/index.ts @@ -0,0 +1,72 @@ +import { Injectable } from '@angular/core'; +import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; + +export interface ThemeDetectionResponse { + // Boolean value about the status of the request + value: boolean; + + // Message for readable usage + message: string; +} + +/** + * @beta + * @name Theme Detection + * @description + * Cordova plugin to detect whether dark mode is enabled or not + * + * @usage + * ```typescript + * import { ThemeDetection } from '@ionic-native/theme-detection'; + * + * + * constructor(private themeDetection: ThemeDetection) { } + * + * ... + * + * this.themeDetection.isAvailable() + * .then((res: ThemeDetectionResponse) => { + * if(res.value) { + * this.themeDetection.isDarkModeEnabled().then((res: ThemeDetectionResponse) => { + * console.log(res); + * }) + * .catch((error: any) => console.error(error)); + * } + * }) + * .catch((error: any) => console.error(error)); + * + * ``` + */ +@Plugin({ + pluginName: 'ThemeDetection', + plugin: 'cordova-plugin-theme-detection', + pluginRef: 'cordova.plugins.ThemeDetection', + repo: 'https://github.com/mariusbackes/cordova-plugin-theme-detection', + install: 'cordova plugin add cordova-plugin-theme-detection', + installVariables: [], + platforms: ['iOS'] +}) +@Injectable() +export class ThemeDetection extends IonicNativePlugin { + + /** + * + * @return {Promise} + * Returns a promise with an object that has a boolean property which gives information if the detection is available or not + */ + @Cordova() + isAvailable(): Promise { + return; + } + + /** + * + * @return {Promise} + * Returns a promise with an object that has a boolean property which gives information if dark mode is enabled or not + */ + @Cordova() + isDarkModeEnabled(): Promise { + return; + } + +}