nav_graph.xml 41.4 KB
Newer Older
1
2
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
3
4
5
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/nav_graph"
6
    app:startDestination="@id/homeFragment">
7

Jeff Boek's avatar
Jeff Boek committed
8
9
    <action
        android:id="@+id/action_global_home"
10
        app:destination="@id/homeFragment"
11
        app:popUpTo="@id/homeFragment"
Jeff Boek's avatar
Jeff Boek committed
12
        app:popUpToInclusive="true" />
Jeff Boek's avatar
Jeff Boek committed
13

14
15
    <action
        android:id="@+id/action_global_browser"
16
        app:destination="@id/browserFragment"
17
        app:popUpTo="@id/homeFragment"
Jeff Boek's avatar
Jeff Boek committed
18
        app:popUpToInclusive="false" />
19

Tiger Oakes's avatar
Tiger Oakes committed
20
21
22
    <action
        android:id="@+id/action_global_external_app_browser"
        app:destination="@id/externalAppBrowserFragment"
23
24
        app:popUpTo="@id/homeFragment"
        app:popUpToInclusive="false" />
Tiger Oakes's avatar
Tiger Oakes committed
25

Yeon Taek Jeong's avatar
Yeon Taek Jeong committed
26
27
    <action
        android:id="@+id/action_global_search"
28
        app:destination="@id/searchFragment" />
Yeon Taek Jeong's avatar
Yeon Taek Jeong committed
29

30
31
32
33
    <action
        android:id="@+id/action_global_search_dialog"
        app:destination="@id/searchDialogFragment" />

34
35
36
37
38
39
40
41
42
43
44
    <action
        android:id="@+id/action_global_shareFragment"
        app:destination="@id/shareFragment" />
    <action
        android:id="@+id/action_global_crash_reporter"
        app:destination="@id/crashReporterFragment" />
    <action
        android:id="@+id/action_global_turn_on_sync"
        app:destination="@id/turnOnSyncFragment" />
    <action
        android:id="@+id/action_global_searchEngineFragment"
Tiger Oakes's avatar
Tiger Oakes committed
45
        app:destination="@id/search_engine_graph" />
46
47
48
49
50
51
52
53
54
55
56
57
58
59
    <action
        android:id="@+id/action_global_accessibilityFragment"
        app:destination="@id/accessibilityFragment" />
    <action
        android:id="@+id/action_global_deleteBrowsingDataFragment"
        app:destination="@id/deleteBrowsingDataFragment" />
    <action
        android:id="@+id/action_global_webExtensionActionPopupFragment"
        app:destination="@id/webExtensionActionPopupFragment" />
    <action
        android:id="@+id/action_global_settingsFragment"
        app:destination="@id/settingsFragment" />
    <action
        android:id="@+id/action_global_syncedTabsFragment"
60
        app:destination="@id/syncedTabsFragment" />
61
62
63
64
65
66
67
68
69
    <action
        android:id="@+id/action_global_privateBrowsingFragment"
        app:destination="@id/privateBrowsingFragment" />
    <action
        android:id="@+id/action_global_bookmarkFragment"
        app:destination="@id/bookmarkFragment" />
    <action
        android:id="@+id/action_global_historyFragment"
        app:destination="@id/historyFragment" />
Kate Glazko's avatar
Kate Glazko committed
70

71
72
    <action
        android:id="@+id/action_global_downloadsFragment"
Kate Glazko's avatar
Kate Glazko committed
73
        app:destination="@id/downloadsFragment" />
74
75
76
77
78
79
80
81
82
83
84
85
86
87
    <action
        android:id="@+id/action_global_accountProblemFragment"
        app:destination="@id/accountProblemFragment" />
    <action
        android:id="@+id/action_global_SitePermissionsManagePhoneFeature"
        app:destination="@id/SitePermissionsManagePhoneFeature" />
    <action
        android:id="@+id/action_global_collectionCreationFragment"
        app:destination="@id/collectionCreationFragment" />
    <action
        android:id="@+id/action_global_bookmarkEditFragment"
        app:destination="@id/bookmarkEditFragment" />
    <action
        android:id="@+id/action_global_addonsManagementFragment"
Tiger Oakes's avatar
Tiger Oakes committed
88
        app:destination="@id/addons_management_graph" />
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
    <action
        android:id="@+id/action_global_trackingProtectionFragment"
        app:destination="@id/trackingProtectionFragment" />
    <action
        android:id="@+id/action_global_trackingProtectionExceptionsFragment"
        app:destination="@id/trackingProtectionExceptionsFragment" />
    <action
        android:id="@+id/action_global_accountSettingsFragment"
        app:destination="@id/accountSettingsFragment" />
    <action
        android:id="@+id/action_global_trackingProtectionPanelDialogFragment"
        app:destination="@id/trackingProtectionPanelDialogFragment" />
    <action
        android:id="@+id/action_global_quickSettingsSheetDialogFragment"
        app:destination="@id/quickSettingsSheetDialogFragment" />
    <action
        android:id="@+id/action_global_tabTrayDialogFragment"
        app:destination="@id/tabTrayDialogFragment" />
107
108
109
    <action
        android:id="@+id/action_global_savedLoginsAuthFragment"
        app:destination="@id/savedLoginsAuthFragment" />
110
111
112
    <action
        android:id="@+id/action_global_tabHistoryDialogFragment"
        app:destination="@id/tabHistoryDialogFragment" />
