<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android" id="com.esl.plugin" version="1.0.1">
    <name>PaypadFacade</name>
	<description>The official ESL plugin for Paypad</description>
    <keywords>esl,paypad,pinpad,cordova,ecosystem:cordova</keywords>

    <description>The official ESL plugin for Paypad</description>

    <engines>
        <engine name="cordova" version=">=3.6.0" />
    </engines>

    <asset src="www/paypadfacade.js" target="js/paypadfacade.js"/>
    <asset src="www/isoconfig.xml" target="isoconfig.xml"/>

    <js-module src="www/paypadfacade.js" name="PaypadFacade">
        <clobbers target="PaypadFacade" />
    </js-module>

    <access origin="*" />

    <!-- android -->
    <platform name="android">
        <config-file target="res/xml/config.xml" parent="/*">
            <feature name="PaypadFacade">
                <param name="android-package" value="com.esl.lib.PaypadFacade" />
                <param name="onload" value="true" />
            </feature>
        </config-file>
        <config-file target="AndroidManifest.xml" parent="/manifest/application">
            <activity
                android:name="activities.DeviceActivity"
                android:exported="true"
                android:label="Device Activity">
            </activity>
            <service android:enabled="true" android:name="models.messaging.nibss.HSMClient" />
            <service android:enabled="true" android:name="activities.DeviceActivityS"/>
            <service android:enabled="true" android:name="utils.BluetoothService"/>

        </config-file>
        <config-file target="AndroidManifest.xml" parent="/manifest">
            <uses-permission android:name="android.permission.BLUETOOTH"/>
            <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
            <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
            <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
            <uses-permission android:name="android.permission.SEND_SMS" />
            <uses-permission android:name="android.permission.INTERNET" />
            <!-- This specifies the application tag -->

            <uses-feature android:name="android.hardware.telephony" android:required="false" />

        </config-file>

        <source-file src="src/android/layout/screen_device.xml" target-dir="res/layout"/>

        <source-file src="src/android/PaypadFacade.java" target-dir="src/com/esl/lib" />

        <source-file src="src/android/activities/DeviceActivity.java" target-dir="src/activities" />
        <source-file src="src/android/activities/DeviceActivityS.java" target-dir="src/activities" />

        <source-file src="src/android/extras/Activation.java" target-dir="src/com/esl/lib/extras" />
        <source-file src="src/android/extras/App.java" target-dir="src/com/esl/lib/extras" />
        <source-file src="src/android/extras/BluetoothList.java" target-dir="src/com/esl/lib/extras" />
        <source-file src="src/android/extras/ReferenceList.java" target-dir="src/com/esl/lib/extras" />
        <source-file src="src/android/extras/BluetoothBroadCastReceiver.java" target-dir="src/com/esl/lib/extras" />

        <source-file src="src/android/facade/PayPadManager.java" target-dir="src/com/esl/lib/facade" />

        <source-file src="src/android/emv/EmvRequest.java" target-dir="src/com/esl/lib/emv" />
        <source-file src="src/android/emv/EmvResponse.java" target-dir="src/com/esl/lib/emv" />
        <source-file src="src/android/emv/EmvCardData.java" target-dir="src/com/esl/lib/emv" />
        <source-file src="src/android/emv/EmvCardKey.java" target-dir="src/com/esl/lib/emv" />
        <source-file src="src/android/emv/EmvDevice.java" target-dir="src/com/esl/lib/emv" />
        <source-file src="src/android/emv/CardHolderVerifyMethod.java" target-dir="src/com/esl/lib/emv" />
        <source-file src="src/android/emv/EmvTerminalDecision.java" target-dir="src/com/esl/lib/emv" />
        <source-file src="src/android/emv/EmvTerminalParameter.java" target-dir="src/com/esl/lib/emv" />
        <source-file src="src/android/emv/EmvTransactionType.java" target-dir="src/com/esl/lib/emv" />
        <source-file src="src/android/emv/OnlinePinMode.java" target-dir="src/com/esl/lib/emv" />
        <source-file src="src/android/emv/PinEntry.java" target-dir="src/com/esl/lib/emv" />
        <source-file src="src/android/emv/TransResult.java" target-dir="src/com/esl/lib/emv" />
        <source-file src="src/android/emv/_0200Type.java" target-dir="src/com/esl/lib/emv" />
        <source-file src="src/android/emv/AccountType.java" target-dir="src/com/esl/lib/emv" />


        <source-file src="src/android/emv/utils/BerTlv.java" target-dir="src/com/esl/lib/emv/utils" />
        <source-file src="src/android/emv/utils/Tag.java" target-dir="src/com/esl/lib/emv/utils" />
        <source-file src="src/android/emv/utils/TagType.java" target-dir="src/com/esl/lib/emv/utils" />
        <source-file src="src/android/emv/utils/TagClass.java" target-dir="src/com/esl/lib/emv/utils" />
        <source-file src="src/android/emv/controllers/EmvTransactionProcesssor.java" target-dir="src/com/esl/lib" />
        <source-file src="src/android/emv/controllers/EmvTransactionProcesssorVas.java" target-dir="src/com/esl/lib" />
        <source-file src="src/android/emv/controllers/EmvReversalProcessor.java" target-dir="src/com/esl/lib" />

        <source-file src="src/android/utils/HexUtil.java" target-dir="src/com/esl/lib/utils" />
        <source-file src="src/android/utils/Mail.java" target-dir="src/com/esl/lib/utils" />
        <source-file src="src/android/utils/CryptoUtil.java" target-dir="src/com/esl/lib/utils" />
        <source-file src="src/android/utils/StringUtils.java" target-dir="src/com/esl/lib/utils" />
        <source-file src="src/android/utils/TLVHelper.java" target-dir="src/com/esl/lib/utils" />
        <source-file src="src/android/utils/BluetoothService.java" target-dir="src/com/esl/lib/utils" />
        <source-file src="src/android/utils/PrintModel.java" target-dir="src/com/esl/lib/utils" />
        <!-- <source-file src="src/android/utils/MiscUtils.java" target-dir="src/com/esl/lib/utils" /> -->

        <source-file src="src/android/exceptions/TransactionAbortedException.java" target-dir="src/com/esl/lib/exceptions" />
        <source-file src="src/android/exceptions/TransactionCanceledException.java" target-dir="src/com/esl/lib/exceptions" />
        <source-file src="src/android/exceptions/TransactionDeniedException.java" target-dir="src/com/esl/lib/exceptions" />
        <source-file src="src/android/exceptions/TransactionException.java" target-dir="src/com/esl/lib/exceptions" />

        <source-file src="src/android/controllers/PinpadHelper.java" target-dir="src/com/esl/lib/controllers" />
        <source-file src="src/android/controllers/PinpadManager.java" target-dir="src/com/esl/lib/controllers" />

        <source-file src="src/android/models/messaging/nibss/_0200Request.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/_0800Request.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/_0800Response.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/Globals.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/BalanceRequest.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/BalanceResponse.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/CallHomeRequest.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/CallHomeResponse.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/CAPKRequest.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/CAPKResponse.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/CashAdvanceRequest.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/CashAdvanceResponse.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/CashBackRequest.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/CashBackResponse.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/PurchaseRequest.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/PurchaseResponse.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/RePowerRequest.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/RePowerResponse.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/RefundRequest.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/RefundResponse.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/ReversalRequest.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/ReversalResponse.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/PinpadKeysRequestProto.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/PinpadKeysResponseProto.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/HSMClient.java" target-dir="src/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/MyTrustManager.java" target-dir="src/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/NibssIsoProcessor.java" target-dir="src/com/esl/lib/models/messaging/nibss" />
        <source-file src="src/android/models/messaging/nibss/NibssIsoProcessorVas.java" target-dir="src/com/esl/lib/models/messaging/nibss" />

         <source-file src="src/android/network/NibssSocketManager.java" target-dir="src/com/esl/lib/network" />        

        <!-- This section add the PINPAD dependencies -->
        <source-file src="src/android/activation.jar" target-dir="libs" />
        <source-file src="src/android/additionnal.jar" target-dir="libs" />
        <source-file src="src/android/android-async-http-1.4.4.jar" target-dir="libs" />
        <source-file src="src/android/com.datecs.pinpad.jar" target-dir="libs" />
        <source-file src="src/android/datecs.jar" target-dir="libs" />
        <source-file src="src/android/j8583-1.10.0.jar" target-dir="libs" />
        <source-file src="src/android/jpos-1.9.2.jar" target-dir="libs" />
        <source-file src="src/android/mail.jar" target-dir="libs" />
        <source-file src="src/android/slf4j-android-1.7.6.jar" target-dir="libs" />
        <source-file src="src/android/slf4j-api-1.7.6.jar" target-dir="libs" />
        <source-file src="src/android/protobuf-java-2.6.1.jar" target-dir="libs" />

        <!-- This library is for the printer -->
        <source-file src="src/android/Android_BluetoothPrint_SDK2.6.jar" target-dir="libs" />

    </platform>

    <platform name="ios">

        <!-- <plugins-plist key="PaypadFacade" string="PaypadFacade" /> -->

        <config-file target="config.xml" parent="/*">
          <feature name="PaypadFacade">
            <param name="ios-package" value="PaypadFacade" />
            <param name="onload" value="true" />
          </feature>
        </config-file>

        <config-file target="*-Info.plist" parent="UISupportedExternalAccessoryProtocols">
            <array>
                <string>com.datecs.pinpad</string>
                <string>com.datecs.linea.pro.msr</string>
                <string>com.datecs.iserial.communication</string>
                <string>com.datecs.linea.pro.bar</string>
                <string>com.datecs.printer.escpos</string>
                <string>com.datecs.printer.label.zpl</string>
            </array>
        </config-file>


        <!-- This is the section for resource file-->
        <resource-file src="src/ios/Objective_ISO8583_Lib/customisoconfig.plist" />
        <resource-file src="src/ios/Objective_ISO8583_Lib/customisoMTI.plist" />
        <resource-file src="src/ios/Objective_ISO8583_Lib/isoconfig.plist" />
        <resource-file src="src/ios/Objective_ISO8583_Lib/isodatatypes.plist" />
        <resource-file src="src/ios/Objective_ISO8583_Lib/isoMTI.plist" />

        <!-- This section is for all headers -->

        <!-- This is to communicate with pinpad-->
        <header-file src="src/ios/DTDevices.h" />

        <!-- This is for protocol buffers-->
        <header-file src="src/ios/protobuf-ios/Classes/AbstractMessage.h" />
        <header-file src="src/ios/protobuf-ios/Classes/AbstractMessage_Builder.h" />
        <header-file src="src/ios/protobuf-ios/Classes/Bootstrap.h" />
        <header-file src="src/ios/protobuf-ios/Classes/CodedInputStream.h" />
        <header-file src="src/ios/protobuf-ios/Classes/CodedOutputStream.h" />
        <header-file src="src/ios/protobuf-ios/Classes/ConcreteExtensionField.h" />
        <header-file src="src/ios/protobuf-ios/Classes/Descriptor.pb.h" />
        <header-file src="src/ios/protobuf-ios/Classes/ExtendableMessage.h" />
        <header-file src="src/ios/protobuf-ios/Classes/ExtendableMessage_Builder.h" />
        <header-file src="src/ios/protobuf-ios/Classes/ExtensionField.h" />
        <header-file src="src/ios/protobuf-ios/Classes/ExtensionRegistry.h" />
        <header-file src="src/ios/protobuf-ios/Classes/Field.h" />
        <header-file src="src/ios/protobuf-ios/Classes/ForwardDeclarations.h" />
        <header-file src="src/ios/protobuf-ios/Classes/GeneratedMessage.h" />
        <header-file src="src/ios/protobuf-ios/Classes/GeneratedMessage_Builder.h" />
        <header-file src="src/ios/protobuf-ios/Classes/Message.h" />
        <header-file src="src/ios/protobuf-ios/Classes/Message_Builder.h" />
        <header-file src="src/ios/protobuf-ios/Classes/MutableExtensionRegistry.h" />
        <header-file src="src/ios/protobuf-ios/Classes/MutableField.h" />
        <header-file src="src/ios/protobuf-ios/Classes/PBArray.h" />
        <header-file src="src/ios/protobuf-ios/Classes/ProtocolBuffers.h" />
        <header-file src="src/ios/protobuf-ios/Classes/RingBuffer.h" />
        <header-file src="src/ios/protobuf-ios/Classes/TextFormat.h" />
        <header-file src="src/ios/protobuf-ios/Classes/UnknownFieldSet.h" />
        <header-file src="src/ios/protobuf-ios/Classes/UnknownFieldSet_Builder.h" />
        <header-file src="src/ios/protobuf-ios/Classes/Utilities.h" />
        <header-file src="src/ios/protobuf-ios/Classes/WireFormat.h" />


        <header-file src="src/ios/PaypadFacade.h" />
        <source-file src="src/ios/PaypadFacade.m" compiler-flags="-fno-objc-arc" />
        <header-file src="src/ios/Objective_ISO8583_Lib/ISOBitmap.h" />
        <source-file src="src/ios/Objective_ISO8583_Lib/ISOBitmap.m" />
        <header-file src="src/ios/Objective_ISO8583_Lib/ISODataElement.h" />
        <source-file src="src/ios/Objective_ISO8583_Lib/ISODataElement.m" />
        <header-file src="src/ios/Objective_ISO8583_Lib/ISOHelper.h" />
        <source-file src="src/ios/Objective_ISO8583_Lib/ISOHelper.m" />
        <header-file src="src/ios/Objective_ISO8583_Lib/ISOMessage.h" />
        <source-file src="src/ios/Objective_ISO8583_Lib/ISOMessage.m" />

        <header-file src="src/ios/_0200Request.h" />
        <source-file src="src/ios/_0200Request.m" />
        <header-file src="src/ios/CryptoUtil.h" />
        <source-file src="src/ios/CryptoUtil.m" compiler-flags="-fno-objc-arc" />
        <header-file src="src/ios/dukpt.h" />
        <source-file src="src/ios/dukpt.m" />
        <header-file src="src/ios/EmvCardData.h" />
        <source-file src="src/ios/EmvCardData.m" />
        <header-file src="src/ios/EMVResponse.h" />
        <source-file src="src/ios/EMVResponse.m" />
        <header-file src="src/ios/EMVTLV.h" />
        <source-file src="src/ios/EMVTLV.m" />
        <header-file src="src/ios/EMVTransactionManager.h" />
        <source-file src="src/ios/EMVTransactionManager.m" />
        <header-file src="src/ios/EMVTransactionManagerVas.h" />
        <source-file src="src/ios/EMVTransactionManagerVas.m" />
        <header-file src="src/ios/Global.h" />
        <source-file src="src/ios/Global.m" />
        <header-file src="src/ios/NibssSocketManager.h" />
        <source-file src="src/ios/NibssSocketManager.m" compiler-flags="-fno-objc-arc" />
        <header-file src="src/ios/NSData+NSDataWithConversion.h" />
        <source-file src="src/ios/NSData+NSDataWithConversion.m" />
        <header-file src="src/ios/NSMutableData+NSMutableDataWithConversion.h" />
        <source-file src="src/ios/NSMutableData+NSMutableDataWithConversion.m" />
        <header-file src="src/ios/NSString+HexUtil.h" />
        <source-file src="src/ios/NSString+HexUtil.m" />
        <header-file src="src/ios/PinpadHelper.h" />
        <source-file src="src/ios/PinpadHelper.m" />
        <header-file src="src/ios/PinpadKeysRequest.pb.h" />
        <source-file src="src/ios/PinpadKeysRequest.pb.m" compiler-flags="-fno-objc-arc" />
        <header-file src="src/ios/PinpadKeysResponse.pb.h"  />
        <source-file src="src/ios/PinpadKeysResponse.pb.m" compiler-flags="-fno-objc-arc" />
        <header-file src="src/ios/PurchaseResponse.h" />
        <source-file src="src/ios/PurchaseResponse.m" />
        <header-file src="src/ios/PurchaseRequest.h" />
        <source-file src="src/ios/PurchaseRequest.m" />
        <header-file src="src/ios/EMVRequest.h" />
        <source-file src="src/ios/EMVRequest.m" />
        <header-file src="src/ios/ProgressViewController.h" />
        <source-file src="src/ios/ProgressViewController.m" />
        <header-file src="src/ios/NibssIsoProcessor.h" />
        <source-file src="src/ios/NibssIsoProcessor.m" />
        <header-file src="src/ios/PaypadKeyManager.h" />
        <source-file src="src/ios/PaypadKeyManager.m" />


        <!-- This section is for frameworks-->
        <framework src="src/ios/ExternalAccessory.framework" weak="true"/>
        <framework src="src/ios/Foundation.framework" weak="true"/>
        <framework src="src/ios/CoreGraphics.framework" weak="true"/>
        <framework src="src/ios/SystemConfiguration.framework" weak="true"/>
        <framework src="src/ios/UIKit.framework" weak="true"/>
        <framework src="src/ios/MediaPlayer.framework" weak="true"/>

        <source-file src="src/ios/libdtdev.a" framework="true" />
        <source-file src="src/ios/libprotobuf-ios.a" framework="true"/>


    </platform>

</plugin>
