diff --git a/src/@ionic-native/plugins/call-directory/index.ts b/src/@ionic-native/plugins/call-directory/index.ts new file mode 100644 index 000000000..3733e30e1 --- /dev/null +++ b/src/@ionic-native/plugins/call-directory/index.ts @@ -0,0 +1,99 @@ +import { Injectable } from '@angular/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; + +export interface CallDirectoryItem { + label: string; + number: string; +} + +/** + * @name Call Directory + * @description + * This plugin can add phone numbers to an Callkit call directory extension. Call `reloadExtension` after using `addentIfication` and `removeIdentification` + * to process the changes in the call directory extension. + * + * @usage + * ```typescript + * import { CallDirectory } from '@ionic-native/call-directory'; + * + * + * constructor(private callDirectory: CallDirectory) { } + * + * ... + * + * + * let items = [{label: "Hello", number: "123"}]; + * this.callDirectory.addIdentification(items) + * .then((res: any) => console.log(res)) + * .catch((error: any) => console.error(error)); + * + * ``` + */ +@Plugin({ + pluginName: 'CallDirectory', + plugin: 'cordova-plugin-call-directory', + pluginRef: 'CallDirectory', + repo: 'https://github.com/GEDYSIntraWare/cordova-plugin-call-directory', + install: 'cordova plugin add cordova-plugin-call-directory --variable EXT_NAME="Cordova-Directory" --variable ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES="NO"', + installVariables: ['EXT_NAME', 'ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES'], + platforms: ['iOS'] +}) +@Injectable() +export class CallDirectory extends IonicNativePlugin { + + /** + * Check if the call directory extension is available and enabled + * @return {Promise} Returns a promise with result + */ + @Cordova() + isAvailable(): Promise { + return; + } + + /** + * Add identification numbers + * @param {Array} items Set of numbers with labels + * @return {Promise} Returns a promise that resolves when numbers are added + */ + @Cordova() + addIdentification(items: Array): Promise { + return; + } + + /** + * Remove identification numbers + * @param {Array} items Set of numbers with arbitrary label + * @return {Promise} Returns a promise that resolves when numbers are removed + */ + @Cordova() + removeIdentification(items: Array): Promise { + return; + } + + /** + * Remove all items from call directory. Refreshes immediately. + * @return {Promise} Returns a promise after refresh with message + */ + @Cordova() + removeAllIdentification(): Promise { + return; + } + + /** + * Get all numbers and labels in call directory + * @return {Array} Returns a promise that resolves with an array of all items + */ + @Cordova() + getAllItems(): Promise> { + return; + } + + /** + * Reload extension to process queued changes + * @return {Promise} Returns a promise after refresh with message + */ + @Cordova() + reloadExtension(): Promise { + return; + } +}