LibreTube/app/src/main/AndroidManifest.xml
2024-03-17 13:12:05 +01:00

392 lines
16 KiB
XML

<?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.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application
android:name=".LibreTubeApp"
android:allowBackup="true"
android:banner="@mipmap/ic_launcher"
android:hardwareAccelerated="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"
android:enableOnBackInvokedCallback="true"
tools:targetApi="tiramisu">
<activity
android:name=".ui.activities.WelcomeActivity"
android:label="@string/welcome"
android:screenOrientation="locked" />
<activity
android:name=".ui.activities.NoInternetActivity"
android:label="@string/noInternet"
android:screenOrientation="locked" />
<activity
android:name=".ui.activities.SettingsActivity"
android:label="@string/settings"
android:screenOrientation="locked" />
<activity
android:name=".ui.activities.AboutActivity"
android:label="@string/settings"
android:screenOrientation="locked" />
<activity
android:name=".ui.activities.HelpActivity"
android:label="@string/settings"
android:screenOrientation="locked" />
<activity
android:name=".ui.activities.ZoomableImageActivity"
android:screenOrientation="locked" />
<activity
android:name=".ui.activities.AddToQueueActivity"
android:enabled="true"
android:exported="true"
android:label="@string/add_to_queue"
android:launchMode="singleTop">
<intent-filter android:label="@string/add_to_queue">
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
<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:launchMode="singleTask"
android:screenOrientation="locked"
android:supportsPictureInPicture="true"
android:windowSoftInputMode="adjustPan">
<!-- allow being recognized as a music player -->
<intent-filter>
<action android:name="android.intent.action.MUSIC_PLAYER" />
<category android:name="android.intent.category.CATEGORY_APP_MUSIC" />
</intent-filter>
</activity>
<activity-alias
android:name=".Default"
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
android:enabled="true"
android:exported="true"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_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=".IconGradient"
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
android:enabled="false"
android:exported="true"
android:icon="@mipmap/ic_gradient"
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:icon="@mipmap/ic_launcher_light"
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:icon="@mipmap/ic_fire"
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:icon="@mipmap/ic_flame"
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:icon="@mipmap/ic_shaped"
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:icon="@mipmap/ic_torch"
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:icon="@mipmap/ic_legacy"
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:icon="@mipmap/ic_bird"
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 android:label="@string/open">
<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="/shorts/" />
<data android:pathPrefix="/live/" />
<!-- channel prefix -->
<data android:pathPrefix="/channel/" />
<data android:pathPrefix="/user/" />
<data android:pathPrefix="/c/" />
<!-- playlist prefix -->
<data android:pathPrefix="/playlist" />
<!-- search prefix -->
<data android:pathPrefix="/results" />
</intent-filter>
<!-- Support being detected as media player -->
<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>
<!-- 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:pathPrefix="/" />
<data android:host="piped.adminforge.de" />
<data android:host="piped.astartes.nl" />
<data android:host="piped.coldforge.xyz" />
<data android:host="piped.drgns.space" />
<data android:host="piped.ducks.party" />
<data android:host="piped.lunar.icu" />
<data android:host="piped.ngn.tf" />
<data android:host="piped.projectsegfau.lt" />
<data android:host="piped.r4fo.com" />
<data android:host="piped.smnz.de" />
<data android:host="piped.syncpundit.io" />
<data android:host="piped.us.projectsegfau.lt" />
<data android:host="piped.video" />
</intent-filter>
</activity>
<service
android:name=".services.DownloadService"
android:foregroundServiceType="dataSync"
android:enabled="true"
android:exported="false" />
<service
android:name=".services.PlaylistDownloadEnqueueService"
android:foregroundServiceType="dataSync"
android:enabled="true"
android:exported="false" />
<service
android:name=".services.OnlinePlayerService"
android:foregroundServiceType="mediaPlayback"
android:enabled="true"
android:exported="false" />
<service
android:name=".services.OfflinePlayerService"
android:foregroundServiceType="mediaPlayback"
android:enabled="true"
android:exported="false" />
<receiver
android:name=".receivers.NotificationReceiver"
android:enabled="true"
android:exported="false" />
</application>
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="*" />
</intent>
</queries>
</manifest>