AndroidManifest.xml

6.3 KB · raw

1<?xml version="1.0" encoding="utf-8"?>2<manifest xmlns:android="http://schemas.android.com/apk/res/android"3    xmlns:tools="http://schemas.android.com/tools">45    <uses-permission android:name="android.permission.INTERNET" />6    <!-- mDNS/NSD peer discovery for the C7 LAN sync transport -->7    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />8    <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />9    <uses-permission android:name="android.permission.VIBRATE" />10    <uses-permission android:name="android.permission.USE_BIOMETRIC" />11    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />12    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />13    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />14    <!-- Android 14+ requires the specific type alongside the generic permission. -->15    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />16    <!-- Doze defers network work even for a foreground service, which would make17         an already-paired browser's reconnect time out with no visible cause. -->18    <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />19    <uses-permission android:name="android.permission.CAMERA" />20    <uses-feature android:name="android.hardware.camera.any" android:required="false" />2122    <application23        android:name=".PeachApplication"24        android:allowBackup="false"25        android:fullBackupContent="false"26        android:icon="@mipmap/ic_launcher"27        android:label="@string/app_name"28        android:roundIcon="@mipmap/ic_launcher_round"29        android:supportsRtl="true"30        android:theme="@style/Theme.Peach.Splash">3132        <activity33            android:name=".MainActivity"34            android:exported="true"35            android:launchMode="singleTask"36            android:screenOrientation="unspecified"37            android:enableOnBackInvokedCallback="true"38            android:theme="@style/Theme.Peach">39            <intent-filter>40                <action android:name="android.intent.action.MAIN" />41                <category android:name="android.intent.category.LAUNCHER" />42            </intent-filter>43            <intent-filter>44                <action android:name="android.intent.action.VIEW" />45                <category android:name="android.intent.category.DEFAULT" />46                <category android:name="android.intent.category.BROWSABLE" />47                <data android:scheme="peach" />48            </intent-filter>49            <meta-data50                android:name="android.app.shortcuts"51                android:resource="@xml/shortcuts" />52        </activity>5354        <activity55            android:name=".ui.lock.BiometricUnlockActivity"56            android:exported="false"57            android:theme="@style/Theme.Peach" />5859        <activity60            android:name=".autofill.AutofillEntryPickerActivity"61            android:exported="false"62            android:excludeFromRecents="true"63            android:theme="@style/Theme.Peach.Transparent" />6465        <activity66            android:name=".passkeys.PasskeyCredentialSelectionActivity"67            android:exported="false"68            android:excludeFromRecents="true"69            android:theme="@style/Theme.Peach.Transparent" />7071        <provider72            android:name="androidx.core.content.FileProvider"73            android:authorities="${applicationId}.fileprovider"74            android:exported="false"75            android:grantUriPermissions="true">76            <meta-data77                android:name="android.support.FILE_PROVIDER_PATHS"78                android:resource="@xml/file_paths" />79        </provider>8081        <!-- Keeps the phone dialable for sync; a browser extension can never82             listen, so this side has to stay reachable. -->83        <service84            android:name=".sync.PeachSyncService"85            android:exported="false"86            android:foregroundServiceType="dataSync" />8788        <service89            android:name=".autofill.PeachAutofillService"90            android:permission="android.permission.BIND_AUTOFILL_SERVICE"91            android:exported="true"92            android:label="@string/autofill_service_label"93            android:settingsActivity=".MainActivity">94            <intent-filter>95                <action android:name="android.service.autofill.AutofillService" />96            </intent-filter>97            <meta-data98                android:name="android.autofill"99                android:resource="@xml/autofill_service_config" />100        </service>101102        <service103            android:name=".passkeys.PeachCredentialProviderService"104            android:permission="android.permission.BIND_CREDENTIAL_PROVIDER_SERVICE"105            android:exported="true"106            tools:targetApi="34">107            <intent-filter>108                <action android:name="android.service.credentials.CredentialProviderService" />109            </intent-filter>110            <meta-data111                android:name="android.credentials.provider"112                android:resource="@xml/credential_provider_config" />113        </service>114115        <service116            android:name=".qs.PeachTileService"117            android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"118            android:exported="true">119            <intent-filter>120                <action android:name="android.service.quicksettings.action.QS_TILE" />121            </intent-filter>122        </service>123124        <receiver125            android:name=".widget.PeachSmallWidgetReceiver"126            android:exported="true">127            <intent-filter>128                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />129            </intent-filter>130            <meta-data131                android:name="android.appwidget.provider"132                android:resource="@xml/peach_small_widget_info" />133        </receiver>134135        <receiver136            android:name=".widget.PeachMediumWidgetReceiver"137            android:exported="true">138            <intent-filter>139                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />140            </intent-filter>141            <meta-data142                android:name="android.appwidget.provider"143                android:resource="@xml/peach_medium_widget_info" />144        </receiver>145146    </application>147</manifest>