<?xml version="1.0" encoding="utf-8"?><!--
  ~ Copyright (c) 2023 Samson Achiaga
  ~
  ~ 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"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/navigation"
    app:startDestination="@id/onboardingFragment">

    <fragment
        android:id="@+id/homeFragment"
        android:name="com.certified.audionote.ui.HomeFragment"
        android:label="HomeFragment"
        tools:layout="@layout/fragment_home">
        <action
            android:id="@+id/action_homeFragment_to_editNoteFragment"
            app:destination="@id/editNoteFragment"
            app:enterAnim="@anim/slide_in"
            app:exitAnim="@anim/fade_out"
            app:popEnterAnim="@anim/fade_in"
            app:popExitAnim="@anim/slide_out"
            app:popUpTo="@id/homeFragment"
            app:popUpToInclusive="false" />
        <action
            android:id="@+id/action_homeFragment_to_addNoteFragment"
            app:destination="@id/addNoteFragment"
            app:enterAnim="@anim/slide_in"
            app:exitAnim="@anim/fade_out"
            app:popEnterAnim="@anim/fade_in"
            app:popExitAnim="@anim/slide_out"
            app:popUpTo="@id/homeFragment"
            app:popUpToInclusive="false" />
        <action
            android:id="@+id/action_homeFragment_to_settingsFragment"
            app:destination="@id/settingsFragment"
            app:enterAnim="@anim/slide_in"
            app:exitAnim="@anim/fade_out"
            app:popEnterAnim="@anim/fade_in"
            app:popExitAnim="@anim/slide_out"
            app:popUpTo="@id/homeFragment"
            app:popUpToInclusive="false" />
    </fragment>
    <fragment
        android:id="@+id/editNoteFragment"
        android:name="com.certified.audionote.ui.EditNoteFragment"
        android:label="EditNoteFragment"
        tools:layout="@layout/fragment_edit_note">
        <action
            android:id="@+id/action_editNoteFragment_to_homeFragment"
            app:destination="@id/homeFragment"
            app:enterAnim="@anim/fade_in"
            app:exitAnim="@anim/slide_out"
            app:popUpTo="@id/homeFragment"
            app:popUpToInclusive="false" />
        <argument
            android:name="note"
            app:argType="com.certified.audionote.model.Note" />
    </fragment>
    <fragment
        android:id="@+id/addNoteFragment"
        android:name="com.certified.audionote.ui.AddNoteFragment"
        android:label="AddNoteFragment"
        tools:layout="@layout/fragment_add_note">
        <action
            android:id="@+id/action_addNoteFragment_to_homeFragment"
            app:destination="@id/homeFragment"
            app:enterAnim="@anim/fade_in"
            app:exitAnim="@anim/slide_out"
            app:popUpTo="@id/homeFragment"
            app:popUpToInclusive="false" />
        <argument
            android:name="note"
            app:argType="com.certified.audionote.model.Note" />
    </fragment>
    <fragment
        android:id="@+id/settingsFragment"
        android:name="com.certified.audionote.features.settings.SettingsFragment"
        android:label="SettingsFragment"
        tools:layout="@layout/fragment_settings">
        <action
            android:id="@+id/action_settingsFragment_to_homeFragment"
            app:destination="@id/homeFragment"
            app:enterAnim="@anim/fade_in"
            app:exitAnim="@anim/slide_out"
            app:popUpTo="@id/homeFragment"
            app:popUpToInclusive="true" />
        <action
            android:id="@+id/action_settingsFragment_to_aboutFragment"
            app:destination="@id/aboutFragment"
            app:enterAnim="@anim/slide_in"
            app:exitAnim="@anim/fade_out"
            app:popEnterAnim="@anim/fade_in"
            app:popExitAnim="@anim/slide_out"
            app:popUpTo="@id/settingsFragment" />
    </fragment>
    <fragment
        android:id="@+id/aboutFragment"
        android:name="com.certified.audionote.ui.AboutFragment"
        android:label="fragment_about"
        tools:layout="@layout/fragment_about">
        <action
            android:id="@+id/action_aboutFragment_to_settingsFragment"
            app:destination="@id/settingsFragment"
            app:enterAnim="@anim/fade_in"
            app:exitAnim="@anim/slide_out"
            app:popUpTo="@id/settingsFragment"
            app:popUpToInclusive="true" />
    </fragment>
    <fragment
        android:id="@+id/onboardingFragment"
        android:name="com.certified.audionote.ui.OnboardingFragment"
        android:label="fragment_onboarding"
        tools:layout="@layout/fragment_onboarding" >
        <action
            android:id="@+id/action_onboardingFragment_to_homeFragment"
            app:destination="@id/homeFragment"
            app:popUpTo="@id/navigation"
            app:popUpToInclusive="true" />
    </fragment>
</navigation>