Musicoo/app/src/main/java/melody/offline/music/view/SearchResultOptimalView.kt
2024-06-03 15:12:46 +08:00

85 lines
3.6 KiB
Kotlin

package melody.offline.music.view
import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView
import com.bumptech.glide.Glide
import melody.offline.music.R
import melody.offline.music.activity.MoListDetailsActivity
import melody.offline.music.activity.MoPlayDetailsActivity
import melody.offline.music.activity.MoSingerDetailsActivity
import melody.offline.music.innertube.Innertube
import melody.offline.music.util.AnalysisUtil
@SuppressLint("ViewConstructor")
class SearchResultOptimalView(context: Context, data: Innertube.SearchDataPage) :
ModuleView(context) {
init {
contentView = inflate(getContext(), R.layout.search_result_optimal_layout, this)
val title = contentView?.findViewById<TextView>(R.id.title)
title?.text = data.title
val name = contentView?.findViewById<TextView>(R.id.name)
name?.text = data.searchResultList.firstOrNull()?.title
val desc = contentView?.findViewById<TextView>(R.id.desc)
desc?.text = data.searchResultList.firstOrNull()?.desc
val image = contentView?.findViewById<ImageView>(R.id.image)
val optimalBean = data.searchResultList.firstOrNull()
val url = optimalBean?.thumbnail
Glide.with(context)
.load(url)
.into(image!!)
val playBtn = contentView?.findViewById<LinearLayout>(R.id.playBtn)
playBtn?.setOnClickListener {
AnalysisUtil.logEvent(AnalysisUtil.SEARCH_PV)
if (optimalBean != null) {
if (!optimalBean.videoId.isNullOrEmpty()) {
val intent = Intent(context, MoPlayDetailsActivity::class.java)
intent.putExtra(
MoPlayDetailsActivity.PLAY_DETAILS_VIDEO_ID,
optimalBean.videoId
)
intent.putExtra(MoPlayDetailsActivity.PLAY_DETAILS_NAME, optimalBean.title)
intent.putExtra(MoPlayDetailsActivity.PLAY_DETAILS_DESC, optimalBean.desc)
context.startActivity(intent)
} else if (!optimalBean.browseId.isNullOrEmpty()) {
when (optimalBean.pageType) {
"MUSIC_PAGE_TYPE_ALBUM" -> {
val intent = Intent(context, MoListDetailsActivity::class.java)
intent.putExtra(
MoListDetailsActivity.PLAY_LIST_PAGE_BROWSE_ID,
optimalBean.browseId
)
context.startActivity(intent)
}
"MUSIC_PAGE_TYPE_PLAYLIST" -> {
val intent = Intent(context, MoListDetailsActivity::class.java)
intent.putExtra(
MoListDetailsActivity.PLAY_LIST_PAGE_BROWSE_ID,
optimalBean.browseId
)
context.startActivity(intent)
}
else -> {
val intent = Intent(context, MoSingerDetailsActivity::class.java)
intent.putExtra(
MoSingerDetailsActivity.SINGER_DETAILS_PAGE_BROWSE_ID,
optimalBean.browseId
)
context.startActivity(intent)
}
}
}
}
}
}
}