155 lines
8.0 KiB
XML
155 lines
8.0 KiB
XML
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
xmlns:tools="http://schemas.android.com/tools">
|
|
<application
|
|
android:label="Marianum Fulda"
|
|
android:name="${applicationName}"
|
|
android:icon="@mipmap/ic_launcher"
|
|
android:fullBackupContent="@xml/backup_rules"
|
|
android:dataExtractionRules="@xml/data_extraction_rules">
|
|
<activity
|
|
android:name=".MainActivity"
|
|
android:exported="true"
|
|
android:launchMode="singleTop"
|
|
android:theme="@style/LaunchTheme"
|
|
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
|
android:hardwareAccelerated="true"
|
|
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>
|
|
<action android:name="android.intent.action.SEND" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<data android:mimeType="image/*" />
|
|
<data android:mimeType="video/*" />
|
|
<data android:mimeType="application/*" />
|
|
<data android:mimeType="text/*" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.SEND_MULTIPLE" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<data android:mimeType="image/*" />
|
|
<data android:mimeType="video/*" />
|
|
<data android:mimeType="application/*" />
|
|
</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" />
|
|
|
|
<!-- Fallback small icon + accent for anything FCM ever renders itself
|
|
(e.g. plain notification messages). Launcher mipmaps are unusable
|
|
as small icons: Android only draws their alpha silhouette, which
|
|
shows up as a solid circle in the status bar. -->
|
|
<meta-data
|
|
android:name="com.google.firebase.messaging.default_notification_icon"
|
|
android:resource="@drawable/ic_stat_notification" />
|
|
<meta-data
|
|
android:name="com.google.firebase.messaging.default_notification_color"
|
|
android:resource="@color/notification_accent" />
|
|
|
|
<!-- flutter_local_notifications liefert Notification-Action-Taps (Talk:
|
|
Antworten / Gelesen) als expliziten Broadcast an diesen Receiver.
|
|
Das Plugin deklariert ihn NICHT selbst — ohne diesen Eintrag kommt
|
|
der Tap nirgends an und der Background-Handler startet nie. -->
|
|
<receiver
|
|
android:name="com.dexterous.flutterlocalnotifications.ActionBroadcastReceiver"
|
|
android:exported="false" />
|
|
|
|
<!-- background_downloader runs large/long downloads in a foreground
|
|
service (WorkManager) so they survive the app being backgrounded and
|
|
beat the default 9-minute WorkManager timeout. On API 34+ the
|
|
dataSync foreground service type must be declared explicitly here;
|
|
see the FOREGROUND_SERVICE_DATA_SYNC permission below. -->
|
|
<service
|
|
android:name="androidx.work.impl.foreground.SystemForegroundService"
|
|
android:foregroundServiceType="dataSync"
|
|
tools:node="merge" />
|
|
|
|
<!-- Receiver classes live at the package root (NOT under .widgets) because
|
|
the home_widget Flutter plugin resolves them as <app-package>.<name>. -->
|
|
<receiver
|
|
android:name="eu.mhsl.marianum.mobile.client.TimetableDayWidget"
|
|
android:label="@string/widget_day_label"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
|
</intent-filter>
|
|
<meta-data
|
|
android:name="android.appwidget.provider"
|
|
android:resource="@xml/timetable_day_widget_info" />
|
|
</receiver>
|
|
|
|
<receiver
|
|
android:name="eu.mhsl.marianum.mobile.client.TimetableWeekWidget"
|
|
android:label="@string/widget_week_label"
|
|
android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
|
</intent-filter>
|
|
<meta-data
|
|
android:name="android.appwidget.provider"
|
|
android:resource="@xml/timetable_week_widget_info" />
|
|
</receiver>
|
|
</application>
|
|
<!-- Required so url_launcher / can_launch can actually see browsers,
|
|
mail clients and dialers under Android 11+ package-visibility rules
|
|
(otherwise UrlLauncher logs "component name for ... is null" and
|
|
link taps in Talk silently do nothing). The PROCESS_TEXT intent is
|
|
needed by io.flutter.plugin.text.ProcessTextPlugin (selection
|
|
menu).
|
|
See https://developer.android.com/training/package-visibility -->
|
|
<queries>
|
|
<intent>
|
|
<action android:name="android.intent.action.PROCESS_TEXT"/>
|
|
<data android:mimeType="text/plain"/>
|
|
</intent>
|
|
<intent>
|
|
<action android:name="android.intent.action.VIEW"/>
|
|
<data android:scheme="https"/>
|
|
</intent>
|
|
<intent>
|
|
<action android:name="android.intent.action.VIEW"/>
|
|
<data android:scheme="http"/>
|
|
</intent>
|
|
<intent>
|
|
<action android:name="android.intent.action.VIEW"/>
|
|
<data android:scheme="mailto"/>
|
|
</intent>
|
|
<intent>
|
|
<action android:name="android.intent.action.VIEW"/>
|
|
<data android:scheme="tel"/>
|
|
</intent>
|
|
</queries>
|
|
<uses-permission android:name="android.permission.INTERNET"/>
|
|
<!-- Android 13+ runtime notification permission. Requested at login via
|
|
FirebaseMessaging.requestPermission(); without this declaration the
|
|
locally rendered push notifications are silently dropped. -->
|
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
|
<!-- background_downloader foreground service for large/long downloads that
|
|
must keep running while the app is backgrounded. DATA_SYNC is the
|
|
required type declaration on Android 14+ (API 34+). -->
|
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
|
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC"/>
|
|
<!-- Workmanager periodic widget refresh needs to reschedule after device
|
|
reboot, otherwise the widget freezes until the user opens the app. -->
|
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
|
|
<!-- Aus open_filex gemergt: die App öffnet nur selbst heruntergeladene Dateien
|
|
über dessen FileProvider (content://-URIs) und braucht keinen Zugriff auf
|
|
geteilte Medien. Entfernt wegen Google-Play "Photo and Video Permissions". -->
|
|
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" tools:node="remove"/>
|
|
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" tools:node="remove"/>
|
|
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" tools:node="remove"/>
|
|
</manifest>
|