113
114
115
    <action
        android:id="@+id/action_global_closeTabSettingsFragment"
        app:destination="@id/closeTabsSettingsFragment" />
116
117
118
119

    <dialog
        android:id="@+id/tabTrayDialogFragment"
        android:name="org.mozilla.fenix.tabtray.TabTrayDialogFragment"
120
121
122
123
124
125
        tools:layout="@layout/fragment_tab_tray_dialog">
        <argument
            android:name="enterMultiselect"
            android:defaultValue="false"
            app:argType="boolean" />
    </dialog>
Gabriel Luong's avatar
Gabriel Luong committed
126

127
128
129
130
    <fragment
        android:id="@+id/homeFragment"
        android:name="org.mozilla.fenix.home.HomeFragment"
        tools:layout="@layout/fragment_home">
131
132
133
134
        <argument
            android:name="focusOnAddressBar"
            android:defaultValue="false"
            app:argType="boolean" />
135
136
        <argument
            android:name="session_to_delete"
137
            android:defaultValue="@null"
138
            app:argType="string"
139
            app:nullable="true" />
140
    </fragment>
141

142
143
144
    <dialog
        android:id="@+id/searchDialogFragment"
        android:name="org.mozilla.fenix.searchdialog.SearchDialogFragment"
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
        tools:layout="@layout/fragment_search_dialog">
        <argument
            android:name="session_id"
            app:argType="string"
            app:nullable="true" />
        <argument
            android:name="pastedText"
            android:defaultValue="@null"
            app:argType="string"
            app:nullable="true" />
        <argument
            android:name="search_access_point"
            android:defaultValue="NONE"
            app:argType="org.mozilla.fenix.components.metrics.Event$PerformedSearch$SearchAccessPoint" />
    </dialog>
160

161
162
163
164
    <fragment
        android:id="@+id/searchFragment"
        android:name="org.mozilla.fenix.search.SearchFragment"
        tools:layout="@layout/fragment_search">
Emily Kager's avatar
Emily Kager committed
165
166
167
168
        <argument
            android:name="session_id"
            app:argType="string"
            app:nullable="true" />
169
170
        <argument
            android:name="pastedText"
171
            android:defaultValue="@null"
172
            app:argType="string"
173
            app:nullable="true" />
174
175
        <argument
            android:name="search_access_point"
176
177
            android:defaultValue="NONE"
            app:argType="org.mozilla.fenix.components.metrics.Event$PerformedSearch$SearchAccessPoint" />
178
    </fragment>
179

180
181
    <fragment
        android:id="@+id/SitePermissionsManagePhoneFeature"
182
        android:name="org.mozilla.fenix.settings.sitepermissions.SitePermissionsManagePhoneFeatureFragment"
183
184
        tools:layout="@layout/fragment_manage_site_permissions_feature_phone">
        <argument
185
186
            android:name="phoneFeature"
            app:argType="org.mozilla.fenix.settings.PhoneFeature" />
187
188
    </fragment>

189
190
191
    <fragment
        android:id="@+id/browserFragment"
        android:name="org.mozilla.fenix.browser.BrowserFragment"
192
        app:exitAnim="@anim/fade_out"
193
        tools:layout="@layout/fragment_browser">
194
195
        <action
            android:id="@+id/action_browserFragment_to_searchFragment"
196
            app:destination="@id/searchFragment"
197
            app:enterAnim="@anim/fade_in_up"
198
            app:popExitAnim="@anim/fade_out_down" />
199
        <argument
200
            android:name="activeSessionId"
201
202
            app:argType="string"
            app:nullable="true" />
203
204
205
        <action
            android:id="@+id/action_browserFragment_to_syncedTabsFragment"
            app:destination="@id/syncedTabsFragment" />
206
207
208
        <action
            android:id="@+id/action_browserFragment_to_settingsFragment"
            app:destination="@id/settingsFragment" />
209
        <action
ekager's avatar
ekager committed
210
211
            android:id="@+id/action_browserFragment_to_createShortcutFragment"
            app:destination="@id/createShortcutFragment" />
212
        <action
213
214
            android:id="@+id/action_browserFragment_to_pwaOnboardingDialogFragment"
            app:destination="@id/pwaOnboardingDialogFragment" />
215
216
217
        <action
            android:id="@+id/action_browserFragment_to_quickSettingsSheetDialogFragment"
            app:destination="@id/quickSettingsSheetDialogFragment" />
218
219
220
        <action
            android:id="@+id/action_browserFragment_to_trackingProtectionPanelDialogFragment"
            app:destination="@id/trackingProtectionPanelDialogFragment" />
221
222
223
        <action
            android:id="@+id/action_browserFragment_to_tabsTrayFragment"
            app:destination="@+id/tabTrayFragment" />
224
    </fragment>
225

Tiger Oakes's avatar
Tiger Oakes committed
226
    <fragment
227
228
229
        android:id="@+id/externalAppBrowserFragment"
        android:name="org.mozilla.fenix.customtabs.ExternalAppBrowserFragment"
        tools:layout="@layout/fragment_browser">
ekager's avatar
ekager committed
230
231
232
233
234
235
236
237
        <argument
            android:name="activeSessionId"
            app:argType="string"
            app:nullable="true" />
        <argument
            android:name="webAppManifest"
            app:argType="string"
            app:nullable="true" />
Tiger Oakes's avatar
Tiger Oakes committed
238
239
    </fragment>

