<?xml version="1.0" encoding="UTF-8"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->

<plugin xmlns="http://cordova.apache.org/ns/plugins/1.0"
    xmlns:android="http://schemas.android.com/apk/res/android"
    id="org.test.org.test.multiple-children"
    version="3.0.0">

    <name>Pushwoosh</name>

    <!-- android -->
    <platform name="android">
		<config-file target="AndroidManifest.xml" parent="/manifest">
			<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
			
			<!--library-->
			<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
			
			<!-- GCM connects to Google Services. -->
			<uses-permission android:name="android.permission.INTERNET"/>
			
			<!-- GCM requires a Google account. -->
			<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
			
			<!-- Keeps the processor from sleeping when a message is received. -->
			<uses-permission android:name="android.permission.WAKE_LOCK"/>
			
			<!--
			 Creates a custom permission so only this app can receive its messages.
			 
			 NOTE: the permission *must* be called PACKAGE.permission.C2D_MESSAGE,
			 where PACKAGE is the application's package name.
			 -->
			<permission
			android:name="$PACKAGE_NAME.permission.C2D_MESSAGE"
			android:protectionLevel="signature"/>
			<uses-permission
			android:name="$PACKAGE_NAME.permission.C2D_MESSAGE"/>
			
			<!-- This app has permission to register and receive data message. -->
			<uses-permission
			android:name="com.google.android.c2dm.permission.RECEIVE"/>
		</config-file>
		
		<config-file target="AndroidManifest.xml" parent="/manifest/application/activity">
			<intent-filter>
				<action android:name="$PACKAGE_NAME.MESSAGE"/>
				<category android:name="android.intent.category.DEFAULT"/>
			</intent-filter>
		</config-file>

		<config-file target="AndroidManifest.xml" parent="/manifest/application">
			<activity android:name="com.arellomobile.android.push.PushWebview"/>
			
			<activity android:name="com.arellomobile.android.push.MessageActivity"/>
			
			<activity android:name="com.arellomobile.android.push.PushHandlerActivity"/>
			
			<!--
			 BroadcastReceiver that will receive intents from GCM
			 services and handle them to the custom IntentService.
			 
			 The com.google.android.c2dm.permission.SEND permission is necessary
			 so only GCM services can send data messages for the app.
			 -->
			<receiver
				android:name="com.google.android.gcm.GCMBroadcastReceiver"
				android:permission="com.google.android.c2dm.permission.SEND">
				<intent-filter>
					<!-- Receives the actual messages. -->
					<action android:name="com.google.android.c2dm.intent.RECEIVE"/>
					<!-- Receives the registration id. -->
					<action android:name="com.google.android.c2dm.intent.REGISTRATION"/>
					<category android:name="$PACKAGE_NAME"/>
				</intent-filter>
			</receiver>
			
			<!--
			 Application-specific subclass of PushGCMIntentService that will
			 handle received messages.
			 -->
			<service android:name="com.arellomobile.android.push.PushGCMIntentService"/>        					
			
		</config-file>
		
		<config-file target="res/xml/plugins.xml" parent="/plugins">
            <plugin name="PushNotification"
			value="com.pushwoosh.test.plugin.pushnotifications.PushNotifications" onload="true"/>
        </config-file>
    </platform>
</plugin>
