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

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

Сообщение Anonymous »

В моем приложении я использую Proto Datastore для хранения пользовательских настроек.
Среди этих значений есть поле useVoiceReader логического типа, которое создается со значением по умолчанию. значение false.
Есть ли способ принудительно создать это поле со значением по умолчанию true? p>
Это класс, который служит моделью для предпочтений.

Код: Выделить всё

data class UserData(
val themeBrand: ThemeBrand,
val shouldHideOnboarding: Boolean,
val dynamic: UserDataDynamic
)

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 }
}
}

}
Вот соответствующие части моего файла прототипа:

Код: Выделить всё

syntax = "proto3";

option java_package = "***";
option java_multiple_files = true;

message UserPreferences {
reserved 2;

// ...

ThemeBrandProto theme_brand = 16;
DarkThemeConfigProto dark_theme_config = 17;
RubricColorProto rubric_color = 18;

bool should_hide_onboarding = 19;

bool use_dynamic_color = 21;

bool use_voice_reader = 22;

bool use_multiple_invitatory = 23;

// NEXT AVAILABLE ID: 24

}
Изображение


Подробнее здесь: https://stackoverflow.com/questions/793 ... -default-v
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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