240
241
242
243
    <fragment
        android:id="@+id/historyFragment"
        android:name="org.mozilla.fenix.library.history.HistoryFragment"
        android:label="@string/library_history"
Jeff Boek's avatar
Jeff Boek committed
244
        tools:layout="@layout/fragment_history" />
245

Kate Glazko's avatar
Kate Glazko committed
246
247
248
249
250
251
    <fragment
        android:id="@+id/downloadsFragment"
        android:name="org.mozilla.fenix.library.downloads.DownloadFragment"
        android:label="Downloads"
        tools:layout="@layout/fragment_downloads" />

252
253
254
255
256
257
258
259
260
261
    <fragment
        android:id="@+id/bookmarkFragment"
        android:name="org.mozilla.fenix.library.bookmarks.BookmarkFragment"
        tools:layout="@layout/fragment_bookmark">
        <argument
            android:name="currentRoot"
            app:argType="string" />
        <action
            android:id="@+id/action_bookmarkFragment_self"
            app:destination="@id/bookmarkFragment" />
262
263
264
        <action
            android:id="@+id/action_bookmarkFragment_to_bookmarkEditFragment"
            app:destination="@id/bookmarkEditFragment" />
265
266
267
        <action
            android:id="@+id/action_bookmarkFragment_to_bookmarkAddFolderFragment"
            app:destination="@id/bookmarkAddFolderFragment" />
268
269
270
271
272
273
274
275
276
    </fragment>

    <fragment
        android:id="@+id/bookmarkEditFragment"
        android:name="org.mozilla.fenix.library.bookmarks.edit.EditBookmarkFragment"
        tools:layout="@layout/fragment_edit_bookmark">
        <argument
            android:name="guidToEdit"
            app:argType="string"
Emily Kager's avatar
Emily Kager committed
277
            app:nullable="false" />
278
279
280
        <action
            android:id="@+id/action_bookmarkEditFragment_to_bookmarkSelectFolderFragment"
            app:destination="@id/bookmarkSelectFolderFragment" />
Mihai Eduard Badea's avatar
Mihai Eduard Badea committed
281
282
        <argument
            android:name="requiresSnackbarPaddingForToolbar"
283
284
            android:defaultValue="false"
            app:argType="boolean" />
285
286
287
288
289
290
291
292
293
294
    </fragment>

    <fragment
        android:id="@+id/bookmarkSelectFolderFragment"
        android:name="org.mozilla.fenix.library.bookmarks.selectfolder.SelectBookmarkFolderFragment"
        android:label="@string/bookmark_select_folder_fragment_label"
        tools:layout="@layout/fragment_select_bookmark_folder">
        <argument
            android:name="folderGuid"
            app:argType="string"
Emily Kager's avatar
Emily Kager committed
295
            app:nullable="true" />
296
297
298
299
300
301
302
303
        <action
            android:id="@+id/action_bookmarkSelectFolderFragment_self"
            app:destination="@id/bookmarkSelectFolderFragment" />
        <action
            android:id="@+id/action_bookmarkSelectFolderFragment_to_bookmarkAddFolderFragment"
            app:destination="@id/bookmarkAddFolderFragment" />
        <argument
            android:name="visitedAddBookmark"
Emily Kager's avatar
Emily Kager committed
304
305
            android:defaultValue="false"
            app:argType="boolean" />
306
307
308
309
310
    </fragment>

    <fragment
        android:id="@+id/bookmarkAddFolderFragment"
        android:name="org.mozilla.fenix.library.bookmarks.addfolder.AddBookmarkFolderFragment"
311
312
        android:label="@string/bookmark_add_folder_fragment_label"
        tools:layout="@layout/fragment_edit_bookmark">
313
314
315
        <action
            android:id="@+id/action_bookmarkAddFolderFragment_to_bookmarkSelectFolderFragment"
            app:destination="@id/bookmarkSelectFolderFragment" />
316
    </fragment>
317

ekager's avatar
ekager committed
318
    <fragment
319
        android:id="@+id/savedLoginsAuthFragment"
320
        android:name="org.mozilla.fenix.settings.logins.fragment.SavedLoginsAuthFragment"
ekager's avatar
ekager committed
321
322
        android:label="@string/preferences_passwords_logins_and_passwords">
        <action
323
            android:id="@+id/action_savedLoginsAuthFragment_to_loginsListFragment"
324
            app:destination="@id/savedLoginsFragment"
325
326
327
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
328
            app:popExitAnim="@anim/slide_out_right" />
ekager's avatar
ekager committed
329
        <action
330
            android:id="@+id/action_savedLoginsAuthFragment_to_turnOnSyncFragment"
331
            app:destination="@id/turnOnSyncFragment"
332
333
334
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
335
            app:popExitAnim="@anim/slide_out_right" />
336
        <action
337
            android:id="@+id/action_savedLoginsAuthFragment_to_savedLoginsSettingFragment"
338
            app:destination="@id/saveLoginSettingFragment"
339
340
341
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
342
343
344
345
346
347
348
349
            app:popExitAnim="@anim/slide_out_right" />
        <action
            android:id="@+id/action_savedLoginsAuthFragment_to_loginExceptionsFragment"
            app:destination="@id/loginExceptionsFragment"
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
            app:popExitAnim="@anim/slide_out_right" />
ekager's avatar
ekager committed
350
351
    </fragment>

352
353
    <fragment
        android:id="@+id/savedLoginsFragment"
