From 9ddde5762d9618b374d5ee594e4c9de0fc21041c Mon Sep 17 00:00:00 2001 From: glecaros Date: Sat, 14 May 2016 00:24:45 -0700 Subject: [PATCH] Reimplemented using CordovaInstance. Fixed wrapInstance signature to match how it is called. --- src/plugins/filetransfer.ts | 41 +++++++++++++++++-------------------- src/plugins/plugin.ts | 2 +- 2 files changed, 20 insertions(+), 23 deletions(-) diff --git a/src/plugins/filetransfer.ts b/src/plugins/filetransfer.ts index 9de541d1..52e9c8fb 100644 --- a/src/plugins/filetransfer.ts +++ b/src/plugins/filetransfer.ts @@ -1,5 +1,4 @@ -import {Plugin, Cordova} from './plugin'; -import {Observable} from 'rxjs/Observable'; +import {Plugin, CordovaInstance} from './plugin'; declare var FileTransfer; @@ -134,10 +133,10 @@ export class Transfer { public static ABORT_ERR: number = 4; public static NOT_MODIFIED_ERR: number = 4; - ft: any; + private _objectInstance: any; constructor() { - this.ft = new FileTransfer(); + this._objectInstance = new FileTransfer(); } /** @@ -149,14 +148,12 @@ export class Transfer { * @param {boolean} trustAllHosts: Optional parameter, defaults to false. If set to true, it accepts all security certificates. This is useful since Android rejects self-signed security certificates. Not recommended for production use. Supported on Android and iOS. * @return Returns a Promise that resolves to a FileUploadResult and rejects with FileTransferError. */ + @CordovaInstance({ + successIndex: 2, + errorIndex: 3 + }) upload(fileUrl: string, url: string, options?: FileUploadOptions, trustAllHosts?: boolean): Promise { - return new Promise((resolve, reject) => { - this.ft.upload(fileUrl, url, (result: FileUploadResult) => { - resolve(result); - }, (err: FileTransferError) => { - reject(err); - }, options, trustAllHosts); - }); + return; } /** @@ -168,30 +165,30 @@ export class Transfer { * @param {object} Optional parameters, currently only supports headers (such as Authorization (Basic Authentication), etc). * @return Returns a Promise that resolves to a FileEntry object. */ + @CordovaInstance({ + successIndex: 2, + errorIndex: 3 + }) download(source: string, target: string, trustAllHosts?: boolean, options?: { [s: string]: any; }): Promise { - return new Promise((resolve, reject) => { - this.ft.download(source, target, (result: any) => { - resolve(result); - }, (err: FileTransferError) => { - reject(err); - }, trustAllHosts, options); - }) + return; } /** * Registers a listener that gets called whenever a new chunk of data is transferred. * @param {function} Listener that takes a progress event. */ + onProgress(listener: (event: ProgressEvent) => any): void { - this.ft.onprocess = listener; + this._objectInstance.onprogress = listener; } /** * Aborts an in-progress transfer. The onerror callback is passed a FileTransferError * object which has an error code of FileTransferError.ABORT_ERR. */ - abort(): void { - return this.ft.abort(); - } + @CordovaInstance({ + sync: true + }) + abort(): void {} } diff --git a/src/plugins/plugin.ts b/src/plugins/plugin.ts index 71a6a9f1..4b3f3810 100644 --- a/src/plugins/plugin.ts +++ b/src/plugins/plugin.ts @@ -160,7 +160,7 @@ function callInstance(pluginObj: any, methodName: string, args: any[], opts: any return pluginObj._objectInstance[methodName].apply(pluginObj._objectInstance, args); } -function wrapInstance (pluginObj: any, methodName: string, args: any[], opts: any = {}) { +function wrapInstance (pluginObj: any, methodName: string, opts: any = {}) { return (...args) => { if (opts.sync) { return callInstance(pluginObj, methodName, args, opts);