美文网首页
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