From b653b90d4598ee2a65bceffa793bb75353b6d186 Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期三, 26 二月 2025 17:21:53 +0800 Subject: [PATCH] add: 快递列表展示 --- app/src/main/java/com/example/firstapp/ui/home/HomeViewModel.kt | 62 +++++++++++++++++++++++------- 1 files changed, 47 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..a8b15bf 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,66 @@ 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( + 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