diff --git a/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt index 48785f276..835d9d44e 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt @@ -106,7 +106,7 @@ class AlbumDetailFragment : DetailFragment() { private fun updateAlbum(album: Album?) { if (album == null) { L.d("No album to show, navigating away") - findNavController().navigateUp() + exit() return } diff --git a/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt index f2db3bab5..b57705ac3 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt @@ -113,7 +113,7 @@ class ArtistDetailFragment : DetailFragment() { private fun updateArtist(artist: Artist?) { if (artist == null) { L.d("No artist to show, navigating away") - findNavController().navigateUp() + exit() return } val binding = requireBinding() diff --git a/app/src/main/java/org/oxycblt/auxio/detail/DetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/DetailFragment.kt index 906b166cc..ca41a753a 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/DetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/DetailFragment.kt @@ -22,6 +22,7 @@ import android.os.Bundle import android.view.LayoutInflater import androidx.fragment.app.activityViewModels import androidx.navigation.findNavController +import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.GridLayoutManager import com.google.android.material.appbar.AppBarLayout import com.google.android.material.transition.MaterialSharedAxis @@ -129,4 +130,11 @@ abstract class DetailFragment

: } abstract fun onOpenParentMenu() + + protected fun exit() { + // For some insane and absurd reason we wont actually navigate away in detail views + // until this is called twice. + findNavController().navigateUp() + findNavController().navigateUp() + } } diff --git a/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt index fdc40cc17..98dd405c7 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt @@ -112,7 +112,7 @@ class GenreDetailFragment : DetailFragment() { private fun updateGenre(genre: Genre?) { if (genre == null) { L.d("No genre to show, navigating away") - findNavController().navigateUp() + exit() return } val binding = requireBinding() diff --git a/app/src/main/java/org/oxycblt/auxio/detail/PlaylistDetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/PlaylistDetailFragment.kt index b29ca2bd9..cbad1e7d4 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/PlaylistDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/PlaylistDetailFragment.kt @@ -184,8 +184,7 @@ class PlaylistDetailFragment : private fun updatePlaylist(playlist: Playlist?, editedPlaylist: List?) { if (playlist == null) { - // Playlist we were showing no longer exists. - findNavController().navigateUp() + exit() return } val binding = requireBinding()