Merge pull request #52 from Myzel394/fix-crash

fix: Fix crash on invalid value input
This commit is contained in:
Myzel394 2023-11-20 08:42:44 +01:00 committed by GitHub
commit e6ae9cbcb7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 12 deletions

View File

@ -79,11 +79,11 @@ fun BitrateTile(
val bitRate = text?.toIntOrNull()
if (bitRate == null) {
ValidationResult.Invalid(notNumberLabel)
return@InputTextField ValidationResult.Invalid(notNumberLabel)
}
if (bitRate !in 1..320) {
ValidationResult.Invalid(notInRangeLabel)
return@InputTextField ValidationResult.Invalid(notInRangeLabel)
}
ValidationResult.Valid
@ -92,7 +92,9 @@ fun BitrateTile(
)
),
) { result ->
val bitRate = result.getString("bitrate")?.toIntOrNull() ?: throw IllegalStateException("Bitrate is null")
val bitRate = result.getString("bitrate")?.toIntOrNull() ?: throw IllegalStateException(
"Bitrate is null"
)
updateValue(bitRate * 1000)
}
@ -126,7 +128,7 @@ fun BitrateTile(
ExampleListRoulette(
items = AudioRecorderSettings.EXAMPLE_BITRATE_VALUES,
onItemSelected = ::updateValue,
) {bitRate ->
) { bitRate ->
Text(
stringResource(
R.string.format_kbps,

View File

@ -60,7 +60,8 @@ fun SamplingRateTile(
header = Header.Default(
title = stringResource(R.string.ui_settings_option_samplingRate_title),
icon = IconSource(
painter = IconResource.fromImageVector(Icons.Default.RadioButtonChecked).asPainterResource(),
painter = IconResource.fromImageVector(Icons.Default.RadioButtonChecked)
.asPainterResource(),
contentDescription = null,
)
),
@ -79,11 +80,11 @@ fun SamplingRateTile(
val samplingRate = text?.toIntOrNull()
if (samplingRate == null) {
ValidationResult.Invalid(notNumberLabel)
return@InputTextField ValidationResult.Invalid(notNumberLabel)
}
if (samplingRate!! <= 1000) {
ValidationResult.Invalid(mustBeGreaterThanLabel)
if (samplingRate <= 1000) {
return@InputTextField ValidationResult.Invalid(mustBeGreaterThanLabel)
}
ValidationResult.Valid
@ -92,7 +93,8 @@ fun SamplingRateTile(
)
),
) { result ->
val samplingRate = result.getString("samplingRate")?.toIntOrNull() ?: throw IllegalStateException("SamplingRate is null")
val samplingRate = result.getString("samplingRate")?.toIntOrNull()
?: throw IllegalStateException("SamplingRate is null")
updateValue(samplingRate)
}
@ -115,7 +117,8 @@ fun SamplingRateTile(
shape = MaterialTheme.shapes.medium,
) {
Text(
(settings.audioRecorderSettings.samplingRate ?: stringResource(R.string.ui_settings_value_auto_label)).toString()
(settings.audioRecorderSettings.samplingRate
?: stringResource(R.string.ui_settings_value_auto_label)).toString()
)
}
},
@ -123,9 +126,10 @@ fun SamplingRateTile(
ExampleListRoulette(
items = AudioRecorderSettings.EXAMPLE_SAMPLING_RATE,
onItemSelected = ::updateValue,
) {samplingRate ->
) { samplingRate ->
Text(
(samplingRate ?: stringResource(R.string.ui_settings_value_auto_label)).toString()
(samplingRate
?: stringResource(R.string.ui_settings_value_auto_label)).toString()
)
}
}