Среди этих значений есть поле useVoiceReader логического типа, которое создается со значением по умолчанию. значение false.
Есть ли способ принудительно создать это поле со значением по умолчанию true? p>
Это класс, который служит моделью для предпочтений.
Код: Выделить всё
data class UserData(
val bookmarkedNewsResources: Set,
val viewedNewsResources: Set,
val followedTopics: Set,
val themeBrand: ThemeBrand,
val shouldHideOnboarding: Boolean,
val dynamic: UserDataDynamic
val useDynamicColor: Boolean,
val useVoiceReader:Boolean,
val useMultipleInvitatory:Boolean,*/
)
data class UserDataDynamic(
val darkThemeConfig: DarkThemeConfig,
val useDynamicColor: Boolean,
val useVoiceReader: Boolean = true,
val useMultipleInvitatory: Boolean,
val rubricColor: RubricColorConfig,
)
Это соответствующая часть моего класса PreferencesDataSource:
Код: Выделить всё
class PreferencesDataSource @Inject constructor(
private val userPreferences: DataStore,
) {
val userData = userPreferences.data
.map {
UserData(
bookmarkedNewsResources = it.bookmarkedNewsResourceIdsMap.keys,
viewedNewsResources = it.viewedNewsResourceIdsMap.keys,
followedTopics = it.followedTopicIdsMap.keys,
themeBrand = when (it.themeBrand) {
null,
ThemeBrandProto.THEME_BRAND_UNSPECIFIED,
ThemeBrandProto.UNRECOGNIZED,
ThemeBrandProto.THEME_BRAND_DEFAULT,
-> ThemeBrand.DEFAULT
ThemeBrandProto.THEME_BRAND_ANDROID -> ThemeBrand.ANDROID
},
shouldHideOnboarding = it.shouldHideOnboarding,
dynamic = UserDataDynamic(
darkThemeConfig = when (it.darkThemeConfig) {
null,
DarkThemeConfigProto.DARK_THEME_CONFIG_UNSPECIFIED,
DarkThemeConfigProto.UNRECOGNIZED,
DarkThemeConfigProto.DARK_THEME_CONFIG_FOLLOW_SYSTEM,
->
DarkThemeConfig.FOLLOW_SYSTEM
DarkThemeConfigProto.DARK_THEME_CONFIG_LIGHT ->
DarkThemeConfig.LIGHT
DarkThemeConfigProto.DARK_THEME_CONFIG_DARK -> DarkThemeConfig.DARK
},
rubricColor = when (it.rubricColor) {
null,
RubricColorProto.RUBRIC_COLOR_LIGHT,
->
RubricColorConfig.LIGHT
RubricColorProto.RUBRIC_COLOR_DARK,
->
RubricColorConfig.DARK
RubricColorProto.UNRECOGNIZED -> RubricColorConfig.LIGHT
},
useDynamicColor = it.useDynamicColor,
useVoiceReader = it.useVoiceReader,
useMultipleInvitatory = it.useMultipleInvitatory
)
)
}
suspend fun setVoiceReaderPreference(useVoiceReader: Boolean) {
userPreferences.updateData {
it.copy { this.useVoiceReader = useVoiceReader }
}
}
}

Подробнее здесь: https://stackoverflow.com/questions/793 ... -default-v