Code Cleanup

This commit is contained in:
Prathamesh More 2021-12-05 23:39:48 +05:30
parent 350cba2042
commit 9af80592b3
4 changed files with 21 additions and 16 deletions

View file

@ -27,10 +27,9 @@ import code.name.monkey.retromusic.*
import code.name.monkey.retromusic.activities.base.AbsCastActivity import code.name.monkey.retromusic.activities.base.AbsCastActivity
import code.name.monkey.retromusic.databinding.SlidingMusicPanelLayoutBinding import code.name.monkey.retromusic.databinding.SlidingMusicPanelLayoutBinding
import code.name.monkey.retromusic.extensions.* import code.name.monkey.retromusic.extensions.*
import code.name.monkey.retromusic.fragments.base.AbsRecyclerViewFragment
import code.name.monkey.retromusic.fragments.home.HomeFragment
import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.helper.SearchQueryHelper.getSongs import code.name.monkey.retromusic.helper.SearchQueryHelper.getSongs
import code.name.monkey.retromusic.interfaces.IScrollHelper
import code.name.monkey.retromusic.model.CategoryInfo import code.name.monkey.retromusic.model.CategoryInfo
import code.name.monkey.retromusic.model.Song import code.name.monkey.retromusic.model.Song
import code.name.monkey.retromusic.repository.PlaylistSongsLoader import code.name.monkey.retromusic.repository.PlaylistSongsLoader
@ -90,21 +89,17 @@ class MainActivity : AbsCastActivity(), OnSharedPreferenceChangeListener {
bottomNavigationView.setupWithNavController(navController) bottomNavigationView.setupWithNavController(navController)
// Scroll Fragment to top // Scroll Fragment to top
bottomNavigationView.setOnItemReselectedListener { bottomNavigationView.setOnItemReselectedListener {
currentFragment(R.id.fragment_container) currentFragment(R.id.fragment_container).apply {
.also { if (this is IScrollHelper) {
if (it is AbsRecyclerViewFragment<*, *>) { scrollToTop()
it.scrollToTop()
}
if (it is HomeFragment) {
it.scrollToTop()
}
} }
}
} }
// This is more like a work-around as for start destination of navGraph // This is more like a work-around as for start destination of navGraph
// enterTransition won't work as expected // enterTransition won't work as expected
navGraph.setStartDestination(R.id.libraryFragment) navGraph.setStartDestination(R.id.libraryFragment)
navController.addOnDestinationChangedListener { _, destination, _ -> navController.addOnDestinationChangedListener { _, destination, _ ->
when (destination.id) { when (destination.id) {
R.id.action_home, R.id.action_song, R.id.action_album, R.id.action_artist, R.id.action_folder, R.id.action_playlist, R.id.action_genre -> { R.id.action_home, R.id.action_song, R.id.action_album, R.id.action_artist, R.id.action_folder, R.id.action_playlist, R.id.action_genre -> {
// Save the last tab // Save the last tab
if (PreferenceUtil.rememberLastTab) { if (PreferenceUtil.rememberLastTab) {
@ -117,7 +112,10 @@ class MainActivity : AbsCastActivity(), OnSharedPreferenceChangeListener {
setBottomNavVisibility(visible = false) setBottomNavVisibility(visible = false)
hideBottomSheet(true) hideBottomSheet(true)
} }
else -> setBottomNavVisibility(visible = false, animate = true) // Hide Bottom Navigation Bar else -> setBottomNavVisibility(
visible = false,
animate = true
) // Hide Bottom Navigation Bar
} }
} }
} }

View file

@ -34,6 +34,7 @@ import code.name.monkey.retromusic.extensions.accentColor
import code.name.monkey.retromusic.extensions.dip import code.name.monkey.retromusic.extensions.dip
import code.name.monkey.retromusic.extensions.drawNextToNavbar import code.name.monkey.retromusic.extensions.drawNextToNavbar
import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.interfaces.IScrollHelper
import code.name.monkey.retromusic.util.ThemedFastScroller.create import code.name.monkey.retromusic.util.ThemedFastScroller.create
import com.google.android.material.shape.MaterialShapeDrawable import com.google.android.material.shape.MaterialShapeDrawable
import com.google.android.material.transition.MaterialFadeThrough import com.google.android.material.transition.MaterialFadeThrough
@ -42,7 +43,7 @@ import me.zhanghai.android.fastscroll.FastScroller
import me.zhanghai.android.fastscroll.FastScrollerBuilder import me.zhanghai.android.fastscroll.FastScrollerBuilder
abstract class AbsRecyclerViewFragment<A : RecyclerView.Adapter<*>, LM : RecyclerView.LayoutManager> : abstract class AbsRecyclerViewFragment<A : RecyclerView.Adapter<*>, LM : RecyclerView.LayoutManager> :
AbsMainActivityFragment(R.layout.fragment_main_recycler) { AbsMainActivityFragment(R.layout.fragment_main_recycler), IScrollHelper {
private var _binding: FragmentMainRecyclerBinding? = null private var _binding: FragmentMainRecyclerBinding? = null
private val binding get() = _binding!! private val binding get() = _binding!!
@ -200,7 +201,7 @@ abstract class AbsRecyclerViewFragment<A : RecyclerView.Adapter<*>, LM : Recycle
val container get() = binding.root val container get() = binding.root
fun scrollToTop() { override fun scrollToTop() {
recyclerView.scrollToPosition(0) recyclerView.scrollToPosition(0)
binding.appBarLayout.setExpanded(true, true) binding.appBarLayout.setExpanded(true, true)
} }

View file

@ -40,6 +40,7 @@ import code.name.monkey.retromusic.extensions.drawNextToNavbar
import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment
import code.name.monkey.retromusic.glide.GlideApp import code.name.monkey.retromusic.glide.GlideApp
import code.name.monkey.retromusic.glide.RetroGlideExtension import code.name.monkey.retromusic.glide.RetroGlideExtension
import code.name.monkey.retromusic.interfaces.IScrollHelper
import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.PreferenceUtil
import com.google.android.gms.cast.framework.CastButtonFactory import com.google.android.gms.cast.framework.CastButtonFactory
import com.google.android.material.shape.MaterialShapeDrawable import com.google.android.material.shape.MaterialShapeDrawable
@ -47,7 +48,7 @@ import com.google.android.material.transition.MaterialFadeThrough
import com.google.android.material.transition.MaterialSharedAxis import com.google.android.material.transition.MaterialSharedAxis
class HomeFragment : class HomeFragment :
AbsMainActivityFragment(if (PreferenceUtil.isHomeBanner) R.layout.fragment_banner_home else R.layout.fragment_home) { AbsMainActivityFragment(if (PreferenceUtil.isHomeBanner) R.layout.fragment_banner_home else R.layout.fragment_home), IScrollHelper {
private var _binding: HomeBindingAdapter? = null private var _binding: HomeBindingAdapter? = null
private val binding get() = _binding!! private val binding get() = _binding!!
@ -189,7 +190,7 @@ class HomeFragment :
CastButtonFactory.setUpMediaRouteButton(requireContext(), menu, R.id.action_cast) CastButtonFactory.setUpMediaRouteButton(requireContext(), menu, R.id.action_cast)
} }
fun scrollToTop() { override fun scrollToTop() {
binding.container.scrollTo(0, 0) binding.container.scrollTo(0, 0)
binding.appBarLayout.setExpanded(true) binding.appBarLayout.setExpanded(true)
} }

View file

@ -0,0 +1,5 @@
package code.name.monkey.retromusic.interfaces
interface IScrollHelper {
fun scrollToTop()
}