AndroidManifest.xml

6.4 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.RECORD_AUDIO" />12    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />13    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />14    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />15    <!-- Android 14+ requires the specific type alongside the generic permission. -->16    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />17    <!-- Doze defers network work even for a foreground service, which would make18         an already-paired browser's reconnect time out with no visible cause. -->19    <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />20    <uses-permission android:name="android.permission.CAMERA" />21    <uses-feature android:name="android.hardware.camera.any" android:required="false" />2223    <application24        android:name=".PeachApplication"25        android:allowBackup="false"26        android:fullBackupContent="false"27        android:icon="@mipmap/ic_launcher"28        android:label="@string/app_name"29        android:roundIcon="@mipmap/ic_launcher_round"30        android:supportsRtl="true"31        android:theme="@style/Theme.Peach.Splash">3233        <activity34            android:name=".MainActivity"35            android:exported="true"36            android:launchMode="singleTask"37            android:screenOrientation="unspecified"38            android:enableOnBackInvokedCallback="true"39            android:theme="@style/Theme.Peach">40            <intent-filter>41                <action android:name="android.intent.action.MAIN" />42                <category android:name="android.intent.category.LAUNCHER" />43            </intent-filter>44            <intent-filter>45                <action android:name="android.intent.action.VIEW" />46                <category android:name="android.intent.category.DEFAULT" />47                <category android:name="android.intent.category.BROWSABLE" />48                <data android:scheme="peach" />49            </intent-filter>50            <meta-data51                android:name="android.app.shortcuts"52                android:resource="@xml/shortcuts" />53        </activity>5455        <activity56            android:name=".ui.lock.BiometricUnlockActivity"57            android:exported="false"58            android:theme="@style/Theme.Peach" />5960        <activity61            android:name=".autofill.AutofillEntryPickerActivity"62            android:exported="false"63            android:excludeFromRecents="true"64            android:theme="@style/Theme.Peach.Transparent" />6566        <activity67            android:name=".passkeys.PasskeyCredentialSelectionActivity"68            android:exported="false"69            android:excludeFromRecents="true"70            android:theme="@style/Theme.Peach.Transparent" />7172        <provider73            android:name="androidx.core.content.FileProvider"74            android:authorities="${applicationId}.fileprovider"75            android:exported="false"76            android:grantUriPermissions="true">77            <meta-data78                android:name="android.support.FILE_PROVIDER_PATHS"79                android:resource="@xml/file_paths" />80        </provider>8182        <!-- Keeps the phone dialable for sync; a browser extension can never83             listen, so this side has to stay reachable. -->84        <service85            android:name=".sync.PeachSyncService"86            android:exported="false"87            android:foregroundServiceType="dataSync" />8889        <service90            android:name=".autofill.PeachAutofillService"91            android:permission="android.permission.BIND_AUTOFILL_SERVICE"92            android:exported="true"93            android:label="@string/autofill_service_label"94            android:settingsActivity=".MainActivity">95            <intent-filter>96                <action android:name="android.service.autofill.AutofillService" />97            </intent-filter>98            <meta-data99                android:name="android.autofill"100                android:resource="@xml/autofill_service_config" />101        </service>102103        <service104            android:name=".passkeys.PeachCredentialProviderService"105            android:permission="android.permission.BIND_CREDENTIAL_PROVIDER_SERVICE"106            android:exported="true"107            tools:targetApi="34">108            <intent-filter>109                <action android:name="android.service.credentials.CredentialProviderService" />110            </intent-filter>111            <meta-data112                android:name="android.credentials.provider"113                android:resource="@xml/credential_provider_config" />114        </service>115116        <service117            android:name=".qs.PeachTileService"118            android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"119            android:exported="true">120            <intent-filter>121                <action android:name="android.service.quicksettings.action.QS_TILE" />122            </intent-filter>123        </service>124125        <receiver126            android:name=".widget.PeachSmallWidgetReceiver"127            android:exported="true">128            <intent-filter>129                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />130            </intent-filter>131            <meta-data132                android:name="android.appwidget.provider"133                android:resource="@xml/peach_small_widget_info" />134        </receiver>135136        <receiver137            android:name=".widget.PeachMediumWidgetReceiver"138            android:exported="true">139            <intent-filter>140                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />141            </intent-filter>142            <meta-data143                android:name="android.appwidget.provider"144                android:resource="@xml/peach_medium_widget_info" />145        </receiver>146147    </application>148</manifest>