detail: fix up navigation
No clue why this is happening, but I assume another classic android moment has occurred and now I can't navigate away when objects are invalidated unless I navigate away twice. Because reasons. Amazingly designed platform. Resolves #989.
This commit is contained in:
parent
357c7cc329
commit
bfdccd3ba5
5 changed files with 12 additions and 5 deletions
|
@ -106,7 +106,7 @@ class AlbumDetailFragment : DetailFragment<Album, Song>() {
|
|||
private fun updateAlbum(album: Album?) {
|
||||
if (album == null) {
|
||||
L.d("No album to show, navigating away")
|
||||
findNavController().navigateUp()
|
||||
exit()
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -113,7 +113,7 @@ class ArtistDetailFragment : DetailFragment<Artist, Music>() {
|
|||
private fun updateArtist(artist: Artist?) {
|
||||
if (artist == null) {
|
||||
L.d("No artist to show, navigating away")
|
||||
findNavController().navigateUp()
|
||||
exit()
|
||||
return
|
||||
}
|
||||
val binding = requireBinding()
|
||||
|
|
|
@ -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<P : MusicParent, C : Music> :
|
|||
}
|
||||
|
||||
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()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -112,7 +112,7 @@ class GenreDetailFragment : DetailFragment<Genre, Music>() {
|
|||
private fun updateGenre(genre: Genre?) {
|
||||
if (genre == null) {
|
||||
L.d("No genre to show, navigating away")
|
||||
findNavController().navigateUp()
|
||||
exit()
|
||||
return
|
||||
}
|
||||
val binding = requireBinding()
|
||||
|
|
|
@ -184,8 +184,7 @@ class PlaylistDetailFragment :
|
|||
|
||||
private fun updatePlaylist(playlist: Playlist?, editedPlaylist: List<Song>?) {
|
||||
if (playlist == null) {
|
||||
// Playlist we were showing no longer exists.
|
||||
findNavController().navigateUp()
|
||||
exit()
|
||||
return
|
||||
}
|
||||
val binding = requireBinding()
|
||||
|
|
Loading…
Reference in a new issue