<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
  xmlns:android="http://schemas.android.com/apk/res/android"
  id="@havesource/cordova-plugin-push" version="7.0.0">

  <name>Cordova Push Plugin</name>
  <description>Enable receiving push notifications on Android and iOS devices. Android uses Firebase Cloud Messaging. iOS uses Apple APNS Notifications.</description>

  <license>MIT</license>

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

  <engines>
    <engine name="cordova" version=">=10.0.0"/>
    <engine name="cordova-android" version=">=12.0.0"/>
    <engine name="cordova-ios" version=">=6.0.0"/>
  </engines>

  <platform name="android">
    <config-file target="res/xml/config.xml" parent="/*">
      <feature name="PushNotification">
        <param name="android-package" value="com.adobe.phonegap.push.PushPlugin"/>
      </feature>
    </config-file>

    <config-file target="AndroidManifest.xml" parent="/manifest">
      <uses-permission android:name="android.permission.INTERNET"/>
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
      <uses-permission android:name="android.permission.WAKE_LOCK"/>
      <uses-permission android:name="android.permission.VIBRATE"/>
      <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
      <uses-permission android:name="${applicationId}.permission.PushHandlerActivity"/>
      <permission android:name="${applicationId}.permission.PushHandlerActivity" android:protectionLevel="signature"></permission>
      <uses-permission android:name="${applicationId}.permission.BackgroundHandlerActivity"/>
      <permission android:name="${applicationId}.permission.BackgroundHandlerActivity" android:protectionLevel="signature"></permission>
    </config-file>

    <config-file target="AndroidManifest.xml" parent="/manifest/application">
      <activity android:name="com.adobe.phonegap.push.PushHandlerActivity" android:exported="false" android:permission="${applicationId}.permission.PushHandlerActivity"/>
      <activity android:name="com.adobe.phonegap.push.BackgroundHandlerActivity" android:exported="false" android:permission="${applicationId}.permission.BackgroundHandlerActivity">
        <intent-filter>
          <action android:name="com.adobe.phonegap.push.background.MESSAGING_EVENT"/>
          <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
      </activity>

      <receiver android:name="com.adobe.phonegap.push.BackgroundActionButtonHandler"/>
      <receiver android:name="com.adobe.phonegap.push.PushDismissedHandler"/>

      <service android:name="com.adobe.phonegap.push.FCMService" android:exported="false">
        <intent-filter>
          <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
      </service>
    </config-file>

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

    <preference name="ANDROIDX_CORE_VERSION" default="1.16.0"/>
    <preference name="FCM_VERSION" default="24.1.0"/>

    <framework src="androidx.core:core:$ANDROIDX_CORE_VERSION" />
    <framework src="me.leolin:ShortcutBadger:1.1.22@aar"/>
    <framework src="com.google.firebase:firebase-messaging:$FCM_VERSION"/>

    <source-file src="src/android/com/adobe/phonegap/push/FCMService.kt" target-dir="java/com/adobe/phonegap/push/"/>
    <source-file src="src/android/com/adobe/phonegap/push/PushConstants.kt" target-dir="java/com/adobe/phonegap/push/"/>
    <source-file src="src/android/com/adobe/phonegap/push/PushHandlerActivity.kt" target-dir="java/com/adobe/phonegap/push/"/>
    <source-file src="src/android/com/adobe/phonegap/push/BackgroundHandlerActivity.kt" target-dir="java/com/adobe/phonegap/push/"/>
    <source-file src="src/android/com/adobe/phonegap/push/PushPlugin.kt" target-dir="java/com/adobe/phonegap/push/"/>
    <source-file src="src/android/com/adobe/phonegap/push/BackgroundActionButtonHandler.kt" target-dir="java/com/adobe/phonegap/push/"/>
    <source-file src="src/android/com/adobe/phonegap/push/PushDismissedHandler.kt" target-dir="java/com/adobe/phonegap/push/"/>
  </platform>

  <platform name="browser">
    <js-module src="www/browser/push.js" name="BrowserPush">
      <clobbers target="PushNotification"/>
    </js-module>

    <asset src="src/browser/ServiceWorker.js" target="ServiceWorker.js"/>
    <asset src="src/browser/manifest.json" target="manifest.json"/>

    <hook type="after_prepare" src="hooks/browser/updateManifest.js"/>
  </platform>

  <platform name="ios">
    <preference name="IOS_FIREBASE_MESSAGING_VERSION" default="11.8.0"/>

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

    <config-file target="*-Info.plist" parent="UIBackgroundModes">
      <array>
        <string>remote-notification</string>
      </array>
    </config-file>

    <config-file target="*-Debug.plist" parent="aps-environment">
      <string>development</string>
    </config-file>

    <config-file target="*-Release.plist" parent="aps-environment">
      <string>production</string>
    </config-file>

    <source-file src="src/ios/AppDelegate+PushPlugin.m"/>
    <source-file src="src/ios/PushPlugin.m"/>
    <source-file src="src/ios/PushPluginConstants.m"/>
    <source-file src="src/ios/PushPluginFCM.m"/>
    <source-file src="src/ios/PushPluginSettings.m"/>

    <header-file src="src/ios/AppDelegate+PushPlugin.h"/>
    <header-file src="src/ios/PushPlugin.h"/>
    <source-file src="src/ios/PushPluginConstants.h"/>
    <header-file src="src/ios/PushPluginFCM.h"/>
    <header-file src="src/ios/PushPluginSettings.h"/>

    <framework src="PushKit.framework"/>

    <podspec>
      <config>
        <source url="https://cdn.cocoapods.org/"/>
      </config>
      <pods use-frameworks="true">
        <pod name="Firebase/Messaging" spec="$IOS_FIREBASE_MESSAGING_VERSION" />
      </pods>
    </podspec>
  </platform>

</plugin>
