<?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="com.adobe.vars"
    version="3.0.0">

    <name>Use Variables</name>

    <preference name="API_KEY" />

    <info>Remember that your api key is $API_KEY!</info>
    <!-- android -->
    <platform name="android">
		<config-file target="AndroidManifest.xml" parent="/manifest">
            <poop name="GoogleMapsApiKey" value="$API_KEY" />
            <package>$PACKAGE_NAME</package>
		</config-file>

    </platform>

    <!-- amazon fireos -->
    <platform name="amazon-fireos">
		<config-file target="AndroidManifest.xml" parent="/manifest">
            <poop name="GoogleMapsApiKey" value="$API_KEY" />
            <package>$PACKAGE_NAME</package>
		</config-file>

    </platform>

    <!-- ios -->
    <platform name="ios">
        <config-file target="config.xml" parent="/widget">
            <awesome value="$API_KEY" />
            <cfbundleid>$PACKAGE_NAME</cfbundleid>
        </config-file>
        <config-file target="*-Info.plist" parent="APluginNode">
            <string></string>
        </config-file>
    </platform>
</plugin>
