mirror of
https://github.com/Myzel394/Alibi.git
synced 2025-06-18 23:05:26 +02:00
feat: Add header to settings dialog
This commit is contained in:
parent
236a0d04e7
commit
a1895afafb
@ -2,6 +2,7 @@ package app.myzel394.alibi.ui.components.SettingsScreen.atoms
|
|||||||
|
|
||||||
import androidx.compose.foundation.text.KeyboardOptions
|
import androidx.compose.foundation.text.KeyboardOptions
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
|
import androidx.compose.material.icons.filled.Mic
|
||||||
import androidx.compose.material.icons.filled.Tune
|
import androidx.compose.material.icons.filled.Tune
|
||||||
import androidx.compose.material3.Button
|
import androidx.compose.material3.Button
|
||||||
import androidx.compose.material3.ButtonDefaults
|
import androidx.compose.material3.ButtonDefaults
|
||||||
@ -21,6 +22,8 @@ import app.myzel394.alibi.db.AppSettings
|
|||||||
import app.myzel394.alibi.db.AudioRecorderSettings
|
import app.myzel394.alibi.db.AudioRecorderSettings
|
||||||
import app.myzel394.alibi.ui.components.atoms.ExampleListRoulette
|
import app.myzel394.alibi.ui.components.atoms.ExampleListRoulette
|
||||||
import app.myzel394.alibi.ui.components.atoms.SettingsTile
|
import app.myzel394.alibi.ui.components.atoms.SettingsTile
|
||||||
|
import app.myzel394.alibi.ui.utils.IconResource
|
||||||
|
import com.maxkeppeker.sheets.core.models.base.Header
|
||||||
import com.maxkeppeker.sheets.core.models.base.IconSource
|
import com.maxkeppeker.sheets.core.models.base.IconSource
|
||||||
import com.maxkeppeker.sheets.core.models.base.rememberUseCaseState
|
import com.maxkeppeker.sheets.core.models.base.rememberUseCaseState
|
||||||
import com.maxkeppeler.sheets.input.InputDialog
|
import com.maxkeppeler.sheets.input.InputDialog
|
||||||
@ -56,12 +59,18 @@ fun BitrateTile() {
|
|||||||
val notInRangeLabel = stringResource(R.string.form_error_value_notInRange, 1, 320)
|
val notInRangeLabel = stringResource(R.string.form_error_value_notInRange, 1, 320)
|
||||||
InputDialog(
|
InputDialog(
|
||||||
state = showDialog,
|
state = showDialog,
|
||||||
|
header = Header.Default(
|
||||||
|
title = stringResource(R.string.ui_settings_option_bitrate_title),
|
||||||
|
icon = IconSource(
|
||||||
|
painter = IconResource.fromImageVector(Icons.Default.Tune).asPainterResource(),
|
||||||
|
contentDescription = null,
|
||||||
|
)
|
||||||
|
),
|
||||||
selection = InputSelection(
|
selection = InputSelection(
|
||||||
input = listOf(
|
input = listOf(
|
||||||
InputTextField(
|
InputTextField(
|
||||||
header = InputHeader(
|
header = InputHeader(
|
||||||
title = stringResource(id = R.string.ui_settings_option_bitrate_explanation),
|
title = stringResource(id = R.string.ui_settings_option_bitrate_explanation),
|
||||||
icon = IconSource(Icons.Default.Tune),
|
|
||||||
),
|
),
|
||||||
keyboardOptions = KeyboardOptions(
|
keyboardOptions = KeyboardOptions(
|
||||||
keyboardType = KeyboardType.Number,
|
keyboardType = KeyboardType.Number,
|
||||||
|
@ -2,6 +2,7 @@ package app.myzel394.alibi.ui.components.SettingsScreen.atoms
|
|||||||
|
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
import androidx.compose.material.icons.filled.Mic
|
import androidx.compose.material.icons.filled.Mic
|
||||||
|
import androidx.compose.material.icons.filled.Timer
|
||||||
import androidx.compose.material3.Button
|
import androidx.compose.material3.Button
|
||||||
import androidx.compose.material3.ButtonDefaults
|
import androidx.compose.material3.ButtonDefaults
|
||||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||||
@ -19,7 +20,10 @@ import app.myzel394.alibi.db.AppSettings
|
|||||||
import app.myzel394.alibi.db.AudioRecorderSettings
|
import app.myzel394.alibi.db.AudioRecorderSettings
|
||||||
import app.myzel394.alibi.ui.components.atoms.ExampleListRoulette
|
import app.myzel394.alibi.ui.components.atoms.ExampleListRoulette
|
||||||
import app.myzel394.alibi.ui.components.atoms.SettingsTile
|
import app.myzel394.alibi.ui.components.atoms.SettingsTile
|
||||||
|
import app.myzel394.alibi.ui.utils.IconResource
|
||||||
import app.myzel394.alibi.ui.utils.formatDuration
|
import app.myzel394.alibi.ui.utils.formatDuration
|
||||||
|
import com.maxkeppeker.sheets.core.models.base.Header
|
||||||
|
import com.maxkeppeker.sheets.core.models.base.IconSource
|
||||||
import com.maxkeppeker.sheets.core.models.base.rememberUseCaseState
|
import com.maxkeppeker.sheets.core.models.base.rememberUseCaseState
|
||||||
import com.maxkeppeler.sheets.duration.DurationDialog
|
import com.maxkeppeler.sheets.duration.DurationDialog
|
||||||
import com.maxkeppeler.sheets.duration.models.DurationConfig
|
import com.maxkeppeler.sheets.duration.models.DurationConfig
|
||||||
@ -51,6 +55,13 @@ fun IntervalDurationTile() {
|
|||||||
|
|
||||||
DurationDialog(
|
DurationDialog(
|
||||||
state = showDialog,
|
state = showDialog,
|
||||||
|
header = Header.Default(
|
||||||
|
title = stringResource(R.string.ui_settings_option_intervalDuration_title),
|
||||||
|
icon = IconSource(
|
||||||
|
painter = IconResource.fromImageVector(Icons.Default.Mic).asPainterResource(),
|
||||||
|
contentDescription = null,
|
||||||
|
)
|
||||||
|
),
|
||||||
selection = DurationSelection { newTimeInSeconds ->
|
selection = DurationSelection { newTimeInSeconds ->
|
||||||
updateValue(newTimeInSeconds * 1000L)
|
updateValue(newTimeInSeconds * 1000L)
|
||||||
},
|
},
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package app.myzel394.alibi.ui.components.SettingsScreen.atoms
|
package app.myzel394.alibi.ui.components.SettingsScreen.atoms
|
||||||
|
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
|
import androidx.compose.material.icons.filled.Memory
|
||||||
import androidx.compose.material.icons.filled.Timer
|
import androidx.compose.material.icons.filled.Timer
|
||||||
import androidx.compose.material3.Button
|
import androidx.compose.material3.Button
|
||||||
import androidx.compose.material3.ButtonDefaults
|
import androidx.compose.material3.ButtonDefaults
|
||||||
@ -19,7 +20,10 @@ import app.myzel394.alibi.db.AppSettings
|
|||||||
import app.myzel394.alibi.db.AudioRecorderSettings
|
import app.myzel394.alibi.db.AudioRecorderSettings
|
||||||
import app.myzel394.alibi.ui.components.atoms.ExampleListRoulette
|
import app.myzel394.alibi.ui.components.atoms.ExampleListRoulette
|
||||||
import app.myzel394.alibi.ui.components.atoms.SettingsTile
|
import app.myzel394.alibi.ui.components.atoms.SettingsTile
|
||||||
|
import app.myzel394.alibi.ui.utils.IconResource
|
||||||
import app.myzel394.alibi.ui.utils.formatDuration
|
import app.myzel394.alibi.ui.utils.formatDuration
|
||||||
|
import com.maxkeppeker.sheets.core.models.base.Header
|
||||||
|
import com.maxkeppeker.sheets.core.models.base.IconSource
|
||||||
import com.maxkeppeker.sheets.core.models.base.rememberUseCaseState
|
import com.maxkeppeker.sheets.core.models.base.rememberUseCaseState
|
||||||
import com.maxkeppeler.sheets.duration.DurationDialog
|
import com.maxkeppeler.sheets.duration.DurationDialog
|
||||||
import com.maxkeppeler.sheets.duration.models.DurationConfig
|
import com.maxkeppeler.sheets.duration.models.DurationConfig
|
||||||
@ -50,6 +54,13 @@ fun MaxDurationTile() {
|
|||||||
|
|
||||||
DurationDialog(
|
DurationDialog(
|
||||||
state = showDialog,
|
state = showDialog,
|
||||||
|
header = Header.Default(
|
||||||
|
title = stringResource(R.string.ui_settings_option_maxDuration_title),
|
||||||
|
icon = IconSource(
|
||||||
|
painter = IconResource.fromImageVector(Icons.Default.Timer).asPainterResource(),
|
||||||
|
contentDescription = null,
|
||||||
|
)
|
||||||
|
),
|
||||||
selection = DurationSelection { newTimeInSeconds ->
|
selection = DurationSelection { newTimeInSeconds ->
|
||||||
updateValue(newTimeInSeconds * 1000L)
|
updateValue(newTimeInSeconds * 1000L)
|
||||||
},
|
},
|
||||||
|
@ -3,6 +3,7 @@ package app.myzel394.alibi.ui.components.SettingsScreen.atoms
|
|||||||
import androidx.compose.foundation.text.KeyboardOptions
|
import androidx.compose.foundation.text.KeyboardOptions
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
import androidx.compose.material.icons.filled.RadioButtonChecked
|
import androidx.compose.material.icons.filled.RadioButtonChecked
|
||||||
|
import androidx.compose.material.icons.filled.Tune
|
||||||
import androidx.compose.material3.Button
|
import androidx.compose.material3.Button
|
||||||
import androidx.compose.material3.ButtonDefaults
|
import androidx.compose.material3.ButtonDefaults
|
||||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||||
@ -21,6 +22,8 @@ import app.myzel394.alibi.db.AppSettings
|
|||||||
import app.myzel394.alibi.db.AudioRecorderSettings
|
import app.myzel394.alibi.db.AudioRecorderSettings
|
||||||
import app.myzel394.alibi.ui.components.atoms.ExampleListRoulette
|
import app.myzel394.alibi.ui.components.atoms.ExampleListRoulette
|
||||||
import app.myzel394.alibi.ui.components.atoms.SettingsTile
|
import app.myzel394.alibi.ui.components.atoms.SettingsTile
|
||||||
|
import app.myzel394.alibi.ui.utils.IconResource
|
||||||
|
import com.maxkeppeker.sheets.core.models.base.Header
|
||||||
import com.maxkeppeker.sheets.core.models.base.IconSource
|
import com.maxkeppeker.sheets.core.models.base.IconSource
|
||||||
import com.maxkeppeker.sheets.core.models.base.rememberUseCaseState
|
import com.maxkeppeker.sheets.core.models.base.rememberUseCaseState
|
||||||
import com.maxkeppeler.sheets.input.InputDialog
|
import com.maxkeppeler.sheets.input.InputDialog
|
||||||
@ -56,12 +59,18 @@ fun SamplingRateTile() {
|
|||||||
val mustBeGreaterThanLabel = stringResource(R.string.form_error_value_mustBeGreaterThan, 1000)
|
val mustBeGreaterThanLabel = stringResource(R.string.form_error_value_mustBeGreaterThan, 1000)
|
||||||
InputDialog(
|
InputDialog(
|
||||||
state = showDialog,
|
state = showDialog,
|
||||||
|
header = Header.Default(
|
||||||
|
title = stringResource(R.string.ui_settings_option_samplingRate_title),
|
||||||
|
icon = IconSource(
|
||||||
|
painter = IconResource.fromImageVector(Icons.Default.RadioButtonChecked).asPainterResource(),
|
||||||
|
contentDescription = null,
|
||||||
|
)
|
||||||
|
),
|
||||||
selection = InputSelection(
|
selection = InputSelection(
|
||||||
input = listOf(
|
input = listOf(
|
||||||
InputTextField(
|
InputTextField(
|
||||||
header = InputHeader(
|
header = InputHeader(
|
||||||
title = stringResource(R.string.ui_settings_option_samplingRate_explanation),
|
title = stringResource(R.string.ui_settings_option_samplingRate_explanation),
|
||||||
icon = IconSource(Icons.Default.RadioButtonChecked),
|
|
||||||
),
|
),
|
||||||
keyboardOptions = KeyboardOptions(
|
keyboardOptions = KeyboardOptions(
|
||||||
keyboardType = KeyboardType.Number,
|
keyboardType = KeyboardType.Number,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user