<?xml version="1.0" encoding="UTF-8"?>

<plugin xmlns="http://www.phonegap.com/ns/plugins/1.0"
        xmlns:android="http://schemas.android.com/apk/res/android"
        id="cordova-plugin-mauron85-background-geolocation"
        version="2.2.5">
    <name>CDVBackgroundGeolocation</name>
    <description>Cordova Background Geolocation Plugin</description>
    <license>Apache-2.0</license>
    <keywords>cordova,phonegap,background,geolocation,gps,location</keywords>

    <engines>
        <engine name="cordova" version=">=3.0.0"/>
    </engines>

    <js-module src="www/backgroundGeolocation.js" name="backgroundGeolocation">
        <clobbers target="backgroundGeolocation"/>
    </js-module>

    <!-- android -->
    <platform name="android">
        <preference name="ICON" default="@mipmap/icon" />
        <preference name="SMALL_ICON" default="@mipmap/icon" />
        <preference name="ACCOUNT_LABEL" default="@string/app_name" />
        <preference name="ACCOUNT_TYPE" default="$PACKAGE_NAME.account" />
        <preference name="CONTENT_AUTHORITY" default="$PACKAGE_NAME" />

        <framework src="android/logtofile.gradle" custom="true" type="gradleReference"/>
        <framework src="com.google.android.gms:play-services-location:+" />
        <framework src="com.android.support:support-v4:+" />
        <source-file src="android/plugin/src/main/java/com/tenforwardconsulting/cordova/BackgroundGeolocationPlugin.java" target-dir="src/com/tenforwardconsulting/cordova"/>
        <source-file src="android/plugin/src/main/java/com/tenforwardconsulting/bgloc/DistanceFilterLocationProvider.java" target-dir="src/com/tenforwardconsulting/bgloc"/>
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/AbstractLocationProvider.java" target-dir="src/com/marianhello/bgloc"/>
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/ActivityRecognitionLocationProvider.java" target-dir="src/com/marianhello/bgloc"/>
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/BootCompletedReceiver.java" target-dir="src/com/marianhello/bgloc"/>
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/Config.java" target-dir="src/com/marianhello/bgloc"/>
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/HttpPostService.java" target-dir="src/com/marianhello/bgloc"/>
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/LocationProvider.java" target-dir="src/com/marianhello/bgloc"/>
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/LocationProviderFactory.java" target-dir="src/com/marianhello/bgloc"/>
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/LocationService.java" target-dir="src/com/marianhello/bgloc"/>
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/ResourceResolver.java" target-dir="src/com/marianhello/bgloc"/>
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/UploadingCallback.java" target-dir="src/com/marianhello/bgloc"/>
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/data/BackgroundLocation.java" target-dir="src/com/marianhello/bgloc/data" />
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/data/ConfigurationDAO.java" target-dir="src/com/marianhello/bgloc/data" />
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/data/DAOFactory.java" target-dir="src/com/marianhello/bgloc/data" />
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/data/LocationDAO.java" target-dir="src/com/marianhello/bgloc/data" />
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteConfigurationContract.java" target-dir="src/com/marianhello/bgloc/data/sqlite" />
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteLocationContract.java" target-dir="src/com/marianhello/bgloc/data/sqlite" />
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteConfigurationDAO.java" target-dir="src/com/marianhello/bgloc/data/sqlite" />
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteLocationDAO.java" target-dir="src/com/marianhello/bgloc/data/sqlite" />
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteOpenHelper.java" target-dir="src/com/marianhello/bgloc/data/sqlite" />
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/sync/AccountHelper.java" target-dir="src/com/marianhello/bgloc/sync" />
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/sync/Authenticator.java" target-dir="src/com/marianhello/bgloc/sync" />
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/sync/AuthenticatorService.java" target-dir="src/com/marianhello/bgloc/sync" />
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/sync/BatchManager.java" target-dir="src/com/marianhello/bgloc/sync" />
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/sync/DummyContentProvider.java" target-dir="src/com/marianhello/bgloc/sync" />
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/sync/SyncAdapter.java" target-dir="src/com/marianhello/bgloc/sync" />
        <source-file src="android/plugin/src/main/java/com/marianhello/bgloc/sync/SyncService.java" target-dir="src/com/marianhello/bgloc/sync" />
        <source-file src="android/plugin/src/main/java/com/marianhello/logging/DBLogReader.java" target-dir="src/com/marianhello/logging" />
        <source-file src="android/plugin/src/main/java/com/marianhello/logging/LogEntry.java" target-dir="src/com/marianhello/logging" />
        <source-file src="android/plugin/src/main/java/com/marianhello/logging/LoggerManager.java" target-dir="src/com/marianhello/logging" />
        <source-file src="android/plugin/src/main/java/com/marianhello/logging/LogReader.java" target-dir="src/com/marianhello/logging" />
        <source-file src="android/plugin/src/main/java/com/marianhello/logging/SQLBuilder.java" target-dir="src/com/marianhello/logging" />
        <source-file src="android/plugin/src/main/java/com/marianhello/cordova/JSONErrorFactory.java" target-dir="src/com/marianhello/cordova" />
        <source-file src="android/plugin/src/main/java/com/marianhello/cordova/PermissionHelper.java" target-dir="src/com/marianhello/cordova" />
        <source-file src="android/plugin/src/main/java/org/apache/commons/io/Charsets.java" target-dir="src/apache/commons/io" />
        <source-file src="android/plugin/src/main/java/org/apache/commons/io/input/ReversedLinesFileReader.java" target-dir="src/apache/commons/io/input" />
        <resource-file src="android/plugin/src/main/res/xml/syncadapter.xml" target="res/xml/syncadapter.xml" />
        <resource-file src="android/plugin/src/main/res/xml/authenticator.xml" target="res/xml/authenticator.xml" />

        <config-file target="AndroidManifest.xml" parent="/manifest/application">
            <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
            <service
                android:name="com.marianhello.bgloc.sync.SyncService"
                android:exported="true"
                android:process=":sync">
                <intent-filter>
                    <action android:name="android.content.SyncAdapter"/>
                </intent-filter>
                <meta-data android:name="android.content.SyncAdapter"
                    android:resource="@xml/syncadapter" />
            </service>
            <service
                android:name="com.marianhello.bgloc.sync.AuthenticatorService">
                <intent-filter>
                    <action android:name="android.accounts.AccountAuthenticator"/>
                </intent-filter>
                <meta-data
                    android:name="android.accounts.AccountAuthenticator"
                    android:resource="@xml/authenticator" />
            </service>
            <provider
                android:name="com.marianhello.bgloc.sync.DummyContentProvider"
                android:authorities="@string/content_authority"
                android:exported="false"
                android:syncable="true"/>
            <service
                android:enabled="true"
                android:exported="false"
                android:name="com.marianhello.bgloc.LocationService"
                />
            <receiver
                  android:name="com.marianhello.bgloc.BootCompletedReceiver"
                  android:enabled="true"
                  android:exported="true">
               <intent-filter>
                  <action android:name="android.intent.action.BOOT_COMPLETED" />
               </intent-filter>
            </receiver>
        </config-file>

        <config-file target="AndroidManifest.xml" parent="/manifest">
            <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
            <uses-permission android:name="android.permission.GET_ACCOUNTS" />
            <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
            <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
            <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
            <uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" />
            <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
            <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
            <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
            <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
            <uses-permission android:name="android.permission.INTERNET" />
            <uses-permission android:name="android.permission.WAKE_LOCK" />
            <uses-permission android:name="android.hardware.location" />
        </config-file>
        <config-file target="res/xml/config.xml" parent="/*">
            <feature name="BackgroundGeolocation">
                <param name="android-package" value="com.tenforwardconsulting.cordova.BackgroundGeolocationPlugin"/>
            </feature>
        </config-file>

        <config-file target="res/values/strings.xml" parent="/resources">
            <string name="account_type">$ACCOUNT_TYPE</string>
            <string name="content_authority">$CONTENT_AUTHORITY</string>
        </config-file>

        <edit-config file="res/xml/authenticator.xml" target="/*" mode="overwrite">
          <account-authenticator
              xmlns:android="http://schemas.android.com/apk/res/android"
              android:accountType="@string/account_type"
              android:icon="$ICON"
              android:smallIcon="$SMALL_ICON"
              android:label="$ACCOUNT_LABEL"/>
        </edit-config>

        <edit-config file="res/xml/syncadapter.xml" target="/*" mode="overwrite">
          <sync-adapter
              xmlns:android="http://schemas.android.com/apk/res/android"
              android:contentAuthority="@string/content_authority"
              android:accountType="@string/account_type"
              android:userVisible="false"
              android:supportsUploading="true"
              android:allowParallelSyncs="false"
              android:isAlwaysSyncable="true"/>
        </edit-config>
    </platform>

    <platform name="ios">
        <!-- required background modes:  App registers for location updates -->
        <preference name="ALWAYS_USAGE_DESCRIPTION" default="This app requires background location tracking" />
        <config-file target="*-Info.plist" parent="NSLocationAlwaysUsageDescription">
            <string>$ALWAYS_USAGE_DESCRIPTION</string>
        </config-file>

        <config-file target="*-Info.plist" parent="UIBackgroundModes">
            <array>
                <string>location</string>
            </array>
        </config-file>

        <config-file target="*-Info.plist" parent="CFBundleURLTypes">
            <array>
              <dict>
                <key>CFBundleTypeRole</key>
                <string>Editor</string>
                <key>CFBundleURLSchemes</key>
                <array>
                  <string>prefs</string>
                </array>
              </dict>
            </array>
        </config-file>

        <config-file target="config.xml" parent="/*">
            <feature name="BackgroundGeolocation">
                <param name="ios-package" value="CDVBackgroundGeolocation" />
                <param name="onload" value="true" />
            </feature>
        </config-file>
        <framework src="CoreLocation.framework" />
        <framework src="SystemConfiguration.framework" />
        <framework src="AudioToolbox.framework" weak="true" />
        <framework src="AVFoundation.framework" weak="true" />
        <framework src="libsqlite3.dylib" weak="true" />
        <header-file src="ios/CDVBackgroundGeolocation/BackgroundTaskManager.h" />
        <source-file src="ios/CDVBackgroundGeolocation/BackgroundTaskManager.m" />
        <header-file src="ios/CDVBackgroundGeolocation/CDVBackgroundGeolocation.h" />
        <source-file src="ios/CDVBackgroundGeolocation/CDVBackgroundGeolocation.m" />
        <header-file src="ios/CDVBackgroundGeolocation/CocoaLumberjack.h" />
        <source-file src="ios/CDVBackgroundGeolocation/CocoaLumberjack.m" />
        <header-file src="ios/CDVBackgroundGeolocation/Config.h" />
        <source-file src="ios/CDVBackgroundGeolocation/Config.m" />
        <header-file src="ios/CDVBackgroundGeolocation/FMDB.h" />
        <source-file src="ios/CDVBackgroundGeolocation/FMDB.m" />
        <header-file src="ios/CDVBackgroundGeolocation/FMDBLogger.h" />
        <source-file src="ios/CDVBackgroundGeolocation/FMDBLogger.m" />
        <header-file src="ios/CDVBackgroundGeolocation/GeolocationOpenHelper.h" />
        <source-file src="ios/CDVBackgroundGeolocation/GeolocationOpenHelper.m" />
        <header-file src="ios/CDVBackgroundGeolocation/Location.h" />
        <source-file src="ios/CDVBackgroundGeolocation/Location.m" />
        <header-file src="ios/CDVBackgroundGeolocation/LocationContract.h" />
        <source-file src="ios/CDVBackgroundGeolocation/LocationContract.m" />
        <header-file src="ios/CDVBackgroundGeolocation/LocationManager.h" />
        <source-file src="ios/CDVBackgroundGeolocation/LocationManager.m" />
        <header-file src="ios/CDVBackgroundGeolocation/LocationUploader.h" />
        <source-file src="ios/CDVBackgroundGeolocation/LocationUploader.m" />
        <header-file src="ios/CDVBackgroundGeolocation/Logging.h" />
        <source-file src="ios/CDVBackgroundGeolocation/Logging.m" />
        <header-file src="ios/CDVBackgroundGeolocation/Reachability.h" />
        <source-file src="ios/CDVBackgroundGeolocation/Reachability.m" />
        <header-file src="ios/CDVBackgroundGeolocation/SQLiteHelper.h" />
        <source-file src="ios/CDVBackgroundGeolocation/SQLiteHelper.m" />
        <header-file src="ios/CDVBackgroundGeolocation/SQLiteLocationDAO.h" />
        <source-file src="ios/CDVBackgroundGeolocation/SQLiteLocationDAO.m" />
        <header-file src="ios/CDVBackgroundGeolocation/SQLiteOpenHelper.h" />
        <source-file src="ios/CDVBackgroundGeolocation/SQLiteOpenHelper.m" />
     </platform>
</plugin>