354
        android:name="org.mozilla.fenix.settings.logins.fragment.SavedLoginsFragment"
355
356
357
358
359
360
361
362
363
364
365
        tools:layout="@layout/fragment_saved_logins">
        <action
            android:id="@+id/action_savedLoginsFragment_to_loginDetailFragment"
            app:destination="@id/loginDetailFragment" />
        <action
            android:id="@+id/action_savedLoginsFragment_to_browserFragment"
            app:destination="@id/browserFragment"
            app:popUpTo="@id/settingsFragment"
            app:popUpToInclusive="true" />
    </fragment>

366
367
368
369
    <fragment
        android:id="@+id/syncedTabsFragment"
        android:name="org.mozilla.fenix.sync.SyncedTabsFragment"
        android:label="@string/synced_tabs"
370
        tools:layout="@layout/fragment_synced_tabs" />
371
372
373

    <fragment
        android:id="@+id/loginExceptionsFragment"
374
        android:name="org.mozilla.fenix.exceptions.login.LoginExceptionsFragment"
375
        android:label="@string/preferences_passwords_exceptions"
376
        tools:layout="@layout/fragment_exceptions" />
377

378
379
    <fragment
        android:id="@+id/loginDetailFragment"
380
        android:name="org.mozilla.fenix.settings.logins.fragment.LoginDetailFragment"
381
382
383
384
        tools:layout="@layout/fragment_login_detail">
        <argument
            android:name="savedLoginId"
            app:argType="string"
385
            app:nullable="false" />
386
387
388
389
        <action
            android:id="@+id/action_loginDetailFragment_to_editLoginFragment"
            app:destination="@id/editLoginFragment"
            app:popUpTo="@id/editLoginFragment"
390
            app:popUpToInclusive="true" />
391
392
393
394
    </fragment>

    <fragment
        android:id="@+id/editLoginFragment"
395
        android:name="org.mozilla.fenix.settings.logins.fragment.EditLoginFragment"
396
397
        android:label="@string/edit"
        tools:layout="@layout/fragment_edit_login">
398
399
400
        <argument
            android:name="savedLoginItem"
            app:argType="org.mozilla.fenix.settings.logins.SavedLogin"
401
            app:nullable="false" />
402
403
404
405
        <action
            android:id="@+id/action_editLoginFragment_to_loginDetailFragment"
            app:destination="@id/loginDetailFragment"
            app:popUpTo="@id/loginDetailFragment"
406
            app:popUpToInclusive="true" />
407
408
    </fragment>

409
410
411
    <fragment
        android:id="@+id/settingsFragment"
        android:name="org.mozilla.fenix.settings.SettingsFragment"
Emily Kager's avatar
Emily Kager committed
412
413
414
        android:label="@string/settings_title">
        <action
            android:id="@+id/action_settingsFragment_to_dataChoicesFragment"
415
            app:destination="@id/dataChoicesFragment"
416
417
418
419
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
            app:popExitAnim="@anim/slide_out_right"
420
            app:popUpTo="@id/settingsFragment" />
Emily Kager's avatar
Emily Kager committed
421
422
        <action
            android:id="@+id/action_settingsFragment_to_sitePermissionsFragment"
423
            app:destination="@id/sitePermissionsFragment"
424
425
426
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
427
            app:popExitAnim="@anim/slide_out_right" />
ekager's avatar
ekager committed
428
        <action
429
            android:id="@+id/action_settingsFragment_to_savedLoginsAuthFragment"
430
            app:destination="@id/savedLoginsAuthFragment"
431
432
433
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
434
            app:popExitAnim="@anim/slide_out_right" />
Emily Kager's avatar
Emily Kager committed
435
436
        <action
            android:id="@+id/action_settingsFragment_to_accessibilityFragment"
437
            app:destination="@id/accessibilityFragment"
438
439
440
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
441
            app:popExitAnim="@anim/slide_out_right" />
Emily Kager's avatar
Emily Kager committed
442
443
        <action
            android:id="@+id/action_settingsFragment_to_accountSettingsFragment"
444
            app:destination="@id/accountSettingsFragment"
445
446
447
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
448
            app:popExitAnim="@anim/slide_out_right" />
449
450
        <action
            android:id="@+id/action_settingsFragment_to_searchEngineFragment"
Tiger Oakes's avatar
Tiger Oakes committed
451
            app:destination="@id/search_engine_graph"
452
453
454
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
455
            app:popExitAnim="@anim/slide_out_right" />
456
        <action
457
            android:id="@+id/action_settingsFragment_to_turnOnSyncFragment"
458
            app:destination="@id/turnOnSyncFragment"
459
460
461
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
462
            app:popExitAnim="@anim/slide_out_right" />
463
464
        <action
            android:id="@+id/action_settingsFragment_to_aboutFragment"
465
            app:destination="@id/aboutFragment"
466
467
468
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
469
            app:popExitAnim="@anim/slide_out_right" />
470
471
        <action
            android:id="@+id/action_settingsFragment_to_secretSettingsFragment"
472
            app:destination="@id/secretSettingsPreference"
473
474
475
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
476
            app:popExitAnim="@anim/slide_out_right" />
Emily Kager's avatar
Emily Kager committed
477
        <action
478
            android:id="@+id/action_settingsFragment_to_customizationFragment"
479
            app:destination="@id/customizationFragment"
480
481
482
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
483
            app:popExitAnim="@anim/slide_out_right" />
484
485
        <action
            android:id="@+id/action_settingsFragment_to_privateBrowsingFragment"
