美文网首页
Android 架构组件 之 Data Store(10) -

Android 架构组件 之 Data Store(10) -

作者: 行走中的3卡 | 来源:发表于2022-11-14 11:29 被阅读0次

1. 更新userPreferencesFlow

private val userPreferencesFlow = userPreferencesRepository.userPreferencesFlow

以此取代 showCompletedFlow 和 sortOrderFlow

2. 修改 tasksUiModelFlow

因此1 的修改

private val tasksUiModelFlow = combine(
        repository.tasks,
        userPreferencesFlow
    ) { tasks: List<Task>, userPreferences: UserPreferences ->
        return@combine TasksUiModel(
            tasks = filterSortTasks(
                tasks,
                userPreferences.showCompleted,
                userPreferences.sortOrder
            ),
            showCompleted = userPreferences.showCompleted,
            sortOrder = userPreferences.sortOrder
        )
    }

3. 修改更新函数

均使用了协程调用, (dataStore.updateData)

fun showCompletedTasks(show: Boolean) {
    viewModelScope.launch {
        userPreferencesRepository.updateShowCompleted(show)
    }
}
fun enableSortByDeadline(enable: Boolean) {
    viewModelScope.launch {
       userPreferencesRepository.enableSortByDeadline(enable)
    }
}
fun enableSortByPriority(enable: Boolean) {
    viewModelScope.launch {
        userPreferencesRepository.enableSortByPriority(enable)
    }
}

至此, DataStore 的介绍已全部结束了.
官网介绍和源码参考下面的链接

参考文献:
https://developer.android.com/codelabs/android-proto-datastore#8
https://github.com/googlecodelabs/android-datastore/tree/proto_datastore
--- End --

相关文章

网友评论

      本文标题:Android 架构组件 之 Data Store(10) -

      本文链接:https://www.haomeiwen.com/subject/paxatdtx.html