From 01246e89baeaac92fd0a3f2a580cfee87fdf6b15 Mon Sep 17 00:00:00 2001 From: acite <1498045907@qq.com> Date: Tue, 26 Aug 2025 02:26:20 +0800 Subject: [PATCH] [optimize] Optimize HomeScreen --- .../aether/service/RecentManager.kt | 23 ++++++++++--------- .../com/acitelight/aether/view/HomeScreen.kt | 5 ++-- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/acitelight/aether/service/RecentManager.kt b/app/src/main/java/com/acitelight/aether/service/RecentManager.kt index 64b23fc..65687dc 100644 --- a/app/src/main/java/com/acitelight/aether/service/RecentManager.kt +++ b/app/src/main/java/com/acitelight/aether/service/RecentManager.kt @@ -1,6 +1,7 @@ package com.acitelight.aether.service import android.content.Context +import androidx.compose.runtime.mutableStateListOf import com.acitelight.aether.model.Video import com.acitelight.aether.model.VideoQueryIndex import kotlinx.coroutines.Dispatchers @@ -50,11 +51,15 @@ object RecentManager try{ val r = Json.decodeFromString>(content) - val vn = r.map{ - MediaManager.queryVideo(it.klass, it.id) - }.filter { it != null } + recent.clear() + + for(it in r) + { + val v = MediaManager.queryVideo(it.klass, it.id) + if(v != null) + recent.add(recent.size, v) + } - _recent.value = vn.map { it!! } return r }catch (e: Exception) { @@ -74,6 +79,7 @@ object RecentManager { val temp = o[0] val index = o.indexOf(video) + recent.removeAt(index) o[0] = o[index] o[index] = temp } @@ -85,15 +91,10 @@ object RecentManager if(o.size >= 21) o.removeAt(o.size - 1) - val vn = o.map{ - MediaManager.queryVideo(it.klass, it.id) - }.filter { it != null } - _recent.value = vn.map { it!! } - + recent.add(0, MediaManager.queryVideo(video.klass, video.id)!!) writeFile(context, "recent.json", Json.encodeToString(o)) } } - private val _recent = MutableStateFlow>(emptyList()) - val recent: StateFlow> = _recent + val recent = mutableStateListOf