486
            app:destination="@id/privateBrowsingFragment"
487
488
489
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
490
            app:popExitAnim="@anim/slide_out_right" />
491
492
        <action
            android:id="@+id/action_settingsFragment_to_trackingProtectionFragment"
493
            app:destination="@id/trackingProtectionFragment"
494
495
496
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
497
            app:popExitAnim="@anim/slide_out_right" />
498
499
        <action
            android:id="@+id/action_settingsFragment_to_deleteBrowsingDataFragment"
500
            app:destination="@id/deleteBrowsingDataFragment"
501
502
503
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
504
            app:popExitAnim="@anim/slide_out_right" />
505
506
        <action
            android:id="@+id/action_settingsFragment_to_accountProblemFragment"
507
            app:destination="@id/accountProblemFragment"
508
509
510
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
511
            app:popExitAnim="@anim/slide_out_right" />
512
513
        <action
            android:id="@+id/action_settingsFragment_to_deleteBrowsingDataOnQuitFragment"
514
            app:destination="@id/deleteBrowsingDataOnQuitFragment"
515
516
517
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
518
            app:popExitAnim="@anim/slide_out_right" />
519
520
        <action
            android:id="@+id/action_settingsFragment_to_localeSettingsFragment"
521
            app:destination="@id/localeSettingsFragment"
522
523
524
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
525
            app:popExitAnim="@anim/slide_out_right" />
Gabriel Luong's avatar
Gabriel Luong committed
526
527
        <action
            android:id="@+id/action_settingsFragment_to_addonsFragment"
Tiger Oakes's avatar
Tiger Oakes committed
528
            app:destination="@id/addons_management_graph"
529
530
531
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
532
            app:popExitAnim="@anim/slide_out_right" />
533
534
535
536
537
538
539
        <action
            android:id="@+id/action_settingsFragment_to_closeTabsSettingsFragment"
            app:destination="@id/closeTabsSettingsFragment"
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
            app:popExitAnim="@anim/slide_out_right" />
540
    </fragment>
541
542
543
544
    <fragment
        android:id="@+id/closeTabsSettingsFragment"
        android:name="org.mozilla.fenix.settings.CloseTabsSettingsFragment"
        android:label="@string/preferences_close_tabs" />
545
    <fragment
Emily Kager's avatar
Emily Kager committed
546
547
        android:id="@+id/dataChoicesFragment"
        android:name="org.mozilla.fenix.settings.DataChoicesFragment"
548
        android:label="@string/preferences_data_choices" />
Emily Kager's avatar
Emily Kager committed
549
550
    <fragment
        android:id="@+id/sitePermissionsFragment"
551
        android:name="org.mozilla.fenix.settings.sitepermissions.SitePermissionsFragment"
Emily Kager's avatar
Emily Kager committed
552
        android:label="@string/preferences_site_permissions">
553
554
        <action
            android:id="@+id/action_site_permissions_to_manage_phone_features"
555
            app:destination="@id/SitePermissionsManagePhoneFeature"
556
557
558
559
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
            app:popExitAnim="@anim/slide_out_right"
Emily Kager's avatar
Emily Kager committed
560
            app:popUpTo="@id/sitePermissionsFragment" />
561
562
        <action
            android:id="@+id/action_site_permissions_to_exceptions"
Tiger Oakes's avatar
Tiger Oakes committed
563
            app:destination="@id/site_permissions_exceptions_graph"
564
565
566
567
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
            app:popExitAnim="@anim/slide_out_right"
Emily Kager's avatar
Emily Kager committed
568
            app:popUpTo="@id/sitePermissionsFragment" />
569
570
    </fragment>

Emily Kager's avatar
Emily Kager committed
571
572
573
    <fragment
        android:id="@+id/accessibilityFragment"
        android:name="org.mozilla.fenix.settings.AccessibilityFragment"
574
        android:label="@string/preferences_accessibility" />
Emily Kager's avatar
Emily Kager committed
575
576
    <fragment
        android:id="@+id/accountSettingsFragment"
577
        android:name="org.mozilla.fenix.settings.account.AccountSettingsFragment"
578
579
580
581
582
        android:label="@string/preferences_account_settings">
        <action
            android:id="@+id/action_accountSettingsFragment_to_signOutFragment"
            app:destination="@id/signOutFragment" />
    </fragment>
583

584
    <fragment
585
        android:id="@+id/turnOnSyncFragment"
586
        android:name="org.mozilla.fenix.settings.account.TurnOnSyncFragment"
587
588
        android:label="@string/preferences_sync"
        tools:layout="@layout/fragment_turn_on_sync">
589
590
        <argument
            android:name="padSnackbar"
ekager's avatar
ekager committed
591
592
            android:defaultValue="false"
            app:argType="boolean" />
593
        <action
594
595
            android:id="@+id/action_turnOnSyncFragment_to_pairFragment"
            app:destination="@id/pairFragment" />
596
597
598
599
600
    </fragment>

    <fragment
        android:id="@+id/pairFragment"
        android:name="org.mozilla.fenix.settings.PairFragment"
601
602
        android:label="@string/preferences_sync"
        tools:layout="@layout/fragment_pair" />
603

604
605
    <fragment
        android:id="@+id/aboutFragment"
