<?xml version="1.0" encoding="utf-8"?>
<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"
    app:startDestination="@id/home_fragment">

    <!--
    Now, it would be quite cool if we could implement shared element transitions
    between elements in this navigation web. Sadly though, the shared element transition
    system is filled with so many bugs and visual errors to make this a terrible idea.
    Just use the boring, yet sane and functional axis transitions.
    -->

    <fragment
        android:id="@+id/artist_detail_fragment"
        android:name="org.oxycblt.auxio.detail.ArtistDetailFragment"
        android:label="ArtistDetailFragment"
        tools:layout="@layout/fragment_detail">
        <argument
            android:name="artistUid"
            app:argType="org.oxycblt.auxio.music.Music$UID" />
        <action
            android:id="@+id/action_show_artist"
            app:destination="@id/artist_detail_fragment" />
        <action
            android:id="@+id/action_show_album"
            app:destination="@id/album_detail_fragment" />
    </fragment>
    <fragment
        android:id="@+id/album_detail_fragment"
        android:name="org.oxycblt.auxio.detail.AlbumDetailFragment"
        android:label="AlbumDetailFragment"
        tools:layout="@layout/fragment_detail">
        <argument
            android:name="albumUid"
            app:argType="org.oxycblt.auxio.music.Music$UID" />
        <action
            android:id="@+id/action_show_artist"
            app:destination="@id/artist_detail_fragment" />
        <action
            android:id="@+id/action_show_album"
            app:destination="@id/album_detail_fragment" />
    </fragment>
    <fragment
        android:id="@+id/genre_detail_fragment"
        android:name="org.oxycblt.auxio.detail.GenreDetailFragment"
        android:label="GenreDetailFragment"
        tools:layout="@layout/fragment_detail">
        <argument
            android:name="genreUid"
            app:argType="org.oxycblt.auxio.music.Music$UID" />
        <action
            android:id="@+id/action_show_artist"
            app:destination="@id/artist_detail_fragment" />
        <action
            android:id="@+id/action_show_album"
            app:destination="@id/album_detail_fragment" />
    </fragment>
    <fragment
        android:id="@+id/search_fragment"
        android:name="org.oxycblt.auxio.search.SearchFragment"
        android:label="SearchFragment"
        tools:layout="@layout/fragment_search">
        <action
            android:id="@+id/action_show_genre"
            app:destination="@id/genre_detail_fragment" />
        <action
            android:id="@+id/action_show_artist"
            app:destination="@id/artist_detail_fragment" />
        <action
            android:id="@+id/action_show_album"
            app:destination="@id/album_detail_fragment" />
    </fragment>
    <fragment
        android:id="@+id/home_fragment"
        android:name="org.oxycblt.auxio.home.HomeFragment"
        android:label="fragment_home"
        tools:layout="@layout/fragment_home">
        <action
            android:id="@+id/action_show_search"
            app:destination="@id/search_fragment" />
        <action
            android:id="@+id/action_show_genre"
            app:destination="@id/genre_detail_fragment" />
        <action
            android:id="@+id/action_show_artist"
            app:destination="@id/artist_detail_fragment" />
        <action
            android:id="@+id/action_show_album"
            app:destination="@id/album_detail_fragment" />
    </fragment>
</navigation>