Возможно ли сохранить логическое значение Proto Datastore со значением по умолчанию «true»?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Возможно ли сохранить логическое значение Proto Datastore со значением по умолчанию «true»?

Сообщение Anonymous »

В моем приложении я использую Proto Datastore для хранения пользовательских настроек.
Среди этих значений есть поле 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,
)
Я хочу, чтобы useVoiceReader создавался со значением по умолчанию true, но этого не происходит.
Это соответствующая часть моего класса 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»