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">
8 <uses-permission android:name="android.permission.INTERNET" />
9 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
10 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
11 <uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
12 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- Used by sentry. -->
13 <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
14 <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
15 <!-- Needed to prompt the user to give permission for camera access -->
16 <uses-permission android:name="android.permission.CAMERA" />
17 <!-- Needed to prompt the user to give permission to install a downloaded apk -->
18 <uses-permission-sdk-23 android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
20 <uses-feature android:name="android.hardware.fingerprint" android:required="false"/>
21 <uses-permission-sdk-23 android:name="android.permission.USE_FINGERPRINT"/>
23 <!-- Permission needed to publish the app on Samsung AppStore -->
24 <uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY"/>
26 <!-- Needed to interact with all apps installed on a device -->
27 <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
28 tools:ignore="QueryAllPackagesPermission" />
30 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
31 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
32 <uses-permission android:name="android.permission.RECORD_AUDIO" />
34 <!-- Needed for Google Play policy https://support.google.com/googleplay/android-developer/answer/6048248 -->
35 <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
37 <!-- Needed to post notifications on devices with Android 13 and later-->
38 <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
40 <!-- Needed for uploading media files on devices with Android 13 and later. -->
41 <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
42 <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
43 <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
46 android:allowBackup="false"
47 android:extractNativeLibs="true"
48 android:icon="@mipmap/ic_launcher"
49 android:label="@string/app_name"
50 android:supportsRtl="true"
51 android:theme="@style/Theme.App.Starting"
52 android:name=".FocusApplication"
53 android:usesCleartextTraffic="true">
56 android:name=".activity.IntentReceiverActivity"
57 android:exported="true">
59 <action android:name="android.intent.action.VIEW" />
60 <category android:name="android.intent.category.DEFAULT" />
61 <category android:name="android.intent.category.BROWSABLE" />
62 <data android:scheme="http" />
63 <data android:scheme="https" />
67 <action android:name="android.intent.action.VIEW" />
68 <category android:name="android.intent.category.BROWSABLE" />
69 <category android:name="android.intent.category.DEFAULT" />
70 <data android:scheme="http" />
71 <data android:scheme="https" />
72 <data android:mimeType="text/html"/>
73 <data android:mimeType="text/plain"/>
74 <data android:mimeType="application/xhtml+xml"/>
78 <action android:name="android.intent.action.SEND" />
79 <category android:name="android.intent.category.DEFAULT" />
80 <data android:mimeType="text/plain" />
84 <action android:name="android.intent.action.ASSIST" />
85 <category android:name="android.intent.category.DEFAULT" />
89 <activity android:name=".activity.MainActivity"
90 android:launchMode="singleTask"
91 android:exported="true"
92 android:windowSoftInputMode="adjustResize|stateAlwaysHidden"
93 android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize"
94 android:resizeableActivity="true"
95 android:supportsPictureInPicture="true"
96 android:label="@string/app_name"
99 <action android:name="android.intent.action.MAIN" />
101 <category android:name="android.intent.category.LAUNCHER" />
104 <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />
108 android:name=".activity.CrashListActivity"
109 android:exported="false"
110 android:theme="@style/Theme.AppCompat.NoActionBar"/>
112 <activity android:name=".activity.CustomTabActivity"
113 android:windowSoftInputMode="adjustResize|stateAlwaysHidden"
114 android:exported="false"
115 android:taskAffinity=""
116 android:persistableMode="persistNever"
117 android:autoRemoveFromRecents="false"
118 android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize"
119 android:resizeableActivity="true"
120 android:supportsPictureInPicture="true"
121 android:label="@string/app_name"
122 android:theme="@style/AppTheme"
123 tools:targetApi="n" />
125 <activity android:name=".activity.TextActionActivity"
126 android:label="${textSelectionSearchAction}"
127 android:exported="true">
129 <action android:name="android.intent.action.PROCESS_TEXT" />
130 <category android:name="android.intent.category.DEFAULT" />
131 <data android:mimeType="text/plain" />
135 <activity android:name=".activity.InstallFirefoxActivity"
136 android:theme="@style/Theme.AppCompat.NoActionBar" />
138 <activity android:name=".activity.EraseShortcutActivity"
139 android:theme="@android:style/Theme.Translucent" />
141 <activity android:name=".activity.EraseAndOpenShortcutActivity"
142 android:theme="@android:style/Theme.Translucent" />
145 android:name=".searchwidget.VoiceSearchActivity"
146 android:excludeFromRecents="true"
147 android:taskAffinity=""
148 android:theme="@style/Theme.AppCompat.Translucent" />
151 android:authorities="${applicationId}.fileprovider"
152 android:name="androidx.core.content.FileProvider"
153 android:exported="false"
154 android:grantUriPermissions="true">
156 android:name="android.support.FILE_PROVIDER_PATHS"
157 android:resource="@xml/provider_paths"/>
161 android:name=".customtabs.CustomTabsService"
162 android:exported="true"
163 tools:ignore="ExportedService">
165 <action android:name="android.support.customtabs.action.CustomTabsService" />
169 <service android:name=".downloads.DownloadService"
170 android:exported="false" />
172 <service android:name=".media.MediaSessionService"
173 android:foregroundServiceType="mediaPlayback"
174 android:exported="false" />
176 <service android:name=".session.SessionNotificationService"
177 android:exported="false" />
179 <meta-data android:name="android.webkit.WebView.MetricsOptOut"
180 android:value="true" />
183 android:name=".searchwidget.SearchWidgetProvider"
184 android:exported="true">
186 <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
189 android:name="android.appwidget.provider"
190 android:resource="@xml/search_widget_info" />
193 <!-- Removes the default Workmanager initialization so that we can use on-demand initializer. -->
195 android:name="androidx.startup.InitializationProvider"
196 android:authorities="${applicationId}.androidx-startup"
197 android:exported="false"
200 android:name="androidx.work.WorkManagerInitializer"
201 android:value="androidx.startup"
202 tools:node="remove" />