159 lines
6.3 KiB
XML
159 lines
6.3 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">
|
|
|
|
<!--
|
|
io.flutter.app.FlutterApplication is an android.app.Application that
|
|
calls FlutterMain.startInitialization(this); in its onCreate method.
|
|
In most cases you can leave this as-is, but you if you want to provide
|
|
additional functionality it is fine to subclass or reimplement
|
|
FlutterApplication and put your custom class here.
|
|
-->
|
|
<uses-permission android:name="android.permission.INTERNET" />
|
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
|
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
|
|
|
<!-- Storage permission for Android 12 and lower -->
|
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
|
|
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
|
<!--
|
|
Granular media permissions for Android 13 and newer.
|
|
See https://developer.android.com/about/versions/13/behavior-changes-13#granular-media-permissions
|
|
for more information.
|
|
-->
|
|
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
|
|
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
|
|
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
|
|
|
|
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
|
|
|
|
<uses-feature
|
|
android:name="android.software.LEANBACK"
|
|
android:required="true"
|
|
/>
|
|
|
|
<application
|
|
android:icon="@mipmap/ic_launcher"
|
|
android:label="Freezer"
|
|
android:requestLegacyExternalStorage="true"
|
|
android:usesCleartextTraffic="true"
|
|
android:targetSandboxVersion="2"
|
|
android:enableOnBackInvokedCallback="true">
|
|
|
|
<service
|
|
android:name=".DownloadService"
|
|
android:enabled="true"
|
|
android:exported="true"
|
|
android:stopWithTask="false"
|
|
android:process=":FreezerDownloadService"
|
|
/>
|
|
|
|
<activity
|
|
android:name=".MainActivity"
|
|
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
|
android:hardwareAccelerated="true"
|
|
android:launchMode="singleTop"
|
|
android:theme="@style/LaunchTheme"
|
|
android:banner="@mipmap/ic_launcher"
|
|
android:icon="@mipmap/ic_launcher"
|
|
android:logo="@mipmap/ic_launcher"
|
|
android:windowSoftInputMode="adjustResize"
|
|
android:exported="true"
|
|
>
|
|
|
|
<!--
|
|
Specifies an Android theme to apply to this Activity as soon as
|
|
the Android process has started. This theme is visible to the user
|
|
while the Flutter UI initializes. After that, this theme continues
|
|
to determine the Window background behind the Flutter UI.
|
|
-->
|
|
<meta-data
|
|
android:name="io.flutter.embedding.android.NormalTheme"
|
|
android:resource="@style/NormalTheme"
|
|
/>
|
|
|
|
<!--
|
|
Displays an Android View that continues showing the launch screen
|
|
Drawable until Flutter paints its first frame, then this splash
|
|
screen fades out. A splash screen is useful to avoid any visual
|
|
gap between the end of Android's launch screen and the painting of
|
|
Flutter's first frame.
|
|
-->
|
|
<meta-data
|
|
android:name="io.flutter.embedding.android.SplashScreenDrawable"
|
|
android:resource="@drawable/launch_background"
|
|
/>
|
|
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.APP_MUSIC"/>
|
|
<category android:name="android.intent.category.LAUNCHER" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.media.action.MEDIA_PLAY_FROM_SEARCH" />
|
|
</intent-filter>
|
|
|
|
|
|
<!-- App links -->
|
|
<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="https" android:host="www.deezer.com" />
|
|
</intent-filter>
|
|
<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="https" android:host="deezer.com" />
|
|
</intent-filter>
|
|
<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="https" android:host="deezer.page.link" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
|
|
</intent-filter>
|
|
</activity>
|
|
<!--
|
|
Don't delete the meta-data below.
|
|
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java
|
|
-->
|
|
<meta-data android:name="flutterEmbedding" android:value="2" />
|
|
|
|
<service
|
|
android:name="com.ryanheise.audioservice.AudioService"
|
|
android:foregroundServiceType="mediaPlayback"
|
|
android:exported="true"
|
|
tools:ignore="Instantiatable"
|
|
>
|
|
<intent-filter>
|
|
<action android:name="android.media.browse.MediaBrowserService" />
|
|
</intent-filter>
|
|
</service>
|
|
|
|
<receiver
|
|
android:name="com.ryanheise.audioservice.MediaButtonReceiver"
|
|
android:exported="true"
|
|
tools:ignore="Instantiatable"
|
|
>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MEDIA_BUTTON" />
|
|
</intent-filter>
|
|
</receiver>
|
|
|
|
<meta-data
|
|
android:name="com.google.android.gms.car.application"
|
|
android:resource="@xml/automotive_app_desc"
|
|
/>
|
|
</application>
|
|
|
|
</manifest>
|