<?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="org.schabi.newpipe">

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>

    <uses-feature android:name="android.hardware.touchscreen" android:required="false"/>

    <application
        android:banner="@mipmap/newpipe_tv_banner"
        android:name=".App"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:logo="@mipmap/ic_launcher"
        android:theme="@style/OpeningTheme"
        tools:ignore="AllowBackup">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:launchMode="singleTask">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
                <category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
            </intent-filter>
        </activity>

        <receiver android:name="androidx.media.session.MediaButtonReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.MEDIA_BUTTON" />
            </intent-filter>
        </receiver>

        <service
            android:name=".player.BackgroundPlayer"
            android:exported="false">
            <intent-filter>
                <action android:name="android.intent.action.MEDIA_BUTTON" />
            </intent-filter>
        </service>

        <activity
            android:name=".player.BackgroundPlayerActivity"
            android:launchMode="singleTask"
            android:label="@string/title_activity_background_player"/>

        <activity
            android:name=".player.PopupVideoPlayerActivity"
            android:launchMode="singleTask"
            android:label="@string/title_activity_popup_player"/>

        <service
            android:name=".player.PopupVideoPlayer"
            android:exported="false"/>

        <activity
            android:name=".player.MainVideoPlayer"
            android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
            android:label="@string/app_name"
            android:launchMode="singleTask"
            android:theme="@style/VideoPlayerTheme"/>

        <activity
            android:name=".settings.SettingsActivity"
            android:label="@string/settings"/>

        <activity
            android:name=".about.AboutActivity"
            android:label="@string/title_activity_about"/>

        <service android:name=".local.subscription.services.SubscriptionsImportService"/>
        <service android:name=".local.subscription.services.SubscriptionsExportService"/>
        <service android:name=".local.feed.service.FeedLoadService"/>

        <activity
            android:name=".PanicResponderActivity"
            android:launchMode="singleInstance"
            android:noHistory="true"
            android:theme="@android:style/Theme.NoDisplay">
            <intent-filter>
                <action android:name="info.guardianproject.panic.action.TRIGGER"/>

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

        <activity
            android:name=".ExitActivity"
            android:label="@string/general_error"
            android:theme="@android:style/Theme.NoDisplay"/>
        <activity android:name=".report.ErrorActivity"/>

        <!-- giga get related -->
        <activity
            android:name=".download.DownloadActivity"
            android:label="@string/app_name"
            android:launchMode="singleTask"/>

        <service android:name="us.shandian.giga.service.DownloadManagerService"/>

        <activity
            android:name=".util.FilePickerActivityHelper"
            android:label="@string/app_name"
            android:theme="@style/FilePickerThemeDark">
            <intent-filter>
                <action android:name="android.intent.action.GET_CONTENT" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity
            android:name=".ReCaptchaActivity"
            android:label="@string/recaptcha"/>

        <provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="${applicationId}.provider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/nnf_provider_paths"/>
        </provider>

        <activity
            android:name=".RouterActivity"
            android:excludeFromRecents="true"
            android:label="@string/preferred_open_action_share_menu_title"
            android:taskAffinity=""
            android:theme="@style/RouterActivityThemeDark">

            <!-- Youtube filter -->
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <action android:name="android.media.action.MEDIA_PLAY_FROM_SEARCH"/>
                <action android:name="android.nfc.action.NDEF_DISCOVERED"/>

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

                <data android:scheme="http"/>
                <data android:scheme="https"/>
                <data android:host="youtube.com"/>
                <data android:host="m.youtube.com"/>
                <data android:host="www.youtube.com"/>
                <data android:host="music.youtube.com"/>
                <!-- video prefix -->
                <data android:pathPrefix="/v/"/>
                <data android:pathPrefix="/embed/"/>
                <data android:pathPrefix="/watch"/>
                <data android:pathPrefix="/attribution_link"/>
                <!-- channel prefix -->
                <data android:pathPrefix="/channel/"/>
                <data android:pathPrefix="/user/"/>
                <data android:pathPrefix="/c/"/>
                <!-- playlist prefix -->
                <data android:pathPrefix="/playlist"/>
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <action android:name="android.media.action.MEDIA_PLAY_FROM_SEARCH"/>
                <action android:name="android.nfc.action.NDEF_DISCOVERED"/>

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

                <data android:scheme="http"/>
                <data android:scheme="https"/>
                <data android:host="youtu.be"/>
                <data android:pathPrefix="/"/>
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <action android:name="android.media.action.MEDIA_PLAY_FROM_SEARCH"/>
                <action android:name="android.nfc.action.NDEF_DISCOVERED"/>

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

                <data android:scheme="http"/>
                <data android:scheme="https"/>
                <data android:host="www.youtube-nocookie.com"/>
                <data android:pathPrefix="/embed/"/>
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <action android:name="android.media.action.MEDIA_PLAY_FROM_SEARCH"/>
                <action android:name="android.nfc.action.NDEF_DISCOVERED"/>

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

                <data android:scheme="vnd.youtube"/>
                <data android:scheme="vnd.youtube.launch"/>
            </intent-filter>

            <!-- Hooktube filter -->
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <action android:name="android.media.action.MEDIA_PLAY_FROM_SEARCH"/>
                <action android:name="android.nfc.action.NDEF_DISCOVERED"/>

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

                <data android:scheme="http"/>
                <data android:scheme="https"/>
                <data android:host="hooktube.com"/>
                <data android:host="*.hooktube.com"/>
                <!-- video prefix -->
                <data android:pathPrefix="/v/"/>
                <data android:pathPrefix="/embed/"/>
                <data android:pathPrefix="/watch"/>
                <!-- channel prefix -->
                <data android:pathPrefix="/channel/"/>
                <data android:pathPrefix="/user/"/>
            </intent-filter>

            <!-- Invidious filter -->
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <action android:name="android.media.action.MEDIA_PLAY_FROM_SEARCH"/>
                <action android:name="android.nfc.action.NDEF_DISCOVERED"/>

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

                <data android:scheme="http"/>
                <data android:scheme="https"/>
                <data android:host="invidio.us"/>
                <data android:host="dev.invidio.us"/>
                <data android:host="www.invidio.us"/>
                <data android:host="invidious.snopyta.org"/>
                <data android:host="de.invidious.snopyta.org"/>
                <data android:host="fi.invidious.snopyta.org"/>
                <data android:host="vid.wxzm.sx"/>
                <data android:host="invidious.kabi.tk"/>
                <data android:host="invidiou.sh"/>
                <data android:host="www.invidiou.sh"/>
                <data android:host="no.invidiou.sh"/>
                <data android:host="invidious.enkirton.net"/>
                <data android:host="tube.poal.co"/>
                <data android:host="invidious.13ad.de"/>
                <data android:host="yt.elukerio.org"/>
                <data android:pathPrefix="/"/>
            </intent-filter>

            <!-- Soundcloud filter -->
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <action android:name="android.media.action.MEDIA_PLAY_FROM_SEARCH"/>
                <action android:name="android.nfc.action.NDEF_DISCOVERED"/>

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

                <data android:scheme="http"/>
                <data android:scheme="https"/>
                <data android:host="soundcloud.com"/>
                <data android:host="m.soundcloud.com"/>
                <data android:host="www.soundcloud.com"/>
                <data android:pathPrefix="/"/>
            </intent-filter>

            <!-- Share filter -->
            <intent-filter>
                <action android:name="android.intent.action.SEND"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:mimeType="text/plain"/>
            </intent-filter>

            <!-- MediaCCC filter -->
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <action android:name="android.media.action.MEDIA_PLAY_FROM_SEARCH"/>
                <action android:name="android.nfc.action.NDEF_DISCOVERED"/>

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

                <data android:scheme="http"/>
                <data android:scheme="https"/>
                <data android:host="media.ccc.de"/>
                <!-- video prefix -->
                <data android:pathPrefix="/v/"/>
                <!-- channel prefix-->
                <data android:pathPrefix="/c/"/>
                <data android:pathPrefix="/b/"/>
            </intent-filter>
        </activity>
        <service
            android:name=".RouterActivity$FetcherService"
            android:exported="false"/>
    </application>
</manifest>
