[Home] Code Cleanup
This commit is contained in:
parent
ff1c83c91d
commit
ffd251ab62
11 changed files with 241 additions and 438 deletions
|
@ -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
|
||||
}
|
|
@ -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!!
|
||||
}
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
|
@ -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()
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue