Bug 1825028 - Delay init of MozillaOnline build until privacy notice accepted
[gecko.git] / mobile / android / fenix / app / src / main / AndroidManifest.xml
blob7508fd593d79990fc5b7bde370eea93d4b5125cd
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">
5     <uses-permission android:name="android.permission.INTERNET" />
6     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
7     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
8     <uses-permission
9         android:name="android.permission.WRITE_EXTERNAL_STORAGE"
10         android:maxSdkVersion="28"
11         tools:ignore="ScopedStorage"
12         />
13     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
14     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
15     <uses-permission android:name="android.permission.CAMERA" />
16     <uses-permission android:name="android.permission.RECORD_AUDIO" />
17     <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
18     <uses-permission android:name="android.permission.VIBRATE" />
19     <uses-permission android:name="android.permission.USE_BIOMETRIC" />
21     <!-- Needed for Google Play policy https://support.google.com/googleplay/android-developer/answer/6048248 -->
22     <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
24     <!-- Needed to prompt the user to give permission to install a downloaded apk -->
25     <uses-permission-sdk-23 android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
27     <!-- Needed to interact with all apps installed on a device -->
28     <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
29         tools:ignore="QueryAllPackagesPermission" />
31     <!-- Needed to post notifications on devices with Android 13 and later-->
32     <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
34     <!-- Needed for uploading media files on devices with Android 13 and later. -->
35     <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
36     <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
37     <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
39     <application
40         android:name=".FenixApplication"
41         android:allowBackup="false"
42         android:extractNativeLibs="true"
43         android:icon="@mipmap/ic_launcher"
44         android:label="@string/app_name"
45         android:roundIcon="@mipmap/ic_launcher_round"
46         android:supportsRtl="true"
47         android:theme="@style/NormalTheme"
48         android:usesCleartextTraffic="true"
49         tools:ignore="UnusedAttribute">
51         <profileable
52             android:shell="true"
53             tools:targetApi="29" />
55         <!--
56           We inherited this entry (${applicationId}.App) from Fennec. We need to keep this as our
57           main launcher to avoid launcher icons on the home screen disappearing for all our users.
59           Note that `fennec*` build types override the targetActivity property in the Manifest
60           inside their source set.
61         -->
62         <activity-alias
63             android:name="${applicationId}.App"
64             android:exported="true"
65             android:targetActivity=".${targetActivity}">
66             <intent-filter>
67                 <action android:name="android.intent.action.MAIN" />
69                 <category android:name="android.intent.category.LAUNCHER" />
70             </intent-filter>
72             <meta-data
73                 android:name="android.app.shortcuts"
74                 android:resource="@xml/shortcuts" />
75         </activity-alias>
77         <!--
78           Fennec declared entry for homescreen pinned shortcuts.
79         -->
80         <activity-alias
81             android:name="org.mozilla.gecko.BrowserApp"
82             android:targetActivity=".IntentReceiverActivity"
83             android:exported="true">
84         </activity-alias>
86         <!-- Activity alias from Fennec used by PWA launchers on the home screen -->
87         <activity-alias
88             android:name="org.mozilla.gecko.LauncherActivity"
89             android:exported="true"
90             android:targetActivity=".IntentReceiverActivity">
91             <intent-filter>
92                 <action android:name="org.mozilla.gecko.WEBAPP" />
93             </intent-filter>
94         </activity-alias>
96         <activity
97             android:name=".HomeActivity"
98             android:exported="true"
99             android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize|layoutDirection|smallestScreenSize|screenLayout"
100             android:launchMode="singleTask"
101             android:resizeableActivity="true"
102             android:supportsPictureInPicture="true"
103             android:windowSoftInputMode="adjustResize">
104             <intent-filter>
105                 <action android:name="android.intent.action.VIEW" />
106                 <category android:name="android.intent.category.BROWSABLE" />
107                 <category android:name="android.intent.category.DEFAULT" />
108                 <data android:scheme="${deepLinkScheme}"
109                     android:host="enable_private_browsing"/>
110                 <data android:scheme="${deepLinkScheme}"
111                     android:host="home"/>
112                 <data android:scheme="${deepLinkScheme}"
113                     android:host="home_collections"/>
114                 <data android:scheme="${deepLinkScheme}"
115                     android:host="install_search_widget"/>
116                 <data android:scheme="${deepLinkScheme}"
117                     android:host="make_default_browser"/>
118                 <data android:scheme="${deepLinkScheme}"
119                     android:host="open"/>
120                 <data android:scheme="${deepLinkScheme}"
121                     android:host="settings"/>
122                 <data android:scheme="${deepLinkScheme}"
123                     android:host="settings_accessibility"/>
124                 <data android:scheme="${deepLinkScheme}"
125                     android:host="settings_addon_manager"/>
126                 <data android:scheme="${deepLinkScheme}"
127                     android:host="settings_delete_browsing_data"/>
128                 <data android:scheme="${deepLinkScheme}"
129                     android:host="settings_logins"/>
130                 <data android:scheme="${deepLinkScheme}"
131                     android:host="settings_notifications"/>
132                 <data android:scheme="${deepLinkScheme}"
133                     android:host="settings_privacy"/>
134                 <data android:scheme="${deepLinkScheme}"
135                     android:host="settings_search_engine"/>
136                 <data android:scheme="${deepLinkScheme}"
137                     android:host="settings_tracking_protection"/>
138                 <data android:scheme="${deepLinkScheme}"
139                     android:host="turn_on_sync"/>
140                 <data android:scheme="${deepLinkScheme}"
141                     android:host="urls_bookmarks"/>
142                 <data android:scheme="${deepLinkScheme}"
143                     android:host="urls_history"/>
144             </intent-filter>
145         </activity>
147         <activity android:name=".MozillaOnlineHomeActivity"
148                 android:exported="false"/>
150         <activity android:name=".home.mozonline.PrivacyContentDisplayActivity"
151                 android:exported="false"/>
153         <activity
154             android:name=".customtabs.ExternalAppBrowserActivity"
155             android:autoRemoveFromRecents="false"
156             android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize|layoutDirection|smallestScreenSize|screenLayout"
157             android:exported="false"
158             android:label="@string/app_name"
159             android:persistableMode="persistNever"
160             android:taskAffinity=""
161             android:resizeableActivity="true"
162             android:supportsPictureInPicture="true"
163             android:windowSoftInputMode="adjustResize|stateAlwaysHidden" />
165         <activity
166             android:name=".IntentReceiverActivity"
167             android:theme="@style/Theme.Transparent"
168             android:relinquishTaskIdentity="true"
169             android:taskAffinity=""
170             android:exported="true"
171             android:excludeFromRecents="true" >
173             <!--
174               Respond to `Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, Intent.CATEGORY_APP_BROWSER)`
175             -->
176             <intent-filter>
177                 <action android:name="android.intent.action.MAIN" />
178                 <category android:name="android.intent.category.APP_BROWSER"/>
179                 <category android:name="android.intent.category.DEFAULT"/>
180             </intent-filter>
182             <intent-filter>
183                 <action android:name="android.intent.action.VIEW" />
185                 <category android:name="android.intent.category.DEFAULT" />
186                 <category android:name="android.intent.category.BROWSABLE" />
187                 <category android:name="mozilla.components.pwa.category.SHORTCUT" />
188                 <data android:scheme="http" />
189                 <data android:scheme="https" />
190             </intent-filter>
192             <!--Exposed specific deep links for third-party apps to open wallpaper settings.-->
193             <intent-filter>
194                 <action android:name="android.intent.action.VIEW" />
195                 <category android:name="android.intent.category.BROWSABLE" />
196                 <category android:name="android.intent.category.DEFAULT" />
197                 <data android:scheme="${deepLinkScheme}"
198                     android:host="settings_wallpapers"/>
199             </intent-filter>
201             <intent-filter>
202                 <action android:name="android.intent.action.VIEW" />
204                 <category android:name="android.intent.category.BROWSABLE" />
205                 <category android:name="android.intent.category.DEFAULT" />
207                 <data android:scheme="http" />
208                 <data android:scheme="https" />
209                 <data android:mimeType="text/html" />
210                 <data android:mimeType="text/plain" />
211                 <data android:mimeType="application/xhtml+xml" />
212             </intent-filter>
214             <intent-filter>
215                 <action android:name="android.intent.action.SEND" />
216                 <category android:name="android.intent.category.DEFAULT" />
217                 <data android:mimeType="text/plain" />
218             </intent-filter>
220             <intent-filter>
221                 <action android:name="android.intent.action.SEARCH" />
222                 <category android:name="android.intent.category.DEFAULT" />
223             </intent-filter>
224             <meta-data android:name="android.app.searchable"
225                 android:resource="@xml/searchable"/>
227             <intent-filter>
228                 <action android:name="android.intent.action.WEB_SEARCH" />
229                 <category android:name="android.intent.category.DEFAULT" />
230             </intent-filter>
232             <intent-filter>
233                 <action android:name="mozilla.components.feature.pwa.VIEW_PWA" />
234                 <category android:name="android.intent.category.DEFAULT" />
235                 <data android:scheme="https" />
236             </intent-filter>
238             <intent-filter>
239                 <action android:name="android.intent.action.ASSIST" />
240                 <category android:name="android.intent.category.DEFAULT" />
241             </intent-filter>
243             <intent-filter>
244                 <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
245                 <category android:name="android.intent.category.DEFAULT" />
246                 <data android:scheme="http" />
247                 <data android:scheme="https" />
248             </intent-filter>
250             <meta-data
251                 android:name="com.android.systemui.action_assist_icon"
252                 android:resource="@mipmap/ic_launcher" />
254         </activity>
256         <activity
257             android:name=".crashes.CrashListActivity"
258             android:exported="false" />
260         <activity android:name=".widget.VoiceSearchActivity"
261             android:theme="@style/Theme.AppCompat.Translucent"
262             android:taskAffinity=""
263             android:excludeFromRecents="true"
264             />
266         <activity
267             android:name=".settings.account.AuthCustomTabActivity"
268             android:autoRemoveFromRecents="false"
269             android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize|layoutDirection|smallestScreenSize|screenLayout"
270             android:exported="false"
271             android:taskAffinity=""
272             android:windowSoftInputMode="adjustResize|stateAlwaysHidden" />
274         <activity android:name=".settings.account.AuthIntentReceiverActivity"
275             android:exported="false" />
277         <activity android:name=".autofill.AutofillUnlockActivity"
278             android:exported="false"
279             android:theme="@style/Theme.AppCompat.Translucent" />
281         <activity android:name=".autofill.AutofillConfirmActivity"
282             android:exported="false"
283             android:theme="@style/Theme.AppCompat.Translucent" />
285         <activity android:name=".autofill.AutofillSearchActivity"
286             android:exported="false"
287             android:theme="@style/DialogActivityTheme" />
289         <activity
290             android:name=".gleanplumb.NotificationClickedReceiverActivity"
291             android:exported="false" />
293         <service
294             android:name=".autofill.AutofillService"
295             android:exported="true"
296             android:label="@string/app_name"
297             android:permission="android.permission.BIND_AUTOFILL_SERVICE">
298             <intent-filter>
299                 <action android:name="android.service.autofill.AutofillService"/>
300             </intent-filter>
301             <meta-data
302                 android:name="android.autofill"
303                 android:resource="@xml/autofill_configuration" />
304         </service>
306         <service android:name=".media.MediaSessionService"
307             android:foregroundServiceType="mediaPlayback"
308             android:exported="false" />
310         <service
311             android:name=".customtabs.CustomTabsService"
312             android:exported="true"
313             tools:ignore="ExportedService">
314             <intent-filter>
315                 <action android:name="android.support.customtabs.action.CustomTabsService" />
316                 <category android:name="androidx.browser.trusted.category.TrustedWebActivities" />
317             </intent-filter>
318         </service>
320         <service
321             android:name=".downloads.DownloadService"
322             android:exported="false" />
324         <receiver
325             android:name="org.mozilla.gecko.search.SearchWidgetProvider"
326             android:exported="true">
327             <intent-filter>
328                 <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
329             </intent-filter>
330             <meta-data
331                 android:name="android.appwidget.provider"
332                 android:resource="@xml/search_widget_info" />
333         </receiver>
335         <service android:name=".session.PrivateNotificationService"
336                 android:exported="false" />
338         <service
339             android:name=".gleanplumb.NotificationDismissedService"
340             android:exported="false" />
342         <service
343             android:name=".push.FirebasePushService"
344             android:exported="false">
345             <intent-filter>
346                 <action android:name="com.google.firebase.MESSAGING_EVENT" />
347             </intent-filter>
348         </service>
350         <meta-data
351             android:name="firebase_messaging_auto_init_enabled"
352             android:value="true" />
353         <meta-data
354             android:name="firebase_analytics_collection_enabled"
355             android:value="false" />
356         <meta-data
357             android:name="firebase_analytics_collection_deactivated"
358             android:value="true" />
359         <!-- Removes the default Workmanager  initialization so that we can use on-demand initializer. -->
360         <provider
361             android:name="androidx.startup.InitializationProvider"
362             android:authorities="${applicationId}.androidx-startup"
363             android:exported="false"
364             tools:node="merge" >
365             <meta-data
366                 android:name="androidx.work.WorkManagerInitializer"
367                 android:value="androidx.startup"
368                 tools:node="remove" />
369         </provider>
370     </application>
372 </manifest>