606
607
608
609
610
611
612
613
614
615
        android:name="org.mozilla.fenix.settings.about.AboutFragment"
        tools:layout="@layout/fragment_about">
        <action
            android:id="@+id/action_aboutFragment_to_aboutLibrariesFragment"
            app:destination="@id/aboutLibrariesFragment"
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
            app:popExitAnim="@anim/slide_out_right" />
    </fragment>
616
617
    <fragment
        android:id="@+id/secretSettingsPreference"
618
        android:name="org.mozilla.fenix.settings.SecretSettingsFragment"
619
        android:label="@string/preferences_debug_settings" />
Emily Kager's avatar
Emily Kager committed
620
621
    <fragment
        android:id="@+id/crashReporterFragment"
622
623
        android:name="org.mozilla.fenix.crashes.CrashReporterFragment"
        tools:layout="@layout/fragment_crash_reporter">
Emily Kager's avatar
Emily Kager committed
624
625
626
        <argument
            android:name="crashIntent"
            app:argType="android.content.Intent" />
627
    </fragment>
628
629
630
631
    <fragment
        android:id="@+id/aboutLibrariesFragment"
        android:name="org.mozilla.fenix.settings.about.AboutLibrariesFragment"
        tools:layout="@layout/fragment_about_libraries" />
Emily Kager's avatar
Emily Kager committed
632
    <fragment
633
634
635
        android:id="@+id/customizationFragment"
        android:name="org.mozilla.fenix.settings.CustomizationFragment"
        android:label="@string/preferences_customize" />
636
637
638
639
    <fragment
        android:id="@+id/privateBrowsingFragment"
        android:name="org.mozilla.fenix.settings.PrivateBrowsingFragment"
        android:label="@string/preferences_private_browsing_options" />
640
641
    <fragment
        android:id="@+id/trackingProtectionFragment"
ekager's avatar
ekager committed
642
        android:name="org.mozilla.fenix.settings.TrackingProtectionFragment">
643
644
        <action
            android:id="@+id/action_trackingProtectionFragment_to_exceptionsFragment"
645
            app:destination="@id/trackingProtectionExceptionsFragment"
646
647
648
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
649
            app:popExitAnim="@anim/slide_out_right" />
650
651
        <action
            android:id="@+id/action_trackingProtectionFragment_to_trackingProtectionBlockingFragment"
652
            app:destination="@id/trackingProtectionBlockingFragment"
653
654
655
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
656
            app:popExitAnim="@anim/slide_out_right" />
657
    </fragment>
658
659
    <fragment
        android:id="@+id/deleteBrowsingDataFragment"
660
        android:name="org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataFragment"
661
662
        android:label="@string/preferences_delete_browsing_data"
        tools:layout="@layout/fragment_delete_browsing_data" />
663
    <fragment
664
        android:id="@+id/trackingProtectionExceptionsFragment"
665
        android:name="org.mozilla.fenix.exceptions.trackingprotection.TrackingProtectionExceptionsFragment"
666
667
        android:label="@string/preference_exceptions"
        tools:layout="@layout/fragment_exceptions" />
668
    <dialog
669
670
        android:id="@+id/collectionCreationFragment"
        android:name="org.mozilla.fenix.collections.CollectionCreationFragment"
ekager's avatar
ekager committed
671
        tools:layout="@layout/fragment_create_collection">
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
        <argument
            android:name="tabIds"
            android:defaultValue="@null"
            app:argType="string[]"
            app:nullable="true" />
        <argument
            android:name="selectedTabIds"
            android:defaultValue="@null"
            app:argType="string[]"
            app:nullable="true" />
        <!-- nav_graph does not allow nullable Longs, so this defaults to -1 -->
        <argument
            android:name="selectedTabCollectionId"
            android:defaultValue="-1L"
            app:argType="long" />
        <argument
            android:name="saveCollectionStep"
            app:argType="org.mozilla.fenix.collections.SaveCollectionStep"
            app:nullable="false" />
    </dialog>
692

693
    <dialog
ekager's avatar
ekager committed
694
695
696
        android:id="@+id/createShortcutFragment"
        android:name="org.mozilla.fenix.shortcut.CreateShortcutFragment"
        tools:layout="@layout/fragment_create_shortcut" />
697
    <dialog
698
699
700
        android:id="@+id/pwaOnboardingDialogFragment"
        android:name="org.mozilla.fenix.shortcut.PwaOnboardingDialogFragment"
        tools:layout="@layout/fragment_pwa_onboarding" />
701

702
703
704
    <dialog
        android:id="@+id/shareFragment"
        android:name="org.mozilla.fenix.share.ShareFragment"
705
        tools:layout="@layout/fragment_share">
706
        <argument
707
708
            android:name="data"
            app:argType="mozilla.components.concept.engine.prompt.ShareData[]" />
709
        <argument
710
            android:name="showPage"
ekager's avatar
ekager committed
711
712
            android:defaultValue="false"
            app:argType="boolean" />
713
714
715
        <action
            android:id="@+id/action_shareFragment_to_addNewDeviceFragment"
            app:destination="@id/addNewDeviceFragment" />
716
        <argument
ekager's avatar
ekager committed
717
718
719
720
            android:name="sessionId"
            android:defaultValue="null"
            app:argType="string"
            app:nullable="true" />
721
722
723
724
725
        <argument
            android:name="shareSubject"
            android:defaultValue="@null"
            app:argType="string"
            app:nullable="true" />
726
    </dialog>
727
728
    <dialog
        android:id="@+id/quickSettingsSheetDialogFragment"
