This commit is contained in:
Muntashir Al-Islam 2020-07-14 13:54:52 +06:00
commit 51cdc2e9eb
50 changed files with 1754 additions and 1472 deletions

View file

@ -55,7 +55,8 @@ class LibraryViewModel(application: Application) :
_repository.topAlbums(),
_repository.recentArtists(),
_repository.recentAlbums(),
_repository.favoritePlaylist()
_repository.favoritePlaylist(),
_repository.suggestions()
)
for (r in result) {
if (r != null) {

View file

@ -18,7 +18,6 @@ import android.os.Bundle
import android.view.View
import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager
import io.github.muntashirakon.music.App
import io.github.muntashirakon.music.R
import io.github.muntashirakon.music.adapter.GenreAdapter
import io.github.muntashirakon.music.fragments.base.AbsLibraryPagerRecyclerViewFragment
@ -27,11 +26,6 @@ import io.github.muntashirakon.music.interfaces.MainActivityFragmentCallbacks
class GenresFragment : AbsLibraryPagerRecyclerViewFragment<GenreAdapter, LinearLayoutManager>(),
MainActivityFragmentCallbacks {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
App.musicComponent.inject(this)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
mainActivity.libraryViewModel.allGenres().observe(

View file

@ -55,13 +55,6 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
)
}
private fun loadImageFromStorage() {
UserProfileGlideRequest.Builder.from(
Glide.with(requireActivity()),
UserProfileGlideRequest.getUserModel()
).build().into(userImage)
}
private val displayMetrics: DisplayMetrics
get() {
val display = mainActivity.windowManager.defaultDisplay
@ -111,8 +104,7 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
)
NavigationUtil.goToUserInfo(requireActivity(), options)
}
titleWelcome?.text =
String.format("%s", PreferenceUtil.userName)
titleWelcome?.text = String.format("%s", PreferenceUtil.userName)
homeAdapter = HomeAdapter(mainActivity, displayMetrics)
recyclerView.apply {

View file

@ -33,7 +33,6 @@ class PlayerAlbumCoverFragment : AbsMusicServiceFragment(), ViewPager.OnPageChan
fun removeSlideEffect() {
val transformer = ParallaxPagerTransformer(R.id.player_image)
transformer.setSpeed(0.3f)
//viewPager.setPageTransformer(true, transformer)
}
override fun onCreateView(

View file

@ -4,8 +4,6 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import android.widget.TextView
import androidx.appcompat.widget.Toolbar
import code.name.monkey.appthemehelper.util.ATHUtil
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper
@ -16,104 +14,11 @@ import io.github.muntashirakon.music.extensions.textColorSecondary
import io.github.muntashirakon.music.fragments.base.AbsPlayerFragment
import io.github.muntashirakon.music.fragments.player.PlayerAlbumCoverFragment
import io.github.muntashirakon.music.helper.MusicPlayerRemote
import io.github.muntashirakon.music.helper.MusicProgressViewUpdateHelper
import io.github.muntashirakon.music.model.Song
import io.github.muntashirakon.music.model.lyrics.AbsSynchronizedLyrics
import io.github.muntashirakon.music.model.lyrics.Lyrics
import io.github.muntashirakon.music.util.color.MediaNotificationProcessor
import kotlinx.android.synthetic.main.fragment_adaptive_player.*
class AdaptiveFragment : AbsPlayerFragment(), MusicProgressViewUpdateHelper.Callback {
private lateinit var lyricsLayout: FrameLayout
private lateinit var lyricsLine1: TextView
private lateinit var lyricsLine2: TextView
private var lyrics: Lyrics? = null
private lateinit var progressViewUpdateHelper: MusicProgressViewUpdateHelper
override fun onUpdateProgressViews(progress: Int, total: Int) {
if (!isLyricsLayoutBound()) return
if (!isLyricsLayoutVisible()) {
hideLyricsLayout()
return
}
if (lyrics !is AbsSynchronizedLyrics) return
val synchronizedLyrics = lyrics as AbsSynchronizedLyrics
lyricsLayout.visibility = View.VISIBLE
lyricsLayout.alpha = 1f
val oldLine = lyricsLine2.text.toString()
val line = synchronizedLyrics.getLine(progress)
if (oldLine != line || oldLine.isEmpty()) {
lyricsLine1.text = oldLine
lyricsLine2.text = line
lyricsLine1.visibility = View.VISIBLE
lyricsLine2.visibility = View.VISIBLE
lyricsLine2.measure(
View.MeasureSpec.makeMeasureSpec(
lyricsLine2.measuredWidth,
View.MeasureSpec.EXACTLY
),
View.MeasureSpec.UNSPECIFIED
)
val h: Float = lyricsLine2.measuredHeight.toFloat()
lyricsLine1.alpha = 1f
lyricsLine1.translationY = 0f
lyricsLine1.animate().alpha(0f).translationY(-h).duration = VISIBILITY_ANIM_DURATION
lyricsLine2.alpha = 0f
lyricsLine2.translationY = h
lyricsLine2.animate().alpha(1f).translationY(0f).duration = VISIBILITY_ANIM_DURATION
}
}
private fun isLyricsLayoutVisible(): Boolean {
return lyrics != null && lyrics!!.isSynchronized && lyrics!!.isValid
}
private fun isLyricsLayoutBound(): Boolean {
return lyricsLayout != null && lyricsLine1 != null && lyricsLine2 != null
}
private fun hideLyricsLayout() {
lyricsLayout.animate().alpha(0f).setDuration(VISIBILITY_ANIM_DURATION)
.withEndAction(Runnable {
if (!isLyricsLayoutBound()) return@Runnable
lyricsLayout.visibility = View.GONE
lyricsLine1.text = null
lyricsLine2.text = null
})
}
override fun setLyrics(l: Lyrics?) {
lyrics = l
if (!isLyricsLayoutBound()) return
if (!isLyricsLayoutVisible()) {
hideLyricsLayout()
return
}
lyricsLine1.text = null
lyricsLine2.text = null
lyricsLayout.visibility = View.VISIBLE
lyricsLayout.animate().alpha(1f).duration = VISIBILITY_ANIM_DURATION
}
override fun onDestroyView() {
super.onDestroyView()
progressViewUpdateHelper.stop()
}
class AdaptiveFragment : AbsPlayerFragment() {
override fun playerToolbar(): Toolbar {
return playerToolbar
@ -132,15 +37,8 @@ class AdaptiveFragment : AbsPlayerFragment(), MusicProgressViewUpdateHelper.Call
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
lyricsLayout = view.findViewById(R.id.player_lyrics)
lyricsLine1 = view.findViewById(R.id.player_lyrics_line1)
lyricsLine2 = view.findViewById(R.id.player_lyrics_line2)
setUpSubFragments()
setUpPlayerToolbar()
progressViewUpdateHelper = MusicProgressViewUpdateHelper(this, 500, 1000)
progressViewUpdateHelper.start()
}
private fun setUpSubFragments() {

View file

@ -279,6 +279,10 @@ class GradientPlayerFragment : AbsPlayerFragment(), MusicProgressViewUpdateHelpe
updateQueuePosition()
}
override fun onQueueChanged() {
super.onQueueChanged()
updateLabel()
}
private fun updateSong() {
val song = MusicPlayerRemote.currentSong
title.text = song.title