Added fade transition to artist and album detail fragments

This commit is contained in:
Prathamesh More 2022-05-31 13:57:46 +05:30
parent 45a3899a0d
commit 61895b666c
8 changed files with 23 additions and 14 deletions

View file

@ -21,6 +21,7 @@ import androidx.navigation.NavController
import androidx.navigation.findNavController import androidx.navigation.findNavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.navigation.navOptions
fun Fragment.navigate(@IdRes id: Int) = findNavController().navigate(id) fun Fragment.navigate(@IdRes id: Int) = findNavController().navigate(id)
@ -37,3 +38,13 @@ fun AppCompatActivity.findNavController(@IdRes id: Int): NavController {
val fragment = supportFragmentManager.findFragmentById(id) as NavHostFragment val fragment = supportFragmentManager.findFragmentById(id) as NavHostFragment
return fragment.navController return fragment.navController
} }
val fadeNavOptions
get() = navOptions {
anim {
enter = android.R.anim.fade_in
exit = android.R.anim.fade_out
popEnter = android.R.anim.fade_in
popExit = android.R.anim.fade_out
}
}

View file

@ -31,6 +31,7 @@ import androidx.navigation.fragment.navArgs
import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DefaultItemAnimator
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.transition.Fade
import code.name.monkey.appthemehelper.common.ATHToolbarActivity.getToolbarBackgroundColor import code.name.monkey.appthemehelper.common.ATHToolbarActivity.getToolbarBackgroundColor
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper
import code.name.monkey.retromusic.EXTRA_ALBUM_ID import code.name.monkey.retromusic.EXTRA_ALBUM_ID
@ -109,6 +110,8 @@ class AlbumDetailsFragment : AbsMainActivityFragment(R.layout.fragment_album_det
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
_binding = FragmentAlbumDetailsBinding.bind(view) _binding = FragmentAlbumDetailsBinding.bind(view)
enterTransition = Fade()
exitTransition = Fade()
mainActivity.addMusicServiceEventListener(detailsViewModel) mainActivity.addMusicServiceEventListener(detailsViewModel)
mainActivity.setSupportActionBar(binding.toolbar) mainActivity.setSupportActionBar(binding.toolbar)

View file

@ -22,6 +22,7 @@ import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DefaultItemAnimator
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.transition.Fade
import code.name.monkey.retromusic.EXTRA_ALBUM_ID import code.name.monkey.retromusic.EXTRA_ALBUM_ID
import code.name.monkey.retromusic.R import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.adapter.album.HorizontalAlbumAdapter import code.name.monkey.retromusic.adapter.album.HorizontalAlbumAdapter
@ -85,6 +86,8 @@ abstract class AbsArtistDetailsFragment : AbsMainActivityFragment(R.layout.fragm
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
_binding = FragmentArtistDetailsBinding.bind(view) _binding = FragmentArtistDetailsBinding.bind(view)
enterTransition = Fade()
exitTransition = Fade()
mainActivity.addMusicServiceEventListener(detailsViewModel) mainActivity.addMusicServiceEventListener(detailsViewModel)
mainActivity.setSupportActionBar(binding.toolbar) mainActivity.setSupportActionBar(binding.toolbar)
binding.toolbar.title = null binding.toolbar.title = null

View file

@ -400,9 +400,7 @@ fun goToArtist(activity: Activity) {
findNavController(R.id.fragment_container).navigate( findNavController(R.id.fragment_container).navigate(
R.id.artistDetailsFragment, R.id.artistDetailsFragment,
bundleOf(EXTRA_ARTIST_ID to song.artistId), bundleOf(EXTRA_ARTIST_ID to song.artistId)
null,
null
) )
} }
} }
@ -421,9 +419,7 @@ fun goToAlbum(activity: Activity) {
findNavController(R.id.fragment_container).navigate( findNavController(R.id.fragment_container).navigate(
R.id.albumDetailsFragment, R.id.albumDetailsFragment,
bundleOf(EXTRA_ALBUM_ID to song.albumId), bundleOf(EXTRA_ALBUM_ID to song.albumId)
null,
null
) )
} }
} }

View file

@ -101,9 +101,7 @@ GenresFragment : AbsRecyclerViewFragment<GenreAdapter, LinearLayoutManager>(),
reenterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false) reenterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false)
findNavController().navigate( findNavController().navigate(
R.id.genreDetailsFragment, R.id.genreDetailsFragment,
bundleOf(EXTRA_GENRE to genre), bundleOf(EXTRA_GENRE to genre)
null,
null
) )
} }
} }

View file

@ -125,9 +125,9 @@ class LyricsFragment : AbsMainActivityFragment(R.layout.fragment_lyrics) {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
updateTitleSong()
enterTransition = Fade() enterTransition = Fade()
exitTransition = Fade() exitTransition = Fade()
updateTitleSong()
lyricsSectionsAdapter = LyricsSectionsAdapter(requireActivity()) lyricsSectionsAdapter = LyricsSectionsAdapter(requireActivity())
_binding = FragmentLyricsBinding.bind(view) _binding = FragmentLyricsBinding.bind(view)
binding.container.transitionName = "lyrics" binding.container.transitionName = "lyrics"

View file

@ -245,9 +245,7 @@ class PlaylistsFragment :
reenterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false) reenterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false)
findNavController().navigate( findNavController().navigate(
R.id.playlistDetailsFragment, R.id.playlistDetailsFragment,
bundleOf(EXTRA_PLAYLIST to playlistWithSongs), bundleOf(EXTRA_PLAYLIST to playlistWithSongs)
null,
null
) )
} }
} }

View file

@ -21,4 +21,4 @@ fun Any.logE(e: Exception) {
Log.e(name, e.message ?: "Error") Log.e(name, e.message ?: "Error")
} }
val Any.name: String get() = this::class.java.simpleName private val Any.name: String get() = this::class.java.simpleName