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

<!--
 * Apache 2.0 License
 *
 * Copyright (c) Sebastian Katzer 2017
 *
 * 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-notification-local"
    version="1.0.0">

  <name>LocalNotification</name>

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

  <repo>https://github.com/katzer/cordova-plugin-local-notifications.git</repo>

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

  <license>Apache 2.0</license>

  <author>Sebastián Katzer</author>

  <!-- cordova -->
  <engines>
    <engine
        name="cordova"
        version=">=11.0.0" />
    <engine
        name="cordova-android"
        version=">=11.0.0" />
    <engine
        name="cordova-ios"
        version=">=6.0.0" />
  </engines>

  <!-- dependencies -->
  <dependency id="cordova-plugin-device" />
  <dependency
      id="cordova-plugin-notification-badge"
      version=">=1.0.0" />

  <!-- 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">
    <framework src="androidx.legacy:legacy-support-v4:1.0.0" />

    <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="/manifest/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:launchMode="singleInstance"
          android:theme="@android:style/Theme.Translucent"
          android:exported="false" />

      <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="/manifest">
      <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
      <uses-permission android:name="android.permission.WAKE_LOCK" />
    </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/AbstractTriggerReceiver.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/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/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>

</plugin>
 