From 4e346a83eea50898df4a0f494556ebaa20be4398 Mon Sep 17 00:00:00 2001 From: acite <1498045907@qq.com> Date: Sat, 27 Sep 2025 14:48:41 +0800 Subject: [PATCH] [fix&feat] Fix local judgment logic to prevent partial downloaded projects from being judged as local, Better playlists --- .../acitelight/aether/service/MediaManager.kt | 32 +++++-- .../acitelight/aether/view/PlaylistPanel.kt | 12 ++- .../aether/view/TransmissionScreen.kt | 10 +- .../aether/view/VideoPlayerPortal.kt | 36 ++++--- .../viewModel/TransmissionScreenViewModel.kt | 94 ++++++++++++------- .../aether/viewModel/VideoScreenViewModel.kt | 9 +- 6 files changed, 135 insertions(+), 58 deletions(-) diff --git a/app/src/main/java/com/acitelight/aether/service/MediaManager.kt b/app/src/main/java/com/acitelight/aether/service/MediaManager.kt index 02f9e04..35c56de 100644 --- a/app/src/main/java/com/acitelight/aether/service/MediaManager.kt +++ b/app/src/main/java/com/acitelight/aether/service/MediaManager.kt @@ -4,6 +4,7 @@ import android.content.Context import com.acitelight.aether.model.BookMark import com.acitelight.aether.model.Comic import com.acitelight.aether.model.Video +import com.acitelight.aether.model.VideoDownloadItemState import com.tonyodev.fetch2.Status import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.serialization.json.Json @@ -44,15 +45,34 @@ class MediaManager @Inject constructor( } } + suspend fun queryVideo(klass: String, id: String, model: VideoDownloadItemState): Video? + { + if(model.status == Status.COMPLETED) + { + val jsonString = File( + context.getExternalFilesDir(null), + "videos/$klass/$id/summary.json" + ).readText() + return Json.decodeFromString