AndroidManifest.xml (10011B)
1 <?xml version="1.0" encoding="utf-8"?> 2 <!-- This Source Code Form is subject to the terms of the Mozilla Public 3 - License, v. 2.0. If a copy of the MPL was not distributed with this 4 - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> 5 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 6 xmlns:tools="http://schemas.android.com/tools"> 7 8 <uses-permission android:name="android.permission.INTERNET" /> 9 10 <!-- Allows for storing and retrieving screenshots --> 11 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" 12 android:maxSdkVersion="32" /> 13 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" 14 android:maxSdkVersion="28" /> 15 16 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- Used by sentry. --> 17 <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> 18 <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/> 19 <!-- Needed to prompt the user to give permission for camera access --> 20 <uses-permission android:name="android.permission.CAMERA" /> 21 22 <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" /> 23 <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" /> 24 25 <!-- This is needed because the android.permission.CAMERA above automatically 26 adds a requirements for camera hardware and we don't want add those restrictions --> 27 <uses-feature 28 android:name="android.hardware.camera" 29 android:required="false" /> 30 <uses-feature 31 android:name="android.hardware.camera.autofocus" 32 android:required="false" /> 33 34 <!-- Needed to prompt the user to give permission to install a downloaded apk --> 35 <uses-permission-sdk-23 android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> 36 37 <uses-feature android:name="android.hardware.fingerprint" android:required="false"/> 38 39 <uses-permission-sdk-23 android:name="android.permission.USE_FINGERPRINT"/> 40 41 <!-- Permission needed to publish the app on Samsung AppStore --> 42 <uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY"/> 43 44 <!-- Needed to interact with all apps installed on a device --> 45 <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" 46 tools:ignore="QueryAllPackagesPermission" /> 47 48 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 49 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 50 <uses-permission android:name="android.permission.RECORD_AUDIO" /> 51 52 <!-- Needed to post notifications on devices with Android 13 and later--> 53 <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> 54 55 <!-- Needed for uploading media files on devices with Android 13 and later. --> 56 <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" /> 57 <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" /> 58 59 <!-- Needed to support Credential Manager with Android 14 and later. --> 60 <uses-permission android:name="android.permission.CREDENTIAL_MANAGER_SET_ORIGIN" /> 61 <uses-permission android:name="android.permission.CREDENTIAL_MANAGER_QUERY_CANDIDATE_CREDENTIALS" /> 62 63 <application 64 android:allowBackup="false" 65 android:icon="@mipmap/ic_launcher" 66 android:label="@string/app_name" 67 android:supportsRtl="true" 68 android:theme="@style/Theme.App.Starting" 69 android:name=".FocusApplication" 70 android:enableOnBackInvokedCallback="false" 71 android:usesCleartextTraffic="true" 72 tools:ignore="UnusedAttribute"> 73 74 <activity 75 android:name=".activity.IntentReceiverActivity" 76 android:exported="true"> 77 <intent-filter> 78 <action android:name="android.intent.action.VIEW" /> 79 <category android:name="android.intent.category.DEFAULT" /> 80 <category android:name="android.intent.category.BROWSABLE" /> 81 <data android:scheme="http" /> 82 <data android:scheme="https" /> 83 </intent-filter> 84 85 <intent-filter> 86 <action android:name="android.intent.action.VIEW" /> 87 <category android:name="android.intent.category.BROWSABLE" /> 88 <category android:name="android.intent.category.DEFAULT" /> 89 <data android:scheme="http" /> 90 <data android:scheme="https" /> 91 <data android:mimeType="text/html"/> 92 <data android:mimeType="text/plain"/> 93 <data android:mimeType="application/xhtml+xml"/> 94 </intent-filter> 95 96 <intent-filter> 97 <action android:name="android.intent.action.SEND" /> 98 <category android:name="android.intent.category.DEFAULT" /> 99 <data android:mimeType="text/plain" /> 100 </intent-filter> 101 102 <intent-filter> 103 <action android:name="android.intent.action.ASSIST" /> 104 <category android:name="android.intent.category.DEFAULT" /> 105 </intent-filter> 106 </activity> 107 108 <activity android:name=".activity.MainActivity" 109 android:launchMode="singleTask" 110 android:exported="true" 111 android:windowSoftInputMode="adjustResize" 112 android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" 113 android:resizeableActivity="true" 114 android:supportsPictureInPicture="true"> 115 <intent-filter> 116 <action android:name="android.intent.action.MAIN" /> 117 118 <category android:name="android.intent.category.LAUNCHER" /> 119 </intent-filter> 120 121 <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" /> 122 </activity> 123 124 <activity android:name=".activity.CustomTabActivity" 125 android:windowSoftInputMode="adjustResize|stateAlwaysHidden" 126 android:exported="false" 127 android:taskAffinity="" 128 android:persistableMode="persistNever" 129 android:autoRemoveFromRecents="false" 130 android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" 131 android:resizeableActivity="true" 132 android:supportsPictureInPicture="true" 133 android:theme="@style/AppTheme" /> 134 135 <activity android:name=".activity.TextActionActivity" 136 android:label="${textSelectionSearchAction}" 137 android:exported="true"> 138 <intent-filter> 139 <action android:name="android.intent.action.PROCESS_TEXT" /> 140 <category android:name="android.intent.category.DEFAULT" /> 141 <data android:mimeType="text/plain" /> 142 </intent-filter> 143 </activity> 144 145 <activity android:name=".activity.EraseShortcutActivity" 146 android:theme="@android:style/Theme.Translucent" /> 147 148 <activity android:name=".activity.EraseAndOpenShortcutActivity" 149 android:theme="@android:style/Theme.Translucent" /> 150 151 <activity 152 android:name=".searchwidget.VoiceSearchActivity" 153 android:excludeFromRecents="true" 154 android:taskAffinity="" 155 android:theme="@style/Theme.AppCompat.Translucent" /> 156 157 <provider 158 android:authorities="${applicationId}.fileprovider" 159 android:name="androidx.core.content.FileProvider" 160 android:exported="false" 161 android:grantUriPermissions="true"> 162 <meta-data 163 android:name="android.support.FILE_PROVIDER_PATHS" 164 android:resource="@xml/provider_paths"/> 165 </provider> 166 167 <service 168 android:name=".customtabs.CustomTabsService" 169 android:exported="true" 170 tools:ignore="ExportedService"> 171 <intent-filter> 172 <action android:name="android.support.customtabs.action.CustomTabsService" /> 173 </intent-filter> 174 </service> 175 176 <service 177 android:name=".downloads.DownloadService" 178 android:exported="false" 179 android:foregroundServiceType="dataSync" /> 180 181 <service android:name=".media.MediaSessionService" 182 android:foregroundServiceType="mediaPlayback" 183 android:exported="false" /> 184 185 <service 186 android:name=".session.SessionNotificationService" 187 android:exported="false" 188 android:foregroundServiceType="specialUse"> 189 <property 190 android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE" 191 android:value="This foreground service allows users to easily remove private tabs from the notification" /> 192 </service> 193 194 <meta-data android:name="android.webkit.WebView.MetricsOptOut" 195 android:value="true" /> 196 197 <receiver 198 android:name=".searchwidget.SearchWidgetProvider" 199 android:exported="true"> 200 <intent-filter> 201 <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> 202 </intent-filter> 203 <meta-data 204 android:name="android.appwidget.provider" 205 android:resource="@xml/search_widget_info" /> 206 </receiver> 207 208 <!-- Removes the default Workmanager initialization so that we can use on-demand initializer. --> 209 <provider 210 android:name="androidx.startup.InitializationProvider" 211 android:authorities="${applicationId}.androidx-startup" 212 android:exported="false" 213 tools:node="merge" > 214 <meta-data 215 android:name="androidx.work.WorkManagerInitializer" 216 android:value="androidx.startup" 217 tools:node="remove" /> 218 </provider> 219 220 </application> 221 222 </manifest>