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

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

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

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

609
610
    <fragment
        android:id="@+id/aboutFragment"
611
612
613
614
615
616
617
618
619
620
        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>
621
622
    <fragment
        android:id="@+id/secretSettingsPreference"
623
        android:name="org.mozilla.fenix.settings.SecretSettingsFragment"
624
        android:label="@string/preferences_debug_settings" />
Emily Kager's avatar
Emily Kager committed
625
626
    <fragment
        android:id="@+id/crashReporterFragment"
627
628
        android:name="org.mozilla.fenix.crashes.CrashReporterFragment"
        tools:layout="@layout/fragment_crash_reporter">
Emily Kager's avatar
Emily Kager committed
629
630
631
        <argument
            android:name="crashIntent"
            app:argType="android.content.Intent" />
632
    </fragment>
633
634
635
636
    <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
637
    <fragment
638
639
640
        android:id="@+id/customizationFragment"
        android:name="org.mozilla.fenix.settings.CustomizationFragment"
        android:label="@string/preferences_customize" />
641
642
643
644
    <fragment
        android:id="@+id/privateBrowsingFragment"
        android:name="org.mozilla.fenix.settings.PrivateBrowsingFragment"
        android:label="@string/preferences_private_browsing_options" />
645
646
    <fragment
        android:id="@+id/trackingProtectionFragment"
ekager's avatar
ekager committed
647
        android:name="org.mozilla.fenix.settings.TrackingProtectionFragment">
648
649
        <action
            android:id="@+id/action_trackingProtectionFragment_to_exceptionsFragment"
650
            app:destination="@id/trackingProtectionExceptionsFragment"
651
652
653
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
654
            app:popExitAnim="@anim/slide_out_right" />
655
656
        <action
            android:id="@+id/action_trackingProtectionFragment_to_trackingProtectionBlockingFragment"
657
            app:destination="@id/trackingProtectionBlockingFragment"
658
659
660
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
661
            app:popExitAnim="@anim/slide_out_right" />
662
    </fragment>
663
664
    <fragment
        android:id="@+id/deleteBrowsingDataFragment"
665
        android:name="org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataFragment"
666
667
        android:label="@string/preferences_delete_browsing_data"
        tools:layout="@layout/fragment_delete_browsing_data" />
668
    <fragment
669
        android:id="@+id/trackingProtectionExceptionsFragment"
670
        android:name="org.mozilla.fenix.exceptions.trackingprotection.TrackingProtectionExceptionsFragment"
671
672
        android:label="@string/preference_exceptions"
        tools:layout="@layout/fragment_exceptions" />
673
    <dialog
674
675
        android:id="@+id/collectionCreationFragment"
        android:name="org.mozilla.fenix.collections.CollectionCreationFragment"
ekager's avatar
ekager committed
676
        tools:layout="@layout/fragment_create_collection">
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
        <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>
697

698
    <dialog
ekager's avatar
ekager committed
699
700
701
        android:id="@+id/createShortcutFragment"
        android:name="org.mozilla.fenix.shortcut.CreateShortcutFragment"
        tools:layout="@layout/fragment_create_shortcut" />
702
    <dialog
703
704
705
        android:id="@+id/pwaOnboardingDialogFragment"
        android:name="org.mozilla.fenix.shortcut.PwaOnboardingDialogFragment"
        tools:layout="@layout/fragment_pwa_onboarding" />
706

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

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

831
832
    <navigation
        android:id="@+id/site_permissions_exceptions_graph"
Tiger Oakes's avatar
Tiger Oakes committed
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
866
867
868
869
870
        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>

871
872
    <navigation
        android:id="@+id/addons_management_graph"
Tiger Oakes's avatar
Tiger Oakes committed
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
934
935
936
937
938
        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>

939
940
    <navigation
        android:id="@+id/search_engine_graph"
Tiger Oakes's avatar
Tiger Oakes committed
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
        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
966
</navigation>