[Home] Code Cleanup

This commit is contained in:
Prathamesh More 2022-01-15 11:45:36 +05:30
parent ff1c83c91d
commit ffd251ab62
11 changed files with 241 additions and 438 deletions

View file

@ -0,0 +1,23 @@
package code.name.monkey.retromusic.fragments.home
import code.name.monkey.retromusic.databinding.FragmentHomeBinding
class HomeBinding(
homeBinding: FragmentHomeBinding
) {
val root = homeBinding.root
val container = homeBinding.container
val contentContainer = homeBinding.contentContainer
val appBarLayout = homeBinding.appBarLayout
val toolbar = homeBinding.toolbar
val bannerImage = homeBinding.imageLayout.bannerImage
val userImage = homeBinding.imageLayout.userImage
val lastAdded = homeBinding.homeContent.absPlaylists.lastAdded
val topPlayed = homeBinding.homeContent.absPlaylists.topPlayed
val actionShuffle = homeBinding.homeContent.absPlaylists.actionShuffle
val history = homeBinding.homeContent.absPlaylists.history
val recyclerView = homeBinding.homeContent.recyclerView
val titleWelcome = homeBinding.imageLayout.titleWelcome
val appNameText = homeBinding.appNameText
val suggestions = homeBinding.homeContent.suggestions
}

View file

@ -1,32 +0,0 @@
package code.name.monkey.retromusic.fragments.home
import code.name.monkey.retromusic.databinding.FragmentBannerHomeBinding
import code.name.monkey.retromusic.databinding.FragmentHomeBinding
class HomeBindingAdapter(
homeBinding: FragmentHomeBinding?,
bannerHomeBinding: FragmentBannerHomeBinding?
) {
val root = homeBinding?.root ?: bannerHomeBinding?.root!!
val container = homeBinding?.container ?: bannerHomeBinding?.container!!
val contentContainer = homeBinding?.contentContainer ?: bannerHomeBinding?.contentContainer!!
val appBarLayout = homeBinding?.appBarLayout ?: bannerHomeBinding?.appBarLayout!!
val toolbar = homeBinding?.toolbar
?: bannerHomeBinding?.toolbar!!
val bannerImage = bannerHomeBinding?.bannerImage
val userImage = homeBinding?.userImage
?: bannerHomeBinding?.userImage!!
val lastAdded = homeBinding?.homeContent?.absPlaylists?.lastAdded
?: bannerHomeBinding?.homeContent?.absPlaylists?.lastAdded!!
val topPlayed = homeBinding?.homeContent?.absPlaylists?.topPlayed
?: bannerHomeBinding?.homeContent?.absPlaylists?.topPlayed!!
val actionShuffle = homeBinding?.homeContent?.absPlaylists?.actionShuffle
?: bannerHomeBinding?.homeContent?.absPlaylists?.actionShuffle!!
val history = homeBinding?.homeContent?.absPlaylists?.history
?: bannerHomeBinding?.homeContent?.absPlaylists?.history!!
val recyclerView = homeBinding?.homeContent?.recyclerView
?: bannerHomeBinding?.homeContent?.recyclerView!!
val titleWelcome = homeBinding?.titleWelcome ?: bannerHomeBinding?.titleWelcome!!
val appNameText = homeBinding?.appNameText ?: bannerHomeBinding?.appNameText!!
val suggestions = homeBinding?.homeContent?.suggestions ?: bannerHomeBinding?.homeContent?.suggestions!!
}

View file

