This commit is contained in:
ocean 2024-06-26 18:41:40 +08:00
parent 1156dc4c34
commit 55df7e9988
2 changed files with 36 additions and 24 deletions

View File

@ -50,15 +50,20 @@ class MoListDetailsActivity : MoBaseActivity(), DetailsListAdapter.OnItemMoreCli
data class UpdateFavorite(val bean: Innertube.MoPlaylistOrAlbumPage.MoPlaylistOrAlbumListBean) : data class UpdateFavorite(val bean: Innertube.MoPlaylistOrAlbumPage.MoPlaylistOrAlbumListBean) :
Request() Request()
data class OnFavorites(val bean: Innertube.MoPlaylistOrAlbumPage.MoPlaylistOrAlbumListBean) : data class OnFavorites(
Request() val bean: Innertube.MoPlaylistOrAlbumPage.MoPlaylistOrAlbumListBean, val imgUrl: String
) : Request()
data class OnDownload(val bean: Innertube.MoPlaylistOrAlbumPage.MoPlaylistOrAlbumListBean) : data class OnDownload(
Request() val bean: Innertube.MoPlaylistOrAlbumPage.MoPlaylistOrAlbumListBean, val imgUrl: String
) : Request()
data class OnDownloadRemove(val id: String) : Request() data class OnDownloadRemove(val id: String) : Request()
data class OnUpdateDownloadUi(val id: String) : Request() data class OnUpdateDownloadUi(val id: String) : Request()
data class OnAddPlaylist(val bean: Innertube.MoPlaylistOrAlbumPage.MoPlaylistOrAlbumListBean) : data class OnAddPlaylist(
val bean: Innertube.MoPlaylistOrAlbumPage.MoPlaylistOrAlbumListBean,
val imgUrl: String
) :
Request() Request()
} }
@ -146,7 +151,7 @@ class MoListDetailsActivity : MoBaseActivity(), DetailsListAdapter.OnItemMoreCli
videoId = it.bean.videoId, videoId = it.bean.videoId,
title = it.bean.title.toString(), title = it.bean.title.toString(),
name = it.bean.name.toString(), name = it.bean.name.toString(),
thumbnail = it.bean.thumbnailUrl, thumbnail = it.bean.thumbnailUrl ?: it.imgUrl,
isFavorite = true isFavorite = true
) )
App.appFavoriteDBManager.insertFavoriteBean(b) App.appFavoriteDBManager.insertFavoriteBean(b)
@ -172,7 +177,7 @@ class MoListDetailsActivity : MoBaseActivity(), DetailsListAdapter.OnItemMoreCli
id, id,
it.bean.title.toString(), it.bean.title.toString(),
it.bean.name.toString(), it.bean.name.toString(),
it.bean.thumbnailUrl, it.bean.thumbnailUrl ?: it.imgUrl,
isFavorite isFavorite
) )
insertOfflineData(favoriteBean) insertOfflineData(favoriteBean)
@ -196,7 +201,6 @@ class MoListDetailsActivity : MoBaseActivity(), DetailsListAdapter.OnItemMoreCli
false false
) )
LolAdWrapper.shared.showAdTiming( LolAdWrapper.shared.showAdTiming(
this@MoListDetailsActivity, AdPlacement.INST_DOWNLOAD this@MoListDetailsActivity, AdPlacement.INST_DOWNLOAD
) )
@ -204,13 +208,13 @@ class MoListDetailsActivity : MoBaseActivity(), DetailsListAdapter.OnItemMoreCli
id, id,
it.bean.title.toString(), it.bean.title.toString(),
it.bean.name.toString(), it.bean.name.toString(),
it.bean.thumbnailUrl, it.bean.thumbnailUrl ?: it.imgUrl,
isFavorite isFavorite
) )
insertOfflineData(favoriteBean) insertOfflineData(favoriteBean)
val jsonObject = JSONObject() val jsonObject = JSONObject()
jsonObject.put( jsonObject.put(
"download_id", "${favoriteBean.videoId}" "download_id", favoriteBean.videoId
) )
val songMap = mutableMapOf( val songMap = mutableMapOf(
Pair( Pair(
@ -258,7 +262,7 @@ class MoListDetailsActivity : MoBaseActivity(), DetailsListAdapter.OnItemMoreCli
videoId = it.bean.videoId.toString(), videoId = it.bean.videoId.toString(),
title = it.bean.title.toString(), title = it.bean.title.toString(),
name = it.bean.name.toString(), name = it.bean.name.toString(),
thumbnail = it.bean.thumbnailUrl.toString(), thumbnail = it.bean.thumbnailUrl ?: it.imgUrl,
isFavorite isFavorite
) )
) )
@ -343,17 +347,32 @@ class MoListDetailsActivity : MoBaseActivity(), DetailsListAdapter.OnItemMoreCli
} }
binding.favoritesBtn.setOnClickListener { binding.favoritesBtn.setOnClickListener {
if (currentPosition >= 0) { if (currentPosition >= 0) {
requests.trySend(Request.OnFavorites(myList[currentPosition])) requests.trySend(
Request.OnFavorites(
myList[currentPosition],
myBean?.thumbnail.toString()
)
)
} }
} }
binding.moreDownloadBtn.setOnClickListener { binding.moreDownloadBtn.setOnClickListener {
if (currentPosition >= 0) { if (currentPosition >= 0) {
requests.trySend(Request.OnDownload(myList[currentPosition])) requests.trySend(
Request.OnDownload(
myList[currentPosition],
myBean?.thumbnail.toString()
)
)
} }
} }
binding.moreAddPlaylistBtn.setOnClickListener { binding.moreAddPlaylistBtn.setOnClickListener {
if (currentPosition >= 0) { if (currentPosition >= 0) {
requests.trySend(Request.OnAddPlaylist(myList[currentPosition])) requests.trySend(
Request.OnAddPlaylist(
myList[currentPosition],
myBean?.thumbnail.toString()
)
)
hideBottomLayout() hideBottomLayout()
} }
} }
@ -497,7 +516,8 @@ class MoListDetailsActivity : MoBaseActivity(), DetailsListAdapter.OnItemMoreCli
binding.bottomLayout.visibility = View.VISIBLE binding.bottomLayout.visibility = View.VISIBLE
val bean = myList[position] val bean = myList[position]
Glide.with(this).load(bean.thumbnailUrl).into(binding.songImg) val imgUrl = bean.thumbnailUrl ?: myBean?.thumbnail
Glide.with(this).load(imgUrl).into(binding.songImg)
binding.title.text = bean.title binding.title.text = bean.title
if (bean.name?.isEmpty() == true) { if (bean.name?.isEmpty() == true) {
binding.name.visibility = View.GONE binding.name.visibility = View.GONE

View File

@ -121,15 +121,7 @@ suspend fun Innertube.moPlaylistPage(browseId: String): Result<Innertube.MoPlayl
params = watchEndpoint?.params, params = watchEndpoint?.params,
musicVideoType = watchEndpoint?.type, musicVideoType = watchEndpoint?.type,
pageType = browseEndpoint?.type, pageType = browseEndpoint?.type,
thumbnailUrl = thumbnailUrl ?: musicResponsiveHeaderRenderer thumbnailUrl = thumbnailUrl
?.thumbnail
?.musicThumbnailRenderer
?.thumbnail
?.thumbnails
?.let {
it.getOrNull(3) ?: it.getOrNull(2) ?: it.getOrNull(1) ?: it.getOrNull(0)
}
?.url
) )
list.add(bean) list.add(bean)