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 e041909cf..b49b206ec 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt @@ -84,10 +84,10 @@ class AlbumDetailFragment : super.onCreate(savedInstanceState) // Detail transitions are always on the X axis. Shared element transitions are more // semantically correct, but are also too buggy to be sensible. - enterTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) - returnTransition = MaterialSharedAxis(MaterialSharedAxis.X, false) - exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) - reenterTransition = MaterialSharedAxis(MaterialSharedAxis.X, false) + enterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true) + returnTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false) + exitTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true) + reenterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false) } override fun onCreateBinding(inflater: LayoutInflater) = FragmentDetailBinding.inflate(inflater) 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 bdd5b04af..5fdd4e7f7 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt @@ -82,10 +82,10 @@ class ArtistDetailFragment : super.onCreate(savedInstanceState) // Detail transitions are always on the X axis. Shared element transitions are more // semantically correct, but are also too buggy to be sensible. - enterTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) - returnTransition = MaterialSharedAxis(MaterialSharedAxis.X, false) - exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) - reenterTransition = MaterialSharedAxis(MaterialSharedAxis.X, false) + enterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true) + returnTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false) + exitTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true) + reenterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false) } override fun onCreateBinding(inflater: LayoutInflater) = FragmentDetailBinding.inflate(inflater) 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 79ad38f23..07e15faa5 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt @@ -80,10 +80,10 @@ class GenreDetailFragment : override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - enterTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) - returnTransition = MaterialSharedAxis(MaterialSharedAxis.X, false) - exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) - reenterTransition = MaterialSharedAxis(MaterialSharedAxis.X, false) + enterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true) + returnTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false) + exitTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true) + reenterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false) } override fun onCreateBinding(inflater: LayoutInflater) = FragmentDetailBinding.inflate(inflater) 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 5e02cd0a1..dce61f05c 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/PlaylistDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/PlaylistDetailFragment.kt @@ -91,10 +91,10 @@ class PlaylistDetailFragment : override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - enterTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) - returnTransition = MaterialSharedAxis(MaterialSharedAxis.X, false) - exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) - reenterTransition = MaterialSharedAxis(MaterialSharedAxis.X, false) + enterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true) + returnTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false) + exitTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true) + reenterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false) } override fun onCreateBinding(inflater: LayoutInflater) = FragmentDetailBinding.inflate(inflater) diff --git a/app/src/main/java/org/oxycblt/auxio/home/HomeFragment.kt b/app/src/main/java/org/oxycblt/auxio/home/HomeFragment.kt index ff2ff742b..0290b7fc2 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/HomeFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/HomeFragment.kt @@ -47,7 +47,6 @@ import dagger.hilt.android.AndroidEntryPoint import java.lang.reflect.Field import java.lang.reflect.Method import kotlin.math.abs -import org.oxycblt.auxio.BuildConfig import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.FragmentHomeBinding import org.oxycblt.auxio.detail.DetailViewModel @@ -111,15 +110,10 @@ class HomeFragment : override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - if (savedInstanceState != null) { - // Orientation change will wipe whatever transition we were using prior, which will - // result in no transition when the user navigates back. Make sure we re-initialize - // our transitions. - val axis = savedInstanceState.getInt(KEY_LAST_TRANSITION_ID, -1) - if (axis > -1) { - applyAxisTransition(axis) - } - } + enterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true) + returnTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false) + exitTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true) + reenterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false) } override fun onCreateBinding(inflater: LayoutInflater) = FragmentHomeBinding.inflate(inflater) @@ -241,15 +235,6 @@ class HomeFragment : } } - override fun onSaveInstanceState(outState: Bundle) { - val transition = enterTransition - if (transition is MaterialSharedAxis) { - outState.putInt(KEY_LAST_TRANSITION_ID, transition.axis) - } - - super.onSaveInstanceState(outState) - } - override fun onDestroyBinding(binding: FragmentHomeBinding) { super.onDestroyBinding(binding) storagePermissionLauncher = null @@ -279,7 +264,6 @@ class HomeFragment : // Handle main actions (Search, Settings, About) R.id.action_search -> { logD("Navigating to search") - applyAxisTransition(MaterialSharedAxis.Z) findNavController().navigateSafe(HomeFragmentDirections.search()) true } @@ -680,18 +664,15 @@ class HomeFragment : } is Show.SongAlbumDetails -> { logD("Navigating to the album of ${show.song}") - applyAxisTransition(MaterialSharedAxis.X) findNavController() .navigateSafe(HomeFragmentDirections.showAlbum(show.song.album.uid)) } is Show.AlbumDetails -> { logD("Navigating to ${show.album}") - applyAxisTransition(MaterialSharedAxis.X) findNavController().navigateSafe(HomeFragmentDirections.showAlbum(show.album.uid)) } is Show.ArtistDetails -> { logD("Navigating to ${show.artist}") - applyAxisTransition(MaterialSharedAxis.X) findNavController().navigateSafe(HomeFragmentDirections.showArtist(show.artist.uid)) } is Show.SongArtistDecision -> { @@ -706,12 +687,10 @@ class HomeFragment : } is Show.GenreDetails -> { logD("Navigating to ${show.genre}") - applyAxisTransition(MaterialSharedAxis.X) findNavController().navigateSafe(HomeFragmentDirections.showGenre(show.genre.uid)) } is Show.PlaylistDetails -> { logD("Navigating to ${show.playlist}") - applyAxisTransition(MaterialSharedAxis.X) findNavController() .navigateSafe(HomeFragmentDirections.showPlaylist(show.playlist.uid)) } @@ -747,18 +726,6 @@ class HomeFragment : } } - private fun applyAxisTransition(axis: Int) { - // Sanity check to avoid in-correct axis transitions - check(axis == MaterialSharedAxis.X || axis == MaterialSharedAxis.Z) { - "Not expecting Y axis transition" - } - - enterTransition = MaterialSharedAxis(axis, true) - returnTransition = MaterialSharedAxis(axis, false) - exitTransition = MaterialSharedAxis(axis, true) - reenterTransition = MaterialSharedAxis(axis, false) - } - /** * [FragmentStateAdapter] implementation for the [HomeFragment]'s [ViewPager2] instance. * @@ -793,6 +760,5 @@ class HomeFragment : "hide", FloatingActionButton.OnVisibilityChangedListener::class, Boolean::class) - const val KEY_LAST_TRANSITION_ID = BuildConfig.APPLICATION_ID + ".key.LAST_TRANSITION_AXIS" } } diff --git a/app/src/main/java/org/oxycblt/auxio/search/SearchFragment.kt b/app/src/main/java/org/oxycblt/auxio/search/SearchFragment.kt index 01c5205ff..af6556c83 100644 --- a/app/src/main/java/org/oxycblt/auxio/search/SearchFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/search/SearchFragment.kt @@ -92,8 +92,8 @@ class SearchFragment : ListFragment() { super.onCreate(savedInstanceState) enterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true) returnTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false) - exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) - reenterTransition = MaterialSharedAxis(MaterialSharedAxis.X, false) + exitTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true) + reenterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false) } override fun onCreateBinding(inflater: LayoutInflater) = FragmentSearchBinding.inflate(inflater)