From 1097c45d8d6aa4b74a50e8d9a99dedab73f2bbad Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期五, 28 二月 2025 13:35:07 +0800
Subject: [PATCH] add: 优化首页自动同步历史短信,和实时刷新包裹列表

---
 app/src/main/java/com/example/firstapp/ui/home/HomeViewModel.kt |   63 ++++++++++++++++++++++++-------
 1 files changed, 48 insertions(+), 15 deletions(-)

diff --git a/app/src/main/java/com/example/firstapp/ui/home/HomeViewModel.kt b/app/src/main/java/com/example/firstapp/ui/home/HomeViewModel.kt
index 630b6af..86c20bb 100644
--- a/app/src/main/java/com/example/firstapp/ui/home/HomeViewModel.kt
+++ b/app/src/main/java/com/example/firstapp/ui/home/HomeViewModel.kt
@@ -3,34 +3,67 @@
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.ViewModel
+import androidx.lifecycle.viewModelScope
 import com.example.firstapp.core.Core
 import com.example.firstapp.database.entity.Code
+import com.example.firstapp.model.ExpressGroup
+import com.example.firstapp.model.ExpressPackage
+import kotlinx.coroutines.launch
 
 class HomeViewModel : ViewModel() {
 
-    private val _text = MutableLiveData<String>().apply {
-        value = "短信主页面"
-    }
-    val text: LiveData<String> = _text
+//    private val _text = MutableLiveData<String>().apply {
+//        value = "短信主页面"
+//    }
+//    val text: LiveData<String> = _text
+//
+//    private val _codeList = MutableLiveData<List<Code>>()
+//
+//    val codeList: LiveData<List<Code>> get() = _codeList
 
-    private val _codeList = MutableLiveData<List<Code>>()
-
-    val codeList: LiveData<List<Code>> get() = _codeList
+    private val _expressItems = MutableLiveData<List<ExpressGroup>>()
+    val expressItems: LiveData<List<ExpressGroup>> = _expressItems
 
     init {
         // 初始化时加载数据
-        loadData()
+      //  loadData()
+        loadExpressData()
     }
 
     // 加载数据的方法
-    fun loadData() {
-        // 获取数据,并更新 LiveData
-        _codeList.value = Core.code.getAllDesc() // 假设这是获取最新的 data 的方法
-    }
+//    fun loadData() {
+//        // 获取数据,并更新 LiveData
+//        _codeList.value = Core.code.getAllDesc() // 假设这是获取最新的 data 的方法
+//    }
+//
+//    // 如果需要手动更新数据,可以调用这个方法
+//    fun updateData() {
+//        _codeList.value = Core.code.getAllDesc() // 重新获取并更新数据
+//    }
 
-    // 如果需要手动更新数据,可以调用这个方法
-    fun updateData() {
-        _codeList.value = Core.code.getAllDesc() // 重新获取并更新数据
+    fun loadExpressData() {
+        viewModelScope.launch {
+            // 1. 获取所有驿站类型的提醒设置
+            val stations = Core.reminder.getByType("驿站")
+            
+            // 2. 按驿站分组获取包裹信息
+            val groups = stations.map { station ->
+                val packages = Core.code.getByKeyword(station.nickname).map { code ->
+                    ExpressPackage(
+//                        id = code.id, //ID
+                        company = code.name, //快递公司
+                        trackingNumber = code.code, // 取件码
+                        date = code.overtime  //时间
+                    )
+                }
+                ExpressGroup(
+                    stationName = station.nickname,
+                    packages = packages
+                )
+            }
+            
+            _expressItems.postValue(groups)
+        }
     }
 
 }
\ No newline at end of file

--
Gitblit v1.9.3