// Copyright 2016 wkh237@github. All rights reserved.
// Use of this source code is governed by a MIT-style license that can be
// found in the LICENSE file.

import {
  NativeModules,
  DeviceEventEmitter,
  Platform,
  NativeAppEventEmitter,
} from 'react-native'

const RNFetchBlob:RNFetchBlobNative = NativeModules.RNFetchBlob

/**
 * Open a file using UIDocumentInteractionController
 * @param  {string} path Path of the file to be open.
 * @param  {string} scheme URI scheme that needs to support, optional
 * @return {Promise}
 */
function previewDocument(path:string, scheme:string) {
  if(Platform.OS === 'ios')
    return RNFetchBlob.previewDocument('file://' + path, scheme)
  else
    return Promise.reject('RNFetchBlob.openDocument only supports IOS.')
}

/**
 * Preview a file using UIDocumentInteractionController
 * @param  {string} path Path of the file to be open.
 * @param  {string} scheme URI scheme that needs to support, optional
 * @return {Promise}
 */
function openDocument(path:string, scheme:string) {
  if(Platform.OS === 'ios')
    return RNFetchBlob.openDocument('file://' + path, scheme)
  else
    return Promise.reject('RNFetchBlob.previewDocument only supports IOS.')
}

/**
 * Set excludeFromBackupKey to a URL to prevent the resource to be backuped to
 * iCloud.
 * @param  {string} url URL of the resource, only file URL is supported
 * @return {Promise}
 */
function excludeFromBackupKey(path:string) {
  return RNFetchBlob.excludeFromBackupKey('file://' + path);
}

export default {
  openDocument,
  previewDocument,
  excludeFromBackupKey
}
