<?xml version="1.0" encoding="utf-8"?><!--
  ~ Copyright (C) 2023 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  ~
  ~
  -->

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

    <include app:graph="@navigation/connected_app_nav_graph"/>

    <fragment
        android:id="@+id/healthDataCategoriesFragment"
        android:name="com.android.healthconnect.controller.categories.HealthDataCategoriesFragment"
        android:label="@string/data_title">
        <action
            android:id="@+id/action_healthDataCategories_to_healthDataAllCategories"
            app:destination="@id/healthDataAllCategoriesFragment" />
        <action
            android:id="@+id/action_healthDataCategories_to_autoDelete"
            app:destination="@id/autoDeleteFragment" />
        <action
            android:id="@+id/action_healthDataCategories_to_healthPermissionTypes"
            app:destination="@id/healthPermissionTypesFragment" />
        <action
            android:id="@+id/action_dataCategoriesFragment_to_unitsFragment"
            app:destination="@+id/unitFragment" />
    </fragment>
    <fragment
        android:id="@+id/autoDeleteFragment"
        android:name="com.android.healthconnect.controller.autodelete.AutoDeleteFragment"
        android:label="@string/auto_delete_title"/>
    <fragment
        android:id="@+id/healthDataAllCategoriesFragment"
        android:name="com.android.healthconnect.controller.categories.HealthDataAllCategoriesFragment"
        android:label="@string/data_title">
        <action
            android:id="@+id/action_healthDataAllCategories_to_healthPermissionTypes"
            app:destination="@id/healthPermissionTypesFragment" />
    </fragment>
    <fragment
        android:id="@+id/dataEntriesFragment"
        android:name="com.android.healthconnect.controller.dataentries.DataEntriesFragment">
        <action
            android:id="@+id/action_dataEntriesFragment_to_dataEntryDetailsFragment"
            app:destination="@id/dataEntryDetailsFragment" />
        <action
            android:id="@+id/action_dataEntriesFragment_to_unitsFragment"
            app:destination="@+id/unitFragment" />
    </fragment>

    <fragment
        android:id="@+id/healthPermissionTypesFragment"
        android:name="com.android.healthconnect.controller.permissiontypes.HealthPermissionTypesFragment"
        android:label="@string/permission_types_title">
        <action
            android:id="@+id/action_healthPermissionTypes_to_healthDataAccess"
            app:destination="@id/healthDataAccessFragment" />
        <action
            android:id="@+id/action_healthPermissionTypes_to_unitsFragment"
            app:destination="@+id/unitFragment" />
        <action
            android:id="@+id/action_healthPermissionTypes_to_dataSourcesAndPriority"
            app:destination="@+id/dataSourcesFragment"/>
    </fragment>

    <fragment
        android:id="@+id/healthDataAccessFragment"
        android:name="com.android.healthconnect.controller.dataaccess.HealthDataAccessFragment">
        <action
            android:id="@+id/action_healthDataAccess_to_dataEntries"
            app:destination="@id/dataEntriesFragment" />
        <action
            android:id="@+id/action_healthDataAccessFragment_to_appAccess"
            app:destination="@id/connected_app_nav_graph" />
        <action
            android:id="@+id/action_healthDataAccessFragment_to_unitsFragment"
            app:destination="@+id/unitFragment" />
    </fragment>

    <fragment
        android:id="@+id/unitFragment"
        android:name="com.android.healthconnect.controller.dataentries.units.UnitsFragment"
        android:label="@string/units_title" />

    <fragment
        android:id="@+id/dataEntryDetailsFragment"
        android:name="com.android.healthconnect.controller.entrydetails.DataEntryDetailsFragment"
        android:label="@string/entry_details_title" >
        <action
            android:id="@+id/action_dataEntryDetailsFragment_to_unitFragment"
            app:destination="@id/unitFragment" />
    </fragment>

    <fragment
        android:id="@+id/connectedAppFragment"
        android:label="@string/app_access_title"
        android:name="com.android.healthconnect.controller.permissions.app.ConnectedAppFragment">
        <argument
            android:name="android.intent.extra.PACKAGE_NAME"
            app:argType="string" />
    </fragment>

    <fragment
        android:id="@+id/dataSourcesFragment"
        android:name="com.android.healthconnect.controller.datasources.DataSourcesFragment"
        android:label="@string/data_sources_and_priority_title">
        <action
            android:id="@+id/action_dataSourcesFragment_to_addAnAppFragment"
            app:destination="@id/addAnAppFragment"/>
    </fragment>

    <fragment
        android:id="@+id/addAnAppFragment"
        android:name="com.android.healthconnect.controller.datasources.AddAnAppFragment"
        android:label="@string/data_sources_add_app">
        <action
            android:id="@+id/action_addAnAppFragment_to_dataSourcesFragment"
            app:popUpTo="@id/dataSourcesFragment"
            app:popUpToInclusive="true"
            app:destination="@id/dataSourcesFragment"/>
    </fragment>

    <activity
        android:id="@+id/manageAppPermissions"
        app:action="android.health.connect.action.MANAGE_HEALTH_PERMISSIONS">
    </activity>
</navigation>