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() val bitRate = text?.toIntOrNull()
if (bitRate == null) { if (bitRate == null) {
ValidationResult.Invalid(notNumberLabel) return@InputTextField ValidationResult.Invalid(notNumberLabel)
} }
if (bitRate !in 1..320) { if (bitRate !in 1..320) {
ValidationResult.Invalid(notInRangeLabel) return@InputTextField ValidationResult.Invalid(notInRangeLabel)
} }
ValidationResult.Valid ValidationResult.Valid
@ -92,7 +92,9 @@ fun BitrateTile(
) )
), ),
) { result -> ) { 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) updateValue(bitRate * 1000)
} }
@ -126,7 +128,7 @@ fun BitrateTile(
ExampleListRoulette( ExampleListRoulette(
items = AudioRecorderSettings.EXAMPLE_BITRATE_VALUES, items = AudioRecorderSettings.EXAMPLE_BITRATE_VALUES,
onItemSelected = ::updateValue, onItemSelected = ::updateValue,
) {bitRate -> ) { bitRate ->
Text( Text(
stringResource( stringResource(
R.string.format_kbps, R.string.format_kbps,

View File

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