cloudroam
2025-04-11 cb99bd7dad1b305a434c5c6c99ca65e782eb0f34
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() {
        // 只清除内存中的数据