diff --git a/CHANGELOG.md b/CHANGELOG.md index 589a050b2..99cddb639 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,71 @@ + +# [4.6.0](https://github.com/ionic-team/ionic-native/compare/v5.0.0-beta.3...v4.6.0) (2018-03-19) + + +### Bug Fixes + +* **badge:** add correct requestPermission function ([586c7e5](https://github.com/ionic-team/ionic-native/commit/586c7e5)) +* **call-log:** comments erratum ([4b9cf17](https://github.com/ionic-team/ionic-native/commit/4b9cf17)) +* **call-log:** update getCallLog signature ([61c0ecf](https://github.com/ionic-team/ionic-native/commit/61c0ecf)) +* **contacts:** refactor wrong ContactFieldTypes ([f607a03](https://github.com/ionic-team/ionic-native/commit/f607a03)) +* **facebook:** remove browserInit function ([f718432](https://github.com/ionic-team/ionic-native/commit/f718432)) +* **firebase-analytics:** add `sync` option for all methods ([42fd1f2](https://github.com/ionic-team/ionic-native/commit/42fd1f2)) +* **google-maps:** wrong decorators ([e5b9d53](https://github.com/ionic-team/ionic-native/commit/e5b9d53)) +* **health-kit:** add missing properties to HealthKitOptions ([f8e79ce](https://github.com/ionic-team/ionic-native/commit/f8e79ce)) +* **index-app-content:** remove onItemPressed function ([270678f](https://github.com/ionic-team/ionic-native/commit/270678f)) +* **printer:** add correct npm repository ([4bf55d3](https://github.com/ionic-team/ionic-native/commit/4bf55d3)) +* **pro:** proper callback type and guard for plugin instantiate. [#2136](https://github.com/ionic-team/ionic-native/issues/2136) [#2127](https://github.com/ionic-team/ionic-native/issues/2127) ([61293c3](https://github.com/ionic-team/ionic-native/commit/61293c3)) +* **pro:** Tweak to pro plugin. [#2136](https://github.com/ionic-team/ionic-native/issues/2136) [#2127](https://github.com/ionic-team/ionic-native/issues/2127) ([c8ecee0](https://github.com/ionic-team/ionic-native/commit/c8ecee0)) +* **Pro:** CordovaCheck should sync. [#2136](https://github.com/ionic-team/ionic-native/issues/2136) [#2127](https://github.com/ionic-team/ionic-native/issues/2127) ([f419db5](https://github.com/ionic-team/ionic-native/commit/f419db5)) +* **push:** Android senderID as optional ([1b237aa](https://github.com/ionic-team/ionic-native/commit/1b237aa)) +* **Radmob-pro:** add offsetTopBar option ([4948640](https://github.com/ionic-team/ionic-native/commit/4948640)) +* **sqlite:** remove trailing whitespaces ([7547a94](https://github.com/ionic-team/ionic-native/commit/7547a94)) +* **web-intent:** allow extras ([8dc5ad2](https://github.com/ionic-team/ionic-native/commit/8dc5ad2)) + + +### Features + +* **app-rate:** add custom locale interface ([2a18dbc](https://github.com/ionic-team/ionic-native/commit/2a18dbc)) +* **app-update:** add app update options ([0f325ed](https://github.com/ionic-team/ionic-native/commit/0f325ed)) +* **appodeal:** add new functions ([247a1a1](https://github.com/ionic-team/ionic-native/commit/247a1a1)) +* **base64-to-gallery:** add options interface ([11d516f](https://github.com/ionic-team/ionic-native/commit/11d516f)) +* **ble:** add scan options interface ([e345fed](https://github.com/ionic-team/ionic-native/commit/e345fed)) +* **calendar:** add getCreateCalendarOptions function ([13765d2](https://github.com/ionic-team/ionic-native/commit/13765d2)) +* **call-log:** add plugin ([76a644d](https://github.com/ionic-team/ionic-native/commit/76a644d)) +* **camera-preview:** add onBackButton function ([a345e2c](https://github.com/ionic-team/ionic-native/commit/a345e2c)) +* **device-accounts:** add android account interface ([d2261b6](https://github.com/ionic-team/ionic-native/commit/d2261b6)) +* **device-feedback:** add feedback interface ([7cafebd](https://github.com/ionic-team/ionic-native/commit/7cafebd)) +* **google-analytics:** add missing functions ([ff0008e](https://github.com/ionic-team/ionic-native/commit/ff0008e)) +* **google-maps:** update to match latest plugin version ([#2320](https://github.com/ionic-team/ionic-native/issues/2320)) ([f11be24](https://github.com/ionic-team/ionic-native/commit/f11be24)) +* **hot code push:** add cordova-hot-code-push ([e7968da](https://github.com/ionic-team/ionic-native/commit/e7968da)) +* **hot code push:** add update events ([04bdade](https://github.com/ionic-team/ionic-native/commit/04bdade)) +* **jins-meme:** enable background mode data collection ([1932f2d](https://github.com/ionic-team/ionic-native/commit/1932f2d)) +* **local-notifications:** added a new param to specify if the notification will be silent ([6e58192](https://github.com/ionic-team/ionic-native/commit/6e58192)) +* **one-signal:** add clearOneSignalNotifications function ([fc0338a](https://github.com/ionic-team/ionic-native/commit/fc0338a)) +* **plugin:** add iOS File Picker ([571df3a](https://github.com/ionic-team/ionic-native/commit/571df3a)) +* **speechkit:** plugin implementation ([41e5a0f](https://github.com/ionic-team/ionic-native/commit/41e5a0f)) +* **sqlite:** add selfTest function ([241f073](https://github.com/ionic-team/ionic-native/commit/241f073)) +* **web-intent:** add startService function ([15bb350](https://github.com/ionic-team/ionic-native/commit/15bb350)) + + + + +# [5.0.0-beta.3](https://github.com/ionic-team/ionic-native/compare/v4.5.1...v5.0.0-beta.3) (2017-12-29) + + +### Bug Fixes + +* **push:** fix finish method ([995fd56](https://github.com/ionic-team/ionic-native/commit/995fd56)) + + +### Features + +* **crop:** add targetHeight and targetWidth options ([#2213](https://github.com/ionic-team/ionic-native/issues/2213)) ([9990df8](https://github.com/ionic-team/ionic-native/commit/9990df8)) + + + -## [4.5.1](https://github.com/ionic-team/ionic-native/compare/v4.5.0...v4.5.1) (2017-12-12) +## [4.5.1](https://github.com/ionic-team/ionic-native/compare/v5.0.0-beta.0...v4.5.1) (2017-12-12) ### Bug Fixes @@ -8,8 +74,8 @@ - -# [4.5.0](https://github.com/ionic-team/ionic-native/compare/v4.4.2...v4.5.0) (2017-12-08) + +# [5.0.0-beta.0](https://github.com/ionic-team/ionic-native/compare/v4.5.0...v5.0.0-beta.0) (2017-12-08) ### Bug Fixes @@ -70,7 +136,7 @@ -## [4.3.3](https://github.com/ionic-team/ionic-native/compare/v4.3.2...v4.3.3) (2017-11-01) +## [4.3.3](https://github.com/ionic-team/ionic-native/compare/4.3.2...v4.3.3) (2017-11-01) ### Bug Fixes @@ -79,11 +145,6 @@ - -## [4.3.2](https://github.com/ionic-team/ionic-native/compare/4.3.2...v4.3.2) (2017-10-18) - - - ## [4.3.2](https://github.com/ionic-team/ionic-native/compare/4.3.1...4.3.2) (2017-10-17) @@ -125,6 +186,7 @@ * **google-maps:** convert JS classes to Ionic Native ([#1956](https://github.com/ionic-team/ionic-native/issues/1956)) ([57af5c5](https://github.com/ionic-team/ionic-native/commit/57af5c5)) * **google-maps:** fix icons property of MarkerClusterOptions ([#1937](https://github.com/ionic-team/ionic-native/issues/1937)) ([8004790](https://github.com/ionic-team/ionic-native/commit/8004790)) +* **google-maps:** fix issue when creating new instance of BaseArrayClass ([#1931](https://github.com/ionic-team/ionic-native/issues/1931)) ([957396b](https://github.com/ionic-team/ionic-native/commit/957396b)) * **google-maps:** the zoom option is missing in the GoogleMapOptions class ([#1948](https://github.com/ionic-team/ionic-native/issues/1948)) ([ef898ef](https://github.com/ionic-team/ionic-native/commit/ef898ef)) * **http:** fix plugin ref ([#1934](https://github.com/ionic-team/ionic-native/issues/1934)) ([3a1034e](https://github.com/ionic-team/ionic-native/commit/3a1034e)) * **launch-navigator:** fix navigate method ([#1940](https://github.com/ionic-team/ionic-native/issues/1940)) ([a150d4d](https://github.com/ionic-team/ionic-native/commit/a150d4d)) @@ -149,16 +211,6 @@ - -## [4.2.1](https://github.com/ionic-team/ionic-native/compare/v4.2.0...v4.2.1) (2017-08-29) - - -### Bug Fixes - -* **google-maps:** fix issue when creating new instance of BaseArrayClass ([#1931](https://github.com/ionic-team/ionic-native/issues/1931)) ([957396b](https://github.com/ionic-team/ionic-native/commit/957396b)) - - - # [4.2.0](https://github.com/ionic-team/ionic-native/compare/v4.1.0...v4.2.0) (2017-08-26) diff --git a/package-lock.json b/package-lock.json index ebea6004b..c7cf02487 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "ionic-native", - "version": "4.5.1", + "version": "4.5.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 17c920439..d4cc528f7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ionic-native", - "version": "4.5.1", + "version": "4.6.0", "description": "Native plugin wrappers for Cordova and Ionic with TypeScript, ES6+, Promise and Observable support", "homepage": "https://ionicframework.com/", "author": "Ionic Team (https://ionic.io)", diff --git a/src/@ionic-native/plugins/action-sheet/index.ts b/src/@ionic-native/plugins/action-sheet/index.ts index 28c33d829..5273f8d0c 100644 --- a/src/@ionic-native/plugins/action-sheet/index.ts +++ b/src/@ionic-native/plugins/action-sheet/index.ts @@ -21,7 +21,7 @@ export interface ActionSheetOptions { /** * Theme to be used on Android */ - androidTheme?: number; + androidTheme?: 1 | 2 | 3 | 4 | 5; /** * Enable a cancel on Android @@ -46,7 +46,7 @@ export interface ActionSheetOptions { /** * On an iPad, set the X,Y position */ - position?: number[]; + position?: [number, number]; /** * Choose if destructive button will be the last @@ -123,7 +123,7 @@ export class ActionSheet extends IonicNativePlugin { * button pressed (1 based, so 1, 2, 3, etc.) */ @Cordova() - show(options?: ActionSheetOptions): Promise { return; } + show(options?: ActionSheetOptions): Promise { return; } /** diff --git a/src/@ionic-native/plugins/admob-pro/index.ts b/src/@ionic-native/plugins/admob-pro/index.ts index ad9c66b1d..bb1c400a7 100644 --- a/src/@ionic-native/plugins/admob-pro/index.ts +++ b/src/@ionic-native/plugins/admob-pro/index.ts @@ -1,11 +1,17 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; import { Observable } from 'rxjs/Observable'; -export type AdSize = 'SMART_BANNER' | 'BANNER' | 'MEDIUM_RECTANGLE' | 'FULL_BANNER' | 'LEADERBOARD' | 'SKYSCRAPER' | 'CUSTOM'; +export type AdSize = + | 'SMART_BANNER' + | 'BANNER' + | 'MEDIUM_RECTANGLE' + | 'FULL_BANNER' + | 'LEADERBOARD' + | 'SKYSCRAPER' + | 'CUSTOM'; export interface AdMobOptions { - /** * Banner ad ID */ @@ -71,10 +77,13 @@ export interface AdMobOptions { */ license?: any; + /** + * Set offset + */ + offsetTopBar?: boolean; } export interface AdExtras { - color_bg: string; color_bg_top: string; @@ -86,7 +95,6 @@ export interface AdExtras { color_text: string; color_url: string; - } /** @@ -134,7 +142,6 @@ export interface AdExtras { }) @Injectable() export class AdMobPro extends IonicNativePlugin { - AD_POSITION: { NO_CHANGE: number; TOP_LEFT: number; @@ -167,7 +174,9 @@ export class AdMobPro extends IonicNativePlugin { * @returns {Promise} Returns a Promise that resolves when the banner is created */ @Cordova() - createBanner(adIdOrOptions: string | AdMobOptions): Promise { return; } + createBanner(adIdOrOptions: string | AdMobOptions): Promise { + return; + } /** * Destroy the banner, remove it from screen. @@ -175,7 +184,7 @@ export class AdMobPro extends IonicNativePlugin { @Cordova({ sync: true }) - removeBanner(): void { } + removeBanner(): void {} /** * Show banner at position @@ -184,7 +193,7 @@ export class AdMobPro extends IonicNativePlugin { @Cordova({ sync: true }) - showBanner(position: number): void { } + showBanner(position: number): void {} /** * Show banner at custom position @@ -194,7 +203,7 @@ export class AdMobPro extends IonicNativePlugin { @Cordova({ sync: true }) - showBannerAtXY(x: number, y: number): void { } + showBannerAtXY(x: number, y: number): void {} /** * Hide the banner, remove it from screen, but can show it later @@ -202,7 +211,7 @@ export class AdMobPro extends IonicNativePlugin { @Cordova({ sync: true }) - hideBanner(): void { } + hideBanner(): void {} /** * Prepare interstitial banner @@ -210,7 +219,9 @@ export class AdMobPro extends IonicNativePlugin { * @returns {Promise} Returns a Promise that resolves when interstitial is prepared */ @Cordova() - prepareInterstitial(adIdOrOptions: string | AdMobOptions): Promise { return; } + prepareInterstitial(adIdOrOptions: string | AdMobOptions): Promise { + return; + } /** * Show interstitial ad when it's ready @@ -218,7 +229,7 @@ export class AdMobPro extends IonicNativePlugin { @Cordova({ sync: true }) - showInterstitial(): void { } + showInterstitial(): void {} /** * Prepare a reward video ad @@ -226,7 +237,9 @@ export class AdMobPro extends IonicNativePlugin { * @returns {Promise} Returns a Promise that resolves when the ad is prepared */ @Cordova() - prepareRewardVideoAd(adIdOrOptions: string | AdMobOptions): Promise { return; } + prepareRewardVideoAd(adIdOrOptions: string | AdMobOptions): Promise { + return; + } /** * Show a reward video ad @@ -234,7 +247,7 @@ export class AdMobPro extends IonicNativePlugin { @Cordova({ sync: true }) - showRewardVideoAd(): void { } + showRewardVideoAd(): void {} /** * Sets the values for configuration and targeting @@ -242,14 +255,18 @@ export class AdMobPro extends IonicNativePlugin { * @returns {Promise} Returns a Promise that resolves when the options have been set */ @Cordova() - setOptions(options: AdMobOptions): Promise { return; } + setOptions(options: AdMobOptions): Promise { + return; + } /** * Get user ad settings * @returns {Promise} Returns a promise that resolves with the ad settings */ @Cordova() - getAdSettings(): Promise { return; } + getAdSettings(): Promise { + return; + } /** * Triggered when failed to receive Ad @@ -260,7 +277,9 @@ export class AdMobPro extends IonicNativePlugin { event: 'onAdFailLoad', element: document }) - onAdFailLoad(): Observable { return; } + onAdFailLoad(): Observable { + return; + } /** * Triggered when Ad received @@ -271,7 +290,9 @@ export class AdMobPro extends IonicNativePlugin { event: 'onAdLoaded', element: document }) - onAdLoaded(): Observable { return; } + onAdLoaded(): Observable { + return; + } /** * Triggered when Ad will be showed on screen @@ -282,7 +303,9 @@ export class AdMobPro extends IonicNativePlugin { event: 'onAdPresent', element: document }) - onAdPresent(): Observable { return; } + onAdPresent(): Observable { + return; + } /** * Triggered when user click the Ad, and will jump out of your App @@ -293,7 +316,9 @@ export class AdMobPro extends IonicNativePlugin { event: 'onAdLeaveApp', element: document }) - onAdLeaveApp(): Observable { return; } + onAdLeaveApp(): Observable { + return; + } /** * Triggered when dismiss the Ad and back to your App @@ -304,6 +329,7 @@ export class AdMobPro extends IonicNativePlugin { event: 'onAdDismiss', element: document }) - onAdDismiss(): Observable { return; } - + onAdDismiss(): Observable { + return; + } } diff --git a/src/@ionic-native/plugins/android-full-screen/index.ts b/src/@ionic-native/plugins/android-full-screen/index.ts index 8971f6dad..e0d023a98 100644 --- a/src/@ionic-native/plugins/android-full-screen/index.ts +++ b/src/@ionic-native/plugins/android-full-screen/index.ts @@ -14,8 +14,6 @@ export enum AndroidSystemUiFlags { HideNavigation = 2, /** View has requested to go into the normal fullscreen mode so that its content can take over the screen while still allowing the user to interact with the application. SYSTEM_UI_FLAG_FULLSCREEN */ Fullscreen = 4, - /** Requests the navigation bar to draw in a mode that is compatible with light navigation bar backgrounds. SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR */ - LightNavigationBar = 16, /** When using other layout flags, we would like a stable view of the content insets given to fitSystemWindows(Rect). SYSTEM_UI_FLAG_LAYOUT_STABLE */ LayoutStable = 256, /** View would like its window to be laid out as if it has requested SYSTEM_UI_FLAG_HIDE_NAVIGATION, even if it currently hasn't. SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION */ @@ -45,8 +43,8 @@ export enum AndroidSystemUiFlags { * ... * * this.androidFullScreen.isImmersiveModeSupported() - * .then(() => this.androidFullScreen.immersiveMode()) - * .catch((error: any) => console.log(error)); + * .then(() => console.log('Immersive mode supported')) + * .catch(err => console.log(error)); * * ``` */ diff --git a/src/@ionic-native/plugins/app-availability/index.ts b/src/@ionic-native/plugins/app-availability/index.ts index 3011921b0..3ff0b1996 100644 --- a/src/@ionic-native/plugins/app-availability/index.ts +++ b/src/@ionic-native/plugins/app-availability/index.ts @@ -27,8 +27,8 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; * * this.appAvailability.check(app) * .then( - * (yes: string) => console.log(app + ' is available'), - * (no: string) => console.log(app + ' is NOT available') + * (yes: boolean) => console.log(app + ' is available'), + * (no: boolean) => console.log(app + ' is NOT available') * ); * ``` */ diff --git a/src/@ionic-native/plugins/app-rate/index.ts b/src/@ionic-native/plugins/app-rate/index.ts index 6eb6b2cb6..170ee7b4a 100644 --- a/src/@ionic-native/plugins/app-rate/index.ts +++ b/src/@ionic-native/plugins/app-rate/index.ts @@ -1,8 +1,7 @@ import { Injectable } from '@angular/core'; -import { Cordova, CordovaProperty, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, CordovaProperty, IonicNativePlugin, Plugin } from '@ionic-native/core'; export interface AppRatePreferences { - /** * Custom BCP 47 language tag */ @@ -41,7 +40,7 @@ export interface AppRatePreferences { /** * Custom locale object */ - customLocale?: any; + customLocale?: AppRateCustomLocale; /** * Callbacks for events @@ -52,11 +51,38 @@ export interface AppRatePreferences { * App Store URLS */ storeAppURL?: AppUrls; +} +export interface AppRateCustomLocale { + /** Title */ + title?: string; + + /** Message */ + message?: string; + + /** Cancel button label */ + cancelButtonLabel?: string; + + /** Later button label */ + laterButtonLabel?: string; + + /** Rate button label */ + rateButtonLabel?: string; + + /** Yes button label */ + yesButtonLabel?: string; + + /** No button label */ + noButtonLabel?: string; + + /** App rate promt title */ + appRatePromptTitle?: string; + + /** Feedback prompt title */ + feedbackPromptTitle?: string; } export interface AppRateCallbacks { - /** * call back function. called when user clicked on rate-dialog buttons */ @@ -70,11 +96,9 @@ export interface AppRateCallbacks { * call back function. called when user clicked on negative feedback */ handleNegativeFeedback?: Function; - } export interface AppUrls { - /** * application id in AppStore */ @@ -99,7 +123,6 @@ export interface AppUrls { * application URL in WindowsStore */ windows8?: string; - } /** @@ -142,6 +165,7 @@ export interface AppUrls { * AppRatePreferences * AppUrls * AppRateCallbacks + * AppRateCustomLocal * */ @Plugin({ @@ -153,25 +177,22 @@ export interface AppUrls { }) @Injectable() export class AppRate extends IonicNativePlugin { - /** * Configure various settings for the Rating View. * See table below for options */ - @CordovaProperty - preferences: AppRatePreferences; + @CordovaProperty preferences: AppRatePreferences; /** * Prompts the user for rating * @param {boolean} immediately Show the rating prompt immediately. */ @Cordova() - promptForRating(immediately: boolean): void { }; + promptForRating(immediately: boolean): void {} /** * Immediately send the user to the app store rating page */ @Cordova() - navigateToAppStore(): void { }; - + navigateToAppStore(): void {} } diff --git a/src/@ionic-native/plugins/app-update/index.ts b/src/@ionic-native/plugins/app-update/index.ts index 3b2158ac6..0da8452f1 100644 --- a/src/@ionic-native/plugins/app-update/index.ts +++ b/src/@ionic-native/plugins/app-update/index.ts @@ -1,5 +1,11 @@ -import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; import { Injectable } from '@angular/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; + +export interface AppUpdateOptions { + authType: string; + username?: string; + password?: string; +} /** * @name App Update @@ -24,13 +30,15 @@ import { Injectable } from '@angular/core'; * * constructor(private appUpdate: AppUpdate) { * - * const updateUrl = 'http://your-remote-api.com/update.xml'; - * this.appUpdate.checkAppUpdate(updateUrl); + * const updateUrl = 'https://your-remote-api.com/update.xml'; + * this.appUpdate.checkAppUpdate(updateUrl).then(() => { console.log('Update available') }); * * } * ``` * * The plugin will compare the app version and update it automatically if the API has a newer version to install. + * @interfaces + * AppUpdateOptions */ @Plugin({ pluginName: 'AppUpdate', @@ -49,5 +57,7 @@ export class AppUpdate extends IonicNativePlugin { @Cordova({ callbackOrder: 'reverse' }) - checkAppUpdate(updateUrl: string): Promise { return; } + checkAppUpdate(updateUrl: string, options?: AppUpdateOptions): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/app-version/index.ts b/src/@ionic-native/plugins/app-version/index.ts index 1962cdebd..a612159d2 100644 --- a/src/@ionic-native/plugins/app-version/index.ts +++ b/src/@ionic-native/plugins/app-version/index.ts @@ -38,30 +38,30 @@ export class AppVersion extends IonicNativePlugin { /** * Returns the name of the app - * @returns {Promise} + * @returns {Promise} */ @Cordova() - getAppName(): Promise { return; } + getAppName(): Promise { return; } /** * Returns the package name of the app - * @returns {Promise} + * @returns {Promise} */ @Cordova() - getPackageName(): Promise { return; } + getPackageName(): Promise { return; } /** * Returns the build identifier of the app - * @returns {Promise} + * @returns {Promise} */ @Cordova() - getVersionCode(): Promise { return; } + getVersionCode(): Promise { return; } /** * Returns the version of the app - * @returns {Promise} + * @returns {Promise} */ @Cordova() - getVersionNumber(): Promise { return; } + getVersionNumber(): Promise { return; } } diff --git a/src/@ionic-native/plugins/appodeal/index.ts b/src/@ionic-native/plugins/appodeal/index.ts index 5d72981f1..b96596da0 100644 --- a/src/@ionic-native/plugins/appodeal/index.ts +++ b/src/@ionic-native/plugins/appodeal/index.ts @@ -46,14 +46,16 @@ export class Appodeal extends IonicNativePlugin { * @param {number} adType */ @Cordova() - initialize(appKey: string, adType: number): void { }; + initialize(appKey: string, adType: number): void {} /** * check if SDK has been initialized * @returns {Promise} */ @Cordova() - isInitialized(): Promise { return; }; + isInitialized(): Promise { + return; + } /** * show ad of specified type @@ -61,7 +63,9 @@ export class Appodeal extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - show(adType: number): Promise { return; }; + show(adType: number): Promise { + return; + } /** * show ad of specified type with placement options @@ -70,24 +74,26 @@ export class Appodeal extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - showWithPlacement( - adType: number, - placement: any - ): Promise { return; }; + showWithPlacement(adType: number, placement: any): Promise { + return; + } /** * hide ad of specified type * @param {number} adType */ @Cordova() - hide(adType: number): void { }; + hide(adType: number): void {} /** * confirm use of ads of specified type * @param {number} adType + * @returns {Promise} */ @Cordova() - confirm(adType: number): void { }; + canShow(adType: number): Promise { + return; + } /** * check if ad of specified type has been loaded @@ -95,7 +101,9 @@ export class Appodeal extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - isLoaded(adType: number): Promise { return; }; + isLoaded(adType: number): Promise { + return; + } /** * check if ad of specified @@ -103,7 +111,9 @@ export class Appodeal extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - isPrecache(adType: number): Promise { return; }; + isPrecache(adType: number): Promise { + return; + } /** * @@ -111,75 +121,77 @@ export class Appodeal extends IonicNativePlugin { * @param autoCache */ @Cordova() - setAutoCache(adType: number, autoCache: any): void { }; + setAutoCache(adType: number, autoCache: any): void {} /** * forcefully cache an ad by type * @param {number} adType */ @Cordova() - cache(adType: number): void { }; + cache(adType: number): void {} /** * * @param {boolean} set */ @Cordova() - setOnLoadedTriggerBoth(set: boolean): void { }; + setTriggerOnLoadedOnPrecache(set: boolean): void {} /** * enable or disable Smart Banners * @param {boolean} enabled */ @Cordova() - setSmartBanners(enabled: boolean): void { }; + setSmartBanners(enabled: boolean): void {} /** * enable or disable banner backgrounds * @param {boolean} enabled */ @Cordova() - setBannerBackground(enabled: boolean): void { }; + setBannerBackground(enabled: boolean): void {} /** * enable or disable banner animations * @param {boolean} enabled */ @Cordova() - setBannerAnimation(enabled: boolean): void { }; + setBannerAnimation(enabled: boolean): void {} /** * * @param value */ @Cordova() - set728x90Banners(value: any): void { }; + set728x90Banners(value: any): void {} /** * enable or disable logging * @param {boolean} logging */ @Cordova() - setLogging(logging: boolean): void { }; + setLogLevel(logging: boolean): void {} /** * enable or disable testing mode * @param {boolean} testing */ @Cordova() - setTesting(testing: boolean): void { }; + setTesting(testing: boolean): void {} /** * reset device ID */ @Cordova() - resetUUID(): void { }; + resetUUID(): void {} /** * get version of Appdeal SDK */ @Cordova() - getVersion(): Promise { return; }; + getVersion(): Promise { + return; + } /** * @@ -187,7 +199,7 @@ export class Appodeal extends IonicNativePlugin { * @param {number} adType */ @Cordova() - disableNetwork(network?: string, adType?: number): void { }; + disableNetwork(network?: string, adType?: number): void {} /** * @@ -195,54 +207,54 @@ export class Appodeal extends IonicNativePlugin { * @param {number} adType */ @Cordova() - disableNetworkType(network?: string, adType?: number): void { }; + disableNetworkType(network?: string, adType?: number): void {} /** * disable Location permissions for Appodeal SDK */ @Cordova() - disableLocationPermissionCheck(): void { }; + disableLocationPermissionCheck(): void {} /** * disable Storage permissions for Appodeal SDK */ @Cordova() - disableWriteExternalStoragePermissionCheck(): void { }; + disableWriteExternalStoragePermissionCheck(): void {} /** * enable event listeners * @param {boolean} enabled */ @Cordova() - enableInterstitialCallbacks(enabled: boolean): void { }; + enableInterstitialCallbacks(enabled: boolean): void {} /** * enable event listeners * @param {boolean} enabled */ @Cordova() - enableSkippableVideoCallbacks(enabled: boolean): void { }; + enableSkippableVideoCallbacks(enabled: boolean): void {} /** * enable event listeners * @param {boolean} enabled */ @Cordova() - enableNonSkippableVideoCallbacks(enabled: boolean): void { }; + enableNonSkippableVideoCallbacks(enabled: boolean): void {} /** * enable event listeners * @param {boolean} enabled */ @Cordova() - enableBannerCallbacks(enabled: boolean): void { }; + enableBannerCallbacks(enabled: boolean): void {} /** * enable event listeners * @param {boolean} enabled */ @Cordova() - enableRewardedVideoCallbacks(enabled: boolean): void { }; + enableRewardedVideoCallbacks(enabled: boolean): void {} /** * @@ -250,7 +262,7 @@ export class Appodeal extends IonicNativePlugin { * @param {boolean} value */ @Cordova() - setCustomBooleanRule(name: string, value: boolean): void { }; + setCustomBooleanRule(name: string, value: boolean): void {} /** * @@ -258,7 +270,7 @@ export class Appodeal extends IonicNativePlugin { * @param {number} value */ @Cordova() - setCustomIntegerRule(name: string, value: number): void { }; + setCustomIntegerRule(name: string, value: number): void {} /** * set rule with float value @@ -266,7 +278,7 @@ export class Appodeal extends IonicNativePlugin { * @param {number} value */ @Cordova() - setCustomDoubleRule(name: string, value: number): void { }; + setCustomDoubleRule(name: string, value: number): void {} /** * set rule with string value @@ -274,243 +286,321 @@ export class Appodeal extends IonicNativePlugin { * @param {string} value */ @Cordova() - setCustomStringRule(name: string, value: string): void { }; + setCustomStringRule(name: string, value: string): void {} /** * set ID preference in Appodeal for current user * @param id */ @Cordova() - setUserId(id: any): void { }; + setUserId(id: any): void {} /** * set Email preference in Appodeal for current user * @param email */ @Cordova() - setEmail(email: any): void { }; + setEmail(email: any): void {} /** * set Birthday preference in Appodeal for current user * @param birthday */ @Cordova() - setBirthday(birthday: any): void { }; + setBirthday(birthday: any): void {} /** * et Age preference in Appodeal for current user * @param age */ @Cordova() - setAge(age: any): void { }; + setAge(age: any): void {} /** * set Gender preference in Appodeal for current user * @param gender */ @Cordova() - setGender(gender: any): void { }; + setGender(gender: any): void {} /** * set Occupation preference in Appodeal for current user * @param occupation */ @Cordova() - setOccupation(occupation: any): void { }; + setOccupation(occupation: any): void {} /** * set Relation preference in Appodeal for current user * @param relation */ @Cordova() - setRelation(relation: any): void { }; + setRelation(relation: any): void {} /** * set Smoking preference in Appodeal for current user * @param smoking */ @Cordova() - setSmoking(smoking: any): void { }; + setSmoking(smoking: any): void {} /** * set Alcohol preference in Appodeal for current user * @param alcohol */ @Cordova() - setAlcohol(alcohol: any): void { }; + setAlcohol(alcohol: any): void {} /** * set Interests preference in Appodeal for current user * @param interests */ @Cordova() - setInterests(interests: any): void { }; + setInterests(interests: any): void {} @Cordova({ eventObservable: true, event: 'onInterstitialLoaded', element: document }) - onInterstitialLoaded(): Observable { return; } + onInterstitialLoaded(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onInterstitialFailedToLoad', element: document }) - onInterstitialFailedToLoad(): Observable { return; } + onInterstitialFailedToLoad(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onInterstitialShown', element: document }) - onInterstitialShown(): Observable { return; } + onInterstitialShown(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onInterstitialClicked', element: document }) - onInterstitialClicked(): Observable { return; } + onInterstitialClicked(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onInterstitialClosed', element: document }) - onInterstitialClosed(): Observable { return; } + onInterstitialClosed(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onSkippableVideoLoaded', element: document }) - onSkippableVideoLoaded(): Observable { return; } + onSkippableVideoLoaded(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onSkippableVideoFailedToLoad', element: document }) - onSkippableVideoFailedToLoad(): Observable { return; } + onSkippableVideoFailedToLoad(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onSkippableVideoShown', element: document }) - onSkippableVideoShown(): Observable { return; } + onSkippableVideoShown(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onSkippableVideoFinished', element: document }) - onSkippableVideoFinished(): Observable { return; } + onSkippableVideoFinished(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onSkippableVideoClosed', element: document }) - onSkippableVideoClosed(): Observable { return; } + onSkippableVideoClosed(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onRewardedVideoLoaded', element: document }) - onRewardedVideoLoaded(): Observable { return; } + onRewardedVideoLoaded(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onRewardedVideoFailedToLoad', element: document }) - onRewardedVideoFailedToLoad(): Observable { return; } + onRewardedVideoFailedToLoad(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onRewardedVideoShown', element: document }) - onRewardedVideoShown(): Observable { return; } + onRewardedVideoShown(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onRewardedVideoFinished', element: document }) - onRewardedVideoFinished(): Observable { return; } + onRewardedVideoFinished(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onRewardedVideoClosed', element: document }) - onRewardedVideoClosed(): Observable { return; } + onRewardedVideoClosed(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onNonSkippableVideoLoaded', element: document }) - onNonSkippableVideoLoaded(): Observable { return; } + onNonSkippableVideoLoaded(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onNonSkippableVideoFailedToLoad', element: document }) - onNonSkippableVideoFailedToLoad(): Observable { return; } + onNonSkippableVideoFailedToLoad(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onNonSkippableVideoShown', element: document }) - onNonSkippableVideoShown(): Observable { return; } + onNonSkippableVideoShown(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onNonSkippableVideoFinished', element: document }) - onNonSkippableVideoFinished(): Observable { return; } + onNonSkippableVideoFinished(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onNonSkippableVideoClosed', element: document }) - onNonSkippableVideoClosed(): Observable { return; } + onNonSkippableVideoClosed(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onBannerClicked', element: document }) - onBannerClicked(): Observable { return; } + onBannerClicked(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onBannerFailedToLoad', element: document }) - onBannerFailedToLoad(): Observable { return; } + onBannerFailedToLoad(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onBannerLoaded', element: document }) - onBannerLoaded(): Observable { return; } + onBannerLoaded(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onBannerShown', element: document }) - onBannerShown(): Observable { return; } + onBannerShown(): Observable { + return; + } + + @Cordova() + getRewardParametersForPlacement(placement: string): Promise { + return; + } + + @Cordova() + getRewardParameters(): Promise { + return; + } + + @Cordova() + canShowWithPlacement(adType: string, placement: string): Promise { + return; + } + + @Cordova({ + platforms: ['Android'] + }) + showTestScreen(value: any): void {} + + @Cordova() + muteVideosIfCallsMuted(value: any): Promise { + return; + } + + @Cordova() + setChildDirectedTreatment(value: boolean): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/background-mode/index.ts b/src/@ionic-native/plugins/background-mode/index.ts index 2d7159290..6619db59f 100644 --- a/src/@ionic-native/plugins/background-mode/index.ts +++ b/src/@ionic-native/plugins/background-mode/index.ts @@ -2,48 +2,52 @@ import { Injectable } from '@angular/core'; import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; import { Observable } from 'rxjs/Observable'; - /** * Configurations items that can be updated. */ export interface BackgroundModeConfiguration { - /** * Title of the background task */ - title?: String; + title?: string; /** * Description of background task */ - text?: String; + text?: string; /** * This will look for `.png` in platforms/android/res/drawable|mipmap */ icon?: string; + /** + * Set the background color of the notification circle + */ color?: string; /** - * By default the app will come to foreground when taping on the notification. If false, plugin won't come to foreground when tapped. + * By default the app will come to foreground when tapping on the notification. If false, plugin won't come to foreground when tapped. */ resume?: boolean; + /** + * When set to false makes the notifications visible on lockscreen (Android 5.0+) + */ hidden?: boolean; + /** Big text */ bigText?: boolean; /** * The text that scrolls itself on statusbar */ - ticker?: String; + ticker?: string; /** * if true plugin will not display a notification. Default is false. */ silent?: boolean; - } /** @@ -74,7 +78,6 @@ export interface BackgroundModeConfiguration { }) @Injectable() export class BackgroundMode extends IonicNativePlugin { - /** * Enable the background mode. * Once called, prevents the app from being paused while in background. @@ -82,14 +85,16 @@ export class BackgroundMode extends IonicNativePlugin { @Cordova({ sync: true }) - enable(): void { } + enable(): void {} /** * Disable the background mode. * Once the background mode has been disabled, the app will be paused when in background. */ @Cordova() - disable(): Promise { return; } + disable(): Promise { + return; + } /** * Checks if background mode is enabled or not. @@ -98,7 +103,9 @@ export class BackgroundMode extends IonicNativePlugin { @Cordova({ sync: true }) - isEnabled(): boolean { return; } + isEnabled(): boolean { + return; + } /** * Can be used to get the information if the background mode is active. @@ -107,7 +114,9 @@ export class BackgroundMode extends IonicNativePlugin { @Cordova({ sync: true }) - isActive(): boolean { return; } + isActive(): boolean { + return; + } /** * Override the default title, ticker and text. @@ -117,7 +126,9 @@ export class BackgroundMode extends IonicNativePlugin { @Cordova({ platforms: ['Android'] }) - setDefaults(options?: BackgroundModeConfiguration): Promise { return; } + setDefaults(options?: BackgroundModeConfiguration): Promise { + return; + } /** * Modify the displayed information. @@ -140,7 +151,9 @@ export class BackgroundMode extends IonicNativePlugin { clearFunction: 'un', clearWithArgs: true }) - on(event: string): Observable { return; } + on(event: string): Observable { + return; + } /** * Android allows to programmatically move from foreground to background. @@ -149,7 +162,7 @@ export class BackgroundMode extends IonicNativePlugin { platforms: ['Android'], sync: true }) - moveToBackground(): void { } + moveToBackground(): void {} /** * Enable GPS-tracking in background (Android). @@ -158,7 +171,7 @@ export class BackgroundMode extends IonicNativePlugin { platforms: ['Android'], sync: true }) - disableWebViewOptimizations (): void { } + disableWebViewOptimizations(): void {} /** * Android allows to programmatically move from background to foreground. @@ -167,7 +180,7 @@ export class BackgroundMode extends IonicNativePlugin { platforms: ['Android'], sync: true }) - moveToForeground(): void { } + moveToForeground(): void {} /** * Override the back button on Android to go to background instead of closing the app. @@ -176,7 +189,7 @@ export class BackgroundMode extends IonicNativePlugin { platforms: ['Android'], sync: true }) - overrideBackButton(): void { } + overrideBackButton(): void {} /** * Exclude the app from the recent task list. Works on Android 5.0+. @@ -185,7 +198,7 @@ export class BackgroundMode extends IonicNativePlugin { platforms: ['Android'], sync: true }) - excludeFromTaskList(): void { } + excludeFromTaskList(): void {} /** * The method works async instead of isActive() or isEnabled(). @@ -193,7 +206,9 @@ export class BackgroundMode extends IonicNativePlugin { @Cordova({ platforms: ['Android'] }) - isScreenOff(): Promise { return; } + isScreenOff(): Promise { + return; + } /** * Turn screen on @@ -202,7 +217,7 @@ export class BackgroundMode extends IonicNativePlugin { platforms: ['Android'], sync: true }) - wakeUp(): void { } + wakeUp(): void {} /** * Turn screen on and show app even locked @@ -211,6 +226,5 @@ export class BackgroundMode extends IonicNativePlugin { platforms: ['Android'], sync: true }) - unlock(): void { } - + unlock(): void {} } diff --git a/src/@ionic-native/plugins/badge/index.ts b/src/@ionic-native/plugins/badge/index.ts index 7da09cf74..815711c74 100644 --- a/src/@ionic-native/plugins/badge/index.ts +++ b/src/@ionic-native/plugins/badge/index.ts @@ -1,7 +1,6 @@ import { Injectable } from '@angular/core'; import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; - /** * @name Badge * @description @@ -31,13 +30,14 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; }) @Injectable() export class Badge extends IonicNativePlugin { - /** * Clear the badge of the app icon. * @returns {Promise} */ @Cordova() - clear(): Promise { return; } + clear(): Promise { + return; + } /** * Set the badge of the app icon. @@ -45,14 +45,18 @@ export class Badge extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - set(badgeNumber: number): Promise { return; } + set(badgeNumber: number): Promise { + return; + } /** * Get the badge of the app icon. * @returns {Promise} */ @Cordova() - get(): Promise { return; } + get(): Promise { + return; + } /** * Increase the badge number. @@ -60,7 +64,9 @@ export class Badge extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - increase(increaseBy: number): Promise { return; } + increase(increaseBy: number): Promise { + return; + } /** * Decrease the badge number. @@ -68,20 +74,34 @@ export class Badge extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - decrease(decreaseBy: number): Promise { return; } + decrease(decreaseBy: number): Promise { + return; + } + + /** + * Check support to show badges. + * @returns {Promise} + */ + @Cordova() + isSupported(): Promise { + return; + } /** * Determine if the app has permission to show badges. * @returns {Promise} */ @Cordova() - hasPermission(): Promise { return; } + hasPermission(): Promise { + return; + } /** * Register permission to set badge notifications * @returns {Promise} */ @Cordova() - registerPermission(): Promise { return; } - + requestPermission(): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/barcode-scanner/index.ts b/src/@ionic-native/plugins/barcode-scanner/index.ts index f55f76a01..467d613cf 100644 --- a/src/@ionic-native/plugins/barcode-scanner/index.ts +++ b/src/@ionic-native/plugins/barcode-scanner/index.ts @@ -1,8 +1,7 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; export interface BarcodeScannerOptions { - /** * Prefer front camera. Supported on iOS and Android. */ @@ -52,11 +51,26 @@ export interface BarcodeScannerOptions { * Display scanned text for X ms. 0 suppresses it entirely, default 1500. Supported on Android only. */ resultDisplayDuration?: number; - } export interface BarcodeScanResult { - format: 'QR_CODE' | 'DATA_MATRIX' | 'UPC_E' | 'UPC_A' | 'EAN_8' | 'EAN_13' | 'CODE_128' | 'CODE_39' | 'CODE_93' | 'CODABAR' | 'ITF' | 'RSS14' | 'RSS_EXPANDED' | 'PDF417' | 'AZTEC' | 'MSI'; + format: + | 'QR_CODE' + | 'DATA_MATRIX' + | 'UPC_E' + | 'UPC_A' + | 'EAN_8' + | 'EAN_13' + | 'CODE_128' + | 'CODE_39' + | 'CODE_93' + | 'CODABAR' + | 'ITF' + | 'RSS14' + | 'RSS_EXPANDED' + | 'PDF417' + | 'AZTEC' + | 'MSI'; cancelled: boolean; text: string; } @@ -77,10 +91,10 @@ export interface BarcodeScanResult { * ... * * - * this.barcodeScanner.scan().then((barcodeData) => { - * // Success! Barcode data is here - * }, (err) => { - * // An error occurred + * this.barcodeScanner.scan().then(barcodeData => { + * console.log('Barcode data', barcodeData); + * }).catch(err => { + * console.log('Error', err); * }); * ``` * @interfaces @@ -96,7 +110,6 @@ export interface BarcodeScanResult { }) @Injectable() export class BarcodeScanner extends IonicNativePlugin { - Encode: { TEXT_TYPE: string; EMAIL_TYPE: string; @@ -117,7 +130,9 @@ export class BarcodeScanner extends IonicNativePlugin { @Cordova({ callbackOrder: 'reverse' }) - scan(options?: BarcodeScannerOptions): Promise { return; } + scan(options?: BarcodeScannerOptions): Promise { + return; + } /** * Encodes data into a barcode. @@ -127,6 +142,7 @@ export class BarcodeScanner extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - encode(type: string, data: any): Promise { return; } - + encode(type: string, data: any): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/base64-to-gallery/index.ts b/src/@ionic-native/plugins/base64-to-gallery/index.ts index 0acc4da06..c4ac50c78 100644 --- a/src/@ionic-native/plugins/base64-to-gallery/index.ts +++ b/src/@ionic-native/plugins/base64-to-gallery/index.ts @@ -1,5 +1,15 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; + +export interface Base64ToGalleryOptions { + /** Saved file name prefix */ + prefix: string; + /** + * On Android runs Media Scanner after file creation. + * On iOS if true the file will be added to camera roll, otherwise will be saved to a library folder. + */ + mediaScanner: boolean; +} /** * @name Base64 To Gallery @@ -19,6 +29,8 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; * err => console.log('Error saving image to gallery ', err) * ); * ``` + * @interfaces + * Base64ToGalleryOptions */ @Plugin({ pluginName: 'Base64ToGallery', @@ -29,19 +41,20 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; }) @Injectable() export class Base64ToGallery extends IonicNativePlugin { - /** * Converts a base64 string to an image file in the device gallery * @param {string} data The actual base64 string that you want to save - * @param {any} [options] An object with properties: prefix: string, mediaScanner: boolean. Prefix will be prepended to the filename. If true, mediaScanner runs Media Scanner on Android and saves to Camera Roll on iOS; if false, saves to Library folder on iOS. + * @param {any} [options] An object with properties * @returns {Promise} returns a promise that resolves when the image is saved. */ @Cordova({ successIndex: 2, errorIndex: 3 }) - base64ToGallery(data: string, options?: { prefix?: string; mediaScanner?: boolean }): Promise { + base64ToGallery( + data: string, + options?: Base64ToGalleryOptions + ): Promise { return; } - } diff --git a/src/@ionic-native/plugins/battery-status/index.ts b/src/@ionic-native/plugins/battery-status/index.ts index d3999a49e..d096bdad1 100644 --- a/src/@ionic-native/plugins/battery-status/index.ts +++ b/src/@ionic-native/plugins/battery-status/index.ts @@ -1,9 +1,8 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; import { Observable } from 'rxjs/Observable'; export interface BatteryStatusResponse { - /** * The battery charge percentage */ @@ -13,7 +12,6 @@ export interface BatteryStatusResponse { * A boolean that indicates whether the device is plugged in */ isPlugged: boolean; - } /** @@ -31,11 +29,9 @@ export interface BatteryStatusResponse { * * * // watch change in battery status - * let subscription = this.batteryStatus.onChange().subscribe( - * (status: BatteryStatusResponse) => { + * const subscription = this.batteryStatus.onChange().subscribe(status => { * console.log(status.level, status.isPlugged); - * } - * ); + * }); * * // stop watch * subscription.unsubscribe(); @@ -53,7 +49,6 @@ export interface BatteryStatusResponse { }) @Injectable() export class BatteryStatus extends IonicNativePlugin { - /** * Watch the change in battery level * @returns {Observable} Returns an observable that pushes a status object @@ -62,7 +57,9 @@ export class BatteryStatus extends IonicNativePlugin { eventObservable: true, event: 'batterystatus' }) - onChange(): Observable { return; } + onChange(): Observable { + return; + } /** * Watch when the battery level goes low @@ -72,7 +69,9 @@ export class BatteryStatus extends IonicNativePlugin { eventObservable: true, event: 'batterylow' }) - onLow(): Observable { return; } + onLow(): Observable { + return; + } /** * Watch when the battery level goes to critial @@ -82,6 +81,7 @@ export class BatteryStatus extends IonicNativePlugin { eventObservable: true, event: 'batterycritical' }) - onCritical(): Observable { return; } - + onCritical(): Observable { + return; + } } diff --git a/src/@ionic-native/plugins/ble/index.ts b/src/@ionic-native/plugins/ble/index.ts index 1a2688bfb..3deff7a1a 100644 --- a/src/@ionic-native/plugins/ble/index.ts +++ b/src/@ionic-native/plugins/ble/index.ts @@ -1,7 +1,12 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; import { Observable } from 'rxjs/Observable'; +export interface BLEScanOptions { + /** true if duplicate devices should be reported, false (default) if devices should only be reported once. */ + reportDuplicates?: boolean; +} + /** * @name BLE * @description @@ -167,6 +172,8 @@ import { Observable } from 'rxjs/Observable'; * * UUIDs are always strings and not numbers. Some 16-bit UUIDs, such as '2220' look like integers, but they're not. (The integer 2220 is 0x8AC in hex.) This isn't a problem with 128 bit UUIDs since they look like strings 82b9e6e1-593a-456f-be9b-9215160ebcac. All 16-bit UUIDs should also be passed to methods as strings. * + * @interfaces + * BLEScanOptions */ @Plugin({ pluginName: 'BLE', @@ -177,7 +184,6 @@ import { Observable } from 'rxjs/Observable'; }) @Injectable() export class BLE extends IonicNativePlugin { - /** * Scan and discover BLE peripherals for the specified amount of time. * @@ -194,7 +200,9 @@ export class BLE extends IonicNativePlugin { @Cordova({ observable: true }) - scan(services: string[], seconds: number): Observable { return; } + scan(services: string[], seconds: number): Observable { + return; + } /** * Scan and discover BLE peripherals until `stopScan` is called. @@ -217,7 +225,9 @@ export class BLE extends IonicNativePlugin { clearFunction: 'stopScan', clearWithArgs: false }) - startScan(services: string[]): Observable { return; } + startScan(services: string[]): Observable { + return; + } /** * Scans for BLE devices. This function operates similarly to the `startScan` function, but allows you to specify extra options (like allowing duplicate device reports). @@ -230,7 +240,12 @@ export class BLE extends IonicNativePlugin { clearFunction: 'stopScan', clearWithArgs: false }) - startScanWithOptions(services: string[], options: { reportDuplicates?: boolean } | any): Observable { return; } + startScanWithOptions( + services: string[], + options: BLEScanOptions + ): Observable { + return; + } /** * Stop a scan started by `startScan`. @@ -247,7 +262,9 @@ export class BLE extends IonicNativePlugin { * @return returns a Promise. */ @Cordova() - stopScan(): Promise { return; } + stopScan(): Promise { + return; + } /** * Connect to a peripheral. @@ -268,7 +285,9 @@ export class BLE extends IonicNativePlugin { clearFunction: 'disconnect', clearWithArgs: true }) - connect(deviceId: string): Observable { return; } + connect(deviceId: string): Observable { + return; + } /** * Disconnect from a peripheral. @@ -282,7 +301,9 @@ export class BLE extends IonicNativePlugin { * @return Returns a Promise */ @Cordova() - disconnect(deviceId: string): Promise { return; } + disconnect(deviceId: string): Promise { + return; + } /** * Read the value of a characteristic. @@ -297,7 +318,9 @@ export class BLE extends IonicNativePlugin { deviceId: string, serviceUUID: string, characteristicUUID: string - ): Promise { return; }; + ): Promise { + return; + } /** * Write the value of a characteristic. @@ -333,7 +356,9 @@ export class BLE extends IonicNativePlugin { serviceUUID: string, characteristicUUID: string, value: ArrayBuffer - ): Promise { return; } + ): Promise { + return; + } /** * Write the value of a characteristic without waiting for confirmation from the peripheral. @@ -350,7 +375,9 @@ export class BLE extends IonicNativePlugin { serviceUUID: string, characteristicUUID: string, value: ArrayBuffer - ): Promise { return; } + ): Promise { + return; + } /** * Register to be notified when the value of a characteristic changes. @@ -376,7 +403,9 @@ export class BLE extends IonicNativePlugin { deviceId: string, serviceUUID: string, characteristicUUID: string - ): Observable { return; } + ): Observable { + return; + } /** * Stop being notified when the value of a characteristic changes. @@ -391,7 +420,9 @@ export class BLE extends IonicNativePlugin { deviceId: string, serviceUUID: string, characteristicUUID: string - ): Promise { return; } + ): Promise { + return; + } /** * Report the connection status. @@ -407,7 +438,9 @@ export class BLE extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - isConnected(deviceId: string): Promise { return; } + isConnected(deviceId: string): Promise { + return; + } /** * Report if bluetooth is enabled. @@ -415,7 +448,9 @@ export class BLE extends IonicNativePlugin { * @returns {Promise} Returns a Promise that resolves if Bluetooth is enabled, and rejects if disabled. */ @Cordova() - isEnabled(): Promise { return; } + isEnabled(): Promise { + return; + } /** * Register to be notified when Bluetooth state changes on the device. @@ -434,7 +469,9 @@ export class BLE extends IonicNativePlugin { clearFunction: 'stopStateNotifications', clearWithArgs: false }) - startStateNotifications(): Observable { return; } + startStateNotifications(): Observable { + return; + } /** * Stop state notifications. @@ -442,7 +479,9 @@ export class BLE extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - stopStateNotifications(): Promise { return; } + stopStateNotifications(): Promise { + return; + } /** * Open System Bluetooth settings (Android only). @@ -450,7 +489,9 @@ export class BLE extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - showBluetoothSettings(): Promise { return; } + showBluetoothSettings(): Promise { + return; + } /** * Enable Bluetooth on the device (Android only). @@ -458,7 +499,9 @@ export class BLE extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - enable(): Promise { return; } + enable(): Promise { + return; + } /** * Read the RSSI value on the device connection. @@ -468,7 +511,7 @@ export class BLE extends IonicNativePlugin { *@returns {Promise} */ @Cordova() - readRSSI( - deviceId: string, - ): Promise { return; } + readRSSI(deviceId: string): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/blinkup/index.ts b/src/@ionic-native/plugins/blinkup/index.ts new file mode 100644 index 000000000..b02d7154f --- /dev/null +++ b/src/@ionic-native/plugins/blinkup/index.ts @@ -0,0 +1,114 @@ +import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; +import { Observable } from 'rxjs/Observable'; +import { Injectable } from '@angular/core'; + +/** + * Interface of a blink up options. + */ +export interface BlinkUpOptions { + apiKey: string; + developmentPlanId?: string; + isInDevelopment?: boolean; + timeoutMs?: number; +} + +/** + * Interface of a blink up wifi options. + */ +export interface BlinkUpWifiOptions { + apiKey: string; + timeoutMs?: number; + ssid: string; + password: string; +} + +/** + * Interface of a blink up wps options. + */ +export interface BlinkUpWPSOptions { + apiKey: string; + timeoutMs?: number; + wpsPin: string; +} + +/** + * @name BlinkUp + * @description + * Electric Imp BlinkUp ionic plugin. + * + * @usage + * ```typescript + * import { BlinkUp } from '@ionic-native/blinkup'; + * + * const options = { + * apiKey: 'API_KEY', + * timeoutMs: 60000, + * ssid: 'MY_SSID', + * password: 'MY_PASSWORD' + * } + * BlinkUp.flashWifiBlinkUp(options).subscribe( + * (result) => console.log('Done'), + * (error) => console.log(error) + * ) + * ``` + */ +@Plugin({ + pluginName: 'BlinkUp', + plugin: 'cordova-plugin-blinkup', + pluginRef: 'blinkup', + repo: 'https://github.com/SensorShare/cordova-plugin-blinkup', + platforms: ['Android', 'iOS'] +}) +@Injectable() +export class BlinkUp extends IonicNativePlugin { + /** + * startBlinkUp - starts the blinkup process + * @param {module:blinkup.BlinkUpOptions} options BlinkUp Options + * @return {Observable} Returns an Observable + */ + @Cordova({ + callbackOrder: 'reverse', + observable: true + }) + startBlinkUp(options: BlinkUpOptions): Observable { return; } + + /** + * flashWifiBlinkUp - invokes the flash wifi process + * @param {module:blinkup.BlinkUpWifiOptions} options BlinkUp Wifi Options + * @return {Observable} Returns an Observable + */ + @Cordova({ + callbackOrder: 'reverse', + observable: true + }) + flashWifiBlinkUp(options: BlinkUpWifiOptions): Observable { return; } + + /** + * flashWPSBlinkUp - invokes the flash wps process + * @param {module:blinkup.BlinkUpWPSOptions} options BlinkUp WPS Options + * @return {Observable} Returns an Observable + */ + @Cordova({ + callbackOrder: 'reverse', + observable: true + }) + flashWPSBlinkUp(options: BlinkUpWPSOptions): Observable { return; } + + /** + * abortBlinkUp - abort blinkup process + * @return {Observable} Returns an Observable + */ + @Cordova({ + observable: true + }) + abortBlinkUp(): Observable { return; } + + /** + * clearBlinkUpData - clear wifi data + * @return {Observable} Returns an Observable + */ + @Cordova({ + observable: true + }) + clearBlinkUpData(): Observable { return; } +} diff --git a/src/@ionic-native/plugins/brightness/index.ts b/src/@ionic-native/plugins/brightness/index.ts index d6a4aa677..54120ab96 100644 --- a/src/@ionic-native/plugins/brightness/index.ts +++ b/src/@ionic-native/plugins/brightness/index.ts @@ -1,6 +1,5 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; - +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; /** * @name Brightness @@ -17,7 +16,7 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; * * ... * - * let brightnessValue: number = 0.8; + * let brightnessValue = 0.8; * this.brightness.setBrightness(brightnessValue); * ``` * @@ -31,15 +30,16 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; }) @Injectable() export class Brightness extends IonicNativePlugin { - /** * Sets the brightness of the display. * - * @param {value} Floating number between 0 and 1 in which case 1 means 100% brightness and 0 means 0% brightness. + * @param value {number} Floating number between 0 and 1 in which case 1 means 100% brightness and 0 means 0% brightness. * @returns {Promise} Returns a Promise that resolves if setting brightness was successful. */ @Cordova() - setBrightness(value: number): Promise { return; } + setBrightness(value: number): Promise { + return; + } /** * Reads the current brightness of the device display. @@ -48,12 +48,13 @@ export class Brightness extends IonicNativePlugin { * brightness value of the device display (floating number between 0 and 1). */ @Cordova() - getBrightness(): Promise { return; } + getBrightness(): Promise { + return; + } /** - * Keeps the screen on. Prevents the device from setting the screen to sleep. - */ + * Keeps the screen on. Prevents the device from setting the screen to sleep. + */ @Cordova() - setKeepScreenOn(value: boolean): void { } - + setKeepScreenOn(value: boolean): void {} } diff --git a/src/@ionic-native/plugins/broadcaster/index.ts b/src/@ionic-native/plugins/broadcaster/index.ts index 8aabbb902..eb291aae9 100644 --- a/src/@ionic-native/plugins/broadcaster/index.ts +++ b/src/@ionic-native/plugins/broadcaster/index.ts @@ -28,7 +28,7 @@ import { Observable } from 'rxjs/Observable'; plugin: 'cordova-plugin-broadcaster', pluginRef: 'broadcaster', repo: 'https://github.com/bsorrentino/cordova-broadcaster', - platforms: ['Android', 'iOS'] + platforms: ['Android', 'iOS', 'Browser'] }) @Injectable() export class Broadcaster extends IonicNativePlugin { diff --git a/src/@ionic-native/plugins/calendar/index.ts b/src/@ionic-native/plugins/calendar/index.ts index 329df3666..5854ce0e1 100644 --- a/src/@ionic-native/plugins/calendar/index.ts +++ b/src/@ionic-native/plugins/calendar/index.ts @@ -1,8 +1,7 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; export interface CalendarOptions { - /** * Id */ @@ -47,7 +46,14 @@ export interface CalendarOptions { * URL */ url?: string; +} +export interface NameOrOptions { + /** Calendar name */ + calendarName?: string; + + /** Calendar color as a HEX string */ + calendarColor?: string; } /** @@ -72,6 +78,7 @@ export interface CalendarOptions { * ``` * @interfaces * CalendarOptions + * NameOrOptions */ @Plugin({ pluginName: 'Calendar', @@ -82,7 +89,6 @@ export interface CalendarOptions { }) @Injectable() export class Calendar extends IonicNativePlugin { - /** * This function checks if we have permission to read/write from/to the calendar. * The promise will resolve with `true` when: @@ -95,51 +101,65 @@ export class Calendar extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - hasReadWritePermission(): Promise { return; } + hasReadWritePermission(): Promise { + return; + } /** * Check if we have read permission * @returns {Promise} */ @Cordova() - hasReadPermission(): Promise { return; } + hasReadPermission(): Promise { + return; + } /** * Check if we have write permission * @returns {Promise} */ @Cordova() - hasWritePermission(): Promise { return; } + hasWritePermission(): Promise { + return; + } /** * Request write permission * @returns {Promise} */ @Cordova() - requestWritePermission(): Promise { return; } + requestWritePermission(): Promise { + return; + } /** * Request read permission * @returns {Promise} */ @Cordova() - requestReadPermission(): Promise { return; } + requestReadPermission(): Promise { + return; + } /** * Requests read/write permissions * @returns {Promise} */ @Cordova() - requestReadWritePermission(): Promise { return; } + requestReadWritePermission(): Promise { + return; + } /** * Create a calendar. (iOS only) * - * @param {string | Object} nameOrOptions either a string name or a options object. If string, provide the calendar name. IF an object, provide a calendar name as a string and a calendar color in hex format as a string + * @param {string | CalendarOptions} nameOrOptions either a string name or a options object. If string, provide the calendar name. IF an object, provide a calendar name as a string and a calendar color in hex format as a string * @returns {Promise} Returns a Promise */ @Cordova() - createCalendar(nameOrOptions: string | any): Promise { return; } + createCalendar(nameOrOptions: string | CalendarOptions): Promise { + return; + } /** * Delete a calendar. (iOS only) @@ -147,7 +167,9 @@ export class Calendar extends IonicNativePlugin { * @returns {Promise} Returns a Promise */ @Cordova() - deleteCalendar(name: string): Promise { return; } + deleteCalendar(name: string): Promise { + return; + } /** * Returns the default calendar options. @@ -157,7 +179,21 @@ export class Calendar extends IonicNativePlugin { @Cordova({ sync: true }) - getCalendarOptions(): CalendarOptions { return; } + getCalendarOptions(): CalendarOptions { + return; + } + + /** + * Returns options for a custom calender with sepcific colord + * + * @return {NameOrOptions} Returns an object with the default options + */ + @Cordova({ + sync: true + }) + getCreateCalendarOptions(): NameOrOptions { + return; + } /** * Silently create an event. @@ -175,7 +211,9 @@ export class Calendar extends IonicNativePlugin { notes?: string, startDate?: Date, endDate?: Date - ): Promise { return; } + ): Promise { + return; + } /** * Silently create an event with additional options. @@ -196,7 +234,9 @@ export class Calendar extends IonicNativePlugin { startDate?: Date, endDate?: Date, options?: CalendarOptions - ): Promise { return; } + ): Promise { + return; + } /** * Interactively create an event. @@ -215,7 +255,9 @@ export class Calendar extends IonicNativePlugin { notes?: string, startDate?: Date, endDate?: Date - ): Promise { return; } + ): Promise { + return; + } /** * Interactively create an event with additional options. @@ -236,7 +278,9 @@ export class Calendar extends IonicNativePlugin { startDate?: Date, endDate?: Date, options?: CalendarOptions - ): Promise { return; } + ): Promise { + return; + } /** * Find an event. @@ -255,7 +299,9 @@ export class Calendar extends IonicNativePlugin { notes?: string, startDate?: Date, endDate?: Date - ): Promise { return; } + ): Promise { + return; + } /** * Find an event with additional options. @@ -275,7 +321,9 @@ export class Calendar extends IonicNativePlugin { startDate?: Date, endDate?: Date, options?: CalendarOptions - ): Promise { return; } + ): Promise { + return; + } /** * Find a list of events within the specified date range. (Android only) @@ -287,14 +335,18 @@ export class Calendar extends IonicNativePlugin { @Cordova({ platforms: ['Android'] }) - listEventsInRange(startDate: Date, endDate: Date): Promise { return; } + listEventsInRange(startDate: Date, endDate: Date): Promise { + return; + } /** * Get a list of all calendars. * @returns {Promise} A Promise that resolves with the list of calendars, or rejects with an error. */ @Cordova() - listCalendars(): Promise { return; } + listCalendars(): Promise { + return; + } /** * Get a list of all future events in the specified calendar. (iOS only) @@ -303,7 +355,9 @@ export class Calendar extends IonicNativePlugin { @Cordova({ platforms: ['iOS'] }) - findAllEventsInNamedCalendar(calendarName: string): Promise { return; } + findAllEventsInNamedCalendar(calendarName: string): Promise { + return; + } /** * Modify an event. (iOS only) @@ -334,7 +388,9 @@ export class Calendar extends IonicNativePlugin { newNotes?: string, newStartDate?: Date, newEndDate?: Date - ): Promise { return; } + ): Promise { + return; + } /** * Modify an event with additional options. (iOS only) @@ -369,7 +425,9 @@ export class Calendar extends IonicNativePlugin { newEndDate?: Date, filterOptions?: CalendarOptions, newOptions?: CalendarOptions - ): Promise { return; } + ): Promise { + return; + } /** * Delete an event. @@ -388,7 +446,9 @@ export class Calendar extends IonicNativePlugin { notes?: string, startDate?: Date, endDate?: Date - ): Promise { return; } + ): Promise { + return; + } /** * Delete an event from the specified Calendar. (iOS only) @@ -411,7 +471,9 @@ export class Calendar extends IonicNativePlugin { startDate?: Date, endDate?: Date, calendarName?: string - ): Promise { return; } + ): Promise { + return; + } /** * Open the calendar at the specified date. @@ -419,6 +481,7 @@ export class Calendar extends IonicNativePlugin { * @return {Promise} Promise returns a promise */ @Cordova() - openCalendar(date: Date): Promise { return; } - + openCalendar(date: Date): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/call-log/index.ts b/src/@ionic-native/plugins/call-log/index.ts new file mode 100644 index 000000000..fd7906286 --- /dev/null +++ b/src/@ionic-native/plugins/call-log/index.ts @@ -0,0 +1,67 @@ +import { Injectable } from '@angular/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; + +export interface CallLogObject { + name: string; + value: string; + operator: '==' | '!=' | '>' | '>=' | '<' | '<='; +} + +/** + * @name Call Log + * @description + * This plugin access the call history on a device and that can be filtered + * + * @usage + * ```typescript + * import { CallLog } from '@ionic-native/call-log'; + * + * + * constructor(private callLog: CallLog) { } + * + * ```` + * @interfaces + * CallLogObject + * + */ +@Plugin({ + pluginName: 'CallLog', + plugin: 'cordova-plugin-calllog', + pluginRef: 'plugins.callLog', + repo: 'https://github.com/creacore-team/cordova-plugin-calllog', + platforms: ['Android'] +}) +@Injectable() +export class CallLog extends IonicNativePlugin { + /** + * This function return the call logs + * @param filters {CallLogObject[]} array of object to filter the query + * @return {Promise} + */ + @Cordova() + getCallLog(filters: CallLogObject[]): Promise { + return; + } + + /** + * Check permission + * @returns {Promise} + */ + @Cordova({ + platforms: ['Android'] + }) + hasReadPermission(): Promise { + return; + } + + /** + * Request permission + * @returns {Promise} + */ + @Cordova({ + platforms: ['Android'] + }) + requestReadPermission(): Promise { + return; + } +} diff --git a/src/@ionic-native/plugins/call-number/index.ts b/src/@ionic-native/plugins/call-number/index.ts index aa78c34a5..77a5ddd77 100644 --- a/src/@ionic-native/plugins/call-number/index.ts +++ b/src/@ionic-native/plugins/call-number/index.ts @@ -1,5 +1,6 @@ import { Injectable } from '@angular/core'; -import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; + /** * @name Call Number * @description @@ -16,8 +17,8 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; * * * this.callNumber.callNumber("18001010101", true) - * .then(() => console.log('Launched dialer!')) - * .catch(() => console.log('Error launching dialer')); + * .then(res => console.log('Launched dialer!', res)) + * .catch(err => console.log('Error launching dialer', err)); * * ``` */ @@ -30,7 +31,6 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; }) @Injectable() export class CallNumber extends IonicNativePlugin { - /** * Calls a phone number * @param numberToCall {string} The phone number to call as a string diff --git a/src/@ionic-native/plugins/camera-preview/index.ts b/src/@ionic-native/plugins/camera-preview/index.ts index 4545d9635..de5415011 100644 --- a/src/@ionic-native/plugins/camera-preview/index.ts +++ b/src/@ionic-native/plugins/camera-preview/index.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; export interface CameraPreviewDimensions { /** The width of the camera preview, default to window.screen.width */ @@ -131,12 +131,12 @@ export interface CameraPreviewPictureOptions { pluginName: 'CameraPreview', plugin: 'cordova-plugin-camera-preview', pluginRef: 'CameraPreview', - repo: 'https://github.com/cordova-plugin-camera-preview/cordova-plugin-camera-preview', + repo: + 'https://github.com/cordova-plugin-camera-preview/cordova-plugin-camera-preview', platforms: ['Android', 'iOS'] }) @Injectable() export class CameraPreview extends IonicNativePlugin { - FOCUS_MODE = { FIXED: 'fixed', AUTO: 'auto', @@ -189,35 +189,45 @@ export class CameraPreview extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - startCamera(options: CameraPreviewOptions): Promise { return; } + startCamera(options: CameraPreviewOptions): Promise { + return; + } /** * Stops the camera preview instance. (iOS & Android) * @return {Promise} */ @Cordova() - stopCamera(): Promise { return; } + stopCamera(): Promise { + return; + } /** * Switch from the rear camera and front camera, if available. * @return {Promise} */ @Cordova() - switchCamera(): Promise { return; } + switchCamera(): Promise { + return; + } /** * Hide the camera preview box. * @return {Promise} */ @Cordova() - hide(): Promise { return; } + hide(): Promise { + return; + } /** * Show the camera preview box. * @return {Promise} */ @Cordova() - show(): Promise { return; } + show(): Promise { + return; + } /** * Take the picture (base64) @@ -228,7 +238,9 @@ export class CameraPreview extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - takePicture(options?: CameraPreviewPictureOptions): Promise { return; } + takePicture(options?: CameraPreviewPictureOptions): Promise { + return; + } /** * @@ -241,7 +253,9 @@ export class CameraPreview extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - setColorEffect(effect: string): Promise { return; } + setColorEffect(effect: string): Promise { + return; + } /** * Set the zoom (Android) @@ -252,21 +266,27 @@ export class CameraPreview extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - setZoom(zoom?: number): Promise { return; } + setZoom(zoom?: number): Promise { + return; + } /** - * Get the maximum zoom (Android) - * @return {Promise} - */ + * Get the maximum zoom (Android) + * @return {Promise} + */ @Cordova() - getMaxZoom(): Promise { return; } + getMaxZoom(): Promise { + return; + } /** * Get current zoom (Android) * @return {Promise} */ @Cordova() - getZoom(): Promise { return; } + getZoom(): Promise { + return; + } /** * Set the preview Size @@ -277,14 +297,18 @@ export class CameraPreview extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - setPreviewSize(dimensions?: CameraPreviewDimensions): Promise { return; } + setPreviewSize(dimensions?: CameraPreviewDimensions): Promise { + return; + } /** * Get focus mode * @return {Promise} */ @Cordova() - getFocusMode(): Promise { return; } + getFocusMode(): Promise { + return; + } /** * Set the focus mode @@ -295,21 +319,27 @@ export class CameraPreview extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - setFocusMode(focusMode?: string): Promise { return; } + setFocusMode(focusMode?: string): Promise { + return; + } /** * Get supported focus modes * @return {Promise} */ @Cordova() - getSupportedFocusModes(): Promise { return; } + getSupportedFocusModes(): Promise { + return; + } /** * Get the current flash mode * @return {Promise} */ @Cordova() - getFlashMode(): Promise { return; } + getFlashMode(): Promise { + return; + } /** * Set the flashmode @@ -320,35 +350,45 @@ export class CameraPreview extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - setFlashMode(flashMode?: string): Promise { return; } + setFlashMode(flashMode?: string): Promise { + return; + } /** * Get supported flash modes * @return {Promise} */ @Cordova() - getSupportedFlashModes(): Promise { return; } + getSupportedFlashModes(): Promise { + return; + } /** * Get supported picture sizes * @return {Promise} */ @Cordova() - getSupportedPictureSizes(): Promise { return; } + getSupportedPictureSizes(): Promise { + return; + } /** * Get exposure mode * @return {Promise} */ @Cordova() - getExposureMode(): Promise { return; } + getExposureMode(): Promise { + return; + } /** * Get exposure modes * @return {Promise} */ @Cordova() - getExposureModes(): Promise { return; } + getExposureModes(): Promise { + return; + } /** * Set exposure mode @@ -359,14 +399,18 @@ export class CameraPreview extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - setExposureMode(lock?: string): Promise { return; } + setExposureMode(lock?: string): Promise { + return; + } /** * Get exposure compensation (Android) * @return {Promise} */ @Cordova() - getExposureCompensation(): Promise { return; } + getExposureCompensation(): Promise { + return; + } /** * Set exposure compensation (Android) @@ -377,14 +421,18 @@ export class CameraPreview extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - setExposureCompensation(exposureCompensation?: number): Promise { return; } + setExposureCompensation(exposureCompensation?: number): Promise { + return; + } /** * Get exposure compensation range (Android) * @return {Promise} */ @Cordova() - getExposureCompensationRange(): Promise { return; } + getExposureCompensationRange(): Promise { + return; + } /** * Set specific focus point. Note, this assumes the camera is full-screen. @@ -393,6 +441,16 @@ export class CameraPreview extends IonicNativePlugin { * @return {Promise} */ @Cordova() - tapToFocus(xPoint: number, yPoint: number): Promise { return; } + tapToFocus(xPoint: number, yPoint: number): Promise { + return; + } + /** + * Add a listener for the back event for the preview + * @return {Promise} if backbutton pressed + */ + @Cordova() + onBackButton(): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/code-push/index.ts b/src/@ionic-native/plugins/code-push/index.ts index 59b5591cf..6db99ce70 100644 --- a/src/@ionic-native/plugins/code-push/index.ts +++ b/src/@ionic-native/plugins/code-push/index.ts @@ -400,7 +400,7 @@ export interface DownloadProgress { * @description * CodePush plugin for Cordova by Microsoft that supports iOS and Android. * - * For more info, please see https://github.com/ksachdeva/ionic2-code-push-example + * For more info, please see https://github.com/Dellos7/example-cordova-code-push-plugin * * @usage * ```typescript diff --git a/src/@ionic-native/plugins/contacts/index.ts b/src/@ionic-native/plugins/contacts/index.ts index d4a301553..495703233 100644 --- a/src/@ionic-native/plugins/contacts/index.ts +++ b/src/@ionic-native/plugins/contacts/index.ts @@ -1,10 +1,9 @@ -import { Injectable } from '@angular/core'; import { CordovaInstance, InstanceProperty, Plugin, getPromise, InstanceCheck, checkAvailability, CordovaCheck, IonicNativePlugin } from '@ionic-native/core'; declare const window: any, navigator: any; -export type ContactFieldType = '*' | 'addresses' | 'birthday' | 'categories' | 'country' | 'department' | 'displayName' | 'emails' | 'familyName' | 'formatted' | 'givenName' | 'honorificPrefix' | 'honorificSuffix' | 'id' | 'ims' | 'locality' | 'middleName' | 'name' | 'nickname' | 'note' | 'organizations' | 'phoneNumbers' | 'photos' | 'postalCode' | 'region' | 'streetAddress' | 'title' | 'urls'; +export type ContactFieldType = '*' | 'addresses' | 'birthday' | 'categories' | 'country' | 'department' | 'displayName' | 'emails' | 'name.familyName' | 'name.formatted' | 'name.givenName' | 'name.honorificPrefix' | 'name.honorificSuffix' | 'id' | 'ims' | 'locality' | 'name.middleName' | 'name' | 'nickname' | 'note' | 'organizations' | 'phoneNumbers' | 'photos' | 'postalCode' | 'region' | 'streetAddress' | 'title' | 'urls'; export interface IContactProperties { @@ -261,10 +260,6 @@ export class ContactFindOptions implements IContactFindOptions { * @description * Access and manage Contacts on the device. * - * @deprecated - * This plugin is being deprecated. No more work will be done on this plugin by the Cordova development community. - * You can continue to use this plugin and it should work as-is in the future but any more arising issues will not be fixed by the Cordova community. - * * @usage * * ```typescript @@ -298,9 +293,8 @@ export class ContactFindOptions implements IContactFindOptions { plugin: 'cordova-plugin-contacts', pluginRef: 'navigator.contacts', repo: 'https://github.com/apache/cordova-plugin-contacts', - platforms: ['Android', 'iOS', 'Windows'] + platforms: ['Android', 'BlackBerry 10', 'Browser', 'Firefox OS', 'iOS', 'Ubuntu', 'Windows', 'Windows 8', 'Windows Phone'] }) -@Injectable() export class Contacts extends IonicNativePlugin { /** diff --git a/src/@ionic-native/plugins/crop/index.ts b/src/@ionic-native/plugins/crop/index.ts index ab5242ffd..928675009 100644 --- a/src/@ionic-native/plugins/crop/index.ts +++ b/src/@ionic-native/plugins/crop/index.ts @@ -1,6 +1,12 @@ import { Injectable } from '@angular/core'; import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +export interface CropOptions { + quality?: number; + targetHeight?: number; + targetWidth?: number; +} + /** * @name Crop * @description Crops images @@ -18,6 +24,8 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; * error => console.error('Error cropping image', error) * ); * ``` + * @interfaces + * CropOptions */ @Plugin({ pluginName: 'Crop', @@ -28,7 +36,6 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; }) @Injectable() export class Crop extends IonicNativePlugin { - /** * Crops an image * @param pathToImage @@ -38,6 +45,7 @@ export class Crop extends IonicNativePlugin { @Cordova({ callbackOrder: 'reverse' }) - crop(pathToImage: string, options?: { quality: number, targetHeight: number, targetWidth: number }): Promise { return; } - + crop(pathToImage: string, options?: CropOptions): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/date-picker/index.ts b/src/@ionic-native/plugins/date-picker/index.ts index 5c6667864..110e14f4e 100644 --- a/src/@ionic-native/plugins/date-picker/index.ts +++ b/src/@ionic-native/plugins/date-picker/index.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; export interface DatePickerOptions { /** @@ -21,13 +21,13 @@ export interface DatePickerOptions { /** * Maximum date - * Default?: empty String + * Default: empty String */ maxDate?: Date | string | number; /** * Label for the dialog title. If empty, uses android default (Set date/Set time). - * Default?: empty String + * Default: empty String */ titleText?: string; @@ -116,7 +116,6 @@ export interface DatePickerOptions { * Force locale for datePicker. */ locale?: string; - } /** @@ -155,7 +154,6 @@ export interface DatePickerOptions { }) @Injectable() export class DatePicker extends IonicNativePlugin { - /** * @hidden */ @@ -176,5 +174,4 @@ export class DatePicker extends IonicNativePlugin { show(options: DatePickerOptions): Promise { return; } - } diff --git a/src/@ionic-native/plugins/db-meter/index.ts b/src/@ionic-native/plugins/db-meter/index.ts index 01e54bd83..b413617fc 100644 --- a/src/@ionic-native/plugins/db-meter/index.ts +++ b/src/@ionic-native/plugins/db-meter/index.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; import { Observable } from 'rxjs/Observable'; /** @@ -21,7 +21,7 @@ import { Observable } from 'rxjs/Observable'; * * // Check if we are listening * this.dbMeter.isListening().then( - * (isListening: boolean) => console.log(isListening) + * isListening => console.log(isListening) * ); * * // Stop listening @@ -43,7 +43,6 @@ import { Observable } from 'rxjs/Observable'; }) @Injectable() export class DBMeter extends IonicNativePlugin { - /** * Starts listening * @returns {Observable} Returns an observable. Subscribe to start listening. Unsubscribe to stop listening. @@ -52,27 +51,34 @@ export class DBMeter extends IonicNativePlugin { observable: true, clearFunction: 'stop' }) - start(): Observable { return; } + start(): Observable { + return; + } /** * Stops listening * @hidden */ @Cordova() - stop(): Promise { return; } + stop(): Promise { + return; + } /** * Check if the DB Meter is listening * @returns {Promise} Returns a promise that resolves with a boolean that tells us whether the DB meter is listening */ @Cordova() - isListening(): Promise { return; } + isListening(): Promise { + return; + } /** * Delete the DB Meter instance * @returns {Promise} Returns a promise that will resolve if the instance has been deleted, and rejects if errors occur. */ @Cordova() - delete(): Promise { return; } - + delete(): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/device-accounts/index.ts b/src/@ionic-native/plugins/device-accounts/index.ts index ec345c165..903ddc380 100644 --- a/src/@ionic-native/plugins/device-accounts/index.ts +++ b/src/@ionic-native/plugins/device-accounts/index.ts @@ -1,5 +1,16 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; + +export interface AndroidAccount { + /** Account creator */ + CREATOR: AndroidAccount; + + /** Account name */ + name: string; + + /** Account type */ + type: string; +} /** * @name Device Accounts @@ -19,6 +30,8 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; * .catch(error => console.error(error)); * * ``` + * @interfaces + * AndroidAccount */ @Plugin({ pluginName: 'DeviceAccounts', @@ -29,33 +42,39 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; }) @Injectable() export class DeviceAccounts extends IonicNativePlugin { - /** * Gets all accounts registered on the Android Device - * @returns {Promise} + * @returns {Promise} */ @Cordova() - get(): Promise { return; } + get(): Promise { + return; + } /** * Get all accounts registered on Android device for requested type - * @returns {Promise} + * @returns {Promise} */ @Cordova() - getByType(type: string): Promise { return; } + getByType(type: string): Promise { + return; + } /** * Get all emails registered on Android device (accounts with 'com.google' type) - * @returns {Promise} + * @returns {Promise} */ @Cordova() - getEmails(): Promise { return; } + getEmails(): Promise { + return; + } /** * Get the first email registered on Android device - * @returns {Promise} + * @returns {Promise} */ @Cordova() - getEmail(): Promise { return; } - + getEmail(): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/device-feedback/index.ts b/src/@ionic-native/plugins/device-feedback/index.ts index 5246e4e6d..132c523f8 100644 --- a/src/@ionic-native/plugins/device-feedback/index.ts +++ b/src/@ionic-native/plugins/device-feedback/index.ts @@ -1,5 +1,14 @@ import { Injectable } from '@angular/core'; -import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; + +export interface DeviceFeedbackEnabled { + /** Haptic Feedback */ + haptic: boolean; + + /** Acoustic Feedback */ + acoustic: boolean; +} + /** * @name Device Feedback * @description @@ -19,8 +28,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; * * this.deviceFeedback.haptic(0); * - * this.deviceFeedback.isFeedbackEnabled() - * .then((feedback) => { + * this.deviceFeedback.isFeedbackEnabled().then(feedback => { * console.log(feedback); * // { * // acoustic: true, @@ -29,6 +37,8 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; * }); * * ``` + * @innterfaces + * DeviceFeedbackEnabled */ @Plugin({ pluginName: 'DeviceFeedback', @@ -39,25 +49,25 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; }) @Injectable() export class DeviceFeedback extends IonicNativePlugin { - /** * Provide sound feedback to user, nevertheless respect user's settings and current active device profile as native feedback do. */ @Cordova({ sync: true }) - acoustic(): void { } + acoustic(): void {} /** * Provide vibrate feedback to user, nevertheless respect user's tactile feedback setting as native feedback do. - * @param type {Number} Specify type of vibration feedback. 0 for long press, 1 for virtual key, or 3 for keyboard tap. + * @param type {number} Specify type of vibration feedback. 0 for long press, 1 for virtual key, or 3 for keyboard tap. */ @Cordova({ sync: true }) - haptic(type: number): void { } + haptic(type: number): void {} /** * Check if haptic and acoustic feedback is enabled by user settings. - * @returns {Promise} + * @returns {Promise} */ @Cordova() - isFeedbackEnabled(): Promise<{ haptic: boolean; acoustic: boolean; }> { return; } - + isFeedbackEnabled(): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/device-orientation/index.ts b/src/@ionic-native/plugins/device-orientation/index.ts index bbddc0339..ffd4e52aa 100644 --- a/src/@ionic-native/plugins/device-orientation/index.ts +++ b/src/@ionic-native/plugins/device-orientation/index.ts @@ -22,7 +22,7 @@ export interface DeviceOrientationCompassHeading { /** * The time at which this heading was determined. (DOMTimeStamp) */ - timestamp: any; + timestamp: number; } diff --git a/src/@ionic-native/plugins/document-picker/index.ts b/src/@ionic-native/plugins/document-picker/index.ts new file mode 100644 index 000000000..f9f636f6d --- /dev/null +++ b/src/@ionic-native/plugins/document-picker/index.ts @@ -0,0 +1,45 @@ + +import { Injectable } from '@angular/core'; +import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; + + +/** + * @name iOS DocumentPicker + * @description + * + * Opens the file picker on iOS for the user to select a file, returns a file URI. + * Allows the user to upload files from icloud + * + * @usage + * ```typescript + * import { IOSDocumentPicker } from '@ionic-native/document-picker'; + * + * constructor(private docPicker: IOSDocumentPicker) { } + * + * ... + * + * this.docPicker.getFile('all') + * .then(uri => console.log(uri)) + * .catch(e => console.log(e)); + * + * ``` + */ +@Plugin({ + pluginName: 'IOSDocumentPicker', + plugin: 'cordova-plugin-documentpicker.DocumentPicker', + pluginRef: 'DocumentPicker', + repo: 'https://github.com/iampossible/Cordova-DocPicker', + platforms: ['iOS'] +}) +@Injectable() +export class DocumentPicker extends IonicNativePlugin { + + /** + * Open a file + * @param {string} filters files between 'image', 'pdf' or 'all' + * @returns {Promise} + */ + @Cordova() + getFile(options?: string): Promise { return; } + +} diff --git a/src/@ionic-native/plugins/facebook/index.ts b/src/@ionic-native/plugins/facebook/index.ts index 21bd6f598..2ba252763 100644 --- a/src/@ionic-native/plugins/facebook/index.ts +++ b/src/@ionic-native/plugins/facebook/index.ts @@ -156,17 +156,6 @@ export class Facebook extends IonicNativePlugin { EVENT_PARAM_VALUE_NO: '0' }; - /** - * Browser wrapper - * @param {number} appId Your Facebook AppID from their dashboard - * @param {string} version The version of API you may want to use. Optional - * @returns {Promise} - */ - @Cordova() - browserInit(appId: number, version?: string): Promise { - return; - } - /** * Login to Facebook to authenticate this app. * diff --git a/src/@ionic-native/plugins/fcm/index.ts b/src/@ionic-native/plugins/fcm/index.ts index af5f0b5e3..269937abb 100644 --- a/src/@ionic-native/plugins/fcm/index.ts +++ b/src/@ionic-native/plugins/fcm/index.ts @@ -31,25 +31,25 @@ export interface NotificationData { * * ... * - * fcm.subscribeToTopic('marketing'); + * this.fcm.subscribeToTopic('marketing'); * - * fcm.getToken().then(token=>{ + * this.fcm.getToken().then(token => { * backend.registerToken(token); - * }) + * }); * - * fcm.onNotification().subscribe(data=>{ + * this.fcm.onNotification().subscribe(data => { * if(data.wasTapped){ * console.log("Received in background"); * } else { * console.log("Received in foreground"); * }; - * }) + * }); * - * fcm.onTokenRefresh().subscribe(token=>{ + * this.fcm.onTokenRefresh().subscribe(token => { * backend.registerToken(token); - * }) + * }); * - * fcm.unsubscribeFromTopic('marketing'); + * this.fcm.unsubscribeFromTopic('marketing'); * * ``` * @interfaces diff --git a/src/@ionic-native/plugins/file-picker/index.ts b/src/@ionic-native/plugins/file-picker/index.ts new file mode 100644 index 000000000..9ce195b73 --- /dev/null +++ b/src/@ionic-native/plugins/file-picker/index.ts @@ -0,0 +1,41 @@ +import { Injectable } from '@angular/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; + +/** + * @name File Chooser + * @description + * + * Opens the file picker on iOS for the user to select a file, returns a file URI. + * + * @usage + * ```typescript + * import { IOSFilePicker } from '@ionic-native/file-picker'; + * + * constructor(private filePicker: IOSFilePicker) { } + * + * ... + * + * this.filePicker.pickFile() + * .then(uri => console.log(uri)) + * .catch(err => console.log('Error', err)); + * + * ``` + */ +@Plugin({ + pluginName: 'iOS File Picker', + plugin: 'cordova-plugin-filepicker', + pluginRef: 'filePicker', + repo: 'https://github.com/jcesarmobile/FilePicker-Phonegap-iOS-Plugin', + platforms: ['iOS'] +}) +@Injectable() +export class IOSFilePicker extends IonicNativePlugin { + /** + * Open a file + * @returns {Promise} + */ + @Cordova() + pickFile(): Promise { + return; + } +} diff --git a/src/@ionic-native/plugins/file/index.ts b/src/@ionic-native/plugins/file/index.ts index f6c7f06dc..8b4bfd9dd 100644 --- a/src/@ionic-native/plugins/file/index.ts +++ b/src/@ionic-native/plugins/file/index.ts @@ -1000,7 +1000,7 @@ export class File extends IonicNativePlugin { * * @param {string} path Base FileSystem. Please refer to the iOS and Android filesystems above * @param {string} fileName path relative to base path - * @param {string | Blob} text content or blob to write + * @param {string | Blob | ArrayBuffer} text content, blob or ArrayBuffer to write * @param {IWriteOptions} options replace file if set to true. See WriteOptions for more information. * @returns {Promise} Returns a Promise that resolves to updated file entry or rejects with an error. */ diff --git a/src/@ionic-native/plugins/firebase-analytics/index.ts b/src/@ionic-native/plugins/firebase-analytics/index.ts index a6ef388dd..5cdac8fd4 100644 --- a/src/@ionic-native/plugins/firebase-analytics/index.ts +++ b/src/@ionic-native/plugins/firebase-analytics/index.ts @@ -43,7 +43,7 @@ export class FirebaseAnalytics extends IonicNativePlugin { * @param params {any} Some param to configure something * @return {Promise} Returns a promise */ - @Cordova() + @Cordova({ sync: true }) logEvent(name: string, params: any): Promise { return; } /** @@ -52,7 +52,7 @@ export class FirebaseAnalytics extends IonicNativePlugin { * @param id {string} The user ID * @return {Promise} Returns a promise */ - @Cordova() + @Cordova({ sync: true }) setUserId(id: string): Promise { return; } /** @@ -62,7 +62,7 @@ export class FirebaseAnalytics extends IonicNativePlugin { * @param value {string} The property value * @return {Promise} Returns a promise */ - @Cordova() + @Cordova({ sync: true }) setUserProperty(name: string, value: string): Promise { return; } /** @@ -70,7 +70,7 @@ export class FirebaseAnalytics extends IonicNativePlugin { * @param enabled {boolean} * @return {Promise} Returns a promise */ - @Cordova() + @Cordova({ sync: true }) setEnabled(enabled: boolean): Promise { return; } /** @@ -79,7 +79,7 @@ export class FirebaseAnalytics extends IonicNativePlugin { * @param name {string} The name of the screen * @return {Promise} Returns a promise */ - @Cordova() + @Cordova({ sync: true }) setCurrentScreen(name: string): Promise { return; } } diff --git a/src/@ionic-native/plugins/firebase-dynamic-links/index.ts b/src/@ionic-native/plugins/firebase-dynamic-links/index.ts index 00bc7cbda..95902117e 100644 --- a/src/@ionic-native/plugins/firebase-dynamic-links/index.ts +++ b/src/@ionic-native/plugins/firebase-dynamic-links/index.ts @@ -1,22 +1,19 @@ import { Injectable } from '@angular/core'; import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; +import { Observable } from 'rxjs/Observable'; -export interface DynamicLinksOptions { - title: string; - message: string; - deepLink?: string; - callToActionText?: string; +export interface IDynamicLink { + matchType: 'Weak' | 'Strong'; + deepLink: string; } /** * @beta * @name Firebase Dynamic Links * @description - * Cordova plugin for Firebase Invites and Firebase Dynamic Links + * Cordova plugin for Firebase Dynamic Links * * Variables APP_DOMAIN and APP_PATH specify web URL where your app will start an activity to handle the link. They also used to setup support for App Indexing. - * Variable REVERSED_CLIENT_ID can be found in your GoogleService-Info.plist under the same key name. - * Variable PHOTO_LIBRARY_USAGE_DESCRIPTION specifies required value for NSPhotoLibraryUsageDescription on iOS. * Go to firebase console and export google-services.json and GoogleService-Info.plist. Put those files into the root of your cordova app folder. * * Preferences: @@ -41,17 +38,6 @@ export interface DynamicLinksOptions { * constructor(private firebaseDynamicLinks: FirebaseDynamicLinks) { } * * ... - * // The deepLink and callToActionText properties are optional - * const options: DynamicLinksOptions = { - * title: 'My Title'; - * message: 'My message'; - * deepLink: 'http://example.com/'; - * callToActionText: 'Message on button'; - * } - * - * this.firebaseDynamicLinks.sendInvitation(options) - * .then((res: any) => console.log(res)) - * .catch((error: any) => console.error(error)); * * this.firebaseDynamicLinks.onDynamicLink() * .then((res: any) => console.log(res)) //Handle the logic here after opening the app with the Dynamic link @@ -75,17 +61,12 @@ export class FirebaseDynamicLinks extends IonicNativePlugin { /** * Registers callback that is triggered on each dynamic link click. - * @return {Promise} Returns a promise + * @return {Observable} Returns an observable */ - @Cordova() - onDynamicLink(): Promise { return; } - - /** - * Display invitation dialog. - * @param options {DynamicLinksOptions} Some param to configure something - * @return {Promise} Returns a promise - */ - @Cordova() - sendInvitation(options: DynamicLinksOptions): Promise { return; } + @Cordova({ + callbackOrder: 'reverse', + observable: true, + }) + onDynamicLink(): Observable { return; } } diff --git a/src/@ionic-native/plugins/firebase/index.ts b/src/@ionic-native/plugins/firebase/index.ts index bee4737f5..60d29c219 100644 --- a/src/@ionic-native/plugins/firebase/index.ts +++ b/src/@ionic-native/plugins/firebase/index.ts @@ -300,4 +300,14 @@ export class Firebase extends IonicNativePlugin { verifyPhoneNumber(phoneNumber: string, timeoutDuration: number): Promise { return; } + + /** + * Allows the user to enable/disable analytics collection + * @param enabled {booleab} value to set collection + * @returns {Promise} + */ + @Cordova() + setAnalyticsCollectionEnabled(enabled: boolean): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/geolocation/index.ts b/src/@ionic-native/plugins/geolocation/index.ts index 7eded999a..0ea3937a1 100644 --- a/src/@ionic-native/plugins/geolocation/index.ts +++ b/src/@ionic-native/plugins/geolocation/index.ts @@ -117,6 +117,14 @@ export interface GeolocationOptions { * * This API is based on the W3C Geolocation API Specification, and only executes on devices that don't already provide an implementation. * + * For iOS you have to add this configuration to your configuration.xml file + * ```xml + * + * We want your location! Best regards NSA + * + * ``` + * + * * @usage * * ```typescript diff --git a/src/@ionic-native/plugins/globalization/index.ts b/src/@ionic-native/plugins/globalization/index.ts index 0acecdd92..9a56e9e90 100644 --- a/src/@ionic-native/plugins/globalization/index.ts +++ b/src/@ionic-native/plugins/globalization/index.ts @@ -1,6 +1,11 @@ import { Injectable } from '@angular/core'; import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +export interface GlobalizationOptions { + formatLength: string; + selector: string; +} + /** * @name Globalization * @description @@ -26,6 +31,8 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; * * * ``` + * @interfaces + * GlobalizationOptions */ @Plugin({ pluginName: 'Globalization', @@ -36,20 +43,23 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; }) @Injectable() export class Globalization extends IonicNativePlugin { - /** * Returns the BCP-47 compliant language identifier tag to the successCallback with a properties object as a parameter. That object should have a value property with a String value. * @returns {Promise<{value: string}>} */ @Cordova() - getPreferredLanguage(): Promise<{ value: string }> { return; } + getPreferredLanguage(): Promise<{ value: string }> { + return; + } /** * Returns the BCP 47 compliant locale identifier string to the successCallback with a properties object as a parameter. * @returns {Promise<{value: string}>} */ @Cordova() - getLocaleName(): Promise<{ value: string }> { return; } + getLocaleName(): Promise<{ value: string }> { + return; + } /** * Converts date to string @@ -61,7 +71,12 @@ export class Globalization extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - dateToString(date: Date, options: { formatLength: string, selector: string }): Promise<{ value: string }> { return; } + dateToString( + date: Date, + options: GlobalizationOptions + ): Promise<{ value: string }> { + return; + } /** * Parses a date formatted as a string, according to the client's user preferences and calendar using the time zone of the client, and returns the corresponding date object. @@ -73,17 +88,40 @@ export class Globalization extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - stringToDate(dateString: string, options: { formatLength: string, selector: string }): Promise<{ year: number, month: number, day: number, hour: number, minute: number, second: number, millisecond: number }> { return; } + stringToDate( + dateString: string, + options: GlobalizationOptions + ): Promise<{ + year: number; + month: number; + day: number; + hour: number; + minute: number; + second: number; + millisecond: number; + }> { + return; + } /** * Returns a pattern string to format and parse dates according to the client's user preferences. * @param options Object with the format length and selector - * @returns {Promise<{ pattern: string, timezone: string, utf_offset: number, dst_offset: number }>} Returns a promise. + * @returns {Promise<{ pattern: string, timezone: string, utc_offset: number, dst_offset: number }>} Returns a promise. */ @Cordova({ callbackOrder: 'reverse' }) - getDatePattern(options: { formatLength: string, selector: string }): Promise<{ pattern: string, timezone: string, utf_offset: number, dst_offset: number }> { return; } + getDatePattern( + options: GlobalizationOptions + ): Promise<{ + pattern: string; + timezone: string; + iana_timezone: string; + utc_offset: number; + dst_offset: number; + }> { + return; + } /** * Returns an array of the names of the months or days of the week, depending on the client's user preferences and calendar. @@ -93,7 +131,12 @@ export class Globalization extends IonicNativePlugin { @Cordova({ callbackOrder: 'reverse' }) - getDateNames(options: { type: string, item: string }): Promise<{ value: Array }> { return; } + getDateNames(options: { + type: string; + item: string; + }): Promise<{ value: Array }> { + return; + } /** * Indicates whether daylight savings time is in effect for a given date using the client's time zone and calendar. @@ -101,14 +144,18 @@ export class Globalization extends IonicNativePlugin { * @returns {Promise<{dst: string}>} reutrns a promise with the value */ @Cordova() - isDayLightSavingsTime(date: Date): Promise<{ dst: string }> { return; } + isDayLightSavingsTime(date: Date): Promise<{ dst: string }> { + return; + } /** * Returns the first day of the week according to the client's user preferences and calendar. * @returns {Promise<{value: string}>} returns a promise with the value */ @Cordova() - getFirstDayOfWeek(): Promise<{ value: string }> { return; } + getFirstDayOfWeek(): Promise<{ value: string }> { + return; + } /** * Returns a number formatted as a string according to the client's user preferences. @@ -119,7 +166,12 @@ export class Globalization extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - numberToString(numberToConvert: number, options: { type: string }): Promise<{ value: string }> { return; } + numberToString( + numberToConvert: number, + options: { type: string } + ): Promise<{ value: string }> { + return; + } /** * @@ -131,7 +183,12 @@ export class Globalization extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - stringToNumber(stringToConvert: string, options: { type: string }): Promise<{ value: number | string }> { return; } + stringToNumber( + stringToConvert: string, + options: { type: string } + ): Promise<{ value: number | string }> { + return; + } /** * Returns a pattern string to format and parse numbers according to the client's user preferences. @@ -141,7 +198,20 @@ export class Globalization extends IonicNativePlugin { @Cordova({ callbackOrder: 'reverse' }) - getNumberPattern(options: { type: string }): Promise<{ pattern: string, symbol: string, fraction: number, rounding: number, positive: string, negative: string, decimal: string, grouping: string }> { return; } + getNumberPattern(options: { + type: string; + }): Promise<{ + pattern: string; + symbol: string; + fraction: number; + rounding: number; + positive: string; + negative: string; + decimal: string; + grouping: string; + }> { + return; + } /** * Returns a pattern string to format and parse currency values according to the client's user preferences and ISO 4217 currency code. @@ -149,6 +219,16 @@ export class Globalization extends IonicNativePlugin { * @returns {Promise<{ pattern: string, code: string, fraction: number, rounding: number, decimal: number, grouping: string }>} */ @Cordova() - getCurrencyPattern(currencyCode: string): Promise<{ pattern: string, code: string, fraction: number, rounding: number, decimal: number, grouping: string }> { return; } - + getCurrencyPattern( + currencyCode: string + ): Promise<{ + pattern: string; + code: string; + fraction: number; + rounding: number; + decimal: number; + grouping: string; + }> { + return; + } } diff --git a/src/@ionic-native/plugins/google-analytics/index.ts b/src/@ionic-native/plugins/google-analytics/index.ts index 9af3c62e5..1b7fe31ee 100644 --- a/src/@ionic-native/plugins/google-analytics/index.ts +++ b/src/@ionic-native/plugins/google-analytics/index.ts @@ -38,7 +38,6 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; }) @Injectable() export class GoogleAnalytics extends IonicNativePlugin { - /** * In your 'deviceready' handler, set up your Analytics tracker. * https://developers.google.com/analytics/devguides/collection/analyticsjs/ @@ -50,7 +49,9 @@ export class GoogleAnalytics extends IonicNativePlugin { successIndex: 2, errorIndex: 3 }) - startTrackerWithId(id: string, interval?: number): Promise { return; } + startTrackerWithId(id: string, interval?: number): Promise { + return; + } /** * Enabling Advertising Features in Google Analytics allows you to take advantage of Remarketing, Demographics & Interests reports, and more @@ -58,7 +59,9 @@ export class GoogleAnalytics extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - setAllowIDFACollection(allow: boolean): Promise { return; } + setAllowIDFACollection(allow: boolean): Promise { + return; + } /** * Set a UserId @@ -67,7 +70,9 @@ export class GoogleAnalytics extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - setUserId(id: string): Promise { return; } + setUserId(id: string): Promise { + return; + } /** * Set a anonymize Ip address @@ -75,15 +80,40 @@ export class GoogleAnalytics extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - setAnonymizeIp(anonymize: boolean): Promise { return; } + setAnonymizeIp(anonymize: boolean): Promise { + return; + } /** - * Sets the app version + * Set the app version * @param appVersion {string} App version * @returns {Promise} */ @Cordova() - setAppVersion(appVersion: string): Promise { return; } + setAppVersion(appVersion: string): Promise { + return; + } + + /** + * Get a variable + * @param key {string} Variable + * @returns {Promise} + */ + @Cordova() + getVar(key: string): Promise { + return; + } + + /** + * Set a variable + * @param key {string} Variable + * @param value {string} Parameter + * @returns {Promise} + */ + @Cordova() + setVar(key: string, value: string): Promise { + return; + } /** * Set OptOut @@ -91,14 +121,18 @@ export class GoogleAnalytics extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - setOptOut(optout: boolean): Promise { return; } + setOptOut(optout: boolean): Promise { + return; + } /** * Enable verbose logging * @returns {Promise} */ @Cordova() - debugMode(): Promise { return; } + debugMode(): Promise { + return; + } /** * Track custom metric @@ -110,7 +144,9 @@ export class GoogleAnalytics extends IonicNativePlugin { successIndex: 2, errorIndex: 3 }) - trackMetric(key: number, value?: number): Promise { return; } + trackMetric(key: number, value?: number): Promise { + return; + } /** * Track a screen @@ -125,7 +161,13 @@ export class GoogleAnalytics extends IonicNativePlugin { successIndex: 3, errorIndex: 4 }) - trackView(title: string, campaignUrl?: string, newSession?: boolean): Promise { return; } + trackView( + title: string, + campaignUrl?: string, + newSession?: boolean + ): Promise { + return; + } /** * Add a Custom Dimension @@ -135,7 +177,9 @@ export class GoogleAnalytics extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - addCustomDimension(key: number, value: string): Promise { return; } + addCustomDimension(key: number, value: string): Promise { + return; + } /** * Track an event @@ -151,7 +195,15 @@ export class GoogleAnalytics extends IonicNativePlugin { successIndex: 5, errorIndex: 6 }) - trackEvent(category: string, action: string, label?: string, value?: number, newSession?: boolean): Promise { return; } + trackEvent( + category: string, + action: string, + label?: string, + value?: number, + newSession?: boolean + ): Promise { + return; + } /** * Track an exception @@ -160,7 +212,9 @@ export class GoogleAnalytics extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - trackException(description: string, fatal: boolean): Promise { return; } + trackException(description: string, fatal: boolean): Promise { + return; + } /** * Track User Timing (App Speed) @@ -171,7 +225,14 @@ export class GoogleAnalytics extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - trackTiming(category: string, intervalInMilliseconds: number, variable: string, label: string): Promise { return; } + trackTiming( + category: string, + intervalInMilliseconds: number, + variable: string, + label: string + ): Promise { + return; + } /** * Add a Transaction (Ecommerce) @@ -185,7 +246,16 @@ export class GoogleAnalytics extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - addTransaction(id: string, affiliation: string, revenue: number, tax: number, shipping: number, currencyCode: string): Promise { return; } + addTransaction( + id: string, + affiliation: string, + revenue: number, + tax: number, + shipping: number, + currencyCode: string + ): Promise { + return; + } /** * Add a Transaction Item (Ecommerce) @@ -200,7 +270,17 @@ export class GoogleAnalytics extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - addTransactionItem(id: string, name: string, sku: string, category: string, price: number, quantity: number, currencyCode: string): Promise { return; } + addTransactionItem( + id: string, + name: string, + sku: string, + category: string, + price: number, + quantity: number, + currencyCode: string + ): Promise { + return; + } /** * Enable/disable automatic reporting of uncaught exceptions @@ -208,6 +288,19 @@ export class GoogleAnalytics extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - enableUncaughtExceptionReporting(shouldEnable: boolean): Promise { return; } + enableUncaughtExceptionReporting(shouldEnable: boolean): Promise { + return; + } + /** + * Manually dispatch any data + * @returns {Promise} + * @platform + */ + @Cordova({ + platforms: ['Android', 'iOS', 'Windows'] + }) + dispatch(): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/google-maps/index.ts b/src/@ionic-native/plugins/google-maps/index.ts index fee5b298f..3d875b2b5 100644 --- a/src/@ionic-native/plugins/google-maps/index.ts +++ b/src/@ionic-native/plugins/google-maps/index.ts @@ -91,100 +91,146 @@ export class LatLngBounds implements ILatLngBounds { getCenter(): LatLng { return; } } +export interface GoogleMapControlOptions { + + /** + * Turns the compass on or off. + */ + compass?: boolean; + + /** + * Turns the myLocation button on or off. If turns on this button, the application displays a permission dialog to obtain the geolocation data. + */ + myLocationButton?: boolean; + + /** + * Turns the myLocation control(blue dot) on or off. If turns on this control, the application displays a permission dialog to obtain the geolocation data. + */ + myLocation?: boolean; + + /** + * Turns the indoor picker on or off. + */ + indoorPicker?: boolean; + + /** + * **Android** + * Turns the map toolbar on or off. + */ + mapToolbar?: boolean; + + /** + * **Android** + * Turns the zoom controller on or off. + */ + zoom?: boolean; + + /** + * Accept extra properties for future updates + */ + [key: string]: any; +} + +export interface GoogleMapGestureOptions { + + /** + * Set false to disable the scroll gesture (default: true) + */ + scroll?: boolean; + + /** + * Set false to disable the tilt gesture (default: true) + */ + tilt?: boolean; + + /** + * Set false to disable the zoom gesture (default: true) + */ + zoom?: boolean; + + /** + * Set false to disable the rotate gesture (default: true) + */ + rotate?: boolean; + + /** + * Accept extra properties for future updates + */ + [key: string]: any; +} + +export interface GoogleMapZoomOptions { + minZoom?: number; + maxZoom?: number; +} + +export interface GoogleMapPaddingOptions { + left?: number; + top?: number; + bottom?: number; + right?: number; +} + +export interface GoogleMapPreferenceOptions { + + /** + * Minimum and maximum zoom levels for zooming gestures. + */ + zoom?: GoogleMapZoomOptions; + + /** + * Paddings of controls. + */ + padding?: GoogleMapPaddingOptions; + + /** + * Turns the 3D buildings layer on or off. + */ + building?: boolean; + + /** + * Accept extra properties for future updates + */ + [key: string]: any; +} + export interface GoogleMapOptions { /** - * MapType + * mapType [options] */ mapType?: MapType; - controls?: { - - /** - * Turns the compass on or off. - */ - compass?: boolean; - - /** - * Turns the myLocation picker on or off. If turns on this button, the application displays a permission dialog to obtain the geolocation data. - */ - myLocationButton?: boolean; - - /** - * Turns the indoor picker on or off. - */ - indoorPicker?: boolean; - - /** - * Turns the map toolbar on or off. This option is for Android only. - */ - mapToolbar?: boolean; - - /** - * Turns the zoom controller on or off. This option is for Android only. - */ - zoom?: boolean; - }; - - gestures?: { - - /** - * Set false to disable the scroll gesture (default: true) - */ - scroll?: boolean; - - /** - * Set false to disable the tilt gesture (default: true) - */ - tilt?: boolean; - - /** - * Set false to disable the zoom gesture (default: true) - */ - zoom?: boolean; - - /** - * Set false to disable the rotate gesture (default: true) - */ - rotate?: boolean; - }; + /** + * controls [options] + */ + controls?: GoogleMapControlOptions; /** - * Map styles + * gestures [options] + */ + gestures?: GoogleMapGestureOptions; + + /** + * Map styles [options] * @ref https://developers.google.com/maps/documentation/javascript/style-reference */ styles?: any[]; /** - * Initial camera position + * Initial camera position [options] */ camera?: CameraPosition; - preferences?: { + /** + * preferences [options] + */ + preferences?: GoogleMapPreferenceOptions; - /** - * Minimum and maximum zoom levels for zooming gestures. - */ - zoom?: { - minZoom?: number; - maxZoom?: number; - }; - - /** - * Paddings of controls. - */ - padding?: { - left?: number; - top?: number; - bottom?: number; - right?: number; - }; - - /** - * Turns the 3D buildings layer on or off. - */ - building?: boolean - }; + /** + * Accept extra properties for future updates + */ + [key: string]: any; } export interface CameraPosition { @@ -679,6 +725,39 @@ export interface TileOverlayOptions { [key: string]: any; } +export interface ToDataUrlOptions { + /** + * True if you want get high quality map snapshot + */ + uncompress?: boolean; +} + + +/** + * Options for map.addKmlOverlay() method + */ +export interface KmlOverlayOptions { + /* + * The url or file path of KML file. KMZ format is not supported. + */ + url: string; + + /* + * Do not fire the KML_CLICK event if false. Default is true. + */ + clickable?: boolean; + + /* + * Do not display the default infoWindow if true. Default is false. + */ + suppressInfoWindows?: boolean; + + /** + * Accept own properties for future update + */ + [key: string]: any; +} + /** * @hidden @@ -686,12 +765,41 @@ export interface TileOverlayOptions { export class VisibleRegion implements ILatLngBounds { private _objectInstance: any; + /** + * The northeast of the bounds that contains the farLeft, farRight, nearLeft and nearRight. + * Since the map view is able to rotate, the farRight is not the same as the northeast. + */ @InstanceProperty northeast: ILatLng; + + /** + * The southwest of the bounds that contains the farLeft, farRight, nearLeft and nearRight. + * Since the map view is able to rotate, the nearLeft is not the same as the southwest. + */ @InstanceProperty southwest: ILatLng; + + /** + * The nearRight indicates the lat/lng of the top-left of the map view. + */ @InstanceProperty farLeft: ILatLng; + + /** + * The nearRight indicates the lat/lng of the top-right of the map view. + */ @InstanceProperty farRight: ILatLng; + + /** + * The nearRight indicates the lat/lng of the bottom-left of the map view. + */ @InstanceProperty nearLeft: ILatLng; + + /** + * The nearRight indicates the lat/lng of the bottom-right of the map view. + */ @InstanceProperty nearRight: ILatLng; + + /** + * constant value : `VisibleRegion` + */ @InstanceProperty type: string; constructor(southwest: LatLngBounds, northeast: LatLngBounds, farLeft: ILatLng, farRight: ILatLng, nearLeft: ILatLng, nearRight: ILatLng) { @@ -729,9 +837,10 @@ export class VisibleRegion implements ILatLngBounds { */ export const GoogleMapsEvent = { MAP_READY: 'map_ready', - MAP_LOADED: 'map_loaded', MAP_CLICK: 'map_click', MAP_LONG_CLICK: 'map_long_click', + POI_CLICK: 'poi_click', + MY_LOCATION_CLICK: 'my_location_click', MY_LOCATION_BUTTON_CLICK: 'my_location_button_click', INDOOR_BUILDING_FOCUSED: 'indoor_building_focused', INDOOR_LEVEL_ACTIVATED: 'indoor_level_activated', @@ -747,14 +856,14 @@ export const GoogleMapsEvent = { INFO_LONG_CLICK: 'info_long_click', INFO_CLOSE: 'info_close', INFO_OPEN: 'info_open', - CLUSTER_CLICK: 'cluster_click', MARKER_CLICK: 'marker_click', MARKER_DRAG: 'marker_drag', MARKER_DRAG_START: 'marker_drag_start', MARKER_DRAG_END: 'marker_drag_end', MAP_DRAG: 'map_drag', MAP_DRAG_START: 'map_drag_start', - MAP_DRAG_END: 'map_drag_end' + MAP_DRAG_END: 'map_drag_end', + KML_CLICK: 'kml_click' }; /** @@ -801,7 +910,7 @@ export const GoogleMapsMapTypeId: { [mapType: string]: MapType; } = { * }) * export class HomePage { * map: GoogleMap; - * constructor(private googleMaps: GoogleMaps) { } + * constructor() { } * * ionViewDidLoad() { * this.loadMap(); @@ -820,7 +929,7 @@ export const GoogleMapsMapTypeId: { [mapType: string]: MapType; } = { * } * }; * - * this.map = this.googleMaps.create('map_canvas', mapOptions); + * this.map = GoogleMaps.create('map_canvas', mapOptions); * * // Wait the MAP_READY before using any methods. * this.map.one(GoogleMapsEvent.MAP_READY) @@ -865,6 +974,7 @@ export const GoogleMapsMapTypeId: { [mapType: string]: MapType; } = { * Polygon * Polyline * Spherical + * KmlOverlay * Poly * TileOverlay * BaseClass @@ -886,6 +996,7 @@ export const GoogleMapsMapTypeId: { [mapType: string]: MapType; } = { * PolygonOptions * PolylineOptions * TileOverlayOptions + * KmlOverlayOptions * VisibleRegion */ @Plugin({ @@ -893,6 +1004,7 @@ export const GoogleMapsMapTypeId: { [mapType: string]: MapType; } = { pluginRef: 'plugin.google.maps', plugin: 'cordova-plugin-googlemaps', repo: 'https://github.com/mapsplugin/cordova-plugin-googlemaps', + document: 'https://github.com/mapsplugin/cordova-plugin-googlemaps-doc/blob/master/v2.0.0/README.md', install: 'ionic cordova plugin add cordova-plugin-googlemaps --variable API_KEY_FOR_ANDROID="YOUR_ANDROID_API_KEY_IS_HERE" --variable API_KEY_FOR_IOS="YOUR_IOS_API_KEY_IS_HERE"', installVariables: ['API_KEY_FOR_ANDROID', 'API_KEY_FOR_IOS'], platforms: ['Android', 'iOS'] @@ -903,7 +1015,7 @@ export class GoogleMaps extends IonicNativePlugin { /** * Creates a new GoogleMap instance * @param element {string | HTMLElement} Element ID or reference to attach the map to - * @param options {any} Options + * @param options {GoogleMapOptions} [options] Options * @return {GoogleMap} */ static create(element: string | HTMLElement | GoogleMapOptions, options?: GoogleMapOptions): GoogleMap { @@ -947,7 +1059,7 @@ export class BaseClass { /** * Adds an event listener. - * + * @param eventName {string} event name you want to observe. * @return {Observable} */ @InstanceCheck({ observable: true }) @@ -981,7 +1093,7 @@ export class BaseClass { /** * Adds an event listener that works once. - * + * @param eventName {string} event name you want to observe. * @return {Promise} */ @InstanceCheck() @@ -1015,32 +1127,33 @@ export class BaseClass { /** * Gets a value - * @param key + * @param key {any} */ @CordovaInstance({ sync: true }) get(key: string): any { return; } /** * Sets a value - * @param key - * @param value + * @param key {string} The key name for the value. `(key)_changed` will be fired when you set value through this method. + * @param value {any} + * @param noNotify {boolean} [options] True if you want to prevent firing the `(key)_changed` event. */ @CordovaInstance({ sync: true }) set(key: string, value: any, noNotify?: boolean): void { } /** * Bind a key to another object - * @param key {string} - * @param target {any} - * @param targetKey? {string} - * @param noNotify? {boolean} + * @param key {string} The property name you want to observe. + * @param target {any} The target object you want to observe. + * @param targetKey? {string} [options] The property name you want to observe. If you omit this, the `key` argument is used. + * @param noNotify? {boolean} [options] True if you want to prevent `(key)_changed` event when you bind first time, because the internal status is changed from `undefined` to something. */ @CordovaInstance({ sync: true }) bindTo(key: string, target: any, targetKey?: string, noNotify?: boolean): void { } /** - * Listen to a map event. - * + * Alias of `addEventListener` + * @param key {string} The property name you want to observe. * @return {Observable} */ @InstanceCheck({ observable: true }) @@ -1073,8 +1186,8 @@ export class BaseClass { } /** - * Listen to a map event only once. - * + * Alias of `addEventListenerOnce` + * @param key {string} The property name you want to observe. * @return {Promise} */ @InstanceCheck() @@ -1114,6 +1227,8 @@ export class BaseClass { /** * Dispatch event. + * @param eventName {string} Event name + * @param parameters {any} [options] The data you want to pass to event listerners. */ @CordovaInstance({ sync: true }) trigger(eventName: string, ...parameters: any[]): void {} @@ -1130,6 +1245,32 @@ export class BaseClass { } this._objectInstance.remove(); } + + /** + * Remove event listener(s) + * The `removeEventListener()` has three usages: + * - removeEventListener("eventName", listenerFunction); + * This removes one particular event listener + * - removeEventListener("eventName"); + * This removes the event listeners that added for the event name. + * - removeEventListener(); + * This removes all listeners. + * + * @param eventName {string} [options] Event name + * @param listener {Function} [options] Event listener + */ + @CordovaInstance({ sync: true }) + removeEventListener(eventName?: string, listener?: (...parameters: any[]) => void): void {} + + /** + * Alias of `removeEventListener` + * + * @param eventName {string} [options] Event name + * @param listener {Function} [options] Event listener + */ + @CordovaInstance({ sync: true }) + off(eventName?: string, listener?: (...parameters: any[]) => void): void {} + } /** @@ -1155,7 +1296,7 @@ export class BaseArrayClass extends BaseClass { /** * Removes all elements from the array. - * @param noNotify? {boolean} Set true to prevent remove_at events. + * @param noNotify? {boolean} [options] Set true to prevent remove_at events. */ @CordovaInstance({ sync: true }) empty(noNotify?: boolean): void {} @@ -1163,7 +1304,6 @@ export class BaseArrayClass extends BaseClass { /** * Iterate over each element, calling the provided callback. * @param fn {Function} - * @param callback? {Function} */ @CordovaInstance({ sync: true }) forEach(fn: (element: T, index?: number) => void): void {} @@ -1176,7 +1316,7 @@ export class BaseArrayClass extends BaseClass { @CordovaCheck() forEachAsync(fn: ((element: T, callback: () => void) => void)): Promise { return new Promise((resolve) => { - this._objectInstance.forEach(fn, resolve); + this._objectInstance.forEachAsync(fn, resolve); }); } @@ -1184,7 +1324,6 @@ export class BaseArrayClass extends BaseClass { * Iterate over each element, then return a new value. * Then you can get the results of each callback. * @param fn {Function} - * @param callback? {Function} * @return {Array} returns a new array with the results */ @CordovaInstance({ sync: true }) @@ -1194,20 +1333,32 @@ export class BaseArrayClass extends BaseClass { * Iterate over each element, calling the provided callback. * Then you can get the results of each callback. * @param fn {Function} - * @param callback? {Function} + * @param callback {Function} * @return {Promise} returns a new array with the results */ @CordovaCheck() mapAsync(fn: ((element: T, callback: (newElement: any) => void) => void)): Promise { return new Promise((resolve) => { - this._objectInstance.map(fn, resolve); + this._objectInstance.mapAsync(fn, resolve); + }); + } + + /** + * Same as `mapAsync`, but keep the execution order + * @param fn {Function} + * @param callback {Function} + * @return {Promise} returns a new array with the results + */ + @CordovaCheck() + mapSeries(fn: ((element: T, callback: (newElement: any) => void) => void)): Promise { + return new Promise((resolve) => { + this._objectInstance.mapSeries(fn, resolve); }); } /** * The filter() method creates a new array with all elements that pass the test implemented by the provided function. * @param fn {Function} - * @param callback? {Function} * @return {Array} returns a new filtered array */ @CordovaInstance({ sync: true }) @@ -1216,13 +1367,13 @@ export class BaseArrayClass extends BaseClass { /** * The filterAsync() method creates a new array with all elements that pass the test implemented by the provided function. * @param fn {Function} - * @param callback? {Function} + * @param callback {Function} * @return {Promise} returns a new filtered array */ @CordovaCheck() filterAsync(fn: (element: T, callback: (result: boolean) => void) => void): Promise { return new Promise((resolve) => { - this._objectInstance.filter(fn, resolve); + this._objectInstance.filterAsync(fn, resolve); }); } @@ -1272,7 +1423,7 @@ export class BaseArrayClass extends BaseClass { * Inserts an element at the specified index. * @param index {number} * @param element {Object} - * @param noNotify? {boolean} Set true to prevent insert_at events. + * @param noNotify? {boolean} [options] Set true to prevent insert_at events. * @return {Object} */ @CordovaInstance({ sync: true }) @@ -1280,7 +1431,7 @@ export class BaseArrayClass extends BaseClass { /** * Removes the last element of the array and returns that element. - * @param noNotify? {boolean} Set true to prevent remove_at events. + * @param noNotify? {boolean} [options] Set true to prevent remove_at events. * @return {Object} */ @CordovaInstance({ sync: true }) @@ -1297,7 +1448,7 @@ export class BaseArrayClass extends BaseClass { /** * Removes an element from the specified index. * @param index {number} - * @param noNotify? {boolean} Set true to prevent insert_at events. + * @param noNotify? {boolean} [options] Set true to prevent remove_at events. */ @CordovaInstance({ sync: true }) removeAt(index: number, noNotify?: boolean): void {} @@ -1306,7 +1457,7 @@ export class BaseArrayClass extends BaseClass { * Sets an element at the specified index. * @param index {number} * @param element {object} - * @param noNotify? {boolean} Set true to prevent set_at events. + * @param noNotify? {boolean} [options] Set true to prevent set_at events. */ @CordovaInstance({ sync: true }) setAt(index: number, element: T, noNotify?: boolean): void {} @@ -1337,7 +1488,7 @@ export class Circle extends BaseClass { * Return the map instance. * @return {GoogleMap} */ - getMap(): any { return this._map; } + getMap(): GoogleMap { return this._map; } /** * Change the center position. @@ -1578,6 +1729,28 @@ export class Geocoder { } } +/** + * @hidden + */ +@Plugin({ + pluginName: 'GoogleMaps', + pluginRef: 'plugin.google.maps.LocationService', + plugin: 'cordova-plugin-googlemaps', + repo: '' +}) +export class LocationService { + + /** + * Get the current device location without map + * @return {Promise} + */ + static getMyLocation(options?: MyLocationOptions): Promise { + return new Promise((resolve, reject) => { + GoogleMaps.getPlugin().LocationService.getMyLocation(options, resolve); + }); + } +} + /** * @hidden */ @@ -1593,7 +1766,7 @@ export class Encoding { * @deprecation * @hidden */ - decodePath(encoded: string, precision?: number): LatLng { + decodePath(encoded: string, precision?: number): Array { console.error('GoogleMaps', '[deprecated] This method is static. Please use Encoding.decodePath()'); return Encoding.decodePath(encoded, precision); } @@ -1611,16 +1784,20 @@ export class Encoding { * Decodes an encoded path string into a sequence of LatLngs. * @param encoded {string} an encoded path string * @param precision? {number} default: 5 - * @return {LatLng} + * @return {ILatLng[]} */ - static decodePath(encoded: string, precision?: number): LatLng { return; } + static decodePath(encoded: string, precision?: number): Array { + return GoogleMaps.getPlugin().geometry.encoding.decodePath(encoded, precision); + } /** * Encodes a sequence of LatLngs into an encoded path string. * @param path {Array | BaseArrayClass} a sequence of LatLngs * @return {string} */ - static encodePath(path: Array | BaseArrayClass): string { return; } + static encodePath(path: Array | BaseArrayClass): string { + return GoogleMaps.getPlugin().geometry.encoding.encodePath(path); + } } /** @@ -1904,7 +2081,7 @@ export class GoogleMap extends BaseClass { /** * Changes the map div - * @param domNode + * @param domNode {HTMLElement | string} [options] If you want to display the map in an html element, you need to specify an element or id. If omit this argument, the map is detached from webview. */ @InstanceCheck() setDiv(domNode?: HTMLElement | string): void { @@ -2112,12 +2289,19 @@ export class GoogleMap extends BaseClass { fromPointToLatLng(point: any): Promise { return; } /** - * Set true if you want to show the MyLocation button + * Set true if you want to show the MyLocation control (blue dot) * @param enabled {boolean} */ @CordovaInstance({ sync: true }) setMyLocationEnabled(enabled: boolean): void {} + /** + * Set true if you want to show the MyLocation button + * @param enabled {boolean} + */ + @CordovaInstance({ sync: true }) + setMyLocationButtonEnabled(enabled: boolean): void {} + /** * Get the currently focused building * @return {Promise} @@ -2179,6 +2363,7 @@ export class GoogleMap extends BaseClass { /** * Adds a marker + * @param options {MarkerOptions} options * @return {Promise} */ @InstanceCheck() @@ -2203,6 +2388,11 @@ export class GoogleMap extends BaseClass { }); } + /** + * Adds a marker cluster + * @param options {MarkerClusterOptions} options + * @return {Promise} + */ @InstanceCheck() addMarkerCluster(options: MarkerClusterOptions): Promise { return new Promise((resolve, reject) => { @@ -2228,6 +2418,7 @@ export class GoogleMap extends BaseClass { /** * Adds a circle + * @param options {CircleOptions} options * @return {Promise} */ @InstanceCheck() @@ -2254,6 +2445,7 @@ export class GoogleMap extends BaseClass { /** * Adds a polygon + * @param options {PolygonOptions} options * @return {Promise} */ @InstanceCheck() @@ -2279,7 +2471,8 @@ export class GoogleMap extends BaseClass { } /** - * + * Adds a polyline + * @param options {PolylineOptions} options * @return {Promise} */ @InstanceCheck() @@ -2305,6 +2498,8 @@ export class GoogleMap extends BaseClass { } /** + * Adds a tile overlay + * @param options {TileOverlayOptions} options * @return {Promise} */ @InstanceCheck() @@ -2330,6 +2525,8 @@ export class GoogleMap extends BaseClass { } /** + * Adds a ground overlay + * @param options {GroundOverlayOptions} options * @return {Promise} */ @InstanceCheck() @@ -2355,33 +2552,39 @@ export class GoogleMap extends BaseClass { } /** - * Refreshes layout. - * You can execute it, but you don't need to do that. The plugin does this automatically. + * Adds a kml overlay + * @param options {KmlOverlayOptions} options + * @return {Promise} */ - @CordovaInstance({ sync: true }) - refreshLayout(): void {} + @InstanceCheck() + addKmlOverlay(options: KmlOverlayOptions): Promise { + return new Promise((resolve, reject) => { + this._objectInstance.addKmlOverlay(options, (kmlOverlay: any) => { + if (kmlOverlay) { + let overlayId: string = kmlOverlay.getId(); + const overlay = new KmlOverlay(this, kmlOverlay); + this.get('_overlays')[overlayId] = overlay; + kmlOverlay.one(overlayId + '_remove', () => { + if (this.get('_overlays')) { + this.get('_overlays')[overlayId] = null; + overlay.destroy(); + } + }); + resolve(overlay); + } else { + reject(); + } + }); + }); + } /** - * @return {Promise} + * Returns the base64 encoded screen capture of the map. + * @param options {ToDataUrlOptions} [options] options + * @return {Promise} */ @CordovaInstance() - toDataURL(): Promise { return; } - - // /** - // * @return {Promise} - // */ - // @InstanceCheck() - // addKmlOverlay(options: KmlOverlayOptions): Promise { - // return new Promise((resolve, reject) => { - // this._objectInstance.addKmlOverlay(options, (kmlOverlay: any) => { - // if (kmlOverlay) { - // resolve(new KmlOverlay(kmlOverlay)); - // } else { - // reject(); - // } - // }); - // }); - // } + toDataURL(params?: ToDataUrlOptions): Promise { return; } } @@ -2409,7 +2612,7 @@ export class GroundOverlay extends BaseClass { * Return the map instance. * @return {GoogleMap} */ - getMap(): any { return this._map; } + getMap(): GoogleMap { return this._map; } /** * Change the bounds of the GroundOverlay @@ -2575,7 +2778,7 @@ export class Marker extends BaseClass { * Return the map instance. * @return {GoogleMap} */ - getMap(): any { return this._map; } + getMap(): GoogleMap { return this._map; } /** * Set the marker position. @@ -2790,12 +2993,24 @@ export class MarkerCluster extends BaseClass { @CordovaInstance({ sync: true }) getId(): string { return; } + /** + * Add one marker location + * @param marker {MarkerOptions} one location + * @param skipRedraw? {boolean} marker cluster does not redraw the marker cluster if true. + */ @CordovaInstance({ sync: true }) - addMarker(marker: MarkerOptions): void {} + addMarker(marker: MarkerOptions, skipRedraw?: boolean): void {} + /** + * Add marker locations + * @param markers {MarkerOptions[]} multiple locations + */ @CordovaInstance({ sync: true }) addMarkers(markers: MarkerOptions[]): void {} + /** + * Remove the marker cluster + */ @InstanceCheck() remove(): void { this._objectInstance.set('_overlays', undefined); @@ -2808,7 +3023,7 @@ export class MarkerCluster extends BaseClass { * Return the map instance. * @return {GoogleMap} */ - getMap(): any { return this._map; } + getMap(): GoogleMap { return this._map; } } @@ -2836,7 +3051,7 @@ export class Polygon extends BaseClass { * Return the map instance. * @return {GoogleMap} */ - getMap(): any { return this._map; } + getMap(): GoogleMap { return this._map; } /** * Change the polygon points. @@ -3008,7 +3223,7 @@ export class Polyline extends BaseClass { * Return the map instance. * @return {GoogleMap} */ - getMap(): any { return this._map; } + getMap(): GoogleMap { return this._map; } /** * Change the polyline points. @@ -3145,7 +3360,7 @@ export class TileOverlay extends BaseClass { * Return the map instance. * @return {GoogleMap} */ - getMap(): any { return this._map; } + getMap(): GoogleMap { return this._map; } /** * Set whether the tiles should fade in. @@ -3220,102 +3435,82 @@ export class TileOverlay extends BaseClass { } } -// /** -// * @hidden -// */ -// export interface KmlOverlayOptions { -// url?: string; -// preserveViewport?: boolean; -// animation?: boolean; -// } -// /** -// * @hidden -// */ -// export class KmlOverlay { -// -// constructor(private _objectInstance: any) { } -// -// /** -// * Adds an event listener. -// * -// * @return {Observable} -// */ -// addEventListener(eventName: string): Observable { -// return Observable.fromEvent(this._objectInstance, eventName); -// } -// -// /** -// * Adds an event listener that works once. -// * -// * @return {Promise} -// */ -// addListenerOnce(eventName: string): Promise { -// if (!this._objectInstance) { -// return Promise.reject({ error: 'plugin_not_installed' }); -// } -// return new Promise( -// resolve => this._objectInstance.addListenerOnce(eventName, resolve) -// ); -// } -// -// /** -// * Gets a value -// * @param key -// */ -// @CordovaInstance({ sync: true }) -// get(key: string): any { return; } -// -// /** -// * Sets a value -// * @param key -// * @param value -// */ -// @CordovaInstance({ sync: true }) -// set(key: string, value: any): void { } -// -// /** -// * Listen to a map event. -// * -// * @return {Observable} -// */ -// on(eventName: string): Observable { -// if (!this._objectInstance) { -// return new Observable((observer) => { -// observer.error({ error: 'plugin_not_installed' }); -// }); -// } -// -// return new Observable( -// (observer) => { -// this._objectInstance.on(eventName, observer.next.bind(observer)); -// return () => this._objectInstance.off(event); -// } -// ); -// } -// -// /** -// * Listen to a map event only once. -// * -// * @return {Promise} -// */ -// one(eventName: string): Promise { -// if (!this._objectInstance) { -// return Promise.reject({ error: 'plugin_not_installed' }); -// } -// return new Promise( -// resolve => this._objectInstance.one(eventName, resolve) -// ); -// } -// -// /** -// * Clears all stored values -// */ -// @CordovaInstance({ sync: true }) -// empty(): void { } -// -// @CordovaInstance({ sync: true }) -// remove(): void { } -// -// @CordovaInstance({ sync: true }) -// getOverlays(): Array { return; } -// } +/** + * @hidden + */ +export class KmlOverlay extends BaseClass { + + private _map: GoogleMap; + + constructor(_map: GoogleMap, _objectInstance: any) { + super(); + this._map = _map; + this._objectInstance = _objectInstance; + + Object.defineProperty(self, 'camera', { + value: this._objectInstance.camera, + writable: false + }); + Object.defineProperty(self, 'kmlData', { + value: this._objectInstance.kmlData, + writable: false + }); + } + + /** + * Returns the viewport to contains all overlays + */ + @CordovaInstance({ sync: true }) + getDefaultViewport(): CameraPosition { return; } + + /** + * Return the ID of instance. + * @return {string} + */ + @CordovaInstance({ sync: true }) + getId(): string { return; } + + /** + * Return the map instance. + * @return {GoogleMap} + */ + getMap(): GoogleMap { return this._map; } + + /** + * Change visibility of the polyline + * @param visible {boolean} + */ + @CordovaInstance({ sync: true }) + setVisible(visible: boolean): void {} + + /** + * Return true if the polyline is visible + * @return {boolean} + */ + @CordovaInstance({ sync: true }) + getVisible(): boolean { return; } + + /** + * Change clickablity of the KmlOverlay + * @param clickable {boolean} + */ + @CordovaInstance({ sync: true }) + setClickable(clickable: boolean): void {} + + /** + * Return true if the KmlOverlay is clickable + * @return {boolean} + */ + @CordovaInstance({ sync: true }) + getClickable(): boolean { return; } + + /** + * Remove the KmlOverlay + */ + @InstanceCheck() + remove(): void { + delete this._objectInstance.getMap().get('_overlays')[this.getId()]; + this._objectInstance.remove(); + this.destroy(); + } +} diff --git a/src/@ionic-native/plugins/health-kit/index.ts b/src/@ionic-native/plugins/health-kit/index.ts index 3184729af..aabd348ec 100644 --- a/src/@ionic-native/plugins/health-kit/index.ts +++ b/src/@ionic-native/plugins/health-kit/index.ts @@ -6,7 +6,7 @@ export interface HealthKitOptions { * HKWorkoutActivityType constant * Read more here: https://developer.apple.com/library/ios/documentation/HealthKit/Reference/HKWorkout_Class/#//apple_ref/c/tdef/HKWorkoutActivityType */ - activityType?: string; // + activityType?: string; /** * 'hour', 'week', 'year' or 'day', default 'day' @@ -18,6 +18,12 @@ export interface HealthKitOptions { */ amount?: number; + /** + * specifies if the data returned by querySampleType() should be sorted by + * end date in ascending order, default is false + */ + ascending?: boolean; + /** * */ @@ -63,6 +69,11 @@ export interface HealthKitOptions { */ extraData?: any; + /** + * limits the maximum number of records returned by querySampleType() + */ + limit?: number; + /** * */ diff --git a/src/@ionic-native/plugins/hot-code-push/index.ts b/src/@ionic-native/plugins/hot-code-push/index.ts new file mode 100644 index 000000000..07cfb7b19 --- /dev/null +++ b/src/@ionic-native/plugins/hot-code-push/index.ts @@ -0,0 +1,270 @@ +import { Injectable } from '@angular/core'; +import { Cordova, Plugin, IonicNativePlugin, CordovaCheck } from '@ionic-native/core'; +import { Observable } from 'rxjs/Observable'; + +declare var chcp: any; + +export interface HotCodePushVersion { + /** + * Application's version name. This version is visible to the user on the stores. + */ + appVersion: string; + /** + * Application's build version number. + */ + buildVersion: string; + /** + * Version of the web content, that is displayed to the user. Basically, value of the release property from chcp.json file in your local www folder. + */ + currentWebVersion: string; + /** + * Previous web content version. This is a version of our backup. Can be empty, if there were no updates installed. + */ + previousWebVersion: string; + /** + * Version number of the web content, that was loaded by the plugin and ready to be installed. Basically, value of the release property from chcp.json file on your server. Can be empty, if no update is waiting for installation. + */ + readyToInstallWebVersion: string; +} + +export interface HotCodePushUpdate { + /** + * Current version installed. + */ + currentVersion: string; + /** + * Available version to replace the current one. + */ + readyToInstallVersion: string; +} + +export interface HotCodePushRequestOptions { + /** + * Url of the chcp.json config on the server. Plugin will use this one instead of from the config.xml. + */ + 'config-file'?: string; + /** + * Additional HTTP headers, that will be added to all requests in update download process, including loading configs and new/changed files. + */ + 'request-headers'?: {[key: string]: any}; +} + +/** + * For description on error codes, please visit https://github.com/nordnet/cordova-hot-code-push/wiki/Error-codes + */ +export enum ErrorCode { + NOTHING_TO_INSTALL = 1, + NOTHING_TO_UPDATE = 2, + FAILED_TO_DOWNLOAD_APPLICATION_CONFIG = -1, + APPLICATION_BUILD_VERSION_TOO_LOW = -2, + FAILED_TO_DOWNLOAD_CONTENT_MANIFEST = -3, + FAILED_TO_DOWNLOAD_UPDATE_FILES = -4, + FAILED_TO_MOVE_LOADED_FILES_TO_INSTALLATION_FOLDER = -5, + UPDATE_IS_INVALID = -6, + FAILED_TO_COPY_FILES_FROM_PREVIOUS_RELEASE = -7, + FAILED_TO_COPY_NEW_CONTENT_FILES = -8, + LOCAL_VERSION_OF_APPLICATION_CONFIG_NOT_FOUND = -9, + LOCAL_VERSION_OF_MANIFEST_NOT_FOUND = -10, + LOADED_VERSION_OF_APPLICATION_CONFIG_NOT_FOUND = -11, + LOADED_VERSION_OF_MANIFEST_NOT_FOUND = -12, + FAILED_TO_INSTALL_ASSETS_ON_EXTERNAL_STORAGE = -13, + CANT_INSTALL_WHILE_DOWNLOAD_IN_PROGRESS = -14, + CANT_DOWNLOAD_UPDATE_WHILE_INSTALLATION_IN_PROGRESS = -15, + INSTALLATION_ALREADY_IN_PROGRESS = -16, + DOWNLOAD_ALREADY_IN_PROGRESS = -17, + ASSETS_FOLDER_IS_NOT_YET_INSTALLED = -18, + NEW_APPLICATION_CONFIG_IS_INVALID = -19 +} + +export interface HotCodePushError { + code: ErrorCode; + description: string; +} + +export interface HotCodePushEventData { + details?: { + error?: HotCodePushError; + }; +}; + +/** + * @name Hot Code Push + * @description + * HotCodePush plugin for Cordova that supports iOS and Android. This plugin allows you to keep your html, css and js files synced with your server. + * + * For more info, please see the detailed wiki https://github.com/nordnet/cordova-hot-code-push/wiki + * + * @usage + * ```typescript + * import { HotCodePush } from '@ionic-native/hot-code-push'; + * + * constructor(private hotCodePush: HotCodePush) { } + * + * ... + * + * hotCodePush.fetchUpdate(options).then(data => { console.log('Update available'); }); + * + * ``` + */ +@Plugin({ + pluginName: 'HotCodePush', + plugin: 'cordova-hot-code-push', + pluginRef: 'chcp', + repo: 'https://github.com/nordnet/cordova-hot-code-push', + platforms: ['Android', 'iOS'] +}) +@Injectable() +export class HotCodePush extends IonicNativePlugin { + /** + * Show dialog with the request to update application through the Store (App Store or Google Play). + * @param message {string} Message to show in the dialog + * @returns {Promise} Resolves when the user is redirected to the store, rejects if the user declines. + */ + @Cordova() + requestApplicationUpdate(message: string): Promise { return; } + + /** + * Download updates from the server-side. + * @param options {HotCodePushRequestOptions} Additional options to the request. If not set - preferences from config.xml are used. + * @returns {Promise} Resolves if there is an update available, rejects otherwise. + */ + @CordovaCheck() + fetchUpdate(options?: HotCodePushRequestOptions): Promise { + return new Promise((resolve, reject) => { + HotCodePush.getPlugin().fetchUpdate((error: HotCodePushError, data: any) => { + if (error) { + reject(error); + } else { + resolve(data); + } + }, options); + }); + } + + /** + * Install update if there is anything to install. + * @returns {Promise} Resolves when the update is installed. + */ + @Cordova({ + callbackStyle: 'node' + }) + installUpdate(): Promise { return; } + + /** + * Check if update was loaded and ready to be installed. + * @returns {Promise} Resolves if an update is ready, rejects if there is no update. + */ + @Cordova({ + callbackStyle: 'node' + }) + isUpdateAvailableForInstallation(): Promise { return; } + + /** + * Gets information about the app's versions. + * @returns {Promise} Resolves with the information about the versions. + */ + @Cordova({ + callbackStyle: 'node' + }) + getVersionInfo(): Promise { return; } + + /** + * Event sent when new release was successfully loaded and ready to be installed. + * @returns {Observable} + */ + @Cordova({ + eventObservable: true, + event: 'chcp_updateIsReadyToInstall' + }) + onUpdateIsReadyToInstall(): Observable { return; } + + /** + * Event sent when plugin couldn't load update from the server. Error details are attached to the event. + * @returns {Observable} + */ + @Cordova({ + eventObservable: true, + event: 'chcp_updateLoadFailed' + }) + onUpdateLoadFailed(): Observable { return; } + + /** + * Event sent when we successfully loaded application config from the server, but there is nothing new is available. + * @returns {Observable} + */ + @Cordova({ + eventObservable: true, + event: 'chcp_nothingToUpdate' + }) + onNothingToUpdate(): Observable { return; } + + /** + * Event sent when an update is about to be installed. + * @returns {Observable} + */ + @Cordova({ + eventObservable: true, + event: 'chcp_beforeInstall' + }) + onBeforeInstall(): Observable { return; } + + /** + * Event sent when update was successfully installed. + * @returns {Observable} + */ + @Cordova({ + eventObservable: true, + event: 'chcp_updateInstalled' + }) + onUpdateInstalled(): Observable { return; } + + /** + * Event sent when update installation failed. Error details are attached to the event. + * @returns {Observable} + */ + @Cordova({ + eventObservable: true, + event: 'chcp_updateInstallFailed' + }) + onUpdateInstallFailed(): Observable { return; } + + /** + * Event sent when there is nothing to install. Probably, nothing was loaded before that. + * @returns {Observable} + */ + @Cordova({ + eventObservable: true, + event: 'chcp_nothingToInstall' + }) + onNothingToInstall(): Observable { return; } + + /** + * Event sent when plugin is about to start installing bundle content on the external storage. + * @returns {Observable} + */ + @Cordova({ + eventObservable: true, + event: 'chcp_beforeAssetsInstalledOnExternalStorage' + }) + onBeforeAssetsInstalledOnExternalStorage(): Observable { return; } + + /** + * Event sent when plugin successfully copied web project files from bundle on the external storage. Most likely you will use it for debug purpose only. Or even never. + * @returns {Observable} + */ + @Cordova({ + eventObservable: true, + event: 'chcp_assetsInstalledOnExternalStorage' + }) + onAssetsInstalledOnExternalStorage(): Observable { return; } + + /** + * Event sent when plugin couldn't copy files from bundle on the external storage. If this happens - plugin won't work. Can occur when there is not enough free space on the device. + * @returns {Observable} + */ + @Cordova({ + eventObservable: true, + event: 'chcp_assetsInstallationError' + }) + onAssetsInstallationError(): Observable { return; } +} diff --git a/src/@ionic-native/plugins/http/index.ts b/src/@ionic-native/plugins/http/index.ts index 56c84069d..b9a1bdcf9 100644 --- a/src/@ionic-native/plugins/http/index.ts +++ b/src/@ionic-native/plugins/http/index.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; export interface HTTPResponse { /** @@ -66,7 +66,6 @@ export interface HTTPResponse { }) @Injectable() export class HTTP extends IonicNativePlugin { - /** * This returns an object representing a basic HTTP Authorization header of the form. * @param username {string} Username @@ -74,7 +73,12 @@ export class HTTP extends IonicNativePlugin { * @returns {Object} an object representing a basic HTTP Authorization header of the form {'Authorization': 'Basic base64encodedusernameandpassword'} */ @Cordova({ sync: true }) - getBasicAuthHeader(username: string, password: string): { Authorization: string; } { return; } + getBasicAuthHeader( + username: string, + password: string + ): { Authorization: string } { + return; + } /** * This sets up all future requests to use Basic HTTP authentication with the given username and password. @@ -82,7 +86,7 @@ export class HTTP extends IonicNativePlugin { * @param password {string} Password */ @Cordova({ sync: true }) - useBasicAuth(username: string, password: string): void { } + useBasicAuth(username: string, password: string): void {} /** * Set a header for all future requests. Takes a header and a value. @@ -90,20 +94,20 @@ export class HTTP extends IonicNativePlugin { * @param value {string} The value of the header */ @Cordova({ sync: true }) - setHeader(header: string, value: string): void { } + setHeader(header: string, value: string): void {} /** * Set the data serializer which will be used for all future POST and PUT requests. Takes a string representing the name of the serializer. * @param serializer {string} The name of the serializer. Can be urlencoded or json */ @Cordova({ sync: true }) - setDataSerializer(serializer: string): void { } + setDataSerializer(serializer: string): void {} /** * Clear all cookies */ @Cordova({ sync: true }) - clearCookies(): void { } + clearCookies(): void {} /** * Remove cookies @@ -111,33 +115,35 @@ export class HTTP extends IonicNativePlugin { * @param cb */ @Cordova({ sync: true }) - removeCookies(url: string, cb: () => void): void { } + removeCookies(url: string, cb: () => void): void {} /** * Disable following redirects automatically * @param disable {boolean} Set to true to disable following redirects automatically */ @Cordova({ sync: true }) - disableRedirect(disable: boolean): void { } + disableRedirect(disable: boolean): void {} /** * Set request timeout * @param timeout {number} The timeout in seconds. Default 60 */ @Cordova({ sync: true }) - setRequestTimeout(timeout: number): void { } + setRequestTimeout(timeout: number): void {} /** * Enable or disable SSL Pinning. This defaults to false. * - * To use SSL pinning you must include at least one .cer SSL certificate in your app project. You can pin to your server certificate or to one of the issuing CA certificates. For ios include your certificate in the root level of your bundle (just add the .cer file to your project/target at the root level). For android include your certificate in your project's platforms/android/assets folder. In both cases all .cer files found will be loaded automatically. If you only have a .pem certificate see this stackoverflow answer. You want to convert it to a DER encoded certificate with a .cer extension. + * To use SSL pinning you must include at least one .cer SSL certificate in your app project. You can pin to your server certificate or to one of the issuing CA certificates. For ios include your certificate in the root level of your bundle (just add the .cer file to your project/target at the root level). For android include your certificate in your project's platforms/android/assets folder. In both cases all .cer files found will be loaded automatically. If you only have a .pem certificate see this [stackoverflow answer](https://stackoverflow.com/questions/16583428/how-to-convert-an-ssl-certificate-in-linux/16583429#16583429). You want to convert it to a DER encoded certificate with a .cer extension. * * As an alternative, you can store your .cer files in the www/certificates folder. * @param enable {boolean} Set to true to enable * @returns {Promise} returns a promise that will resolve on success, and reject on failure */ @Cordova() - enableSSLPinning(enable: boolean): Promise { return; } + enableSSLPinning(enable: boolean): Promise { + return; + } /** * Accept all SSL certificates. Or disabled accepting all certificates. Defaults to false. @@ -145,7 +151,9 @@ export class HTTP extends IonicNativePlugin { * @returns {Promise} returns a promise that will resolve on success, and reject on failure */ @Cordova() - acceptAllCerts(accept: boolean): Promise { return; } + acceptAllCerts(accept: boolean): Promise { + return; + } /** * Make a POST request @@ -155,7 +163,9 @@ export class HTTP extends IonicNativePlugin { * @returns {Promise} returns a promise that resolve on success, and reject on failure */ @Cordova() - post(url: string, body: any, headers: any): Promise { return; } + post(url: string, body: any, headers: any): Promise { + return; + } /** * Make a GET request @@ -165,7 +175,9 @@ export class HTTP extends IonicNativePlugin { * @returns {Promise} returns a promise that resolve on success, and reject on failure */ @Cordova() - get(url: string, parameters: any, headers: any): Promise { return; } + get(url: string, parameters: any, headers: any): Promise { + return; + } /** * Make a PUT request @@ -175,7 +187,9 @@ export class HTTP extends IonicNativePlugin { * @returns {Promise} returns a promise that resolve on success, and reject on failure */ @Cordova() - put(url: string, body: any, headers: any): Promise { return; } + put(url: string, body: any, headers: any): Promise { + return; + } /** * Make a PATCH request @@ -185,7 +199,9 @@ export class HTTP extends IonicNativePlugin { * @returns {Promise} returns a promise that resolve on success, and reject on failure */ @Cordova() - patch(url: string, body: any, headers: any): Promise { return; } + patch(url: string, body: any, headers: any): Promise { + return; + } /** * Make a DELETE request @@ -195,7 +211,9 @@ export class HTTP extends IonicNativePlugin { * @returns {Promise} returns a promise that resolve on success, and reject on failure */ @Cordova() - delete(url: string, parameters: any, headers: any): Promise { return; } + delete(url: string, parameters: any, headers: any): Promise { + return; + } /** * Make a HEAD request @@ -205,7 +223,9 @@ export class HTTP extends IonicNativePlugin { * @returns {Promise} returns a promise that resolve on success, and reject on failure */ @Cordova() - head(url: string, parameters: any, headers: any): Promise { return; } + head(url: string, parameters: any, headers: any): Promise { + return; + } /** * @@ -217,7 +237,15 @@ export class HTTP extends IonicNativePlugin { * @returns {Promise} returns a promise that resolve on success, and reject on failure */ @Cordova() - uploadFile(url: string, body: any, headers: any, filePath: string, name: string): Promise { return; } + uploadFile( + url: string, + body: any, + headers: any, + filePath: string, + name: string + ): Promise { + return; + } /** * @@ -228,5 +256,12 @@ export class HTTP extends IonicNativePlugin { * @returns {Promise} returns a promise that resolve on success, and reject on failure */ @Cordova() - downloadFile(url: string, body: any, headers: any, filePath: string): Promise { return; } + downloadFile( + url: string, + body: any, + headers: any, + filePath: string + ): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/image-resizer/index.ts b/src/@ionic-native/plugins/image-resizer/index.ts index 2928e119c..165ffbcd4 100644 --- a/src/@ionic-native/plugins/image-resizer/index.ts +++ b/src/@ionic-native/plugins/image-resizer/index.ts @@ -31,8 +31,7 @@ export interface ImageResizerOptions { quality?: number; /** - * A custom name for the file. Default name is a timestamp - * (Android and Windows only) + * A custom name for the file. Default name is a timestamp. You have to set this value on iOS */ fileName?: string; } diff --git a/src/@ionic-native/plugins/in-app-browser/index.ts b/src/@ionic-native/plugins/in-app-browser/index.ts index d4e0a1bfc..beb4d8600 100644 --- a/src/@ionic-native/plugins/in-app-browser/index.ts +++ b/src/@ionic-native/plugins/in-app-browser/index.ts @@ -24,6 +24,10 @@ export interface InAppBrowserOptions { mediaPlaybackRequiresUserAction?: 'yes' | 'no'; /** (Android Only) Set to yes to make InAppBrowser WebView to pause/resume with the app to stop background audio (this may be required to avoid Google Play issues) */ shouldPauseOnSuspend?: 'yes' | 'no'; + /** (Android Only) Set to yes to show a close button in the footer similar to the iOS Done button. The close button will appear the same as for the header hence use closebuttoncaption and closebuttoncolor to set its properties */ + footer?: 'yes' | 'no'; + /** (Android Only) Set to a valid hex color string, for example #00ff00 or #CC00ff00 (#aarrggbb) , and it will change the footer color from default. Only has effect if user has footer set to yes */ + footercolor?: string; /** (iOS Only) Set to a string to use as the Done button's caption. Note that you need to localize this value yourself. */ closebuttoncaption?: string; /** (iOS Only) Set to yes or no (default is no). Turns on/off the UIWebViewBounce property. */ @@ -166,7 +170,12 @@ export class InAppBrowserObject { * const browser = this.iab.create('https://ionicframework.com/'); * * browser.executeScript(...); + * * browser.insertCSS(...); + * browser.on('loadstop').subscribe(event => { + * browser.insertCSS({ code: "body{color: red;" }); + * }); + * * browser.close(); * * ``` diff --git a/src/@ionic-native/plugins/index-app-content/index.ts b/src/@ionic-native/plugins/index-app-content/index.ts index 250245ef2..3e8e8399c 100644 --- a/src/@ionic-native/plugins/index-app-content/index.ts +++ b/src/@ionic-native/plugins/index-app-content/index.ts @@ -1,6 +1,5 @@ import { Injectable } from '@angular/core'; -import { Plugin, Cordova, CordovaFunctionOverride, IonicNativePlugin } from '@ionic-native/core'; -import { Observable } from 'rxjs/Observable'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; export interface IndexItem { domain: string; @@ -72,7 +71,6 @@ export interface IndexItem { }) @Injectable() export class IndexAppContent extends IonicNativePlugin { - /** * The option to index app content might not be available at all due to device limitations or user settings. * Therefore it's highly recommended to check upfront if indexing is possible. @@ -93,16 +91,6 @@ export class IndexAppContent extends IonicNativePlugin { return; } - /** - * If user taps on a search result in spotlight then the app will be launched. - * You can register a Javascript handler to get informed when this happens. - * @returns {Observable} returns an observable that notifies you when he user presses on the home screen icon - */ - @CordovaFunctionOverride() - onItemPressed(): Observable { - return; - } - /** * Clear all items stored for a given array of domains * @param {Array} Array of domains to clear @@ -132,5 +120,4 @@ export class IndexAppContent extends IonicNativePlugin { setIndexingInterval(intervalMinutes: number) { return; } - } diff --git a/src/@ionic-native/plugins/intercom/index.ts b/src/@ionic-native/plugins/intercom/index.ts index 8d6c4dcc0..652841ce2 100644 --- a/src/@ionic-native/plugins/intercom/index.ts +++ b/src/@ionic-native/plugins/intercom/index.ts @@ -60,6 +60,7 @@ export class Intercom extends IonicNativePlugin { * @param secureHash {string} * @param secureData {any} * @return {Promise} Returns a promise + * @deprecated Use setUserHash instead as of Intercom Cordova 4.0.0 and higher https://github.com/intercom/intercom-cordova/blob/master/CHANGELOG.md#400-2017-08-29 */ @Cordova() setSecureMode(secureHash: string, secureData: any): Promise { return; } diff --git a/src/@ionic-native/plugins/is-debug/index.ts b/src/@ionic-native/plugins/is-debug/index.ts index 59233a7a6..4fda44f9c 100644 --- a/src/@ionic-native/plugins/is-debug/index.ts +++ b/src/@ionic-native/plugins/is-debug/index.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; /** * @name Is Debug @@ -16,8 +16,8 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; * ... * * this.isDebug.getIsDebug() - * .then((isDebug: boolean) => console.log('Is debug:', isDebug)) - * .catch((error: any) => console.error(error)); + * .then(isDebug => console.log('Is debug:', isDebug)) + * .catch(err => console.error(err)); * * ``` */ @@ -30,7 +30,6 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; }) @Injectable() export class IsDebug extends IonicNativePlugin { - /** * Determine if an app was installed via xcode / eclipse / the ionic CLI etc * @returns {Promise} Returns a promise that resolves with true if the app was installed via xcode / eclipse / the ionic CLI etc. It will resolve to false if the app was downloaded from the app / play store by the end user. @@ -39,5 +38,4 @@ export class IsDebug extends IonicNativePlugin { getIsDebug(): Promise { return; } - } diff --git a/src/@ionic-native/plugins/jins-meme/index.ts b/src/@ionic-native/plugins/jins-meme/index.ts index 282e6a312..c5121eddb 100644 --- a/src/@ionic-native/plugins/jins-meme/index.ts +++ b/src/@ionic-native/plugins/jins-meme/index.ts @@ -31,10 +31,10 @@ declare const cordova: any; * ``` */ @Plugin({ - pluginName: 'JINS MEME ES', - plugin: 'cordova-plugin-jins-meme-es', - pluginRef: 'com.jins_jp.meme.plugin', - repo: 'https://github.com/BlyncSync/cordova-plugin-jins-meme-es', + pluginName: 'JINS MEME', + plugin: 'cordova-plugin-jins-meme', + pluginRef: 'JinsMemePlugin', + repo: 'https://github.com/BlyncSync/cordova-plugin-jins-meme', platforms: ['Android', 'iOS'] }) @Injectable() @@ -77,7 +77,7 @@ export class JinsMeme extends IonicNativePlugin { connect(target: string): Observable { return new Observable((observer: any) => { let data = cordova.plugins.JinsMemePlugin.connect(target, observer.next.bind(observer), observer.complete.bind(observer), observer.error.bind(observer)); - return () => console.log(data); + return data; }); } /** diff --git a/src/@ionic-native/plugins/local-notifications/index.ts b/src/@ionic-native/plugins/local-notifications/index.ts old mode 100644 new mode 100755 index bef5c4fda..0aa51fe0d --- a/src/@ionic-native/plugins/local-notifications/index.ts +++ b/src/@ionic-native/plugins/local-notifications/index.ts @@ -94,6 +94,11 @@ export interface ILocalNotification { * Notification priority. */ priority?: number; + + /** + * Is a silent notification + */ + silent?: boolean; } /** @@ -300,11 +305,11 @@ export class LocalNotifications extends IonicNativePlugin { getAllTriggered(): Promise> { return; } /** - * Register permission to show notifications if not already granted. + * Request permission to show notifications if not already granted. * @returns {Promise} */ @Cordova() - registerPermission(): Promise { return; } + requestPermission(): Promise { return; } /** * Informs if the app has the permission to show notifications. diff --git a/src/@ionic-native/plugins/mixpanel/index.ts b/src/@ionic-native/plugins/mixpanel/index.ts index debf12a63..af5f2432c 100644 --- a/src/@ionic-native/plugins/mixpanel/index.ts +++ b/src/@ionic-native/plugins/mixpanel/index.ts @@ -72,6 +72,13 @@ export class Mixpanel extends IonicNativePlugin { @Cordova() init(token: string): Promise { return; } + /** + * + * @returns {Promise} + */ + @Cordova() + getSuperProperties(): Promise { return; } + /** * * @param superProperties {any} @@ -80,6 +87,22 @@ export class Mixpanel extends IonicNativePlugin { @Cordova() registerSuperProperties(superProperties: any): Promise { return; } + /** + * + * @param superProperties {any} + * @returns {Promise} + */ + @Cordova() + registerSuperPropertiesOnce(superProperties: any): Promise { return; } + + /** + * + * @param superPropertyName {string} + * @returns {Promise} + */ + @Cordova() + unregisterSuperProperty(superPropertyName: string): Promise { return; } + /** * * @returns {Promise} diff --git a/src/@ionic-native/plugins/music-controls/index.ts b/src/@ionic-native/plugins/music-controls/index.ts index 383b45d8b..0304de87f 100644 --- a/src/@ionic-native/plugins/music-controls/index.ts +++ b/src/@ionic-native/plugins/music-controls/index.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; import { Observable } from 'rxjs/Observable'; export interface MusicControlsOptions { @@ -20,6 +20,12 @@ export interface MusicControlsOptions { duration?: number; elapsed?: number; ticker?: string; + playIcon?: string; + pauseIcon?: string; + prevIcon?: string; + nextIcon?: string; + closeIcon?: string; + notificationIcon?: string; } /** @@ -63,7 +69,15 @@ export interface MusicControlsOptions { * * // Android only, optional * // text displayed in the status bar when the notification (and the ticker) are updated, optional - * ticker : 'Now playing "Time is Running Out"' + * ticker : 'Now playing "Time is Running Out"', + * // All icons default to their built-in android equivalents + * // The supplied drawable name, e.g. 'media_play', is the name of a drawable found under android/res/drawable* folders + * playIcon: 'media_play', + * pauseIcon: 'media_pause', + * prevIcon: 'media_prev', + * nextIcon: 'media_next', + * closeIcon: 'media_close', + * notificationIcon: 'notification' * }); * * this.musicControls.subscribe().subscribe(action => { @@ -140,21 +154,24 @@ export interface MusicControlsOptions { }) @Injectable() export class MusicControls extends IonicNativePlugin { - /** * Create the media controls * @param options {MusicControlsOptions} * @returns {Promise} */ @Cordova() - create(options: MusicControlsOptions): Promise { return; } + create(options: MusicControlsOptions): Promise { + return; + } /** * Destroy the media controller * @returns {Promise} */ @Cordova() - destroy(): Promise { return; } + destroy(): Promise { + return; + } /** * Subscribe to the events of the media controller @@ -163,34 +180,36 @@ export class MusicControls extends IonicNativePlugin { @Cordova({ observable: true }) - subscribe(): Observable { return; } + subscribe(): Observable { + return; + } /** * Start listening for events, this enables the Observable from the subscribe method */ @Cordova({ sync: true }) - listen(): void { } + listen(): void {} /** * Toggle play/pause: * @param isPlaying {boolean} */ @Cordova() - updateIsPlaying(isPlaying: boolean): void { } + updateIsPlaying(isPlaying: boolean): void {} /** - * Update elapsed time, optionally toggle play/pause: - * @param args {Object} - */ + * Update elapsed time, optionally toggle play/pause: + * @param args {Object} + */ @Cordova({ platforms: ['iOS'] }) - updateElapsed(args: { elapsed: string; isPlaying: boolean; }): void { } + updateElapsed(args: { elapsed: string; isPlaying: boolean }): void {} /** * Toggle dismissable: * @param dismissable {boolean} */ @Cordova() - updateDismissable(dismissable: boolean): void { } + updateDismissable(dismissable: boolean): void {} } diff --git a/src/@ionic-native/plugins/navigation-bar/index.ts b/src/@ionic-native/plugins/navigation-bar/index.ts index 784f3501b..00f4c8070 100644 --- a/src/@ionic-native/plugins/navigation-bar/index.ts +++ b/src/@ionic-native/plugins/navigation-bar/index.ts @@ -17,7 +17,7 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; * ... * * let autoHide: boolean = true; - * this.navigationBar.hide(autoHide); + * this.navigationBar.setUp(autoHide); * ``` */ @Plugin({ diff --git a/src/@ionic-native/plugins/onesignal/index.ts b/src/@ionic-native/plugins/onesignal/index.ts index 7356e8c17..e14883b8e 100644 --- a/src/@ionic-native/plugins/onesignal/index.ts +++ b/src/@ionic-native/plugins/onesignal/index.ts @@ -97,13 +97,13 @@ export enum OSLockScreenVisibility { * Fully visible (default) */ Public = 1, - /** - * Contents are hidden - */ + /** + * Contents are hidden + */ Private = 0, - /** - * Not shown - */ + /** + * Not shown + */ Secret = -1 } @@ -115,13 +115,13 @@ export enum OSDisplayType { * notification is silent, or inFocusDisplaying is disabled. */ None = 0, - /** - * (**DEFAULT**) - native alert dialog display. - */ + /** + * (**DEFAULT**) - native alert dialog display. + */ InAppAlert = 1, - /** - * native notification display. - */ + /** + * native notification display. + */ Notification = 2 } @@ -307,13 +307,23 @@ export enum OSActionType { * #### Icons * If you want to use generated icons with command `ionic cordova resources`: * - * 1. Add a file to your `hooks` directory inside the `after_prepare` folder called `030_copy_android_notification_icons.js` + * 1. Add a file to your `hooks` directory called `copy_android_notification_icons.js` * - * 2. Put the following code in it: + * 2. Configure the hook in your config.xml + * ``` + * + * + * + * ``` + * + * 3. Put the following code in it: * * ``` * #!/usr/bin/env node - * + + * var fs = require('fs'); + * var path = require('path'); + * var filestocopy = [{ * "resources/android/icon/drawable-hdpi-icon.png": * "platforms/android/res/drawable-hdpi/ic_stat_onesignal_default.png" @@ -330,26 +340,27 @@ export enum OSActionType { * "resources/android/icon/drawable-xxxhdpi-icon.png": * "platforms/android/res/drawable-xxxhdpi/ic_stat_onesignal_default.png" * } ]; - * - * var fs = require('fs'); - * var path = require('path'); - * - * // no need to configure below - * var rootdir = process.argv[2]; - * - * filestocopy.forEach(function(obj) { - * Object.keys(obj).forEach(function(key) { - * var val = obj[key]; - * var srcfile = path.join(rootdir, key); - * var destfile = path.join(rootdir, val); - * //console.log("copying "+srcfile+" to "+destfile); - * var destdir = path.dirname(destfile); - * if (fs.existsSync(srcfile) && fs.existsSync(destdir)) { - * fs.createReadStream(srcfile).pipe( - * fs.createWriteStream(destfile)); - * } + + * module.exports = function(context) { + + * // no need to configure below + * var rootdir = context.opts.projectRoot; + + * filestocopy.forEach(function(obj) { + * Object.keys(obj).forEach(function(key) { + * var val = obj[key]; + * var srcfile = path.join(rootdir, key); + * var destfile = path.join(rootdir, val); + * console.log("copying "+srcfile+" to "+destfile); + * var destdir = path.dirname(destfile); + * if (fs.existsSync(srcfile) && fs.existsSync(destdir)) { + * fs.createReadStream(srcfile).pipe( + * fs.createWriteStream(destfile)); + * } + * }); * }); - * }); + + * }; * ``` * * 3. From the root of your project make the file executable: @@ -397,14 +408,13 @@ export enum OSActionType { }) @Injectable() export class OneSignal extends IonicNativePlugin { - /** * constants to use in inFocusDisplaying() */ OSInFocusDisplayOption = { None: 0, - InAppAlert : 1, - Notification : 2 + InAppAlert: 1, + Notification: 2 }; /** @@ -415,7 +425,9 @@ export class OneSignal extends IonicNativePlugin { * @returns {any} */ @Cordova({ sync: true }) - startInit(appId: string, googleProjectNumber?: string): any { return; } + startInit(appId: string, googleProjectNumber?: string): any { + return; + } /** * Callback to run when a notification is received, whether it was displayed or not. @@ -425,7 +437,9 @@ export class OneSignal extends IonicNativePlugin { @Cordova({ observable: true }) - handleNotificationReceived(): Observable { return; } + handleNotificationReceived(): Observable { + return; + } /** * Callback to run when a notification is tapped on from the notification shade (**ANDROID**) or notification @@ -437,7 +451,9 @@ export class OneSignal extends IonicNativePlugin { @Cordova({ observable: true }) - handleNotificationOpened(): Observable { return; } + handleNotificationOpened(): Observable { + return; + } /** * **iOS** - Settings for iOS apps @@ -457,7 +473,9 @@ export class OneSignal extends IonicNativePlugin { iOSSettings(settings: { kOSSettingsKeyAutoPrompt: boolean; kOSSettingsKeyInAppLaunchURL: boolean; - }): any { return; } + }): any { + return; + } /** * Must be called after `startInit` to complete initialization of OneSignal. @@ -465,7 +483,9 @@ export class OneSignal extends IonicNativePlugin { * @returns {any} */ @Cordova({ sync: true }) - endInit(): any { return; } + endInit(): any { + return; + } /** * Prompt the user for notification permissions. Callback fires as soon as the user accepts or declines notifications. @@ -474,7 +494,9 @@ export class OneSignal extends IonicNativePlugin { @Cordova({ platforms: ['iOS'] }) - promptForPushNotificationsWithUserResponse(): Promise { return; } + promptForPushNotificationsWithUserResponse(): Promise { + return; + } /** * Retrieve a list of tags that have been set on the user from the OneSignal server. @@ -484,7 +506,9 @@ export class OneSignal extends IonicNativePlugin { * @returns {Promise} Returns a Promise that resolves when tags are recieved. */ @Cordova() - getTags(): Promise { return; } + getTags(): Promise { + return; + } /** * Lets you retrieve the OneSignal user id and device token. @@ -497,8 +521,9 @@ export class OneSignal extends IonicNativePlugin { * pushToken {string} A push token is a Google/Apple assigned identifier(unique per device per app). */ @Cordova() - getIds(): Promise<{userId: string; pushToken: string}> { return; } - + getIds(): Promise<{ userId: string; pushToken: string }> { + return; + } /** * Tag a user based on an app event of your choosing so later you can create segments on [onesignal.com](https://onesignal.com/) to target these users. @@ -508,7 +533,7 @@ export class OneSignal extends IonicNativePlugin { * @param {string} Value to set on the key. NOTE: Passing in a blank String deletes the key, you can also call deleteTag. */ @Cordova({ sync: true }) - sendTag(key: string, value: string): void { } + sendTag(key: string, value: string): void {} /** * Tag a user based on an app event of your choosing so later you can create segments on [onesignal.com](https://onesignal.com/) to target these users. @@ -517,7 +542,7 @@ export class OneSignal extends IonicNativePlugin { * @param {string} Pass a json object with key/value pairs like: {key: "value", key2: "value2"} */ @Cordova({ sync: true }) - sendTags(json: any): void { } + sendTags(json: any): void {} /** * Deletes a tag that was previously set on a user with `sendTag` or `sendTags`. Use `deleteTags` if you need to delete more than one. @@ -525,7 +550,7 @@ export class OneSignal extends IonicNativePlugin { * @param {string} Key to remove. */ @Cordova({ sync: true }) - deleteTag(key: string): void { } + deleteTag(key: string): void {} /** * Deletes tags that were previously set on a user with `sendTag` or `sendTags`. @@ -533,14 +558,14 @@ export class OneSignal extends IonicNativePlugin { * @param {Array} Keys to remove. */ @Cordova({ sync: true }) - deleteTags(keys: string[]): void { } + deleteTags(keys: string[]): void {} /** * Call this when you would like to prompt an iOS user to accept push notifications with the default system prompt. * Only works if you set `kOSSettingsAutoPrompt` to `false` in `iOSSettings` */ @Cordova({ sync: true }) - registerForPushNotifications(): void { } + registerForPushNotifications(): void {} /** * Warning: @@ -552,7 +577,7 @@ export class OneSignal extends IonicNativePlugin { * @param {boolean} false to disable vibrate, true to re-enable it. */ @Cordova({ sync: true }) - enableVibrate(enable: boolean): void { } + enableVibrate(enable: boolean): void {} /** * Warning: @@ -564,7 +589,7 @@ export class OneSignal extends IonicNativePlugin { * @param {boolean} false to disable sound, true to re-enable it. */ @Cordova({ sync: true }) - enableSound(enable: boolean): void { } + enableSound(enable: boolean): void {} /** * @@ -574,7 +599,9 @@ export class OneSignal extends IonicNativePlugin { * @returns {any} */ @Cordova({ sync: true }) - inFocusDisplaying(displayOption: OSDisplayType): any { return; } + inFocusDisplaying(displayOption: OSDisplayType): any { + return; + } /** * You can call this method with false to opt users out of receiving all notifications through OneSignal. @@ -583,7 +610,7 @@ export class OneSignal extends IonicNativePlugin { * @param {boolean} enable */ @Cordova({ sync: true }) - setSubscription(enable: boolean): void { } + setSubscription(enable: boolean): void {} /** * Get the current notification and permission state. Returns a OSPermissionSubscriptionState type described below. @@ -591,7 +618,9 @@ export class OneSignal extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - getPermissionSubscriptionState(): Promise { return; } + getPermissionSubscriptionState(): Promise { + return; + } /** * @@ -599,7 +628,9 @@ export class OneSignal extends IonicNativePlugin { * @returns {Promise} Returns a Promise that resolves if the notification was send successfully. */ @Cordova() - postNotification(notificationObj: OSNotification): Promise { return; } + postNotification(notificationObj: OSNotification): Promise { + return; + } /** * Cancels a single OneSignal notification based on its Android notification integer id. Use instead of NotificationManager.cancel(id); otherwise the notification will be restored when your app is restarted. @@ -612,14 +643,14 @@ export class OneSignal extends IonicNativePlugin { * Prompts the user for location permission to allow geotagging based on the "Location radius" filter on the OneSignal dashboard. */ @Cordova({ sync: true }) - promptLocation(): void { } + promptLocation(): void {} /** * * @param email {string} */ @Cordova({ sync: true }) - syncHashedEmail(email: string): void { } + syncHashedEmail(email: string): void {} /** * Enable logging to help debug if you run into an issue setting up OneSignal. @@ -630,10 +661,7 @@ export class OneSignal extends IonicNativePlugin { * @param {loglevel} contains two properties: logLevel (for console logging) and visualLevel (for dialog messages) */ @Cordova({ sync: true }) - setLogLevel(logLevel: { - logLevel: number, - visualLevel: number - }): void { } + setLogLevel(logLevel: { logLevel: number; visualLevel: number }): void {} /** * The passed in function will be fired when a notification permission setting changes. @@ -646,7 +674,9 @@ export class OneSignal extends IonicNativePlugin { @Cordova({ observable: true }) - addPermissionObserver(): Observable { return; } + addPermissionObserver(): Observable { + return; + } /** * The passed in function will be fired when a notification subscription property changes. @@ -660,6 +690,13 @@ export class OneSignal extends IonicNativePlugin { @Cordova({ observable: true }) - addSubscriptionObserver(): Observable { return; } + addSubscriptionObserver(): Observable { + return; + } + /** + * Clears all OneSignla notifications + */ + @Cordova({ sync: true }) + clearOneSignalNotifications(): void {} } diff --git a/src/@ionic-native/plugins/printer/index.ts b/src/@ionic-native/plugins/printer/index.ts index 4598ce909..bffe3f474 100644 --- a/src/@ionic-native/plugins/printer/index.ts +++ b/src/@ionic-native/plugins/printer/index.ts @@ -67,7 +67,7 @@ export interface PrintOptions { */ @Plugin({ pluginName: 'Printer', - plugin: 'de.appplant.cordova.plugin.printer', + plugin: 'cordova-plugin-printer', pluginRef: 'cordova.plugins.printer', repo: 'https://github.com/katzer/cordova-plugin-printer', platforms: ['Android', 'iOS', 'Windows'] diff --git a/src/@ionic-native/plugins/pro/index.ts b/src/@ionic-native/plugins/pro/index.ts index 1475c86b6..f11477798 100644 --- a/src/@ionic-native/plugins/pro/index.ts +++ b/src/@ionic-native/plugins/pro/index.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { Plugin, Cordova, CordovaInstance, IonicNativePlugin } from '@ionic-native/core'; +import { Plugin, Cordova, CordovaCheck, CordovaInstance, IonicNativePlugin } from '@ionic-native/core'; import { Observable } from 'rxjs/Observable'; /** @@ -49,9 +49,7 @@ export class ProDeploy { * Check a channel for an available update * @return {Promise} Resolves with 'true' or 'false', or rejects with an error. */ - @CordovaInstance({ - observable: true - }) + @CordovaInstance() check(): Promise { return; } /** @@ -67,7 +65,9 @@ export class ProDeploy { * Unzip the latest downloaded version * @return {Observable} Updates with percent completion, or errors with a message. */ - @CordovaInstance() + @CordovaInstance({ + observable: true + }) extract(): Observable { return; } /** @@ -130,10 +130,20 @@ export class ProDeploy { }) @Injectable() export class Pro extends IonicNativePlugin { + _deploy: ProDeploy; + /** * Ionic Pro Deploy .js API. */ - deploy: ProDeploy = new ProDeploy(Pro.getPlugin().deploy); + @CordovaCheck({ sync: true }) + deploy(): ProDeploy { + if (this._deploy) { + return this._deploy; + } else { + this._deploy = new ProDeploy(Pro.getPlugin().deploy); + return this._deploy; + } + } /** * Not yet implemented diff --git a/src/@ionic-native/plugins/push/index.ts b/src/@ionic-native/plugins/push/index.ts index 0d5d866da..bf1661533 100644 --- a/src/@ionic-native/plugins/push/index.ts +++ b/src/@ionic-native/plugins/push/index.ts @@ -134,7 +134,7 @@ export interface AndroidPushOptions { /** * Maps to the project number in the Google Developer Console. */ - senderID: string; + senderID?: string; /** * The name of a drawable resource to use as the small-icon. The name should @@ -219,6 +219,7 @@ export interface Channel { id: string; description: string; importance: Priority; + sound?: string; } export type PushEvent = string; @@ -334,15 +335,19 @@ export class Push extends IonicNativePlugin { * Create a new notification channel for Android O and above. * @param channel {Channel} */ - @Cordova() - createChannel(channel: Channel): Promise { return; } + @Cordova({ + callbackOrder: 'reverse' + }) + createChannel(channel?: Channel): Promise { return; } /** * Delete a notification channel for Android O and above. - * @param id + * @param id {string} */ - @Cordova() - deleteChannel(id: string): Promise { return; } + @Cordova({ + callbackOrder: 'reverse' + }) + deleteChannel(id?: string): Promise { return; } /** * Returns a list of currently configured channels. diff --git a/src/@ionic-native/plugins/speechkit/index.ts b/src/@ionic-native/plugins/speechkit/index.ts new file mode 100644 index 000000000..ed49044c9 --- /dev/null +++ b/src/@ionic-native/plugins/speechkit/index.ts @@ -0,0 +1,53 @@ +import { Injectable } from '@angular/core'; +import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; + +/** + * @name SpeechKit + * @description + * Implementation of Nuance SpeechKit SDK on Ionic + * + * @usage + * ```typescript + * import { SpeechKit } from '@ionic-native/speechkit'; + * + * constructor(private speechkit: SpeechKit) { } + * + * + * this.speechkit.tts('Text to be read out loud', 'ENG-GBR').then( + * (msg) => { console.log(msg); }, + * (err) => { console.log(err); } + * ); + * ``` + */ +@Plugin({ + pluginName: 'SpeechKit', + plugin: 'cordova-plugin-nuance-speechkit', + pluginRef: 'plugins.speechkit', + repo: 'https://github.com/Shmarkus/cordova-plugin-nuance-speechkit', + platforms: ['Android', 'iOS'] +}) +@Injectable() +export class SpeechKit extends IonicNativePlugin { + + /** + * Speak text out loud in given language + * @returns {Promise} + */ + @Cordova() + tts( + text: string, + language: string + ): Promise { return; } + + /** + * Try to recognize what the user said + * @returns {Promise} + */ + @Cordova({ + platforms: ['Android'] + }) + asr( + language: string + ): Promise { return; } + +} diff --git a/src/@ionic-native/plugins/spinner-dialog/index.ts b/src/@ionic-native/plugins/spinner-dialog/index.ts index 25905669f..7b032b0f8 100644 --- a/src/@ionic-native/plugins/spinner-dialog/index.ts +++ b/src/@ionic-native/plugins/spinner-dialog/index.ts @@ -2,9 +2,24 @@ import { Injectable } from '@angular/core'; import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; export interface SpinnerDialogIOSOptions { + /** + * Opacity of the overlay, between 0 (transparent) and 1 (opaque). Default: 0.35 + */ overlayOpacity?: number; + + /** + * Red component of the text color, between 0 and 1. Default: 1 + */ textColorRed?: number; + + /** + * Green component of the text color, between 0 and 1. Default: 1 + */ textColorGreen?: number; + + /** + * Blue component of the text color, between 0 and 1. Default: 1 + */ textColorBlue?: number; } diff --git a/src/@ionic-native/plugins/sqlite/index.ts b/src/@ionic-native/plugins/sqlite/index.ts index 82d814fd4..36bba60a5 100644 --- a/src/@ionic-native/plugins/sqlite/index.ts +++ b/src/@ionic-native/plugins/sqlite/index.ts @@ -1,5 +1,12 @@ import { Injectable } from '@angular/core'; -import { Cordova, CordovaInstance, Plugin, CordovaCheck, InstanceProperty, IonicNativePlugin } from '@ionic-native/core'; +import { + Cordova, + CordovaCheck, + CordovaInstance, + InstanceProperty, + IonicNativePlugin, + Plugin +} from '@ionic-native/core'; declare const sqlitePlugin: any; @@ -17,8 +24,8 @@ export interface SQLiteDatabaseConfig { */ iosDatabaseLocation?: string; /** - * support opening pre-filled databases with https://github.com/litehelpers/cordova-sqlite-ext - */ + * support opening pre-filled databases with https://github.com/litehelpers/cordova-sqlite-ext + */ createFromLocation?: number; /** * support encrypted databases with https://github.com/litehelpers/Cordova-sqlcipher-adapter @@ -31,8 +38,18 @@ export interface SQLiteDatabaseConfig { */ export interface SQLiteTransaction { start: () => void; - executeSql: (sql: any, values: any, success: Function, error: Function) => void; - addStatement: (sql: any, values: any, success: Function, error: Function) => void; + executeSql: ( + sql: any, + values: any, + success: Function, + error: Function + ) => void; + addStatement: ( + sql: any, + values: any, + success: Function, + error: Function + ) => void; handleStatementSuccess: (handler: Function, response: any) => void; handleStatementFailure: (handler: Function, response: any) => void; run: () => void; @@ -45,8 +62,7 @@ export interface SQLiteTransaction { * @hidden */ export class SQLiteObject { - - constructor(public _objectInstance: any) { } + constructor(public _objectInstance: any) {} @InstanceProperty databaseFeatures: { isSQLitePluginDatabase: boolean }; @@ -55,7 +71,7 @@ export class SQLiteObject { @CordovaInstance({ sync: true }) - addTransaction(transaction: (tx: SQLiteTransaction) => void): void { } + addTransaction(transaction: (tx: SQLiteTransaction) => void): void {} /** * @param fn {any} @@ -65,51 +81,62 @@ export class SQLiteObject { successIndex: 2, errorIndex: 1 }) - transaction(fn: any): Promise { return; } + transaction(fn: any): Promise { + return; + } /** * @param fn {Function} * @returns {Promise} */ @CordovaInstance() - readTransaction(fn: (tx: SQLiteTransaction) => void): Promise { return; } + readTransaction(fn: (tx: SQLiteTransaction) => void): Promise { + return; + } @CordovaInstance({ sync: true }) - startNextTransaction(): void { } + startNextTransaction(): void {} /** * @returns {Promise} */ @CordovaInstance() - open(): Promise { return; } + open(): Promise { + return; + } /** * @returns {Promise} */ @CordovaInstance() - close(): Promise { return; } + close(): Promise { + return; + } /** * Execute SQL on the opened database. Note, you must call `create` first, and * ensure it resolved and successfully opened the database. */ @CordovaInstance() - executeSql(statement: string, params: any): Promise { return; } + executeSql(statement: string, params: any): Promise { + return; + } /** * @param sqlStatements {Array} * @returns {Promise} */ @CordovaInstance() - sqlBatch(sqlStatements: Array): Promise { return; } + sqlBatch(sqlStatements: Array): Promise { + return; + } @CordovaInstance({ sync: true }) - abortallPendingTransactions(): void { } - + abortallPendingTransactions(): void {} } /** @@ -159,7 +186,6 @@ export class SQLiteObject { }) @Injectable() export class SQLite extends IonicNativePlugin { - /** * Open or create a SQLite database file. * @@ -171,7 +197,11 @@ export class SQLite extends IonicNativePlugin { @CordovaCheck() create(config: SQLiteDatabaseConfig): Promise { return new Promise((resolve, reject) => { - sqlitePlugin.openDatabase(config, (db: any) => resolve(new SQLiteObject(db)), reject); + sqlitePlugin.openDatabase( + config, + (db: any) => resolve(new SQLiteObject(db)), + reject + ); }); } @@ -180,7 +210,18 @@ export class SQLite extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - echoTest(): Promise { return; } + echoTest(): Promise { + return; + } + + /** + * Automatically verify basic database access operations including opening a database + * @returns {Promise} + */ + @Cordova() + selfTest(): Promise { + return; + } /** * Deletes a database @@ -188,6 +229,7 @@ export class SQLite extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - deleteDatabase(config: SQLiteDatabaseConfig): Promise { return; } - + deleteDatabase(config: SQLiteDatabaseConfig): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/uid/index.ts b/src/@ionic-native/plugins/uid/index.ts index aa417a832..a52e4dc2e 100644 --- a/src/@ionic-native/plugins/uid/index.ts +++ b/src/@ionic-native/plugins/uid/index.ts @@ -38,7 +38,7 @@ import { Plugin, CordovaProperty, IonicNativePlugin } from '@ionic-native/core'; */ @Plugin({ pluginName: 'Uid', - plugin: 'https://github.com/hygieiasoft/cordova-plugin-uid', + plugin: 'cordova-plugin-uid', pluginRef: 'cordova.plugins.uid', repo: 'https://github.com/hygieiasoft/cordova-plugin-uid', platforms: ['Android'] diff --git a/src/@ionic-native/plugins/web-intent/index.ts b/src/@ionic-native/plugins/web-intent/index.ts index 471ab67f0..f435afa19 100644 --- a/src/@ionic-native/plugins/web-intent/index.ts +++ b/src/@ionic-native/plugins/web-intent/index.ts @@ -3,9 +3,9 @@ import { Cordova, CordovaProperty, Plugin, IonicNativePlugin } from '@ionic-nati import { Observable } from 'rxjs/Observable'; /** - * @beta * @name Web Intent * @description + * This Plugin provides a general purpose shim layer for the Android intent mechanism, exposing various ways to handle sending and receiving intents. * @usage * For usage information please refer to the plugin's Github repo. * @@ -35,77 +35,65 @@ import { Observable } from 'rxjs/Observable'; }) @Injectable() export class WebIntent extends IonicNativePlugin { + /** + * Convenience constant for actions + * @type {string} + */ + @CordovaProperty ACTION_SEND: string; /** * Convenience constant for actions * @type {string} */ - @CordovaProperty - ACTION_SEND: string; - - /** - * Convenience constant for actions - * @type {string} - */ - @CordovaProperty - ACTION_VIEW: string; + @CordovaProperty ACTION_VIEW: string; /** * Convenience constant for extras * @type {string} */ - @CordovaProperty - EXTRA_TEXT: string; + @CordovaProperty EXTRA_TEXT: string; /** * Convenience constant for extras * @type {string} */ - @CordovaProperty - EXTRA_SUBJECT: string; + @CordovaProperty EXTRA_SUBJECT: string; /** * Convenience constant for extras * @type {string} */ - @CordovaProperty - EXTRA_STREAM: string; + @CordovaProperty EXTRA_STREAM: string; /** * Convenience constant for extras * @type {string} */ - @CordovaProperty - EXTRA_EMAIL: string; + @CordovaProperty EXTRA_EMAIL: string; /** * Convenience constant for actions * @type {string} */ - @CordovaProperty - ACTION_CALL: string; + @CordovaProperty ACTION_CALL: string; /** * Convenience constant for actions * @type {string} */ - @CordovaProperty - ACTION_SENDTO: string; + @CordovaProperty ACTION_SENDTO: string; /** * Convenience constant for actions * @type {string} */ - @CordovaProperty - ACTION_GET_CONTENT: string; + @CordovaProperty ACTION_GET_CONTENT: string; /** * Convenience constant for actions * @type {string} */ - @CordovaProperty - ACTION_PICK: string; - + @CordovaProperty ACTION_PICK: string; /** * Launches an Android intent @@ -113,7 +101,14 @@ export class WebIntent extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - startActivity(options: { action: any, url: string, type?: string }): Promise { return; } + startActivity(options: { + action: any; + extras?: any; + url: string; + type?: string; + }): Promise { + return; + } /** * Starts a new activity and return the result to the application @@ -121,7 +116,13 @@ export class WebIntent extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - startActivityForResult(options: { action: any, url: string, type?: string }): Promise { return; } + startActivityForResult(options: { + action: any; + url: string; + type?: string; + }): Promise { + return; + } /** * Checks if this app was invoked with specified extra @@ -129,7 +130,9 @@ export class WebIntent extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - hasExtra(extra: string): Promise { return; } + hasExtra(extra: string): Promise { + return; + } /** * Gets the extra that this app was invoked with @@ -137,14 +140,18 @@ export class WebIntent extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - getExtra(extra: string): Promise { return; } + getExtra(extra: string): Promise { + return; + } /** * Gets the Uri the app was invoked with * @returns {Promise} */ @Cordova() - getUri(): Promise { return; }; + getUri(): Promise { + return; + } /** * Returns the content of the intent used whenever the application activity is launched @@ -153,7 +160,9 @@ export class WebIntent extends IonicNativePlugin { @Cordova({ observable: true }) - onIntent(): Observable { return; }; + onIntent(): Observable { + return; + } /** * Sends a custom intent passing optional extras @@ -161,31 +170,44 @@ export class WebIntent extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - sendBroadcast(options: { action: string, extras?: { option: boolean } }): Promise { return; } + sendBroadcast(options: { + action: string; + extras?: { option: boolean }; + }): Promise { + return; + } + + /** + * Request that a given application service be started + * @param options {Object} { action: string, extras?: { option: boolean } } + * @returns {Promise} + */ + @Cordova() + startService(options: { + action: string; + extras?: { option: boolean }; + }): Promise { + return; + } /** * Registers a broadcast receiver for the specified filters * @param filters {any} */ @Cordova({ sync: true }) - registerBroadcastReceiver(filters: any): void { } + registerBroadcastReceiver(filters: any): void {} /** * Unregisters a broadcast receiver */ @Cordova({ sync: true }) - unregisterBroadcastReceiver(): void { } - - /** - * - */ - @Cordova({ sync: true }) - onActivityResult(): void { } + unregisterBroadcastReceiver(): void {} /** * @returns {Promise} */ @Cordova() - getIntent(): Promise { return; }; - + getIntent(): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/wheel-selector/index.ts b/src/@ionic-native/plugins/wheel-selector/index.ts index b97a9d326..5f5f787fa 100644 --- a/src/@ionic-native/plugins/wheel-selector/index.ts +++ b/src/@ionic-native/plugins/wheel-selector/index.ts @@ -42,7 +42,7 @@ export interface WheelSelectorOptions { * Android only - theme color, 'light' or 'dark'. * Default: light */ - theme?: string; + theme?: 'light' | 'dark'; /** * Whether to have the wheels 'wrap' (Android only) @@ -76,7 +76,7 @@ export interface WheelSelectorData { * * ... * - * let jsonData = { + * const jsonData = { * numbers: [ * { description: "1" }, * { description: "2" }, @@ -105,7 +105,7 @@ export interface WheelSelectorData { * * ... * - * //basic number selection, index is always returned in the result + * // basic number selection, index is always returned in the result * selectANumber() { * this.selector.show({ * title: "How Many?", @@ -122,7 +122,7 @@ export interface WheelSelectorData { * * ... * - * //basic selection, setting initial displayed default values: '3' 'Banana' + * // basic selection, setting initial displayed default values: '3' 'Banana' * selectFruit() { * this.selector.show({ * title: "How Much?", @@ -145,8 +145,8 @@ export interface WheelSelectorData { * * ... * - * //more complex as overrides which key to display - * //then retrieve properties from original data + * // more complex as overrides which key to display + * // then retrieve properties from original data * selectNamesUsingDisplayKey() { * this.selector.show({ * title: "Who?",