<?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="nxtpush-cordova-plugin"
  version="1.0.4">

    <name>NXTPush</name>
    <description>NXTPush for cordova plugin</description>
    <author>NXTPush</author>
    <keywords>NXTPush,push</keywords>
    <license>MIT License</license>

    <preference name="JIPUSH_APPKEY" />
    <preference name="MI_PUSH_APPID" />
    <preference name="MI_PUSH_APPKEY" />

    <engines>
        <engine name="cordova" version=">=3.0" />
    </engines>

    <!-- dependencies -->
    <dependency id="cordova-plugin-device" />
    <dependency id="cordova-plugin-jcore" />

    <js-module src="www/NXTPlugin.js" name="NXTPlugin">
        <clobbers target="NXTPlugin" />
    </js-module>

    <platform name="ios">
        <config-file target="config.xml" parent="/*">
            <feature name="JPushPlugin">
                <param name="ios-package" value="JPushPlugin" />
            </feature>
        </config-file>

        <header-file src="src/ios/Plugins/JPushDefine.h" />
        <header-file src="src/ios/Plugins/JPushPlugin.h" />
        <source-file src="src/ios/Plugins/JPushPlugin.m" />
        <header-file src="src/ios/Plugins/AppDelegate+JPush.h" />
        <source-file src="src/ios/Plugins/AppDelegate+JPush.m" />

        <header-file src="src/ios/lib/JPUSHService.h" />
        <source-file src="src/ios/lib/jpush-ios-3.0.5.a" framework="true" />
        <resource-file src="src/ios/JPushConfig.plist" />

        <framework src="CFNetwork.framework" weak="true" />
        <framework src="CoreFoundation.framework" weak="true" />
        <framework src="CoreTelephony.framework" weak="true" />
        <framework src="SystemConfiguration.framework" weak="true" />
        <framework src="CoreGraphics.framework" weak="true" />
        <framework src="Foundation.framework" weak="true" />
        <framework src="UIKit.framework" weak="true" />
        <framework src="Security.framework" weak="true" />
        <framework src="libz.tbd" weak="true" />
        <framework src="AdSupport.framework" weak="true" />
        <framework src="UserNotifications.framework" weak="true" />
        <framework src="libresolv.tbd" weak="true" />

        <config-file target="*JPushConfig.plist" parent="Appkey">
            <string>$JIPUSH_APPKEY</string>
        </config-file>
    </platform>

    <platform name="android">
        <config-file target="res/xml/config.xml" parent="/*">
            <feature name="NXTPushPlugin">
                <param name="android-package" value="com.eegrid.phonegap.NXTPushPlugin" />
            </feature>
        </config-file>

        <config-file target="AndroidManifest.xml" parent="/manifest">
             <!-- 华为推送 必需的权限 开始-->
            <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
            <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
            <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
            <uses-permission android:name="android.permission.WAKE_LOCK"/>
            <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
            <!-- 华为推送 必需的权限 结束 -->

            <!-- 浮动通知权限 -->
            <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
            <uses-permission android:name="android.permission.GET_TASKS"/>
            <permission android:name="$PACKAGE_NAME.permission.MIPUSH_RECEIVE" android:protectionLevel="signature"/>
            <uses-permission android:name="$PACKAGE_NAME.permission.MIPUSH_RECEIVE"/>
            <!-- 小米推送权限  结束 -->
            <!-- 极光推送权限 -->
            <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
            <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
            <uses-permission android:name="android.permission.VIBRATE" />
            <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
            <uses-permission android:name="android.permission.WRITE_SETTINGS" />
            <uses-permission android:name="$PACKAGE_NAME.permission.JPUSH_MESSAGE" />
            <permission android:name="$PACKAGE_NAME.permission.JPUSH_MESSAGE" android:protectionLevel="signature" />
        </config-file>

        <config-file target="AndroidManifest.xml" parent="/manifest/application">
            <!-- 华为推送SDK配置开始 -->
            <!-- 第三方相关 :接收Push消息（注册、Push消息、Push连接状态、标签，LBS上报结果）广播 -->
            <receiver android:name="com.nxt.push.receiver.HuaWeiReceiver">
                <intent-filter>
                <!-- 必须,用于接收token-->
                <action android:name="com.huawei.android.push.intent.REGISTRATION"/>
                <!-- 必须，用于接收消息-->
                <action android:name="com.huawei.android.push.intent.RECEIVE"/>
                <!-- 可选，用于点击通知栏或通知栏上的按钮后触发onEvent回调-->
                <action android:name="com.huawei.android.push.intent.CLICK"/>
                <!-- 可选，查看push通道是否连接，不查看则不需要-->
                <action android:name="com.huawei.intent.action.PUSH_STATE"/>
                <!-- 可选，标签、地理位置上报回应，不上报则不需要 -->
                <action android:name="com.huawei.android.push.plugin.RESPONSE"/>
                </intent-filter>
                <meta-data
                android:name="CS_cloud_ablitity"
                android:value="@string/hwpush_ability_value"/>
            </receiver>
            <!-- PushSDK:PushSDK接收外部请求事件入口 -->
            <receiver
                android:name="com.huawei.android.pushagent.PushEventReceiver"
                android:process=":hwpushservice">
                <intent-filter>
                <action android:name="com.huawei.android.push.intent.REFRESH_PUSH_CHANNEL"/>
                <action android:name="com.huawei.intent.action.PUSH"/>
                <action android:name="com.huawei.intent.action.PUSH_ON"/>
                <action android:name="com.huawei.android.push.PLUGIN"/>
                </intent-filter>
                <intent-filter>
                <action android:name="android.intent.action.PACKAGE_ADDED"/>
                <action android:name="android.intent.action.PACKAGE_REMOVED"/>

                <data android:scheme="package"/>
                </intent-filter>
            </receiver>
            <receiver
                android:name="com.huawei.android.pushagent.PushBootReceiver"
                android:process=":hwpushservice">
                <intent-filter>
                <action android:name="com.huawei.android.push.intent.REGISTER"/>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
                </intent-filter>
                <meta-data
                android:name="CS_cloud_version"
                android:value="\u0032\u0037\u0030\u0035"/>
            </receiver>

            <!-- PushSDK:Push服务 -->
            <service
                android:name="com.huawei.android.pushagent.PushService"
                android:process=":hwpushservice">
            </service>
            <activity
                android:name="com.huawei.android.pushselfshow.permission.RequestPermissionsActivity"
                android:configChanges="orientation|screenSize|locale|layoutDirection"
                android:exported="false"
                android:launchMode="singleTop"
                android:screenOrientation="portrait"
                android:theme="@android:style/Theme.DeviceDefault.Light.Dialog.NoActionBar">
            </activity>
            <!-- 华为推送SDK配置结束 -->

            <!-- 小米推送SDK配置开始 -->
            <service
                android:name="com.xiaomi.push.service.XMJobService"
                android:enabled="true"
                android:exported="false"
                android:permission="android.permission.BIND_JOB_SERVICE"
                android:process=":mipushservice"/>
            <service
                android:name="com.xiaomi.push.service.XMPushService"
                android:enabled="true"
                android:process=":mipushservice"/>
            <service
                android:name="com.xiaomi.mipush.sdk.PushMessageHandler"
                android:enabled="true"
                android:exported="true"/>
            <service
                android:name="com.xiaomi.mipush.sdk.MessageHandleService"
                android:enabled="true"/>

            <receiver
                android:name="com.nxt.push.receiver.XiaomiReceiver"
                android:exported="true">
                <intent-filter>
                <action android:name="com.xiaomi.mipush.RECEIVE_MESSAGE"/>
                </intent-filter>
                <intent-filter>
                <action android:name="com.xiaomi.mipush.MESSAGE_ARRIVED"/>
                </intent-filter>
                <intent-filter>
                <action android:name="com.xiaomi.mipush.ERROR"/>
                </intent-filter>
            </receiver>
            <receiver
                android:name="com.xiaomi.push.service.receivers.NetworkStatusReceiver"
                android:exported="true">
                <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>

                <category android:name="android.intent.category.DEFAULT"/>
                </intent-filter>
            </receiver>
            <receiver
                android:name="com.xiaomi.push.service.receivers.PingReceiver"
                android:exported="false"
                android:process=":mipushservice">
                <intent-filter>
                <action android:name="com.xiaomi.push.PING_TIMER"/>
                </intent-filter>
            </receiver>
            <!-- 是否需要加上\\0，待纠结 -->
            <meta-data android:name="MI_PUSH_APPID" android:value="$MI_PUSH_APPID" />
            <meta-data android:name="MI_PUSH_APPKEY" android:value="$MI_PUSH_APPKEY" />    
            <!-- 小米推送SDK配置结束 -->

            <!-- 极光推送开始 -->
            <!-- Required SDK核心功能-->
            <activity android:name="cn.jpush.android.ui.PushActivity"
                android:theme="@android:style/Theme.Translucent.NoTitleBar"
                android:configChanges="orientation|keyboardHidden">
                <intent-filter>
                <action android:name="cn.jpush.android.ui.PushActivity" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="$PACKAGE_NAME" />
                </intent-filter>
            </activity>

            <!-- Rich push 核心功能 since 2.0.6-->
            <activity android:name="cn.jpush.android.ui.PopWinActivity"
                android:theme="@style/MyDialogStyle"
                android:exported="false">
            </activity>

            <!-- Required  SDK核心功能-->
            <service android:name="cn.jpush.android.service.DownloadService"
                android:enabled="true"
                android:exported="false">
            </service>

            <!-- Required SDK 核心功能-->
            <service android:name="cn.jpush.android.service.PushService"
                android:enabled="true"
                android:exported="false"
                android:process=":remote">
                <intent-filter>
                <action android:name="cn.jpush.android.intent.REGISTER" />
                <action android:name="cn.jpush.android.intent.REPORT" />
                <action android:name="cn.jpush.android.intent.PushService" />
                <action android:name="cn.jpush.android.intent.PUSH_TIME" />
                </intent-filter>
            </service>

            <!-- Required SDK核心功能-->
            <receiver android:name="cn.jpush.android.service.PushReceiver"
                android:enabled="true"
                android:exported="false">
                <intent-filter android:priority="1000">
                <!--Required  显示通知栏 -->
                <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />
                <category android:name="$PACKAGE_NAME" />
                </intent-filter>
                <intent-filter>
                <action android:name="android.intent.action.USER_PRESENT" />
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
                </intent-filter>
                <!-- Optional -->
                <intent-filter>
                <action android:name="android.intent.action.PACKAGE_ADDED" />
                <action android:name="android.intent.action.PACKAGE_REMOVED" />
                <data android:scheme="package" />
                </intent-filter>
            </receiver>

            <!-- since 1.8.0 option 可选项。用于同一设备中不同应用的JPush服务相互拉起的功能。 -->
            <!-- 若不启用该功能可删除该组件，将不拉起其他应用也不能被其他应用拉起 -->
            <service android:name="cn.jpush.android.service.DaemonService"
                android:enabled="true"
                android:exported="true">
                <intent-filter>
                <action android:name="cn.jpush.android.intent.DaemonService" />
                <category android:name="$PACKAGE_NAME" />
                </intent-filter>
            </service>

            <!-- User defined.  For test only  用户自定义的广播接收器 -->
            <receiver android:name="com.eegrid.phonegap.JPushReceiver" android:enabled="true">
                <intent-filter android:priority="1000">
                <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />
                <!-- Required  显示通知栏 -->
                <category android:name="$PACKAGE_NAME" />
                </intent-filter>
                <intent-filter>
                <action android:name="cn.jpush.android.intent.REGISTRATION" />
                <!-- Required  用户注册SDK的intent -->
                <action android:name="cn.jpush.android.intent.UNREGISTRATION" />
                <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" />
                <!-- Required  用户接收SDK消息的intent -->
                <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" />
                <!-- Required  用户接收SDK通知栏信息的intent -->
                <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" />
                <!-- Required  用户打开自定义通知栏的intent -->
                <action android:name="cn.jpush.android.intent.ACTION_RICHPUSH_CALLBACK" />
                <!-- Optional 用户接受Rich Push Javascript 回调函数的intent -->
                <category android:name="$PACKAGE_NAME" />
                </intent-filter>
            </receiver>

            <!-- Required SDK核心功能-->
            <receiver
                android:name="cn.jpush.android.service.AlarmReceiver"
                android:exported="false" />

            <!-- Required. Enable it you can get statistics data with channel -->
            <meta-data android:name="JPUSH_CHANNEL" android:value="developer-default" />
            <meta-data android:name="JPUSH_APPKEY" android:value="$JIPUSH_APPKEY" />
            <!-- 极光配置结束 -->

            <!-- 指定全局接收器 -->
            <receiver android:name="com.eegrid.phonegap.GlobalReceiver">
            <intent-filter>
                <action android:name="com.nxt.push.receiver.nxtreceiver"/>
            </intent-filter>
            </receiver>

        </config-file>

        <source-file src="src/android/libs/jpush-android_v3.0.6.jar" target-dir="libs" />
        <source-file src="src/android/libs/HwPush_SDK_V2705.jar" target-dir="libs" />
        <source-file src="src/android/libs/MiPush_SDK_Client_3_4_0.jar" target-dir="libs" />
        
        <!-- package com.eegrid.phonegap; -->
        <source-file src="src/android/GlobalReceiver.java" target-dir="src/com/eegrid/phonegap" />
        <source-file src="src/android/JPushReceiver.java" target-dir="src/com/eegrid/phonegap" />
        <source-file src="src/android/JPushUtil.java" target-dir="src/com/eegrid/phonegap" />
        <source-file src="src/android/NXTPushPlugin.java" target-dir="src/com/eegrid/phonegap" />
        <!-- package com.nxt.push.receiver; -->
        <source-file src="src/android/push_lib/receiver/HuaWeiReceiver.java" target-dir="src/com/nxt/push/receiver" />
        <source-file src="src/android/push_lib/receiver/NXTReceiver.java" target-dir="src/com/nxt/push/receiver" />
        <source-file src="src/android/push_lib/receiver/XiaomiReceiver.java" target-dir="src/com/nxt/push/receiver" />
        <!-- package com.nxt.push.sdk; -->
        <source-file src="src/android/push_lib/sdk/HuaWeiPushClient.java" target-dir="src/com/nxt/push/sdk" />
        <source-file src="src/android/push_lib/sdk/NXTPushClient.java" target-dir="src/com/nxt/push/sdk" />
        <source-file src="src/android/push_lib/sdk/NXTPushManager.java" target-dir="src/com/nxt/push/sdk" />
        <source-file src="src/android/push_lib/sdk/XiaomiPushClient.java" target-dir="src/com/nxt/push/sdk" />

        <!-- package  com.nxt.push.util -->
        <source-file src="src/android/push_lib/util/RomTypeUtil.java" target-dir="src/com/nxt/push/util" />

       
        <source-file src="src/android/res/drawable-hdpi/jpush_richpush_btn_selector.xml" target-dir="res/drawable" />
        <source-file src="src/android/res/drawable-hdpi/jpush_richpush_progressbar.xml" target-dir="res/drawable" />

        <source-file src="src/android/res/drawable-hdpi/jpush_ic_richpush_actionbar_back.png" target-dir="res/drawable-hdpi" />
        <source-file src="src/android/res/drawable-hdpi/jpush_ic_richpush_actionbar_divider.png" target-dir="res/drawable-hdpi" />

        <source-file src="src/android/res/layout/jpush_popwin_layout.xml" target-dir="res/layout" />
        <source-file src="src/android/res/layout/jpush_webview_layout.xml" target-dir="res/layout" />
        <source-file src="src/android/res/layout/test_notification_layout.xml" target-dir="res/layout" />

        <source-file src="src/android/res/values/hwpush_colors.xml" target-dir="res/values" />
        <source-file src="src/android/res/values/hwpush_strings.xml" target-dir="res/values" />
        <source-file src="src/android/res/values/xiaomipush_strings.xml" target-dir="res/values" />
        <source-file src="src/android/res/values/jpush_style.xml" target-dir="res/values" />


        <source-file src="src/android/res/values-zh-rCN/hwpush_strings.xml" target-dir="res/values-zh-rCN" />
    </platform>
</plugin>
