From 17b4ffa75d7321f9f65e7561b71cd5e883caa692 Mon Sep 17 00:00:00 2001 From: 1 <386029724@qq.com> Date: Thu, 17 Jul 2025 11:05:27 +0800 Subject: [PATCH] fix data saving --- app/build.gradle.kts | 1 + .../java/com/donut/mixfile/activity/video/VideoActivity.kt | 2 ++ .../main/java/com/donut/mixfile/util/CachedMutableValue.kt | 6 ++++-- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index cb56e1c..46f162c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -6,6 +6,7 @@ plugins { alias(libs.plugins.compose.compiler) id("com.google.gms.google-services") id("kotlin-parcelize") + kotlin("plugin.serialization") version "2.2.0" } android { diff --git a/app/src/main/java/com/donut/mixfile/activity/video/VideoActivity.kt b/app/src/main/java/com/donut/mixfile/activity/video/VideoActivity.kt index 7648241..1b3d108 100644 --- a/app/src/main/java/com/donut/mixfile/activity/video/VideoActivity.kt +++ b/app/src/main/java/com/donut/mixfile/activity/video/VideoActivity.kt @@ -11,10 +11,12 @@ import com.donut.mixfile.activity.video.player.VideoPlayerScreen import com.donut.mixfile.ui.theme.MainTheme import com.donut.mixfile.util.cachedMutableOf import com.donut.mixfile.util.objects.MixActivity +import kotlinx.serialization.Serializable var playHistory by cachedMutableOf(listOf(), "video_player_history_v2") +@Serializable data class VideoHistory(val time: Long, val hash: String, val episode: Int) class VideoActivity : MixActivity("video") { diff --git a/app/src/main/java/com/donut/mixfile/util/CachedMutableValue.kt b/app/src/main/java/com/donut/mixfile/util/CachedMutableValue.kt index c467cac..496ffe8 100644 --- a/app/src/main/java/com/donut/mixfile/util/CachedMutableValue.kt +++ b/app/src/main/java/com/donut/mixfile/util/CachedMutableValue.kt @@ -53,11 +53,13 @@ inline fun > cachedMutableOf(value: C, key: S constructCachedMutableValue( value, { - kv.encode(key, it.toJsonString()) + errorDialog("保存数据失败 key=${key}") { + kv.encode(key, it.toJsonString()) + } }, getter@{ var result = value - catchError { + errorDialog("读取数据失败 key=${key}") { if (kv.containsKey(key)) { val json: C = kv.decodeString(key)?.parseJsonObject() ?: value result = json