From 4cfa8cc561df9a9072a43e730f72657f2b4f1c43 Mon Sep 17 00:00:00 2001 From: Hemanth S Date: Sat, 17 Oct 2020 14:24:01 +0530 Subject: [PATCH] Fix text over lapping #967 --- .../code/name/monkey/retromusic/Constants.kt | 1 + .../monkey/retromusic/adapter/GenreAdapter.kt | 14 ++++---- .../monkey/retromusic/adapter/HomeAdapter.kt | 19 ++++++++-- .../fragments/base/AbsRecyclerViewFragment.kt | 9 ----- .../fragments/genres/GenreDetailsFragment.kt | 35 +++++++++++++------ .../fragments/genres/GenresFragment.kt | 22 ++++++++++-- .../retromusic/fragments/home/HomeFragment.kt | 12 +++---- .../interfaces/IGenreClickListener.kt | 8 +++++ .../interfaces/IHomeClickListener.kt | 13 +++++++ 9 files changed, 93 insertions(+), 40 deletions(-) create mode 100644 app/src/main/java/code/name/monkey/retromusic/interfaces/IGenreClickListener.kt create mode 100644 app/src/main/java/code/name/monkey/retromusic/interfaces/IHomeClickListener.kt diff --git a/app/src/main/java/code/name/monkey/retromusic/Constants.kt b/app/src/main/java/code/name/monkey/retromusic/Constants.kt index ae1f1da7..011a98c0 100644 --- a/app/src/main/java/code/name/monkey/retromusic/Constants.kt +++ b/app/src/main/java/code/name/monkey/retromusic/Constants.kt @@ -53,6 +53,7 @@ object Constants { ) const val NUMBER_OF_TOP_TRACKS = 99 } +const val EXTRA_PLAYLIST_TYPE = "type" const val EXTRA_GENRE = "extra_genre" const val EXTRA_PLAYLIST = "extra_playlist" const val EXTRA_PLAYLIST_ID = "extra_playlist_id" diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/GenreAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/GenreAdapter.kt index 2156b7c3..c2ed6d5e 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/GenreAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/GenreAdapter.kt @@ -17,13 +17,12 @@ package code.name.monkey.retromusic.adapter import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.core.os.bundleOf +import androidx.core.view.ViewCompat import androidx.fragment.app.FragmentActivity -import androidx.navigation.findNavController import androidx.recyclerview.widget.RecyclerView -import code.name.monkey.retromusic.EXTRA_GENRE import code.name.monkey.retromusic.R import code.name.monkey.retromusic.adapter.base.MediaEntryViewHolder +import code.name.monkey.retromusic.interfaces.IGenreClickListener import code.name.monkey.retromusic.model.Genre import java.util.* @@ -34,7 +33,8 @@ import java.util.* class GenreAdapter( private val activity: FragmentActivity, var dataSet: List, - private val mItemLayoutRes: Int + private val mItemLayoutRes: Int, + private val listener: IGenreClickListener ) : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { return ViewHolder(LayoutInflater.from(activity).inflate(mItemLayoutRes, parent, false)) @@ -62,10 +62,8 @@ class GenreAdapter( inner class ViewHolder(itemView: View) : MediaEntryViewHolder(itemView) { override fun onClick(v: View?) { - activity.findNavController(R.id.fragment_container).navigate( - R.id.genreDetailsFragment, - bundleOf(EXTRA_GENRE to dataSet[layoutPosition]) - ) + ViewCompat.setTransitionName(itemView, "genre") + listener.onClickGenre(dataSet[layoutPosition], itemView) } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/HomeAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/HomeAdapter.kt index fef1c37d..6e5ce64d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/HomeAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/HomeAdapter.kt @@ -38,6 +38,7 @@ import code.name.monkey.retromusic.glide.SongGlideRequest import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.interfaces.IAlbumClickListener import code.name.monkey.retromusic.interfaces.IArtistClickListener +import code.name.monkey.retromusic.interfaces.IGenreClickListener import code.name.monkey.retromusic.model.* import code.name.monkey.retromusic.util.PreferenceUtil import com.bumptech.glide.Glide @@ -45,7 +46,8 @@ import com.google.android.material.card.MaterialCardView class HomeAdapter( private val activity: AppCompatActivity -) : RecyclerView.Adapter(), IArtistClickListener, IAlbumClickListener { +) : RecyclerView.Adapter(), IArtistClickListener, IAlbumClickListener, + IGenreClickListener { private var list = listOf() @@ -220,7 +222,8 @@ class HomeAdapter( val genreAdapter = GenreAdapter( activity, home.arrayList as List, - R.layout.item_grid_genre + R.layout.item_grid_genre, + this@HomeAdapter ) recyclerView.apply { layoutManager = GridLayoutManager(activity, 3, GridLayoutManager.HORIZONTAL, false) @@ -267,4 +270,16 @@ class HomeAdapter( ) ) } + + override fun onClickGenre(genre: Genre, view: View) { + activity.findNavController(R.id.fragment_container).navigate( + R.id.genreDetailsFragment, + bundleOf(EXTRA_GENRE to genre), + null, + FragmentNavigatorExtras( + view to "genre" + ) + ) + } + } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsRecyclerViewFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsRecyclerViewFragment.kt index df9518ed..be80f5b0 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsRecyclerViewFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsRecyclerViewFragment.kt @@ -50,15 +50,6 @@ abstract class AbsRecyclerViewFragment, LM : Recycle protected var adapter: A? = null protected var layoutManager: LM? = null - private fun setUpTransitions() { - exitTransition = Hold() - } - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setUpTransitions() - } - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) mainActivity.setBottomBarVisibility(View.VISIBLE) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenreDetailsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenreDetailsFragment.kt index 2f1b70bf..736fecbc 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenreDetailsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenreDetailsFragment.kt @@ -19,10 +19,12 @@ import android.view.Menu import android.view.MenuInflater import android.view.MenuItem import android.view.View +import androidx.core.view.ViewCompat import androidx.navigation.fragment.navArgs import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView +import code.name.monkey.appthemehelper.util.ATHUtil import code.name.monkey.retromusic.R import code.name.monkey.retromusic.adapter.song.SongAdapter import code.name.monkey.retromusic.extensions.dipToPix @@ -30,11 +32,11 @@ import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment import code.name.monkey.retromusic.helper.menu.GenreMenuHelper import code.name.monkey.retromusic.model.Genre import code.name.monkey.retromusic.model.Song -import code.name.monkey.retromusic.state.NowPlayingPanelState -import java.util.* +import com.google.android.material.transition.MaterialContainerTransform import kotlinx.android.synthetic.main.fragment_playlist_detail.* import org.koin.androidx.viewmodel.ext.android.viewModel import org.koin.core.parameter.parametersOf +import java.util.* class GenreDetailsFragment : AbsMainActivityFragment(R.layout.fragment_playlist_detail) { private val arguments by navArgs() @@ -43,22 +45,31 @@ class GenreDetailsFragment : AbsMainActivityFragment(R.layout.fragment_playlist_ } private lateinit var genre: Genre private lateinit var songAdapter: SongAdapter + private fun setUpTransitions() { + val transform = MaterialContainerTransform() + transform.setAllContainerColors(ATHUtil.resolveColor(requireContext(), R.attr.colorSurface)) + sharedElementEnterTransition = transform + } - override fun onActivityCreated(savedInstanceState: Bundle?) { - super.onActivityCreated(savedInstanceState) + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setUpTransitions() + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) setHasOptionsMenu(true) mainActivity.setBottomBarVisibility(View.GONE) mainActivity.addMusicServiceEventListener(detailsViewModel) mainActivity.setSupportActionBar(toolbar) - progressIndicator.hide() + ViewCompat.setTransitionName(container, "genre") + genre = arguments.extraGenre + toolbar?.title = arguments.extraGenre.name setupRecyclerView() - detailsViewModel.getSongs().observe(viewLifecycleOwner, androidx.lifecycle.Observer { + detailsViewModel.getSongs().observe(viewLifecycleOwner, { songs(it) }) - detailsViewModel.getGenre().observe(viewLifecycleOwner, androidx.lifecycle.Observer { - genre = it - toolbar?.title = it.name - }) + } private fun setupRecyclerView() { @@ -77,7 +88,9 @@ class GenreDetailsFragment : AbsMainActivityFragment(R.layout.fragment_playlist_ } fun songs(songs: List) { - songAdapter.swapDataSet(songs) + progressIndicator.hide() + if (songs.isNotEmpty()) songAdapter.swapDataSet(songs) + else songAdapter.swapDataSet(emptyList()) } private fun getEmojiByUnicode(unicode: Int): String { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenresFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenresFragment.kt index e7c5041a..b2e9cb0c 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenresFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenresFragment.kt @@ -16,13 +16,20 @@ package code.name.monkey.retromusic.fragments.genres import android.os.Bundle import android.view.View +import androidx.core.os.bundleOf import androidx.lifecycle.Observer +import androidx.navigation.fragment.FragmentNavigatorExtras +import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.LinearLayoutManager +import code.name.monkey.retromusic.EXTRA_GENRE import code.name.monkey.retromusic.R import code.name.monkey.retromusic.adapter.GenreAdapter import code.name.monkey.retromusic.fragments.base.AbsRecyclerViewFragment +import code.name.monkey.retromusic.interfaces.IGenreClickListener +import code.name.monkey.retromusic.model.Genre -class GenresFragment : AbsRecyclerViewFragment() { +class GenresFragment : AbsRecyclerViewFragment(), + IGenreClickListener { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) libraryViewModel.getGenre().observe(viewLifecycleOwner, Observer { @@ -39,7 +46,7 @@ class GenresFragment : AbsRecyclerViewFragment