<?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="kiot-cordova-plugin-home-console" version="1.0.1">

    <name>KIOT Home Console</name>
    <license>MIT</license>
    <author>KIOT Innovations Pvt Ltd</author>

    <description>
        This plugin is for KIOT Home Console.
    </description>
    <keywords>kiosk,home,console</keywords>

    <engines>
        <engine name="cordova" version=">=9.0.0"/>
        <engine name="cordova-android" version=">=9.0.0"/>
    </engines>

    <js-module src="www/ApkUpdater.js" name="ApkUpdater">
        <clobbers target="window.ApkUpdater"/>
    </js-module>
    <js-module src="www/API.js" name="API"/>

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

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

    <js-module name="Haptic" src="www/Haptic.js">
        <clobbers target="cordova.plugins.haptic" />
    </js-module>

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

    <platform name="android">

        <!-- PLUGIN: KioskPlugin-->

        <framework src="net.lingala.zip4j:zip4j:2.11.5"/>
        <framework src="androidx.core:core:1.6.0"/>
        <framework src="com.scottyab:rootbeer-lib:0.1.0"/>

        <config-file target="config.xml" parent="/*">
            <preference name="AndroidXEnabled" value="true"/>
        </config-file>

        <config-file target="res/xml/config.xml" parent="/*">
            <feature name="ApkUpdater">
                <param name="android-package" value="io.kiotplugins.apkupdater.ApkUpdater"/>
            </feature>
        </config-file>

        <config-file target="AndroidManifest.xml" parent="/*">
            <uses-permission android:name="android.permission.INTERNET"/>
        </config-file>

        <config-file target="AndroidManifest.xml" parent="application">
            <provider android:name="io.kiotplugins.apkupdater.tools.FileProvider"
                      android:authorities="${applicationId}.apkupdater.provider"
                      android:exported="false"
                      android:grantUriPermissions="true">
                <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/apkupdater_paths"/>
            </provider>
            <receiver android:name="io.kiotplugins.apkupdater.tools.DAReceiver" android:exported="false"
                      android:permission="android.permission.BIND_DEVICE_ADMIN">
                <meta-data android:name="android.app.device_admin" android:resource="@xml/device_admin"/>
                <intent-filter>
                    <action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
                </intent-filter>
            </receiver>
            <receiver android:name="io.kiotplugins.apkupdater.tools.PackageReplacedReceiver" android:exported="false">
                <intent-filter>
                    <action android:name="android.intent.action.MY_PACKAGE_REPLACED"/>
                </intent-filter>
            </receiver>
        </config-file>

        <!-- source-files-->
        <source-file src="src/android/ApkUpdater.java" target-dir="src/io/kiotplugins/apkupdater"/>
        <source-file src="src/android/downloader/FileDownloader.java"
                     target-dir="src/io/kiotplugins/apkupdater/downloader"/>
        <source-file src="src/android/downloader/Progress.java" target-dir="src/io/kiotplugins/apkupdater/downloader"/>
        <source-file src="src/android/exceptions/ActionInProgressException.java"
                     target-dir="src/io/kiotplugins/apkupdater/exceptions"/>
        <source-file src="src/android/exceptions/DownloadFailedException.java"
                     target-dir="src/io/kiotplugins/apkupdater/exceptions"/>
        <source-file src="src/android/exceptions/DownloadInProgressException.java"
                     target-dir="src/io/kiotplugins/apkupdater/exceptions"/>
        <source-file src="src/android/exceptions/DownloadNotRunningException.java"
                     target-dir="src/io/kiotplugins/apkupdater/exceptions"/>
        <source-file src="src/android/exceptions/InstallationFailedException.java"
                     target-dir="src/io/kiotplugins/apkupdater/exceptions"/>
        <source-file src="src/android/exceptions/InvalidPackageException.java"
                     target-dir="src/io/kiotplugins/apkupdater/exceptions"/>
        <source-file src="src/android/exceptions/PlatformNotSupportedException.java"
                     target-dir="src/io/kiotplugins/apkupdater/exceptions"/>
        <source-file src="src/android/exceptions/RootException.java" target-dir="src/io/kiotplugins/apkupdater/exceptions"/>
        <source-file src="src/android/exceptions/UnzipException.java"
                     target-dir="src/io/kiotplugins/apkupdater/exceptions"/>
        <source-file src="src/android/exceptions/UpdateNotFoundException.java"
                     target-dir="src/io/kiotplugins/apkupdater/exceptions"/>
        <source-file src="src/android/tools/ApkInstaller.java" target-dir="src/io/kiotplugins/apkupdater/tools"/>
        <source-file src="src/android/tools/AppData.java" target-dir="src/io/kiotplugins/apkupdater/tools"/>
        <source-file src="src/android/tools/ArchiveManager.java" target-dir="src/io/kiotplugins/apkupdater/tools"/>
        <source-file src="src/android/tools/DAReceiver.java" target-dir="src/io/kiotplugins/apkupdater/tools"/>
        <source-file src="src/android/tools/FileProvider.java" target-dir="src/io/kiotplugins/apkupdater/tools"/>
        <source-file src="src/android/tools/FileTools.java" target-dir="src/io/kiotplugins/apkupdater/tools"/>
        <source-file src="src/android/tools/PackageReplacedReceiver.java" target-dir="src/io/kiotplugins/apkupdater/tools"/>
        <source-file src="src/android/tools/PermissionManager.java" target-dir="src/io/kiotplugins/apkupdater/tools"/>
        <source-file src="src/android/tools/StackExtractor.java" target-dir="src/io/kiotplugins/apkupdater/tools"/>
        <source-file src="src/android/tools/WindowStatus.java" target-dir="src/io/kiotplugins/apkupdater/tools"/>
        <source-file src="src/android/update/AppInfo.java" target-dir="src/io/kiotplugins/apkupdater/update"/>
        <source-file src="src/android/update/Update.java" target-dir="src/io/kiotplugins/apkupdater/update"/>
        <source-file src="src/android/update/UpdateManager.java" target-dir="src/io/kiotplugins/apkupdater/update"/>
        <source-file src="src/android/xml/apkupdater_paths.xml" target-dir="res/xml"/>
        <source-file src="src/android/xml/device_admin.xml" target-dir="res/xml"/>


        <!-- ________ PLUGIN END: OTA Plugin ________-->



        <!-- PLUGIN: KioskPlugin-->
        <config-file target="res/xml/config.xml" parent="/*">
            <feature name="KioskPlugin">
                <param name="android-package" value="io.kiotplugins.kioskplugin.KioskPlugin"/>
            </feature>
        </config-file>
        <config-file target="AndroidManifest.xml" parent="/manifest/application">
            <!-- Watchdog Service for autostart on boot -->
            <service android:name="io.kiotplugins.kioskplugin.WatchdogService" 
                     android:exported="false"
                     android:foregroundServiceType="dataSync"/>

            <receiver android:name="io.kiotplugins.kioskplugin.KioskDeviceAdminReceiver"
                      android:permission="android.permission.BIND_DEVICE_ADMIN"
                      android:exported="true">
                <meta-data
                        android:name="android.app.device_admin"
                        android:resource="@xml/kiosk_device_admin_receiver"/>
                <intent-filter>
                    <action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>

                    <action android:name="android.intent.action.DEVICE_ADMIN_ENABLED"/>
                    <action android:name="android.intent.action.PROFILE_PROVISIONING_COMPLETE"/>
                    <action android:name="android.intent.action.BOOT_COMPLETED"/>
                </intent-filter>
            </receiver>
        </config-file>
        <source-file src="src/android/kiosk/KioskCosuLocker.java" target-dir="src/io/kiotplugins/kioskplugin"/>
        <source-file src="src/android/kiosk/KioskDeviceAdminReceiver.java" target-dir="src/io/kiotplugins/kioskplugin"/>
        <source-file src="src/android/kiosk/KioskOptions.java" target-dir="src/io/kiotplugins/kioskplugin"/>
        <source-file src="src/android/kiosk/KioskPlugin.java" target-dir="src/io/kiotplugins/kioskplugin"/>
        <source-file src="src/android/kiosk/WatchdogService.java" target-dir="src/io/kiotplugins/kioskplugin"/>
        <source-file src="src/android/kiosk/xml/kiosk_device_admin_receiver.xml" target-dir="res/xml/"/>
        <!-- ________ PLUGIN END: KioskPlugin ________-->




        <!-- PLUGIN: RockChipInterface-->
        <config-file target="res/xml/config.xml" parent="/*">
            <feature name="RockChipInterface">
                <param name="android-package" value="io.kiotplugins.rockchipinterface.RockChipInterface"/>
            </feature>
        </config-file>
        
        <config-file target="AndroidManifest.xml" parent="/*">
            <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
        </config-file>
        
        <source-file src="src/android/rockchipinterface/RockChipInterface.java" target-dir="src/io/kiotplugins/rockchipinterface" />
        <source-file src="src/android/rockchipinterface/input_reader.cpp" target-dir="src/main/jni" />
        <source-file src="src/android/rockchipinterface/jni/CMakeLists.txt" target-dir="src/main/jni" />
        
        <framework src="src/android/rockchipinterface/build.gradle" custom="true" type="gradleReference" />

        <!-- ________ PLUGIN END: RockChipInterface ________-->



        <!-- PLUGIN: Haptic-->
        <config-file parent="/*" target="res/xml/config.xml">
            <feature name="Haptic">
                <param name="android-package" value="io.kiotplugins.haptic.Haptic" />
            </feature>
        </config-file>
        <source-file src="src/android/Haptic/Haptic.java" target-dir="src/io/kiotplugins/haptic" />
        <config-file target="AndroidManifest.xml" parent="/*">
            <uses-permission android:name="android.permission.VIBRATE" />
        </config-file>
         <!-- ________ PLUGIN END: Haptic ________-->


        <!-- PLUGIN: RelayControl-->
        <config-file parent="/*" target="res/xml/config.xml">
            <feature name="RelayControl">
                <param name="android-package" value="io.kiotplugins.relaycontrol.RelayControl" />
            </feature>
        </config-file>
        <source-file src="src/android/relaycontrol/RelayControl.java" target-dir="src/io/kiotplugins/relaycontrol" />
        <source-file src="src/android/relaycontrol/relay_control.cpp" target-dir="src/main/jni" />
        <config-file target="AndroidManifest.xml" parent="/*">
            <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
            <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
        </config-file>
         <!-- ________ PLUGIN END: RelayControl ________-->

    </platform>


    <platform name="ios">

        <!-- PLUGIN: Haptic-->
        <config-file parent="/*" target="config.xml">
            <feature name="Haptic">
                <param name="ios-package" value="CDVHaptic" />
            </feature>
        </config-file>
        <source-file src="src/ios/haptic/CDVHaptic.m" />
        <header-file src="src/ios/haptic/CDVHaptic.h" />
        <framework src="UIKit.framework" />
         <!-- ________ PLUGIN END: Haptic ________-->

    </platform>

    
    <!-- PLUGIN: RockChipInterface-->
     <hook type="before_plugin_install" src="hooks/check_ndk.js" />

</plugin>
