Skip to content

Commit

Permalink
部分完善动态查看
Browse files Browse the repository at this point in the history
年前写的没写完。。。
  • Loading branch information
aaa1115910 committed Mar 12, 2024
1 parent aad1002 commit e787e1c
Show file tree
Hide file tree
Showing 19 changed files with 1,162 additions and 168 deletions.
4 changes: 4 additions & 0 deletions app/src/main/kotlin/dev/aaa1115910/bv/BVApp.kt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import de.schnettler.datastore.manager.DataStoreManager
import dev.aaa1115910.biliapi.http.BiliHttpProxyApi
import dev.aaa1115910.biliapi.repositories.AuthRepository
import dev.aaa1115910.biliapi.repositories.ChannelRepository
import dev.aaa1115910.biliapi.repositories.CommentRepository
import dev.aaa1115910.biliapi.repositories.FavoriteRepository
import dev.aaa1115910.biliapi.repositories.HistoryRepository
import dev.aaa1115910.biliapi.repositories.IndexRepository
Expand All @@ -26,6 +27,7 @@ import dev.aaa1115910.biliapi.repositories.VideoPlayRepository
import dev.aaa1115910.bv.dao.AppDatabase
import dev.aaa1115910.bv.entity.AuthData
import dev.aaa1115910.bv.entity.db.UserDB
import dev.aaa1115910.bv.mobile.viewmodel.CommentViewModel
import dev.aaa1115910.bv.mobile.viewmodel.MobileVideoPlayerViewModel
import dev.aaa1115910.bv.network.HttpServer
import dev.aaa1115910.bv.repository.UserRepository
Expand Down Expand Up @@ -161,6 +163,7 @@ val appModule = module {
single { SeasonRepository(get()) }
single { dev.aaa1115910.biliapi.repositories.UserRepository(get(), get()) }
single { IndexRepository() }
single { CommentRepository(get(), get()) }
viewModel { DynamicViewModel(get(), get()) }
viewModel { RecommendViewModel(get()) }
viewModel { PopularViewModel(get()) }
Expand All @@ -182,6 +185,7 @@ val appModule = module {
viewModel { MobileVideoPlayerViewModel(get(), get()) }
viewModel { UserSwitchViewModel(get()) }
viewModel { AnimeIndexViewModel(get()) }
viewModel { CommentViewModel(get()) }
}

val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "Settings")
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import coil.compose.AsyncImage
Expand All @@ -50,6 +51,7 @@ import com.origeek.imageViewer.previewer.TransformImageView
import com.origeek.imageViewer.previewer.TransformItemState
import com.origeek.imageViewer.previewer.rememberPreviewerState
import com.origeek.imageViewer.previewer.rememberTransformItemState
import dev.aaa1115910.biliapi.entity.Picture
import dev.aaa1115910.biliapi.entity.user.DynamicItem
import dev.aaa1115910.biliapi.entity.user.DynamicType
import dev.aaa1115910.bv.R
Expand All @@ -59,13 +61,14 @@ import dev.aaa1115910.bv.util.ImageSize
import dev.aaa1115910.bv.util.notYetImplemented
import dev.aaa1115910.bv.util.resizedImageUrl
import kotlinx.coroutines.launch
import java.util.UUID

