From cb99bd7dad1b305a434c5c6c99ca65e782eb0f34 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期五, 11 四月 2025 17:32:12 +0800
Subject: [PATCH] add: 消息提醒

---
 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