<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:installLocation="auto">

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

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

    <application
        android:name=".LibreTubeApp"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:networkSecurityConfig="@xml/network_security_config"
        android:requestLegacyExternalStorage="true"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/StartupTheme"
        tools:targetApi="n"
        android:banner="@mipmap/ic_launcher">

        <activity
            android:name=".ui.activities.NoInternetActivity"
            android:label="@string/noInternet" />

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

        <activity
            android:name=".ui.activities.AboutActivity"
            android:label="@string/settings" />

        <activity
            android:name=".ui.activities.CommunityActivity"
            android:label="@string/settings" />

        <activity
            android:name=".ui.activities.OfflinePlayerActivity"
            android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
            android:label="@string/player"
            android:supportsPictureInPicture="true" />

        <activity
            android:name=".ui.activities.MainActivity"
            android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
            android:exported="true"
            android:hardwareAccelerated="true"
            android:launchMode="singleTop"
            android:screenOrientation="user"
            android:supportsPictureInPicture="true"
            android:windowSoftInputMode="adjustPan">
            <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>

            <meta-data android:name="android.app.shortcuts"
                android:resource="@xml/shortcuts" />
        </activity>

        <activity-alias
            android:name=".IconGradient"
            android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
            android:enabled="false"
            android:exported="true"
            android:hardwareAccelerated="true"
            android:icon="@mipmap/ic_gradient"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_gradient_round"
            android:supportsPictureInPicture="true"
            android:targetActivity=".ui.activities.MainActivity"
            android:windowSoftInputMode="adjustPan">
            <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-alias>

        <activity-alias
            android:name=".DefaultLight"
            android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
            android:enabled="false"
            android:exported="true"
            android:hardwareAccelerated="true"
            android:icon="@mipmap/ic_launcher_light"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_light_round"
            android:supportsPictureInPicture="true"
            android:targetActivity=".ui.activities.MainActivity"
            android:windowSoftInputMode="adjustPan">
            <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-alias>

        <activity-alias
            android:name=".IconFire"
            android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
            android:enabled="false"
            android:exported="true"
            android:hardwareAccelerated="true"
            android:icon="@mipmap/ic_fire"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_fire_round"
            android:supportsPictureInPicture="true"
            android:targetActivity=".ui.activities.MainActivity"
            android:windowSoftInputMode="adjustPan">
            <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-alias>

        <activity-alias
            android:name=".IconFlame"
            android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
            android:enabled="false"
            android:exported="true"
            android:hardwareAccelerated="true"
            android:icon="@mipmap/ic_flame"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_flame_round"
            android:supportsPictureInPicture="true"
            android:targetActivity=".ui.activities.MainActivity"
            android:windowSoftInputMode="adjustPan">
            <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-alias>

        <activity-alias
            android:name=".IconShaped"
            android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
            android:enabled="false"
            android:exported="true"
            android:hardwareAccelerated="true"
            android:icon="@mipmap/ic_shaped"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_shaped_round"
            android:supportsPictureInPicture="true"
            android:targetActivity=".ui.activities.MainActivity"
            android:windowSoftInputMode="adjustPan">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity-alias>

        <activity-alias
            android:name=".IconTorch"
            android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
            android:enabled="false"
            android:exported="true"
            android:hardwareAccelerated="true"
            android:icon="@mipmap/ic_torch"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_torch_round"
            android:supportsPictureInPicture="true"
            android:targetActivity=".ui.activities.MainActivity"
            android:windowSoftInputMode="adjustPan">
            <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-alias>

        <activity-alias
            android:name=".IconLegacy"
            android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
            android:enabled="false"
            android:exported="true"
            android:hardwareAccelerated="true"
            android:icon="@mipmap/ic_legacy"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_legacy_round"
            android:supportsPictureInPicture="true"
            android:targetActivity=".ui.activities.MainActivity"
            android:windowSoftInputMode="adjustPan">
            <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-alias>

        <activity-alias
            android:name=".IconBird"
            android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
            android:enabled="false"
            android:exported="true"
            android:hardwareAccelerated="true"
            android:icon="@mipmap/ic_bird"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_bird_round"
            android:supportsPictureInPicture="true"
            android:targetActivity=".ui.activities.MainActivity"
            android:windowSoftInputMode="adjustPan">
            <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-alias>

        <activity
            android:name=".ui.activities.RouterActivity"
            android:exported="true"
            android:launchMode="singleInstance">
            <intent-filter>
                <action android:name="android.intent.action.SEND" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="text/plain" />
            </intent-filter>
            <!-- youtube -->
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <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" />-->
                <data android:pathPrefix="/shorts/" />
                <!-- 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>
            <!-- 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="tubus.eduvid.org" />
                <data android:host="invidio.us" />
                <data android:host="dev.invidio.us" />
                <data android:host="www.invidio.us" />
                <data android:host="redirect.invidious.io" />
                <data android:host="invidious.snopyta.org" />
                <data android:host="yewtu.be" />
                <data android:host="tube.connect.cafe" />
                <data android:host="invidious.kavin.rocks" />
                <data android:host="invidious-us.kavin.rocks" />
                <data android:host="invidious.site" />
                <data android:host="vid.mint.lgbt" />
                <data android:host="invidiou.site" />
                <data android:host="invidious.fdn.fr" />
                <data android:host="invidious.048596.xyz" />
                <data android:host="invidious.zee.li" />
                <data android:host="vid.puffyan.us" />
                <data android:host="ytprivate.com" />
                <data android:host="invidious.namazso.eu" />
                <data android:host="invidious.silkky.cloud" />
                <data android:host="invidious.exonip.de" />
                <data android:host="inv.riverside.rocks" />
                <data android:host="invidious.blamefran.net" />
                <data android:host="invidious.moomoo.me" />
                <data android:host="ytb.trom.tf" />
                <data android:host="yt.cyberhost.uk" />
                <data android:host="y.com.cm" />
                <data android:pathPrefix="/" />
            </intent-filter>
            <!-- Piped 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="piped.video" />
                <data android:host="piped.tokhmi.xyz" />
                <data android:host="piped.kavin.rocks" />
                <data android:host="piped.silkky.cloud" />
                <data android:host="piped.silkky.cloud" />
                <data android:host="piped.mint.lgbt" />
                <data android:host="il.ax" />
                <data android:pathPrefix="/" />
            </intent-filter>
        </activity>

        <service
            android:name=".services.DownloadService"
            android:enabled="true"
            android:exported="false" />

        <service
            android:name=".services.ClosingService"
            android:enabled="true"
            android:exported="false" />

        <service
            android:name=".services.UpdateService"
            android:enabled="true"
            android:exported="false" />

        <service
            android:name=".services.BackgroundMode"
            android:enabled="true"
            android:exported="false" />
    </application>

</manifest>