@Composable
fun DynamicItem(
modifier: Modifier = Modifier,
dynamicItem: DynamicItem,
previewerState: ImagePreviewerState = rememberPreviewerState(pageCount = { 0 }),
onShowPreviewer: (newPictures: List<String>, afterSetPictures: () -> Unit) -> Unit = { _, _ -> },
onShowPreviewer: (newPictures: List<Picture>, afterSetPictures: () -> Unit) -> Unit = { _, _ -> },
onClick: (DynamicItem) -> Unit = {}
) {
val paddingSize = 12.dp
Expand All @@ -82,39 +85,13 @@ fun DynamicItem(
modifier = Modifier.padding(horizontal = paddingSize),
author = dynamicItem.author
)
when (dynamicItem.type) {
DynamicType.Av -> DynamicVideoContent(
modifier = Modifier.padding(horizontal = paddingSize),
video = dynamicItem.video!!
)

DynamicType.Draw -> DynamicDraw(
modifier = Modifier.padding(horizontal = paddingSize),
draw = dynamicItem.draw!!,
previewerState = previewerState,
onShowPreviewer = onShowPreviewer
)

DynamicType.Forward -> DynamicForward(
dynamicItem = dynamicItem.orig!!,
previewerState = previewerState,
onShowPreviewer = onShowPreviewer,
onClick = { onClick(dynamicItem.orig!!) }
)

DynamicType.LiveRcmd -> DynamicLiveRcmd(
modifier = Modifier.padding(horizontal = paddingSize),
liveRcmd = dynamicItem.liveRcmd!!
)

DynamicType.UgcSeason -> TODO()

DynamicType.Word -> DynamicWord(
modifier = Modifier.padding(horizontal = paddingSize),
word = dynamicItem.word!!
)
}

DynamicContent(
dynamicItem = dynamicItem,
horizontalPadding = paddingSize,
previewerState = previewerState,
onShowPreviewer = onShowPreviewer,
onClick = onClick
)
DynamicFooter(
modifier = Modifier.padding(horizontal = paddingSize),
footer = dynamicItem.footer!!,
Expand All @@ -136,6 +113,52 @@ fun DynamicItem(
}
}

@Composable
fun DynamicContent(
modifier: Modifier = Modifier,
dynamicItem: DynamicItem,
horizontalPadding: Dp = 12.dp,
previewerState: ImagePreviewerState = rememberPreviewerState(pageCount = { 0 }),
onShowPreviewer: (newPictures: List<Picture>, afterSetPictures: () -> Unit) -> Unit = { _, _ -> },
onClick: (DynamicItem) -> Unit

) {
val contentModifier = modifier.padding(horizontal = horizontalPadding)
when (dynamicItem.type) {
DynamicType.Av -> DynamicVideoContent(
modifier = contentModifier,
video = dynamicItem.video!!
)

DynamicType.Draw -> DynamicDraw(
modifier = contentModifier,
draw = dynamicItem.draw!!,
previewerState = previewerState,
onShowPreviewer = onShowPreviewer
)

DynamicType.Forward -> DynamicForward(
modifier = modifier,
dynamicItem = dynamicItem.orig!!,
previewerState = previewerState,
onShowPreviewer = onShowPreviewer,
onClick = { onClick(dynamicItem.orig!!) }
)

DynamicType.LiveRcmd -> DynamicLiveRcmd(
modifier = contentModifier,
liveRcmd = dynamicItem.liveRcmd!!
)

DynamicType.UgcSeason -> TODO()

DynamicType.Word -> DynamicWord(
modifier = contentModifier,
word = dynamicItem.word!!
)
}
}

@Composable
fun DynamicVideoContent(
modifier: Modifier = Modifier,
Expand Down Expand Up @@ -390,7 +413,7 @@ fun DynamicDraw(
modifier: Modifier = Modifier,
draw: DynamicItem.DynamicDrawModule,
previewerState: ImagePreviewerState,
onShowPreviewer: (newPictures: List<String>, afterSetPictures: () -> Unit) -> Unit
onShowPreviewer: (newPictures: List<Picture>, afterSetPictures: () -> Unit) -> Unit
) {
Column(
modifier = modifier,
Expand All @@ -409,9 +432,9 @@ fun DynamicDraw(
@Composable
fun DynamicPictures(
modifier: Modifier = Modifier,
pictures: List<String>,
pictures: List<Picture>,
previewerState: ImagePreviewerState,
onShowPreviewer: (newPictures: List<String>, afterSetPictures: () -> Unit) -> Unit,
onShowPreviewer: (newPictures: List<Picture>, afterSetPictures: () -> Unit) -> Unit,
) {
val scope = rememberCoroutineScope()
val imageBaseShape = MaterialTheme.shapes.medium
Expand Down Expand Up @@ -444,8 +467,8 @@ fun DynamicPictures(
}
) {
TransformImageView(
painter = rememberAsyncImagePainter(pictures.first()),
key = pictures.first(),
painter = rememberAsyncImagePainter(pictures.first().url),
key = pictures.first().key,
itemState = itemState,
previewerState = previewerState,
)
Expand Down Expand Up @@ -479,8 +502,8 @@ fun DynamicPictures(
}
) {
TransformImageView(
painter = rememberAsyncImagePainter(picture),
key = picture,
painter = rememberAsyncImagePainter(picture.url),
key = picture.key,
itemState = itemState,
previewerState = previewerState,
)
Expand Down Expand Up @@ -515,8 +538,8 @@ fun DynamicPictures(
}
) {
TransformImageView(
painter = rememberAsyncImagePainter(picture),
key = picture,
painter = rememberAsyncImagePainter(picture.url),
key = picture.key,
itemState = itemState,
previewerState = previewerState,
)
Expand Down Expand Up @@ -561,7 +584,8 @@ fun DynamicForward(
modifier: Modifier = Modifier,
dynamicItem: DynamicItem,
previewerState: ImagePreviewerState,
onShowPreviewer: (newPictures: List<String>, afterSetPictures: () -> Unit) -> Unit,
horizontalPadding: Dp = 12.dp,
onShowPreviewer: (newPictures: List<Picture>, afterSetPictures: () -> Unit) -> Unit,
onClick: () -> Unit
) {
Surface(
Expand All @@ -570,37 +594,21 @@ fun DynamicForward(
onClick = onClick
) {
Box(
modifier = Modifier.padding(horizontal = 12.dp, vertical = 6.dp),
modifier = Modifier.padding(horizontal = horizontalPadding, vertical = 6.dp),
) {
Column(
verticalArrangement = Arrangement.spacedBy(8.dp)
) {
DynamicForwardHeader(
author = dynamicItem.author
)
when (dynamicItem.type) {
DynamicType.Av -> DynamicVideoContent(
video = dynamicItem.video!!
)

DynamicType.Draw -> DynamicDraw(
draw = dynamicItem.draw!!,
previewerState = previewerState,
onShowPreviewer = onShowPreviewer
)

DynamicType.Forward -> {}

DynamicType.LiveRcmd -> DynamicLiveRcmd(
liveRcmd = dynamicItem.liveRcmd!!
)

DynamicType.UgcSeason -> TODO()

DynamicType.Word -> DynamicWord(
word = dynamicItem.word!!
)
}
DynamicContent(
dynamicItem = dynamicItem,
horizontalPadding = 0.dp,
previewerState = previewerState,
onShowPreviewer = onShowPreviewer,
onClick = {}
)
}
}
}
Expand Down Expand Up @@ -787,7 +795,7 @@ private class DynamicDrawItemProvider : PreviewParameterProvider<DynamicItem> {
type = DynamicType.Draw,
draw = DynamicItem.DynamicDrawModule(
text = "this is $index picture draw",
images = Array(index) { "" }.toList()
images = Array(index) { Picture("", 0, 0, "${UUID.randomUUID()}") }.toList()
)
)
}.asSequence()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ import com.origeek.imageViewer.previewer.TransformImageView
import com.origeek.imageViewer.previewer.TransformItemState
import com.origeek.imageViewer.previewer.rememberPreviewerState
import com.origeek.imageViewer.previewer.rememberTransformItemState
import dev.aaa1115910.biliapi.entity.Picture
import dev.aaa1115910.biliapi.entity.reply.Comment
import dev.aaa1115910.biliapi.entity.reply.EmoteSize
import dev.aaa1115910.bv.mobile.theme.BVMobileTheme
Expand All @@ -63,7 +64,7 @@ fun CommentItem(
comment: Comment,
previewerState: ImagePreviewerState,
showReplies: Boolean = true,
onShowPreviewer: (newPictures: List<Comment.Picture>, afterSetPictures: () -> Unit) -> Unit,
onShowPreviewer: (newPictures: List<Picture>, afterSetPictures: () -> Unit) -> Unit,
onShowReply: (rpid: Long) -> Unit = {}
) {
Surface(
Expand Down Expand Up @@ -222,9 +223,9 @@ private fun CommentText(
@Composable
private fun CommentPictures(
modifier: Modifier = Modifier,
pictures: List<Comment.Picture>,
pictures: List<Picture>,
previewerState: ImagePreviewerState,
onShowPreviewer: (newPictures: List<Comment.Picture>, afterSetPictures: () -> Unit) -> Unit,
onShowPreviewer: (newPictures: List<Picture>, afterSetPictures: () -> Unit) -> Unit,
) {
val scope = rememberCoroutineScope()
val imageBaseShape = MaterialTheme.shapes.medium
Expand Down Expand Up @@ -449,7 +450,7 @@ private class CommentItemPreviewParameterProvider :
timeDesc = "4小时前",
emotes = emptyList(),
pictures = listOf(
Comment.Picture(
Picture(
url = "",
width = 0,
height = 0,
Expand All @@ -469,8 +470,8 @@ private class CommentItemPreviewParameterProvider :
timeDesc = "4小时前",
emotes = emptyList(),
pictures = listOf(
Comment.Picture(url = "", width = 0, height = 0, key = "1"),
Comment.Picture(url = "", width = 0, height = 0, key = "2")
Picture(url = "", width = 0, height = 0, key = "1"),
Picture(url = "", width = 0, height = 0, key = "2")
),
replies = emptyList(),
repliesCount = 0
Expand All @@ -485,9 +486,9 @@ private class CommentItemPreviewParameterProvider :
timeDesc = "4小时前",
emotes = emptyList(),
pictures = listOf(
Comment.Picture(url = "", width = 0, height = 0, key = "1"),
Comment.Picture(url = "", width = 0, height = 0, key = "2"),
Comment.Picture(url = "", width = 0, height = 0, key = "3")
Picture(url = "", width = 0, height = 0, key = "1"),
Picture(url = "", width = 0, height = 0, key = "2"),
Picture(url = "", width = 0, height = 0, key = "3")
),
replies = emptyList(),
repliesCount = 0
Expand All @@ -502,10 +503,10 @@ private class CommentItemPreviewParameterProvider :
timeDesc = "4小时前",
emotes = emptyList(),
pictures = listOf(
Comment.Picture(url = "", width = 0, height = 0, key = "1"),
Comment.Picture(url = "", width = 0, height = 0, key = "2"),
Comment.Picture(url = "", width = 0, height = 0, key = "3"),
Comment.Picture(url = "", width = 0, height = 0, key = "4")
Picture(url = "", width = 0, height = 0, key = "1"),
Picture(url = "", width = 0, height = 0, key = "2"),
Picture(url = "", width = 0, height = 0, key = "3"),
Picture(url = "", width = 0, height = 0, key = "4")
),
replies = emptyList(),
repliesCount = 0
Expand All @@ -520,10 +521,10 @@ private class CommentItemPreviewParameterProvider :
timeDesc = "4小时前",
emotes = emptyList(),
pictures = listOf(
Comment.Picture(url = "", width = 0, height = 0, key = "1"),
Comment.Picture(url = "", width = 0, height = 0, key = "2"),
Comment.Picture(url = "", width = 0, height = 0, key = "3"),
Comment.Picture(url = "", width = 0, height = 0, key = "4")
Picture(url = "", width = 0, height = 0, key = "1"),
Picture(url = "", width = 0, height = 0, key = "2"),
Picture(url = "", width = 0, height = 0, key = "3"),
Picture(url = "", width = 0, height = 0, key = "4")
),
replies = listOf(
Comment(
Expand Down
Loading

0 comments on commit e787e1c

Please sign in to comment.