729
730
        android:name="org.mozilla.fenix.settings.quicksettings.QuickSettingsSheetDialogFragment"
        tools:layout="@layout/fragment_quick_settings_dialog_sheet">
731
732
733
        <argument
            android:name="sessionId"
            app:argType="string" />
734
735
736
        <argument
            android:name="title"
            app:argType="string" />
737
738
739
740
741
742
743
744
745
746
747
748
        <argument
            android:name="url"
            app:argType="string" />
        <argument
            android:name="isSecured"
            app:argType="boolean" />
        <argument
            android:name="sitePermissions"
            app:argType="mozilla.components.feature.sitepermissions.SitePermissions"
            app:nullable="true" />
        <argument
            android:name="gravity"
Emily Kager's avatar
Emily Kager committed
749
750
            android:defaultValue="80"
            app:argType="integer" />
Kate Glazko's avatar
Kate Glazko committed
751
752
753
754
        <argument
            android:name="certificateName"
            android:defaultValue=" "
            app:argType="string" />
755
    </dialog>
756
757
    <fragment
        android:id="@+id/accountProblemFragment"
758
        android:name="org.mozilla.fenix.settings.account.AccountProblemFragment">
759
760
761
        <action
            android:id="@+id/action_accountProblemFragment_to_signOutFragment"
            app:destination="@id/signOutFragment" />
762
    </fragment>
763
764
    <dialog
        android:id="@+id/signOutFragment"
765
766
        android:name="org.mozilla.fenix.settings.account.SignOutFragment"
        tools:layout="@layout/fragment_sign_out" />
767
768
    <dialog
        android:id="@+id/trackingProtectionPanelDialogFragment"
769
770
        android:name="org.mozilla.fenix.trackingprotection.TrackingProtectionPanelDialogFragment"
        tools:layout="@layout/fragment_tracking_protection">
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
        <argument
            android:name="sessionId"
            app:argType="string" />
        <argument
            android:name="url"
            app:argType="string" />
        <argument
            android:name="trackingProtectionEnabled"
            app:argType="boolean" />
        <argument
            android:name="gravity"
            android:defaultValue="80"
            app:argType="integer" />
    </dialog>
    <fragment
        android:id="@+id/trackingProtectionBlockingFragment"
787
788
        android:name="org.mozilla.fenix.trackingprotection.TrackingProtectionBlockingFragment"
        tools:layout="@layout/fragment_tracking_protection_blocking">
789
        <argument
mcarare's avatar
mcarare committed
790
            android:name="protectionMode"
791
            app:argType="org.mozilla.fenix.trackingprotection.TrackingProtectionMode" />
792
    </fragment>
793
794
    <fragment
        android:id="@+id/deleteBrowsingDataOnQuitFragment"
ekager's avatar
ekager committed
795
        android:name="org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataOnQuitFragment" />
796
797
798

    <fragment
        android:id="@+id/addNewDeviceFragment"
799
800
        android:name="org.mozilla.fenix.share.AddNewDeviceFragment"
        tools:layout="@layout/fragment_add_new_device" />
801
802
    <fragment
        android:id="@+id/localeSettingsFragment"
803
804
        android:name="org.mozilla.fenix.settings.advanced.LocaleSettingsFragment"
        tools:layout="@layout/fragment_locale_settings" />
805
806
    <fragment
        android:id="@+id/saveLoginSettingFragment"
807
        android:name="org.mozilla.fenix.settings.logins.fragment.SavedLoginsSettingFragment"
808
        android:label="SaveLoginSettingFragment" />
Gabriel Luong's avatar
Gabriel Luong committed
809
810
    <fragment
        android:id="@+id/webExtensionActionPopupFragment"
811
812
        android:name="org.mozilla.fenix.addons.WebExtensionActionPopupFragment"
        tools:layout="@layout/fragment_add_on_internal_settings">
Gabriel Luong's avatar
Gabriel Luong committed
813
814
815
816
817
818
        <argument
            android:name="webExtensionId"
            app:argType="string" />
        <argument
            android:name="webExtensionTitle"
            app:argType="string"
819
            app:nullable="true" />
Gabriel Luong's avatar
Gabriel Luong committed
820
    </fragment>
821
822
    <dialog
        android:id="@+id/tabHistoryDialogFragment"
823
824
        android:name="org.mozilla.fenix.tabhistory.TabHistoryDialogFragment"
        tools:layout="@layout/fragment_tab_history_dialog" />
Tiger Oakes's avatar
Tiger Oakes committed
825

826
827
    <navigation
        android:id="@+id/site_permissions_exceptions_graph"
