<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="de.blinkt.openvpn">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> -->
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <uses-permission android:name="com.android.vending.BILLING" />

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="19" />

    <!-- Copy the <permission> block to your app when using the REMOTE API. Otherwise OpenVPN for
        Android needs to be installed first -->
    <permission
        android:name="de.blinkt.openvpn.REMOTE_API"
        android:description="@string/permission_description"
        android:label="Control OpenVPN"
        android:permissionGroup="android.permission-group.NETWORK"
        android:protectionLevel="dangerous" />

    <application
        android:allowBackup="true"
        android:theme="@android:style/Theme.DeviceDefault.Light"
        android:icon="@drawable/icon"
        android:label="@string/app"
        android:supportsRtl="true" >
        <activity
            android:name=".VPNPreferences"
            android:windowSoftInputMode="stateHidden" />

        <activity
                android:theme="@android:style/Theme.DeviceDefault.Light.Dialog"
                android:name=".DisconnectVPN" />

        <activity
            android:name=".LogWindow"
            android:allowTaskReparenting="true"
            android:label="@string/openvpn_log"
            android:launchMode="singleTask" />
        <activity android:name=".FileSelect" />
        <activity
            android:name=".MainActivity"
            android:uiOptions="splitActionBarWhenNarrow"
            tools:ignore="ExportedActivity" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <service
            android:name="de.blinkt.openvpn.core.OpenVpnService"
            android:permission="android.permission.BIND_VPN_SERVICE" >
            <intent-filter>
                <action android:name="android.net.VpnService" />
            </intent-filter>
        </service>
        <service
            android:name=".api.ExternalOpenVPNService"
            android:permission="de.blinkt.openvpn.REMOTE_API" >
            <intent-filter>
                <action android:name="de.blinkt.openvpn.api.IOpenVPNAPIService" />
            </intent-filter>
        </service>

        <activity
            android:permission="de.blinkt.openvpn.REMOTE_API"
            android:name=".api.GrantPermissionsActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
        <activity
            android:permission="de.blinkt.openvpn.REMOTE_API"
            android:name=".api.ConfirmDialog" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>

        <receiver android:name=".OnBootReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>

        <activity
            android:name=".ConfigConverter"
            android:label="Convert Config File"
            android:uiOptions="splitActionBarWhenNarrow"
            tools:ignore="ExportedActivity" >
            <intent-filter android:label="@string/import_config" >
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data android:mimeType="application/x-openvpn-profile" />
            </intent-filter>
            <intent-filter android:label="@string/import_config" >
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data android:mimeType="application/ovpn" />
            </intent-filter>
            <intent-filter android:label="@string/import_config" >

                <!-- http://stackoverflow.com/questions/7030832/associating-certain-file-extension-to-my-android-application/7102838#7102838 -->
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />

                <data android:mimeType="*/*" />
                <data android:scheme="file" />
                <data android:host="*" />
                <data android:port="*" />
                <data android:pathPattern=".*..*..*..*..*.ovpn" />
                <data android:pathPattern=".*..*..*..*.ovpn" />
                <data android:pathPattern=".*..*..*.ovpn" />
                <data android:pathPattern=".*..*.ovpn" />
                <data android:pathPattern=".*.ovpn" />
            </intent-filter>
        </activity>
        <activity
            android:name=".LaunchVPN"
            android:label="@string/vpn_launch_title"
            android:theme="@android:style/Theme.DeviceDefault.Light.Panel"
            tools:ignore="ExportedActivity" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity-alias
            android:name=".app.CreateShortcuts"
            android:label="@string/vpn_shortcut"
            android:targetActivity=".LaunchVPN" >
            <intent-filter>
                <action android:name="android.intent.action.CREATE_SHORTCUT" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity-alias>

        <provider
            android:name=".FileProvider"
            android:authorities="de.blinkt.openvpn.FileProvider"
            android:exported="true"
            android:grantUriPermissions="true"
            tools:ignore="ExportedContentProvider" />

        <!--
        <receiver android:name="core.GetRestrictionReceiver">
            <intent-filter>
                <action android:name="android.intent.action.GET_RESTRICTION_ENTRIES" />
            </intent-filter>
        </receiver>
        -->
    </application>

</manifest>