From 512da7be1c359926442860fd66b78798c535861e Mon Sep 17 00:00:00 2001 From: rootacite <1498045907@qq.com> Date: Sat, 1 Nov 2025 03:28:13 +0800 Subject: [PATCH] [update] ui patch --- .../aether/model/VideoDownloadItemState.kt | 3 +- .../acitelight/aether/service/FetchManager.kt | 4 + .../aether/view/pages/ComicScreen.kt | 16 +- .../aether/view/pages/TransmissionScreen.kt | 7 +- .../aether/view/pages/VideoScreen.kt | 195 ++++++------------ .../viewModel/TransmissionScreenViewModel.kt | 3 +- 6 files changed, 88 insertions(+), 140 deletions(-) diff --git a/app/src/main/java/com/acitelight/aether/model/VideoDownloadItemState.kt b/app/src/main/java/com/acitelight/aether/model/VideoDownloadItemState.kt index 87378dc..4ca3d27 100644 --- a/app/src/main/java/com/acitelight/aether/model/VideoDownloadItemState.kt +++ b/app/src/main/java/com/acitelight/aether/model/VideoDownloadItemState.kt @@ -16,7 +16,8 @@ class VideoDownloadItemState( totalBytes: Long, klass: String, vid: String, - val type: String + val type: String, + val group: String ) { var fileName by mutableStateOf(fileName) var filePath by mutableStateOf(filePath) diff --git a/app/src/main/java/com/acitelight/aether/service/FetchManager.kt b/app/src/main/java/com/acitelight/aether/service/FetchManager.kt index 2d12ff6..1bcefd8 100644 --- a/app/src/main/java/com/acitelight/aether/service/FetchManager.kt +++ b/app/src/main/java/com/acitelight/aether/service/FetchManager.kt @@ -133,6 +133,7 @@ class FetchManager @Inject constructor( "name" to video.video.name, "id" to video.id, "class" to video.klass, + "group" to (video.video.group ?: ""), "type" to "main" ) ) @@ -143,6 +144,7 @@ class FetchManager @Inject constructor( "name" to video.video.name, "id" to video.id, "class" to video.klass, + "group" to (video.video.group ?: ""), "type" to "cover" ) ) @@ -153,6 +155,7 @@ class FetchManager @Inject constructor( "name" to video.video.name, "id" to video.id, "class" to video.klass, + "group" to (video.video.group ?: ""), "type" to "subtitle" ) ) @@ -169,6 +172,7 @@ class FetchManager @Inject constructor( "name" to video.video.name, "id" to video.id, "class" to video.klass, + "group" to (video.video.group ?: ""), "type" to "gallery" ) ) diff --git a/app/src/main/java/com/acitelight/aether/view/pages/ComicScreen.kt b/app/src/main/java/com/acitelight/aether/view/pages/ComicScreen.kt index 4836289..38c3905 100644 --- a/app/src/main/java/com/acitelight/aether/view/pages/ComicScreen.kt +++ b/app/src/main/java/com/acitelight/aether/view/pages/ComicScreen.kt @@ -152,10 +152,9 @@ fun ComicScreen( Column( modifier = Modifier.animateContentSize() ) { - Row( - Modifier - .padding(4.dp) - .align(Alignment.CenterHorizontally) + Row(Modifier + .padding(horizontal = 8.dp).padding(top = 4.dp) + .align(Alignment.CenterHorizontally) ) { Text( @@ -196,7 +195,11 @@ fun ComicScreen( } } - Row { + Row(Modifier + .padding(horizontal = 8.dp) + .align(Alignment.CenterHorizontally) + ) + { Text( text = "Sorted by: ", fontWeight = FontWeight.Bold, @@ -264,12 +267,11 @@ fun ComicScreen( VariableGrid( modifier = Modifier .heightIn(max = 80.dp) - .padding(4.dp), + .padding(3.dp), rowHeight = 30.dp ) { for (i in comicScreenViewModel.tags) { - Box( Modifier .background( diff --git a/app/src/main/java/com/acitelight/aether/view/pages/TransmissionScreen.kt b/app/src/main/java/com/acitelight/aether/view/pages/TransmissionScreen.kt index 2a996ae..481ce48 100644 --- a/app/src/main/java/com/acitelight/aether/view/pages/TransmissionScreen.kt +++ b/app/src/main/java/com/acitelight/aether/view/pages/TransmissionScreen.kt @@ -22,6 +22,7 @@ import com.acitelight.aether.view.components.BiliMiniSlider import com.acitelight.aether.view.components.VideoDownloadCardMini import com.acitelight.aether.viewModel.TransmissionScreenViewModel import com.tonyodev.fetch2.Status +import java.io.File import kotlin.collections.sortedWith @Composable @@ -82,7 +83,6 @@ fun TransmissionScreen( items( downloads .filter { it.type == "main" } - .sortedWith(compareBy(naturalOrder()) { it.fileName }) .sortedBy { it.status == Status.COMPLETED }, key = { it.id }) { item -> VideoDownloadCardMini( @@ -112,6 +112,11 @@ fun TransmissionScreen( item, downloads )) transmissionScreenViewModel.delete(i.id) + + File( + transmissionScreenViewModel.context.getExternalFilesDir(null), + "videos/${item.klass}/${item.vid}/summary.json" + ).delete() }, onRetry = { for (i in downloadToGroup( diff --git a/app/src/main/java/com/acitelight/aether/view/pages/VideoScreen.kt b/app/src/main/java/com/acitelight/aether/view/pages/VideoScreen.kt index 962215e..3cbe5f3 100644 --- a/app/src/main/java/com/acitelight/aether/view/pages/VideoScreen.kt +++ b/app/src/main/java/com/acitelight/aether/view/pages/VideoScreen.kt @@ -1,19 +1,13 @@ package com.acitelight.aether.view.pages -import android.widget.Toast -import androidx.compose.animation.AnimatedVisibility -import androidx.compose.animation.slideInHorizontally -import androidx.compose.animation.slideOutHorizontally import androidx.compose.foundation.background import androidx.compose.foundation.clickable -import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height @@ -23,8 +17,6 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.widthIn import androidx.compose.foundation.layout.wrapContentHeight -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.staggeredgrid.LazyVerticalStaggeredGrid import androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells import androidx.compose.foundation.lazy.staggeredgrid.items @@ -32,48 +24,41 @@ import androidx.compose.foundation.lazy.staggeredgrid.rememberLazyStaggeredGridS import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.BasicTextField import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Menu import androidx.compose.material.icons.filled.Search import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults -import androidx.compose.material3.DividerDefaults -import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.LocalTextStyle import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.SecondaryScrollableTabRow +import androidx.compose.material3.Tab import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import coil3.compose.AsyncImage import com.acitelight.aether.model.Video import com.acitelight.aether.viewModel.VideoScreenViewModel -import androidx.compose.runtime.mutableStateListOf import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment -import androidx.compose.ui.graphics.Brush -import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.style.TextAlign import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel -import androidx.lifecycle.viewModelScope import androidx.navigation.NavHostController -import coil3.request.ImageRequest import com.acitelight.aether.CardPage -import com.acitelight.aether.Global.updateRelate import com.acitelight.aether.view.components.VideoCard -import kotlinx.coroutines.launch import java.nio.charset.Charset import kotlin.collections.sortedWith -fun videoToView(v: List