Tiger Oakes's avatar
Tiger Oakes committed
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
        app:startDestination="@id/sitePermissionsExceptionsFragment">

        <fragment
            android:id="@+id/sitePermissionsExceptionsFragment"
            android:name="org.mozilla.fenix.settings.sitepermissions.SitePermissionsExceptionsFragment"
            android:label="@string/preference_exceptions"
            tools:layout="@layout/fragment_site_permissions_exceptions">
            <action
                android:id="@+id/action_site_permissions_to_exceptions_to_site_permissions_details"
                app:destination="@id/sitePermissionsDetailsExceptionsFragment"
                app:popUpTo="@+id/sitePermissionsExceptionsFragment" />
        </fragment>

        <fragment
            android:id="@+id/sitePermissionsManageExceptionsPhoneFeatureFragment"
            android:name="org.mozilla.fenix.settings.sitepermissions.SitePermissionsManageExceptionsPhoneFeatureFragment"
            tools:layout="@layout/fragment_manage_site_permissions_feature_phone">
            <argument
                android:name="phoneFeature"
                app:argType="org.mozilla.fenix.settings.PhoneFeature" />
            <argument
                android:name="sitePermissions"
                app:argType="mozilla.components.feature.sitepermissions.SitePermissions" />
        </fragment>

        <fragment
            android:id="@+id/sitePermissionsDetailsExceptionsFragment"
            android:name="org.mozilla.fenix.settings.sitepermissions.SitePermissionsDetailsExceptionsFragment">
            <action
                android:id="@+id/action_site_permissions_to_exceptions_to_manage_phone_feature"
                app:destination="@id/sitePermissionsManageExceptionsPhoneFeatureFragment"
                app:popUpTo="@+id/sitePermissionsDetailsExceptionsFragment" />
            <argument
                android:name="sitePermissions"
                app:argType="mozilla.components.feature.sitepermissions.SitePermissions" />
        </fragment>
    </navigation>

866
867
    <navigation
        android:id="@+id/addons_management_graph"
Tiger Oakes's avatar
Tiger Oakes committed
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
        app:startDestination="@id/addonsManagementFragment">
        <fragment
            android:id="@+id/addonsManagementFragment"
            android:name="org.mozilla.fenix.addons.AddonsManagementFragment"
            tools:layout="@layout/fragment_add_ons_management">
            <action
                android:id="@+id/action_addonsManagementFragment_to_addonDetailsFragment"
                app:destination="@id/addonDetailsFragment" />
            <action
                android:id="@+id/action_addonsManagementFragment_to_installedAddonDetails"
                app:destination="@id/installedAddonDetailsFragment" />
            <action
                android:id="@+id/action_addonsManagementFragment_to_notYetSupportedAddonFragment"
                app:destination="@id/notYetSupportedAddonFragment" />
        </fragment>
        <fragment
            android:id="@+id/installedAddonDetailsFragment"
            android:name="org.mozilla.fenix.addons.InstalledAddonDetailsFragment"
            tools:layout="@layout/fragment_installed_add_on_details">
            <action
                android:id="@+id/action_installedAddonFragment_to_addonInternalSettingsFragment"
                app:destination="@id/addonInternalSettingsFragment" />
            <action
                android:id="@+id/action_installedAddonFragment_to_addonDetailsFragment"
                app:destination="@id/addonDetailsFragment" />
            <action
                android:id="@+id/action_installedAddonFragment_to_addonPermissionsDetailsFragment"
                app:destination="@id/addonPermissionsDetailFragment" />
            <argument
                android:name="addon"
                app:argType="mozilla.components.feature.addons.Addon" />
        </fragment>
        <fragment
            android:id="@+id/notYetSupportedAddonFragment"
            android:name="org.mozilla.fenix.addons.NotYetSupportedAddonFragment"
            tools:layout="@layout/fragment_not_yet_supported_addons">
            <argument
                android:name="addons"
                app:argType="mozilla.components.feature.addons.Addon[]" />
        </fragment>
        <fragment
            android:id="@+id/addonPermissionsDetailFragment"
            android:name="org.mozilla.fenix.addons.AddonPermissionsDetailsFragment"
            tools:layout="@layout/fragment_add_on_permissions">
            <argument
                android:name="addon"
                app:argType="mozilla.components.feature.addons.Addon" />
        </fragment>
        <fragment
            android:id="@+id/addonInternalSettingsFragment"
            android:name="org.mozilla.fenix.addons.AddonInternalSettingsFragment"
            tools:layout="@layout/fragment_add_on_internal_settings">
            <argument
                android:name="addon"
                app:argType="mozilla.components.feature.addons.Addon" />
        </fragment>
        <fragment
            android:id="@+id/addonDetailsFragment"
            android:name="org.mozilla.fenix.addons.AddonDetailsFragment"
            tools:layout="@layout/fragment_add_on_details">
            <argument
                android:name="addon"
                app:argType="mozilla.components.feature.addons.Addon" />
        </fragment>
    </navigation>

934
935
    <navigation
        android:id="@+id/search_engine_graph"
Tiger Oakes's avatar
Tiger Oakes committed
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
        app:startDestination="@id/searchEngineFragment">
        <fragment
            android:id="@+id/searchEngineFragment"
            android:name="org.mozilla.fenix.settings.search.SearchEngineFragment"
            android:label="@string/preferences_search">
            <action
                android:id="@+id/action_searchEngineFragment_to_addSearchEngineFragment"
                app:destination="@+id/addSearchEngineFragment" />
            <action
                android:id="@+id/action_searchEngineFragment_to_editCustomSearchEngineFragment"
                app:destination="@+id/editCustomSearchEngineFragment" />
        </fragment>
        <fragment
            android:id="@+id/addSearchEngineFragment"
            android:name="org.mozilla.fenix.settings.search.AddSearchEngineFragment"
            tools:layout="@layout/fragment_add_search_engine" />
        <fragment
            android:id="@+id/editCustomSearchEngineFragment"
            android:name="org.mozilla.fenix.settings.search.EditCustomSearchEngineFragment"
            tools:layout="@layout/fragment_add_search_engine">
            <argument
                android:name="searchEngineIdentifier"
                app:argType="string" />
        </fragment>
    </navigation>
Tiger Oakes's avatar
Tiger Oakes committed
961
</navigation>