<?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://apache.org/cordova/ns/plugins/1.0"
xmlns:rim="http://www.blackberry.com/ns/widgets"
xmlns:android="http://schemas.android.com/apk/res/android"
           id="cordova-plugin-geolocation"
      version="4.1.1-dev">

    <name>Geolocation</name>
    <description>Cordova Geolocation Plugin</description>
    <license>Apache 2.0</license>
    <keywords>cordova,geolocation</keywords>
    <repo>https://github.com/apache/cordova-plugin-geolocation</repo>
    <issue>https://github.com/apache/cordova-plugin-geolocation/issues</issue>

    <engines>
        <engine name="cordova-android" version=">=6.3.0" />
    </engines>
    <preference name="GPS_REQUIRED" default="true"/>

    <!-- android -->
    <platform name="android">

        <config-file target="AndroidManifest.xml" parent="/*">
            <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
            <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
            <uses-feature android:name="android.hardware.location.gps" android:required="$GPS_REQUIRED" />
        </config-file>

        <config-file target="res/xml/config.xml" parent="/*">
          <feature name="Geolocation">
              <param name="android-package" value="org.apache.cordova.geolocation.Geolocation" />
          </feature>
        </config-file>

        <source-file src="src/android/Geolocation.java" target-dir="src/org/apache/cordova/geolocation/" />

        <js-module src="www/android/geolocation.js" name="geolocation">
            <clobbers target="navigator.geolocation" />
        </js-module>

        <!-- We don't expose PositionError via clobber on Android as we use it internally only -->
        <js-module src="www/PositionError.js" name="PositionError">
            <runs />
        </js-module>

    </platform>

    <!-- ios -->
    <platform name="ios">

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

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

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

        <js-module src="www/geolocation.js" name="geolocation">
            <clobbers target="navigator.geolocation" />
        </js-module>

        <config-file target="config.xml" parent="/*">
                <feature name="Geolocation">
                    <param name="ios-package" value="CDVLocation"/>
                </feature>
        </config-file>
        <header-file src="src/ios/CDVLocation.h" />
        <source-file src="src/ios/CDVLocation.m" />
        <framework src="CoreLocation.framework" />

    </platform>

    <!-- windows universal apps (Windows 8.1, Windows Phone 8.1, Windows 8.0) -->
    <platform name="windows">
        <config-file target="package.appxmanifest" parent="/Package/Capabilities">
            <DeviceCapability Name="location" />
        </config-file>

        <js-module src="src/windows/GeolocationProxy.js" name="GeolocationProxy">
            <runs />
        </js-module>

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

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

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

        <js-module src="www/geolocation.js" name="geolocation">
            <clobbers target="navigator.geolocation" />
        </js-module>
    </platform>
</plugin>
