From b8aa11a7b447fb8048115bdd156c2aa9e3b16a07 Mon Sep 17 00:00:00 2001
From: tj <1378534974@qq.com>
Date: 星期二, 15 四月 2025 16:40:08 +0800
Subject: [PATCH] 1.3
---
app/src/main/java/com/example/firstapp/ui/home/HomeViewModel.kt | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 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 d40df61..0601ec9 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
@@ -19,6 +19,8 @@
import com.example.firstapp.util.SecureStorage
import com.example.firstapp.utils.PreferencesManager
import kotlinx.coroutines.launch
+import com.example.firstapp.database.repository.ReminderRecordRepository
+import com.example.firstapp.database.entity.ReminderRecord
class HomeViewModel : ViewModel() {
@@ -40,8 +42,12 @@
private val _visibleCategories = MutableLiveData<List<CategoryConfig>>()
val visibleCategories: LiveData<List<CategoryConfig>> = _visibleCategories
+ private val _unreadReminderCount = MutableLiveData<Int>()
+ val unreadReminderCount: LiveData<Int> = _unreadReminderCount
+
private lateinit var secureStorage: SecureStorage
private lateinit var currentUserId: String
+ private lateinit var reminderRecordRepository: ReminderRecordRepository
init {
// 初始化时加载包裹列表数据
@@ -53,9 +59,12 @@
fun initialize(context: Context, userId: String) {
secureStorage = SecureStorage(context)
currentUserId = userId
+ reminderRecordRepository = ReminderRecordRepository(context)
loadCategories()
// 初始化时更新可见分类
_categories.value?.let { updateVisibleCategories(it) }
+ // 加载未读提醒数量
+ checkUnreadReminders()
}
private fun loadDataByType(type: String) {
@@ -234,6 +243,18 @@
_visibleCategories.value = categories.filter { it.isEnabled }
}
+ // 添加检查未读提醒数量的方法
+ fun checkUnreadReminders() {
+ viewModelScope.launch {
+ try {
+ val unreadCount = reminderRecordRepository.getUnreadCount(ReminderRecord.STATUS_UNREAD)
+ _unreadReminderCount.postValue(unreadCount)
+ } catch (e: Exception) {
+ Log.e("HomeViewModel", "Failed to get unread reminder count: ${e.message}")
+ }
+ }
+ }
+
// 登出时不再清除本地数据
fun logout() {
// 只清除内存中的数据
--
Gitblit v1.9.3