From 21662299234b1f05760ef4e28e47cf1c3e5804b8 Mon Sep 17 00:00:00 2001 From: acite <1498045907@qq.com> Date: Sun, 28 Sep 2025 01:54:02 +0800 Subject: [PATCH] [fix] Offline mode display exception --- .../com/acitelight/aether/service/FetchManager.kt | 4 ++++ .../com/acitelight/aether/view/TransmissionScreen.kt | 3 ++- .../java/com/acitelight/aether/view/VideoScreen.kt | 11 ++++++----- .../aether/viewModel/VideoScreenViewModel.kt | 6 ++++-- 4 files changed, 16 insertions(+), 8 deletions(-) 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 c1a0d81..1a8f78e 100644 --- a/app/src/main/java/com/acitelight/aether/service/FetchManager.kt +++ b/app/src/main/java/com/acitelight/aether/service/FetchManager.kt @@ -120,6 +120,10 @@ class FetchManager @Inject constructor( } suspend fun startVideoDownload(video: Video) { + if(getAllDownloadsAsync().any{ + it.extras.getString("class", "") == video.klass && it.extras.getString("id", "") == video.id }) + return + makeFolder(video) File( context.getExternalFilesDir(null), diff --git a/app/src/main/java/com/acitelight/aether/view/TransmissionScreen.kt b/app/src/main/java/com/acitelight/aether/view/TransmissionScreen.kt index 2f8a1bf..ee1a17a 100644 --- a/app/src/main/java/com/acitelight/aether/view/TransmissionScreen.kt +++ b/app/src/main/java/com/acitelight/aether/view/TransmissionScreen.kt @@ -51,6 +51,7 @@ import kotlinx.coroutines.withContext import kotlinx.serialization.json.Json import java.io.File import kotlin.collections.sortedWith +import kotlin.math.abs @Composable fun TransmissionScreen( @@ -254,7 +255,7 @@ private fun VideoDownloadCard( // progress bar LinearProgressIndicator( - progress = { model.progress.coerceIn(0, 100) / 100f }, + progress = { abs(model.progress).coerceIn(0, 100) / 100f }, modifier = Modifier .fillMaxWidth() .padding(top = 8.dp, bottom = 8.dp), diff --git a/app/src/main/java/com/acitelight/aether/view/VideoScreen.kt b/app/src/main/java/com/acitelight/aether/view/VideoScreen.kt index 0ed1037..fc30edf 100644 --- a/app/src/main/java/com/acitelight/aether/view/VideoScreen.kt +++ b/app/src/main/java/com/acitelight/aether/view/VideoScreen.kt @@ -349,12 +349,13 @@ fun VideoCard( { videoScreenViewModel.download(i) } + Toast.makeText( + videoScreenViewModel.context, + "Start downloading ${video.video.group}", + Toast.LENGTH_SHORT + ).show() } - Toast.makeText( - videoScreenViewModel.context, - "Start downloading ${video.video.group}", - Toast.LENGTH_SHORT - ).show() + } ), shape = RoundedCornerShape(6.dp), diff --git a/app/src/main/java/com/acitelight/aether/viewModel/VideoScreenViewModel.kt b/app/src/main/java/com/acitelight/aether/viewModel/VideoScreenViewModel.kt index f445206..5c133ef 100644 --- a/app/src/main/java/com/acitelight/aether/viewModel/VideoScreenViewModel.kt +++ b/app/src/main/java/com/acitelight/aether/viewModel/VideoScreenViewModel.kt @@ -36,7 +36,7 @@ import javax.inject.Singleton @HiltViewModel class VideoScreenViewModel @Inject constructor( - private val fetchManager: FetchManager, + val fetchManager: FetchManager, @ApplicationContext val context: Context, val mediaManager: MediaManager, val recentManager: RecentManager, @@ -82,7 +82,9 @@ class VideoScreenViewModel @Inject constructor( videoLibrary.classesMap["Offline"] = mutableStateListOf