Skip to content

Commit

Permalink
update: playback more info
Browse files Browse the repository at this point in the history
  • Loading branch information
muedsa committed Nov 7, 2023
1 parent b9224bc commit 1db698a
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 15 deletions.
16 changes: 13 additions & 3 deletions app/src/main/kotlin/com/muedsa/agetv/PlaybackActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,26 +20,36 @@ class PlaybackActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

val aid = intent.getIntExtra(AID_KEY, 0)
val episodeTitle = intent.getStringExtra(EPISODE_TITLE_KEY)
val mediaUrl = intent.getStringExtra(MEDIA_URL_KEY)
val episodeId = intent.getLongExtra(DAN_EPISODE_ID_KEY, 0)
setContent {
TvTheme {
// A surface container using the 'background' color from the theme
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
if (mediaUrl.isNullOrEmpty()) {
if (aid <= 0 || episodeTitle.isNullOrEmpty() || mediaUrl.isNullOrEmpty()) {
FillTextScreen(context = "视频地址错误")
} else {
PlaybackScreen(mediaUrl = mediaUrl)
PlaybackScreen(
aid = aid,
episodeTitle = episodeTitle,
mediaUrl = mediaUrl,
danEpisodeId = episodeId
)
}

}
}
}
}

companion object {
const val AID_KEY = "AID"
const val EPISODE_TITLE_KEY = "EPISODE_TITLE"
const val MEDIA_URL_KEY = "MEDIA_URL"
const val DAN_EPISODE_ID_KEY = "EPISODE_ID"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package com.muedsa.agetv.ui.features.detail
import android.content.Intent
import androidx.compose.foundation.focusable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.ExperimentalLayoutApi
import androidx.compose.foundation.layout.FlowRow
import androidx.compose.foundation.layout.PaddingValues
Expand Down Expand Up @@ -76,7 +77,7 @@ fun AnimeDetailScreen(
val commentsLP by remember { viewModel.commentsLPState }

val danSearchAnimeListLD by remember { viewModel.danSearchAnimeListLDState }
val danAnimeInfo by remember { viewModel.danAnimeInfoLDState }
val danAnimeInfoLD by remember { viewModel.danAnimeInfoLDState }

val backgroundState = rememberScreenBackgroundState(
initType = ScreenBackgroundType.SCRIM
Expand Down Expand Up @@ -105,9 +106,9 @@ fun AnimeDetailScreen(
}
}

LaunchedEffect(key1 = danAnimeInfo) {
if (danAnimeInfo.type == LazyType.FAILURE) {
errorMsgBoxState.error(danAnimeInfo.error)
LaunchedEffect(key1 = danAnimeInfoLD) {
if (danAnimeInfoLD.type == LazyType.FAILURE) {
errorMsgBoxState.error(danAnimeInfoLD.error)
}
}

Expand Down Expand Up @@ -206,7 +207,7 @@ fun AnimeDetailScreen(
color = MaterialTheme.colorScheme.onBackground,
style = MaterialTheme.typography.labelLarge
)
if (danAnimeInfo.type == LazyType.SUCCESS && danAnimeInfo.data != null) {
if (danAnimeInfoLD.type == LazyType.SUCCESS && danAnimeInfoLD.data != null) {
Icon(
imageVector = Icons.Filled.Star,
contentDescription = "评分",
Expand All @@ -216,7 +217,7 @@ fun AnimeDetailScreen(
modifier = Modifier
.width(70.dp)
.padding(start = 8.dp, end = 15.dp),
text = "${danAnimeInfo.data!!.rating}",
text = "${danAnimeInfoLD.data!!.rating}",
color = RankFontColor,
style = MaterialTheme.typography.labelLarge
)
Expand Down Expand Up @@ -250,7 +251,8 @@ fun AnimeDetailScreen(
}
)

if (danAnimeInfo.type == LazyType.SUCCESS && danAnimeInfo.data != null) {
// 开启弹幕按钮
if (danAnimeInfoLD.type == LazyType.SUCCESS && danAnimeInfoLD.data != null) {
Spacer(modifier = Modifier.width(25.dp))
Text(
text = "弹幕",
Expand Down Expand Up @@ -290,15 +292,15 @@ fun AnimeDetailScreen(
modifier = Modifier.fillMaxWidth(0.9f),
verticalArrangement = Arrangement.Center,
) {
selectedPlaySourceList.forEach {
selectedPlaySourceList.forEachIndexed { index, item ->
AssistChip(
modifier = Modifier.padding(end = 8.dp, bottom = 8.dp),
onClick = {
LogUtil.fb("click play: $it")
LogUtil.fb("click play: $item")
val url = if (animeDetail.isVip(selectedPlaySource)) {
"${animeDetail.playerJx["vip"]}${it[1]}"
"${animeDetail.playerJx["vip"]}${item[1]}"
} else {
"${animeDetail.playerJx["zj"]}${it[1]}"
"${animeDetail.playerJx["zj"]}${item[1]}"
}
LogUtil.fb("click playPage: $url")
viewModel.parsePlayInfo(
Expand All @@ -307,10 +309,29 @@ fun AnimeDetailScreen(
LogUtil.fb("try play => $it")
val intent =
Intent(context, PlaybackActivity::class.java)
intent.putExtra(
PlaybackActivity.AID_KEY,
animeDetail.video.id
)
intent.putExtra(
PlaybackActivity.EPISODE_TITLE_KEY,
item[0]
)
intent.putExtra(
PlaybackActivity.MEDIA_URL_KEY,
it.realUrl
)
if (enabledDanmaku
&& danAnimeInfoLD.type == LazyType.SUCCESS
&& danAnimeInfoLD.data != null
&& !danAnimeInfoLD.data?.episodes.isNullOrEmpty()
&& danAnimeInfoLD.data?.episodes!!.size > index
) {
intent.putExtra(
PlaybackActivity.DAN_EPISODE_ID_KEY,
danAnimeInfoLD.data?.episodes!![index].episodeId
)
}
context.startActivity(intent)
},
onError = {
Expand All @@ -319,7 +340,22 @@ fun AnimeDetailScreen(
)
}
) {
Text(text = it[0])
if (enabledDanmaku
&& danAnimeInfoLD.type == LazyType.SUCCESS
&& danAnimeInfoLD.data != null
&& !danAnimeInfoLD.data?.episodes.isNullOrEmpty()
&& danAnimeInfoLD.data?.episodes!!.size > index
) {
Column(horizontalAlignment = Alignment.CenterHorizontally) {
Text(text = item[0])
Text(
text = danAnimeInfoLD.data!!.episodes[index].episodeTitle,
style = MaterialTheme.typography.labelSmall
)
}
} else {
Text(text = item[0])
}
}
}
}
Expand Down

0 comments on commit 1db698a

Please sign in to comment.