<?xml version="1.0" encoding="utf-8"?><!--
  ~ Aurora Store
  ~  Copyright (C) 2021, Rahul Kumar Patel <whyorean@gmail.com>
  ~
  ~  Aurora Store is free software: you can redistribute it and/or modify
  ~  it under the terms of the GNU General Public License as published by
  ~  the Free Software Foundation, either version 2 of the License, or
  ~  (at your option) any later version.
  ~
  ~  Aurora Store is distributed in the hope that it will be useful,
  ~  but WITHOUT ANY WARRANTY; without even the implied warranty of
  ~  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  ~  GNU General Public License for more details.
  ~
  ~  You should have received a copy of the GNU General Public License
  ~  along with Aurora Store.  If not, see <http://www.gnu.org/licenses/>.
  ~
  -->

<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/mobile_navigation"
    app:startDestination="@id/splashFragment">

    <action
        android:id="@+id/action_global_appDetailsFragment"
        app:destination="@id/appDetailsFragment" />
    <action
        android:id="@+id/action_global_categoryBrowseFragment"
        app:destination="@id/categoryBrowseFragment" />
    <action
        android:id="@+id/action_global_expandedStreamBrowseFragment"
        app:destination="@id/expandedStreamBrowseFragment" />
    <action
        android:id="@+id/action_global_screenshotFragment"
        app:destination="@id/screenshotFragment" />
    <action
        android:id="@+id/action_global_devProfileFragment"
        app:destination="@id/devProfileFragment" />
    <action
        android:id="@+id/action_global_streamBrowseFragment"
        app:destination="@id/streamBrowseFragment" />
    <action
        android:id="@+id/action_global_appMenuSheet"
        app:destination="@id/appMenuSheet" />
    <action
        android:id="@+id/action_global_dozeWarningSheet"
        app:destination="@id/dozeWarningSheet" />
    <action
        android:id="@+id/action_global_moreDialogFragment"
        app:destination="@id/moreDialogFragment" />
    <fragment
        android:id="@+id/appsContainerFragment"
        android:name="com.aurora.store.view.ui.apps.AppsContainerFragment"
        android:label="@string/title_apps"
        tools:layout="@layout/fragment_apps_games" />
    <fragment
        android:id="@+id/gamesContainerFragment"
        android:name="com.aurora.store.view.ui.games.GamesContainerFragment"
        android:label="@string/title_games"
        tools:layout="@layout/fragment_apps_games" />
    <fragment
        android:id="@+id/updatesFragment"
        android:name="com.aurora.store.view.ui.updates.UpdatesFragment"
        android:label="@string/title_updates"
        tools:layout="@layout/fragment_updates" />
    <fragment
        android:id="@+id/aboutFragment"
        android:name="com.aurora.store.view.ui.about.AboutFragment"
        android:label="@string/title_about"
        tools:layout="@layout/fragment_about" />
    <fragment
        android:id="@+id/appsGamesFragment"
        android:name="com.aurora.store.view.ui.all.AppsGamesFragment"
        android:label="@string/title_apps_games"
        tools:layout="@layout/fragment_generic_with_pager" />
    <fragment
        android:id="@+id/spoofFragment"
        android:name="com.aurora.store.view.ui.spoof.SpoofFragment"
        android:label="@string/title_spoof_manager"
        tools:layout="@layout/fragment_generic_with_pager" />
    <fragment
        android:id="@+id/favouriteFragment"
        android:name="com.aurora.store.view.ui.commons.FavouriteFragment"
        android:label="@string/title_favourites_manager"
        tools:layout="@layout/fragment_generic_with_toolbar" />
    <fragment
        android:id="@+id/blacklistFragment"
        android:name="com.aurora.store.view.ui.commons.BlacklistFragment"
        android:label="@string/title_blacklist_manager"
        tools:layout="@layout/fragment_generic_with_toolbar" />
    <fragment
        android:id="@+id/accountFragment"
        android:name="com.aurora.store.view.ui.account.AccountFragment"
        android:label="@string/title_account_manager"
        tools:layout="@layout/fragment_account" />
    <fragment
        android:id="@+id/settingsFragment"
        android:name="com.aurora.store.view.ui.preferences.SettingsFragment"
        android:label="@string/title_settings"
        tools:layout="@layout/fragment_setting" />
    <fragment
        android:id="@+id/downloadPreference"
        android:name="com.aurora.store.view.ui.preferences.DownloadPreference"
        android:label="DownloadPreference"
        tools:layout="@layout/fragment_setting" />
    <fragment
        android:id="@+id/filterPreference"
        android:name="com.aurora.store.view.ui.preferences.FilterPreference"
        android:label="FilterPreference"
        tools:layout="@layout/fragment_setting" />
    <fragment
        android:id="@+id/installationPreference"
        android:name="com.aurora.store.view.ui.preferences.InstallationPreference"
        android:label="InstallationPreference"
        tools:layout="@layout/fragment_setting" />
    <fragment
        android:id="@+id/networkPreference"
        android:name="com.aurora.store.view.ui.preferences.NetworkPreference"
        android:label="NetworkPreference"
        tools:layout="@layout/fragment_setting" />
    <fragment
        android:id="@+id/UIPreference"
        android:name="com.aurora.store.view.ui.preferences.UIPreference"
        android:label="UIPreference"
        tools:layout="@layout/fragment_setting" />
    <fragment
        android:id="@+id/updatesPreference"
        android:name="com.aurora.store.view.ui.preferences.UpdatesPreference"
        android:label="UpdatesPreference"
        tools:layout="@layout/fragment_setting" />
    <fragment
        android:id="@+id/searchSuggestionFragment"
        android:name="com.aurora.store.view.ui.search.SearchSuggestionFragment"
        android:label="@string/title_search_suggestion"
        tools:layout="@layout/fragment_search_suggestion">
        <action
            android:id="@+id/action_searchSuggestionFragment_to_searchResultsFragment"
            app:destination="@id/searchResultsFragment" />
    </fragment>
    <fragment
        android:id="@+id/searchResultsFragment"
        android:name="com.aurora.store.view.ui.search.SearchResultsFragment"
        android:label="@string/title_search_results"
        tools:layout="@layout/fragment_search_result">
        <argument
            android:name="query"
            app:argType="string" />
    </fragment>
    <fragment
        android:id="@+id/downloadFragment"
        android:name="com.aurora.store.view.ui.downloads.DownloadFragment"
        android:label="@string/title_download_manager"
        tools:layout="@layout/fragment_download">
        <action
            android:id="@+id/action_downloadFragment_to_downloadMenuSheet"
            app:destination="@id/downloadMenuSheet" />
    </fragment>
    <fragment
        android:id="@+id/appDetailsFragment"
        android:name="com.aurora.store.view.ui.details.AppDetailsFragment"
        tools:layout="@layout/fragment_details">
        <argument
            android:name="packageName"
            app:argType="string" />
        <action
            android:id="@+id/action_appDetailsFragment_to_devAppsFragment"
            app:destination="@id/devAppsFragment" />
        <action
            android:id="@+id/action_appDetailsFragment_to_detailsMoreFragment"
            app:destination="@id/detailsMoreFragment" />
        <action
            android:id="@+id/action_appDetailsFragment_to_detailsReviewFragment"
            app:destination="@id/detailsReviewFragment" />
        <action
            android:id="@+id/action_appDetailsFragment_to_detailsExodusFragment"
            app:destination="@id/detailsExodusFragment" />
        <argument
            android:name="app"
            android:defaultValue="@null"
            app:argType="com.aurora.gplayapi.data.models.App"
            app:nullable="true" />
        <action
            android:id="@+id/action_appDetailsFragment_to_manualDownloadSheet"
            app:destination="@id/manualDownloadSheet" />
        <action
            android:id="@+id/action_appDetailsFragment_to_permissionBottomSheet"
            app:destination="@id/permissionBottomSheet" />
        <action
            android:id="@+id/action_appDetailsFragment_to_installErrorDialogSheet"
            app:destination="@id/installErrorDialogSheet" />
    </fragment>
    <fragment
        android:id="@+id/categoryBrowseFragment"
        android:name="com.aurora.store.view.ui.commons.CategoryBrowseFragment"
        tools:layout="@layout/fragment_generic_with_toolbar">
        <argument
            android:name="title"
            app:argType="string" />
        <argument
            android:name="browseUrl"
            app:argType="string" />
        <action
            android:id="@+id/action_categoryBrowseFragment_to_appPeekDialogSheet"
            app:destination="@id/appPeekDialogSheet" />
    </fragment>
    <fragment
        android:id="@+id/expandedStreamBrowseFragment"
        android:name="com.aurora.store.view.ui.commons.ExpandedStreamBrowseFragment"
        tools:layout="@layout/fragment_generic_with_toolbar">
        <argument
            android:name="title"
            app:argType="string" />
        <argument
            android:name="expandedStreamUrl"
            app:argType="string" />
    </fragment>
    <fragment
        android:id="@+id/screenshotFragment"
        android:name="com.aurora.store.view.ui.details.ScreenshotFragment"
        tools:layout="@layout/fragment_screenshot">
        <argument
            android:name="position"
            app:argType="integer" />
        <argument
            android:name="arrayOfArtwork"
            app:argType="com.aurora.gplayapi.data.models.Artwork[]" />
    </fragment>
    <fragment
        android:id="@+id/devProfileFragment"
        android:name="com.aurora.store.view.ui.details.DevProfileFragment"
        android:label="fragment_dev_profile"
        tools:layout="@layout/fragment_dev_profile">
        <argument
            android:name="devId"
            app:argType="string" />
        <argument
            android:name="title"
            android:defaultValue=""
            app:argType="string"
            app:nullable="true" />
        <deepLink
            app:action="android.intent.action.VIEW"
            app:uri="play.google.com/store/apps/dev?id={devId}" />
    </fragment>
    <fragment
        android:id="@+id/streamBrowseFragment"
        android:name="com.aurora.store.view.ui.commons.StreamBrowseFragment"
        tools:layout="@layout/fragment_generic_with_toolbar">
        <argument
            android:name="cluster"
            app:argType="com.aurora.gplayapi.data.models.StreamCluster" />
    </fragment>
    <fragment
        android:id="@+id/devAppsFragment"
        android:name="com.aurora.store.view.ui.details.DevAppsFragment"
        tools:layout="@layout/fragment_generic_with_toolbar">
        <argument
            android:name="developerName"
            app:argType="string" />
    </fragment>
    <fragment
        android:id="@+id/detailsMoreFragment"
        android:name="com.aurora.store.view.ui.details.DetailsMoreFragment"
        tools:layout="@layout/fragment_details_more">
        <argument
            android:name="app"
            app:argType="com.aurora.gplayapi.data.models.App" />
    </fragment>
    <fragment
        android:id="@+id/detailsReviewFragment"
        android:name="com.aurora.store.view.ui.details.DetailsReviewFragment"
        tools:layout="@layout/fragment_details_review">
        <argument
            android:name="displayName"
            app:argType="string" />
        <argument
            android:name="packageName"
            app:argType="string" />
    </fragment>
    <fragment
        android:id="@+id/detailsExodusFragment"
        android:name="com.aurora.store.view.ui.details.DetailsExodusFragment"
        tools:layout="@layout/fragment_generic_with_toolbar">
        <argument
            android:name="displayName"
            app:argType="string" />
        <argument
            android:name="report"
            app:argType="com.aurora.store.data.model.Report" />
    </fragment>
    <fragment
        android:id="@+id/splashFragment"
        android:name="com.aurora.store.view.ui.splash.SplashFragment"
        tools:layout="@layout/fragment_splash">
        <argument
            android:name="packageName"
            android:defaultValue=""
            app:argType="string" />
        <!-- Android Market (deprecated) -->
        <deepLink
            app:action="android.intent.action.VIEW"
            app:uri="market:///details?id={packageName}" />
        <deepLink
            app:action="android.intent.action.VIEW"
            app:uri="market.android.com/details?id={packageName}" />
        <!-- Google Play (formerly Android Market) -->
        <deepLink
            app:action="android.intent.action.VIEW"
            app:uri="play.google.com/store/apps/details?id={packageName}" />
        <action
            android:id="@+id/action_splashFragment_to_navigation_apps"
            app:destination="@id/appsContainerFragment"
            app:launchSingleTop="true"
            app:popUpTo="@id/mobile_navigation"
            app:popUpToInclusive="true" />
        <action
            android:id="@+id/action_splashFragment_to_gamesContainerFragment"
            app:destination="@id/gamesContainerFragment"
            app:launchSingleTop="true"
            app:popUpTo="@id/mobile_navigation"
            app:popUpToInclusive="true" />
        <action
            android:id="@+id/action_splashFragment_to_updatesFragment"
            app:destination="@id/updatesFragment"
            app:launchSingleTop="true"
            app:popUpTo="@id/mobile_navigation"
            app:popUpToInclusive="true" />
        <action
            android:id="@+id/action_splashFragment_to_onboardingFragment"
            app:destination="@id/onboardingFragment"
            app:launchSingleTop="true"
            app:popUpTo="@id/mobile_navigation"
            app:popUpToInclusive="true" />
        <action
            android:id="@+id/action_splashFragment_to_appDetailsFragment"
            app:destination="@id/appDetailsFragment"
            app:launchSingleTop="true"
            app:popUpTo="@id/mobile_navigation"
            app:popUpToInclusive="true" />
    </fragment>
    <fragment
        android:id="@+id/googleFragment"
        android:name="com.aurora.store.view.ui.account.GoogleFragment"
        tools:layout="@layout/fragment_google">
        <action
            android:id="@+id/action_googleFragment_to_splashFragment"
            app:destination="@id/splashFragment"
            app:popUpTo="@id/splashFragment"
            app:popUpToInclusive="true" />
    </fragment>
    <fragment
        android:id="@+id/onboardingFragment"
        android:name="com.aurora.store.view.ui.onboarding.OnboardingFragment"
        tools:layout="@layout/fragment_onboarding">
        <action
            android:id="@+id/action_onboardingFragment_to_splashFragment"
            app:destination="@id/splashFragment"
            app:launchSingleTop="true"
            app:popUpTo="@id/mobile_navigation"
            app:popUpToInclusive="true" />
    </fragment>
    <fragment
        android:id="@+id/installerFragment"
        android:name="com.aurora.store.view.ui.preferences.InstallerFragment"
        android:label="InstallerFragment"
        tools:layout="@layout/fragment_installer" />
    <fragment
        android:id="@+id/dispenserFragment"
        android:name="com.aurora.store.view.ui.dispenser.DispenserFragment"
        android:label="DispenserFragment"
        tools:layout="@layout/fragment_dispenser">
        <action
            android:id="@+id/action_dispenserFragment_to_removeDispenserDialog"
            app:destination="@id/removeDispenserDialog" />
    </fragment>
    <dialog
        android:id="@+id/appMenuSheet"
        android:name="com.aurora.store.view.ui.sheets.AppMenuSheet"
        android:label="AppMenuSheet"
        tools:layout="@layout/sheet_app_menu">
        <argument
            android:name="app"
            app:argType="com.aurora.store.data.model.MinimalApp" />
    </dialog>
    <dialog
        android:id="@+id/appPeekDialogSheet"
        android:name="com.aurora.store.view.ui.sheets.AppPeekDialogSheet"
        android:label="AppPeekDialogSheet">
        <argument
            android:name="app"
            app:argType="com.aurora.gplayapi.data.models.App" />
    </dialog>
    <dialog
        android:id="@+id/filterSheet"
        android:name="com.aurora.store.view.ui.sheets.FilterSheet"
        android:label="FilterSheet"
        tools:layout="@layout/sheet_filter" />
    <dialog
        android:id="@+id/manualDownloadSheet"
        android:name="com.aurora.store.view.ui.sheets.ManualDownloadSheet"
        android:label="ManualDownloadSheet"
        tools:layout="@layout/sheet_manual_download">
        <argument
            android:name="app"
            app:argType="com.aurora.gplayapi.data.models.App" />
    </dialog>
    <dialog
        android:id="@+id/permissionBottomSheet"
        android:name="com.aurora.store.view.ui.sheets.PermissionBottomSheet"
        tools:layout="@layout/sheet_permissions">
        <argument
            android:name="app"
            app:argType="com.aurora.gplayapi.data.models.App" />
    </dialog>
    <dialog
        android:id="@+id/downloadMenuSheet"
        android:name="com.aurora.store.view.ui.sheets.DownloadMenuSheet"
        android:label="DownloadMenuSheet"
        tools:layout="@layout/sheet_download_menu">
        <argument
            android:name="download"
            app:argType="com.aurora.store.data.room.download.Download" />
    </dialog>
    <dialog
        android:id="@+id/deviceMiuiSheet"
        android:name="com.aurora.store.view.ui.sheets.DeviceMiuiSheet"
        android:label="DeviceMiuiSheet"
        tools:layout="@layout/sheet_device_miui" />
    <dialog
        android:id="@+id/installErrorDialogSheet"
        android:name="com.aurora.store.view.ui.sheets.InstallErrorDialogSheet"
        android:label="InstallErrorDialogSheet"
        tools:layout="@layout/sheet_install_error">
        <argument
            android:name="app"
            app:argType="com.aurora.gplayapi.data.models.App" />
        <argument
            android:name="title"
            app:argType="string" />
        <argument
            android:name="error"
            app:argType="string" />
        <argument
            android:name="extra"
            app:argType="string" />
    </dialog>
    <dialog
        android:id="@+id/dozeWarningSheet"
        android:name="com.aurora.store.view.ui.sheets.DozeWarningSheet"
        android:label="DozeWarningSheet"
        tools:layout="@layout/sheet_doze_warning">
        <argument
            android:name="enableAutoUpdate"
            android:defaultValue="false"
            app:argType="boolean" />
    </dialog>
    <dialog
        android:id="@+id/moreDialogFragment"
        android:name="com.aurora.store.view.ui.commons.MoreDialogFragment"
        android:label="MoreDialogFragment" />
    <dialog
        android:id="@+id/inputDispenserDialog"
        android:name="com.aurora.store.view.ui.dispenser.InputDispenserDialog"
        android:label="@string/add_dispenser_title" />
    <dialog
        android:id="@+id/removeDispenserDialog"
        android:name="com.aurora.store.view.ui.dispenser.RemoveDispenserDialog"
        android:label="@string/remove_dispenser_title">
        <argument
            android:name="url"
            app:argType="string" />
    </dialog>
    <dialog
        android:id="@+id/aboutDialog"
        android:name="com.aurora.store.view.ui.about.AboutDialog"
        android:label="@string/title_about" />
    <dialog
        android:id="@+id/logoutDialog"
        android:name="com.aurora.store.view.ui.account.LogoutDialog"
        android:label="@string/action_logout">
        <action
            android:id="@+id/action_logoutDialog_to_splashFragment"
            app:destination="@id/splashFragment"
            app:launchSingleTop="true"
            app:popUpTo="@id/mobile_navigation"
            app:popUpToInclusive="true" />
    </dialog>
    <dialog
        android:id="@+id/proxyURLDialog"
        android:name="com.aurora.store.view.ui.preferences.ProxyURLDialog"
        android:label="@string/pref_network_proxy_url" />
    <dialog
        android:id="@+id/forceRestartDialog"
        android:name="com.aurora.store.view.ui.commons.ForceRestartDialog"
        android:label="@string/force_restart_title" />
</navigation>
