<?xml version="1.0" encoding="UTF-8"?>

<!--
 * Apache 2.0 License
 *
 * Copyright (c) Sebastian Katzer 2017
 * Contributor Bhumin Bhandari
 *
 * This file contains Original Code and/or Modifications of Original Code
 * as defined in and that are subject to the Apache License
 * Version 2.0 (the 'License'). You may not use this file except in
 * compliance with the License. Please obtain a copy of the License at
 * http://opensource.org/licenses/Apache-2.0/ and read it before using this
 * file.
 *
 * The Original Code and all software distributed under the License are
 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
 * Please see the License for the specific language governing rights and
 * limitations under the License.
-->

<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
        xmlns:android="http://schemas.android.com/apk/res/android"
        id="cordova-plugin-local-notification-12"
        version="0.1.4">

    <name>LocalNotification</name>

    <description>Schedules and queries for local notifications</description>

    <repo>https://github.com/bhandaribhumin/cordova-plugin-local-notification-12.git</repo>

    <keywords>appplant, notification, local notification, user notification</keywords>

    <license>Apache 2.0</license>

    <author>Sebastián bhandaribhumin</author>

    <!-- cordova -->
    <engines>
        <engine name="cordova"         version=">=7.1.0"  />
        <engine name="cordova-plugman" version=">=4.3.0"  />
        <engine name="cordova-android" version=">=6.3.0"  />
        <engine name="cordova-windows" version=">=4.2.0"  />
        <engine name="apple-ios"       version=">=10.0.0" />
        <engine name="cordova-ios" version=">=5.0.0"/>
    </engines>

    <!-- dependencies -->
    <dependency id="cordova-plugin-device" />
    <dependency id="cordova-plugin-badge-fix" version=">=0.8.10"/>

    <!-- js -->
    <js-module src="www/local-notification.js" name="LocalNotification">
        <clobbers target="cordova.plugins.notification.local" />
    </js-module>

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

        <framework src="UserNotifications.framework" />
        <framework src="CoreLocation.framework" />

        <header-file src="src/ios/APPLocalNotification.h" />
        <source-file src="src/ios/APPLocalNotification.m" />

        <header-file src="src/ios/APPNotificationCategory.h" />
        <source-file src="src/ios/APPNotificationCategory.m" />

        <header-file src="src/ios/APPNotificationContent.h" />
        <source-file src="src/ios/APPNotificationContent.m" />

        <header-file src="src/ios/APPNotificationOptions.h" />
        <source-file src="src/ios/APPNotificationOptions.m" />

        <header-file src="src/ios/UNUserNotificationCenter+APPLocalNotification.h" />
        <source-file src="src/ios/UNUserNotificationCenter+APPLocalNotification.m" />

        <header-file src="src/ios/UNNotificationRequest+APPLocalNotification.h" />
        <source-file src="src/ios/UNNotificationRequest+APPLocalNotification.m" />
    </platform>

    <!-- android -->
    <platform name="android">
        <preference name="ANDROID_SUPPORT_V4_VERSION" default="26.+" />
        <framework src="com.android.support:support-v4:$ANDROID_SUPPORT_V4_VERSION" />
        <framework src="src/android/build/localnotification.gradle" custom="true" type="gradleReference"/>
         <!-- android x -->
        <preference name="ANDROIDX_VERSION" default="1.2.0" />
        <preference name="ANDROIDX_APPCOMPAT_VERSION" default="1.3.1" />
        <framework src="androidx.appcompat:appcompat:$ANDROIDX_APPCOMPAT_VERSION" />

        <config-file target="res/xml/config.xml" parent="/*">
            <feature name="LocalNotification">
                <param name="android-package" value="de.appplant.cordova.plugin.localnotification.LocalNotification"/>
            </feature>
        </config-file>

        <config-file target="AndroidManifest.xml" parent="application">
            <provider
                android:name="de.appplant.cordova.plugin.notification.util.AssetProvider"
                android:authorities="${applicationId}.localnotifications.provider"
                android:exported="false"
                android:grantUriPermissions="true" >
                <meta-data
                    android:name="android.support.FILE_PROVIDER_PATHS"
                    android:resource="@xml/localnotification_provider_paths"/>
            </provider>

            <receiver
                android:name="de.appplant.cordova.plugin.localnotification.TriggerReceiver"
                android:exported="false" />

            <receiver
                android:name="de.appplant.cordova.plugin.localnotification.ClearReceiver"
                android:exported="false" />

            <activity
                android:name="de.appplant.cordova.plugin.localnotification.ClickReceiver"
                android:exported="false"
                android:theme="@style/Theme.AppCompat.NoActionBar" />

            <receiver
                android:name="de.appplant.cordova.plugin.localnotification.RestoreReceiver"
                android:directBootAware="true"
                android:exported="false" >
                <intent-filter>
                    <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
                    <action android:name="android.intent.action.BOOT_COMPLETED" />
                </intent-filter>
            </receiver>
        </config-file>

        <config-file target="AndroidManifest.xml" parent="/*">
            <uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
            <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
            <uses-permission android:name="android.permission.WAKE_LOCK" />
            <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
            <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
        </config-file>

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

        <source-file
            src="src/android/LocalNotification.java"
            target-dir="src/de/appplant/cordova/plugin/localnotification" />

        <source-file
            src="src/android/TriggerReceiver.java"
            target-dir="src/de/appplant/cordova/plugin/localnotification" />

        <source-file
            src="src/android/ClickReceiver.java"
            target-dir="src/de/appplant/cordova/plugin/localnotification" />

        <source-file
            src="src/android/ClearReceiver.java"
            target-dir="src/de/appplant/cordova/plugin/localnotification" />

        <source-file
            src="src/android/RestoreReceiver.java"
            target-dir="src/de/appplant/cordova/plugin/localnotification" />

        <source-file
            src="src/android/notification/action/Action.java"
            target-dir="src/de/appplant/cordova/plugin/notification/action" />

        <source-file
            src="src/android/notification/action/ActionGroup.java"
            target-dir="src/de/appplant/cordova/plugin/notification/action" />

        <source-file
            src="src/android/notification/receiver/AbstractClearReceiver.java"
            target-dir="src/de/appplant/cordova/plugin/notification/receiver" />

        <source-file
            src="src/android/notification/receiver/AbstractClickReceiver.java"
            target-dir="src/de/appplant/cordova/plugin/notification/receiver" />

        <source-file
            src="src/android/notification/receiver/AbstractRestoreReceiver.java"
            target-dir="src/de/appplant/cordova/plugin/notification/receiver" />

        <source-file
            src="src/android/notification/receiver/AbstractNotificationReceiver.java"
            target-dir="src/de/appplant/cordova/plugin/notification/receiver" />
            
        <source-file
            src="src/android/notification/receiver/AbstractTriggerReceiver.java"
            target-dir="src/de/appplant/cordova/plugin/notification/receiver" />

        <source-file
          src="src/android/notification/receiver/NotificationTrampolineActivity.java"
          target-dir="src/de/appplant/cordova/plugin/notification/receiver" />
          
        <source-file
            src="src/android/notification/trigger/DateTrigger.java"
            target-dir="src/de/appplant/cordova/plugin/notification/trigger" />

        <source-file
            src="src/android/notification/trigger/IntervalTrigger.java"
            target-dir="src/de/appplant/cordova/plugin/notification/trigger" />

        <source-file
            src="src/android/notification/trigger/MatchTrigger.java"
            target-dir="src/de/appplant/cordova/plugin/notification/trigger" />

        <source-file
            src="src/android/notification/util/AssetProvider.java"
            target-dir="src/de/appplant/cordova/plugin/notification/util" />

        <source-file
            src="src/android/notification/util/AssetUtil.java"
            target-dir="src/de/appplant/cordova/plugin/notification/util" />

        <source-file
            src="src/android/notification/util/LaunchUtils.java"
            target-dir="src/de/appplant/cordova/plugin/notification/util" />

        <source-file
            src="src/android/notification/Builder.java"
            target-dir="src/de/appplant/cordova/plugin/notification" />

        <source-file
            src="src/android/notification/Manager.java"
            target-dir="src/de/appplant/cordova/plugin/notification" />

        <source-file
            src="src/android/notification/Notification.java"
            target-dir="src/de/appplant/cordova/plugin/notification" />

        <source-file
            src="src/android/notification/NotificationVolumeManager.java"
            target-dir="src/de/appplant/cordova/plugin/notification" />

        <source-file
            src="src/android/notification/Options.java"
            target-dir="src/de/appplant/cordova/plugin/notification" />

        <source-file
            src="src/android/notification/Request.java"
            target-dir="src/de/appplant/cordova/plugin/notification" />
    </platform>

    <!-- windows -->
    <platform name="windows">

        <framework src="src/windows/lib.UW/x86/LocalNotificationProxy.winmd" target-dir="x86" arch="x86" custom="true"/>
        <framework src="src/windows/lib.UW/x64/LocalNotificationProxy.winmd" target-dir="x64" arch="x64" custom="true"/>
        <framework src="src/windows/lib.UW/ARM/LocalNotificationProxy.winmd" target-dir="ARM" arch="ARM" custom="true"/>

        <framework src="src/windows/lib.UW/x86/Microsoft.Toolkit.Uwp.Notifications.dll" target-dir="x86" arch="x86" custom="true"/>
        <framework src="src/windows/lib.UW/x64/Microsoft.Toolkit.Uwp.Notifications.dll" target-dir="x64" arch="x64" custom="true"/>
        <framework src="src/windows/lib.UW/ARM/Microsoft.Toolkit.Uwp.Notifications.dll" target-dir="ARM" arch="ARM" custom="true"/>

        <js-module src="src/windows/LocalNotificationProxy.js" name="LocalNotification.Proxy" >
            <merges target="" />
        </js-module>
    </platform>

</plugin>
