Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,22 @@ import cl.emilym.sinatra.FeatureFlag
import cl.emilym.sinatra.data.repository.Preference
import cl.emilym.sinatra.lib.FloatRange
import cl.emilym.sinatra.ui.text
import cl.emilym.sinatra.ui.widgets.form.HorizontalLockup
import cl.emilym.sinatra.ui.widgets.form.PreferencesCheckbox
import cl.emilym.sinatra.ui.widgets.form.HorizontalPreferencesCheckboxLockup
import cl.emilym.sinatra.ui.widgets.form.PreferencesFloatSlider
import cl.emilym.sinatra.ui.widgets.form.VerticalLockup
import cl.emilym.sinatra.ui.widgets.value
import org.jetbrains.compose.resources.stringResource
import sinatra.ui.generated.resources.Res
import sinatra.ui.generated.resources.preferences_routing_title
import sinatra.ui.generated.resources.preferences_setting_bikes
import sinatra.ui.generated.resources.preferences_setting_bikes_subtitle
import sinatra.ui.generated.resources.preferences_setting_max_walking
import sinatra.ui.generated.resources.preferences_setting_wheelchair
import sinatra.ui.generated.resources.preferences_setting_wheelchair_subtitle
import sinatra.ui.generated.resources.preferences_routing_title
import sinatra.ui.generated.resources.preferences_setting_school_service
import sinatra.ui.generated.resources.preferences_setting_school_service_subtitle
import sinatra.ui.generated.resources.preferences_setting_show_accessibility_icons_navigation
import sinatra.ui.generated.resources.preferences_setting_show_accessibility_icons_navigation_subtitle
import sinatra.ui.generated.resources.preferences_setting_wheelchair
import sinatra.ui.generated.resources.preferences_setting_wheelchair_subtitle
import kotlin.time.Duration.Companion.minutes

class RoutingPreferencesScreen: PreferencesScreen() {
Expand All @@ -45,41 +44,37 @@ class RoutingPreferencesScreen: PreferencesScreen() {
val showSchoolServiceSettings = FeatureFlag.GLOBAL_ENABLE_SCHOOL_SERVICES.value()

if (showAccessibilitySettings) {
HorizontalLockup(
HorizontalPreferencesCheckboxLockup(
Preference.RequiresWheelchair,
stringResource(Res.string.preferences_setting_wheelchair),
stringResource(Res.string.preferences_setting_wheelchair_subtitle),
Modifier.fillMaxWidth()
) {
PreferencesCheckbox(Preference.RequiresWheelchair)
}
)

HorizontalLockup(
HorizontalPreferencesCheckboxLockup(
Preference.RequiresBikes,
stringResource(Res.string.preferences_setting_bikes),
stringResource(Res.string.preferences_setting_bikes_subtitle),
Modifier.fillMaxWidth()
) {
PreferencesCheckbox(Preference.RequiresBikes)
}
)
}

if (showSchoolServiceSettings) {
HorizontalLockup(
HorizontalPreferencesCheckboxLockup(
Preference.ShowSchoolServices,
stringResource(Res.string.preferences_setting_school_service),
stringResource(Res.string.preferences_setting_school_service_subtitle),
Modifier.fillMaxWidth()
) {
PreferencesCheckbox(Preference.ShowSchoolServices)
}
)
}

if (showAccessibilitySettings) {
HorizontalLockup(
HorizontalPreferencesCheckboxLockup(
Preference.ShowAccessibilityIconsNavigation,
stringResource(Res.string.preferences_setting_show_accessibility_icons_navigation),
stringResource(Res.string.preferences_setting_show_accessibility_icons_navigation_subtitle),
Modifier.fillMaxWidth()
) {
PreferencesCheckbox(Preference.ShowAccessibilityIconsNavigation)
}
)
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ import cafe.adriel.voyager.core.screen.ScreenKey
import cl.emilym.sinatra.data.models.Time24HSetting
import cl.emilym.sinatra.data.repository.Preference
import cl.emilym.sinatra.ui.widgets.form.DropdownOption
import cl.emilym.sinatra.ui.widgets.form.HorizontalLockup
import cl.emilym.sinatra.ui.widgets.form.PreferencesCheckbox
import cl.emilym.sinatra.ui.widgets.form.HorizontalPreferencesCheckboxLockup
import cl.emilym.sinatra.ui.widgets.form.PreferencesDropdown
import cl.emilym.sinatra.ui.widgets.form.VerticalLockup
import org.jetbrains.compose.resources.stringResource
Expand All @@ -35,13 +34,12 @@ class UnitsPreferencesScreen: PreferencesScreen() {

@Composable
override fun ColumnScope.Preferences() {
HorizontalLockup(
HorizontalPreferencesCheckboxLockup(
Preference.CountdownUntilArrival,
stringResource(Res.string.preferences_setting_countdown),
stringResource(Res.string.preferences_setting_countdown_subtitle),
Modifier.fillMaxWidth()
) {
PreferencesCheckbox(Preference.CountdownUntilArrival)
}
)

VerticalLockup(
stringResource(Res.string.preferences_setting_metric),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package cl.emilym.sinatra.ui.widgets.form
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import cl.emilym.sinatra.data.repository.Preference
import cl.emilym.sinatra.ui.widgets.noRippleClickable
import cl.emilym.sinatra.ui.widgets.rememberPreferenceState

@Composable
Expand All @@ -16,4 +17,26 @@ fun PreferencesCheckbox(
{ value = it },
modifier
)
}

@Composable
fun HorizontalPreferencesCheckboxLockup(
preference: Preference<Boolean>,
title: String,
subtitle: String?,
modifier: Modifier = Modifier
) {
var value by rememberPreferenceState(preference)
HorizontalLockup(
title,
subtitle,
Modifier.then(modifier).noRippleClickable({
value = !value
})
) {
SinatraCheckbox(
value,
{ value = it },
)
}
}