124 lines
5.7 KiB
XML
124 lines
5.7 KiB
XML
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
xmlns:tools="http://schemas.android.com/tools"
|
|
package="deckers.thibault.aves"
|
|
android:installLocation="auto">
|
|
|
|
<!--
|
|
Scoped storage for primary storage is unusable on Android Q,
|
|
because users are required to confirm each file to be edited or deleted.
|
|
These items can only be deleted one by one after catching
|
|
a `RecoverableSecurityException` and requesting permission for each.
|
|
|
|
Android R improvements:
|
|
- bulk changes (e.g. `createDeleteRequest`):
|
|
https://developer.android.com/preview/privacy/storage#media-file-access
|
|
- raw path access:
|
|
https://developer.android.com/preview/privacy/storage#media-files-raw-paths
|
|
-->
|
|
|
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
|
<!-- request write permission until Q (29) included, because scoped storage is unusable -->
|
|
<uses-permission
|
|
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
|
|
android:maxSdkVersion="29"
|
|
tools:ignore="ScopedStorage" />
|
|
<uses-permission android:name="android.permission.INTERNET" />
|
|
|
|
<!-- to access media with unredacted metadata with scoped storage (Android Q+) -->
|
|
<uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" />
|
|
|
|
<!-- TODO TLAD remove this permission when this is fixed: https://github.com/flutter/flutter/issues/42451 -->
|
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
|
|
|
<!-- from Android R, we should define <queries> to make other apps visible to this app -->
|
|
<queries>
|
|
<intent>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
</intent>
|
|
</queries>
|
|
|
|
<application
|
|
android:icon="@mipmap/ic_launcher"
|
|
android:label="@string/app_name"
|
|
android:requestLegacyExternalStorage="true"
|
|
android:roundIcon="@mipmap/ic_launcher_round">
|
|
<!-- TODO TLAD Android 12 https://developer.android.com/about/versions/12/behavior-changes-12#exported -->
|
|
<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/NormalTheme"
|
|
android:windowSoftInputMode="adjustResize">
|
|
<!-- 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" />
|
|
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.LAUNCHER" />
|
|
</intent-filter>
|
|
<intent-filter tools:ignore="AppLinkUrlError">
|
|
<action android:name="android.intent.action.VIEW" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
<data android:mimeType="image/*" />
|
|
<data android:mimeType="video/*" />
|
|
<data android:mimeType="vnd.android.cursor.dir/image" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="com.android.camera.action.REVIEW" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
<data android:mimeType="image/*" />
|
|
<data android:mimeType="video/*" />
|
|
<data android:mimeType="vnd.android.cursor.dir/image" />
|
|
<data android:mimeType="vnd.android.cursor.dir/video" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.GET_CONTENT" />
|
|
|
|
<category android:name="android.intent.category.OPENABLE" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
<data android:mimeType="image/*" />
|
|
<data android:mimeType="video/*" />
|
|
<data android:mimeType="vnd.android.cursor.dir/image" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.PICK" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
<data android:mimeType="image/*" />
|
|
<data android:mimeType="video/*" />
|
|
<data android:mimeType="vnd.android.cursor.dir/image" />
|
|
</intent-filter>
|
|
</activity>
|
|
<!-- file provider to share files having a file:// URI -->
|
|
<provider
|
|
android:name="androidx.core.content.FileProvider"
|
|
android:authorities="${applicationId}.fileprovider"
|
|
android:exported="false"
|
|
android:grantUriPermissions="true">
|
|
<meta-data
|
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
|
android:resource="@xml/provider_paths" />
|
|
</provider>
|
|
|
|
<meta-data
|
|
android:name="com.google.android.geo.API_KEY"
|
|
android:value="${googleApiKey}" />
|
|
<meta-data
|
|
android:name="firebase_crashlytics_collection_enabled"
|
|
android:value="false" />
|
|
<!-- 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" />
|
|
</application>
|
|
</manifest>
|