@ -35,7 +35,6 @@ import code.name.monkey.appthemehelper.util.ColorUtil
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper
import code.name.monkey.retromusic.*
import code.name.monkey.retromusic.adapter.HomeAdapter
import code.name.monkey.retromusic.databinding.FragmentBannerHomeBinding
import code.name.monkey.retromusic.databinding.FragmentHomeBinding
import code.name.monkey.retromusic.dialogs.CreatePlaylistDialog
import code.name.monkey.retromusic.dialogs.ImportPlaylistDialog
@ -56,15 +55,15 @@ import com.google.android.material.transition.MaterialFadeThrough
import com.google.android.material.transition.MaterialSharedAxis
class HomeFragment :
AbsMainActivityFragment(if (PreferenceUtil.isHomeBanner) R.layout.fragment_banner_home else R.layout.fragment_home),
IScrollHelper {
AbsMainActivityFragment(R.layout.fragment_home), IScrollHelper {
private var _binding: HomeBindingAdapter? = null
private var _binding: HomeBinding? = null
private val binding get() = _binding!!
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
_binding = getBinding(PreferenceUtil.isHomeBanner, view)
val homeBinding = FragmentHomeBinding.bind(view)
_binding = HomeBinding(homeBinding)
mainActivity.setSupportActionBar(binding.toolbar)
mainActivity.supportActionBar?.title = null
setupListeners()
@ -105,7 +104,7 @@ class HomeFragment :
private fun adjustPlaylistButtons() {
val buttons =
listOf(binding.history, binding.lastAdded, binding.topPlayed, binding.actionShuffle)
buttons.maxOf { it.lineCount }.let { maxLineCount->
buttons.maxOf { it.lineCount }.let { maxLineCount ->
buttons.forEach { button ->
// Set the highest line count to every button for consistency
button.setLines(maxLineCount)
@ -160,16 +159,10 @@ class HomeFragment :
)
}
// Reload suggestions
binding.suggestions.refreshButton.setOnClickListener { libraryViewModel.forceReload(ReloadType.Suggestions) }
}
private fun getBinding(homeBanner: Boolean, view: View): HomeBindingAdapter {
return if (homeBanner) {
val homeBannerBinding = FragmentBannerHomeBinding.bind(view)
HomeBindingAdapter(null, homeBannerBinding)
} else {
val homeBinding = FragmentHomeBinding.bind(view)
HomeBindingAdapter(homeBinding, null)
binding.suggestions.refreshButton.setOnClickListener {
libraryViewModel.forceReload(
ReloadType.Suggestions
)
}
}
@ -243,7 +236,7 @@ class HomeFragment :
}
private fun loadSuggestions(songs: List<Song>) {
if (songs.isEmpty()){
if (songs.isEmpty()) {
binding.suggestions.root.isVisible = false
return
}

View file

@ -0,0 +1,52 @@
package code.name.monkey.retromusic.views
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.widget.FrameLayout
import android.widget.ImageView
import android.widget.TextView
import code.name.monkey.retromusic.databinding.BannerImageLayoutBinding
import code.name.monkey.retromusic.databinding.UserImageLayoutBinding
import code.name.monkey.retromusic.util.PreferenceUtil
class HomeImageLayout @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = -1,
defStyleRes: Int = -1
) : FrameLayout(context, attrs, defStyleAttr, defStyleRes) {
private var userImageBinding: UserImageLayoutBinding? = null
private var bannerImageBinding: BannerImageLayoutBinding? = null
init {
if (PreferenceUtil.isHomeBanner) {
bannerImageBinding = BannerImageLayoutBinding.inflate(LayoutInflater.from(context))
addView(bannerImageBinding!!.root)
} else {
userImageBinding = UserImageLayoutBinding.inflate(LayoutInflater.from(context))
addView(userImageBinding!!.root)
}
}
val userImage: ImageView
get() = if (PreferenceUtil.isHomeBanner) {
bannerImageBinding!!.userImage
} else {
userImageBinding!!.userImage
}
val bannerImage: ImageView?
get() = if (PreferenceUtil.isHomeBanner) {
bannerImageBinding!!.bannerImage
} else {
null
}
val titleWelcome : TextView
get() = if (PreferenceUtil.isHomeBanner) {
bannerImageBinding!!.titleWelcome
} else {
userImageBinding!!.titleWelcome
}
}

View file

@ -0,0 +1,19 @@
package code.name.monkey.retromusic.views.insets
import android.content.Context
import android.util.AttributeSet
import android.widget.LinearLayout
import androidx.constraintlayout.widget.ConstraintLayout
import code.name.monkey.retromusic.extensions.drawAboveSystemBarsWithPadding
import code.name.monkey.retromusic.util.RetroUtil
class InsetsLinearLayout @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : LinearLayout(context, attrs, defStyleAttr) {
init {
if (!RetroUtil.isLandscape())
drawAboveSystemBarsWithPadding()
}
}