ReaderTTSVoice.fromJson constructor
ReaderTTSVoice.fromJson(
- Map<String, dynamic> json
)
Implementation
factory ReaderTTSVoice.fromJson(final Map<String, dynamic> json) {
final jsonObject = Map<String, dynamic>.of(json);
final identifier = jsonObject.optString('identifier', remove: true);
final name = jsonObject.optNullableString('name', remove: true) ?? identifier;
final language = jsonObject.optString('language', remove: true);
final networkRequired = jsonObject.optBoolean('networkRequired', remove: true);
final active = jsonObject.optNullableBoolean('active', remove: true);
final gender = TTSVoiceGender.fromString(jsonObject.optString('gender', remove: true));
final qualityStr = jsonObject.optNullableString('quality', remove: true);
TTSVoiceQuality? quality;
if (qualityStr != null) {
try {
quality = TTSVoiceQuality.optFromString(qualityStr);
if (quality == null) {
ReadiumLog.w('Unknown TTSVoiceQuality value: $qualityStr, defaulting to null.');
}
// ignore: avoid_catches_without_on_clauses
} catch (e) {
ReadiumLog.w('Unknown TTSVoiceQuality value: $qualityStr, defaulting to null.');
quality = null;
}
}
return ReaderTTSVoice(
identifier: identifier,
name: name,
language: language,
networkRequired: networkRequired,
gender: gender,
quality: quality,
active: active,
);
}