Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f7b33eea authored by Ellen Poe's avatar Ellen Poe
Browse files

refactor: AdvancedSettingsScreen

parent f1970121
Loading
Loading
Loading
Loading
+357 −325
Original line number Diff line number Diff line
@@ -62,41 +62,8 @@ import earth.maps.cardinal.R.dimen
import earth.maps.cardinal.R.string
import earth.maps.cardinal.ui.core.TOOLBAR_HEIGHT_DP

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun AdvancedSettingsScreen(
    viewModel: SettingsViewModel = hiltViewModel<SettingsViewModel>()
) {
    val snackBarHostState = remember { SnackbarHostState() }
    Scaffold(
        snackbarHost = { SnackbarHost(snackBarHostState) },
        contentWindowInsets = WindowInsets.safeDrawing,
        topBar = {
            TopAppBar(title = {
                Text(
                    text = stringResource(string.advanced_settings_title),
                    style = MaterialTheme.typography.headlineMedium,
                    fontWeight = androidx.compose.ui.text.font.FontWeight.Bold
                )

            })
        },
        content = { padding ->
            Box(modifier = Modifier.padding(padding)) {

                Column(
                    modifier = Modifier
                        .fillMaxSize()
                        .verticalScroll(rememberScrollState())
                ) {

                    HorizontalDivider(
                        modifier = Modifier.padding(vertical = 8.dp),
                        thickness = DividerDefaults.Thickness,
                        color = MaterialTheme.colorScheme.outlineVariant
                    )

                    // Continuous Location Tracking
private fun ContinuousLocationTrackingSetting(viewModel: SettingsViewModel) {
    Column(
        modifier = Modifier
            .fillMaxWidth()
@@ -137,14 +104,10 @@ fun AdvancedSettingsScreen(
            )
        }
    }
}

                    HorizontalDivider(
                        modifier = Modifier.padding(vertical = 8.dp),
                        thickness = DividerDefaults.Thickness,
                        color = MaterialTheme.colorScheme.outlineVariant
                    )

                    // Show Zoom FABs
@Composable
private fun ShowZoomFabsSetting(viewModel: SettingsViewModel) {
    Column(
        modifier = Modifier
            .fillMaxWidth()
@@ -185,14 +148,10 @@ fun AdvancedSettingsScreen(
            )
        }
    }
}

                    HorizontalDivider(
                        modifier = Modifier.padding(vertical = 8.dp),
                        thickness = DividerDefaults.Thickness,
                        color = MaterialTheme.colorScheme.outlineVariant
                    )

                    // Time Format
@Composable
private fun TimeFormatSetting(viewModel: SettingsViewModel) {
    Column(
        modifier = Modifier
            .fillMaxWidth()
@@ -237,14 +196,10 @@ fun AdvancedSettingsScreen(
            )
        }
    }
}

                    HorizontalDivider(
                        modifier = Modifier.padding(vertical = 8.dp),
                        thickness = DividerDefaults.Thickness,
                        color = MaterialTheme.colorScheme.outlineVariant
                    )

                    // Distance Unit
@Composable
private fun DistanceUnitSetting(viewModel: SettingsViewModel) {
    Column(
        modifier = Modifier
            .fillMaxWidth()
@@ -292,16 +247,10 @@ fun AdvancedSettingsScreen(
            )
        }
    }
}

                    HorizontalDivider(
                        modifier = Modifier.padding(vertical = 8.dp),
                        thickness = DividerDefaults.Thickness,
                        color = MaterialTheme.colorScheme.outlineVariant
                    )

                    // NEW SETTINGS GO HERE.

                    // Pelias Base URL
@Composable
private fun PeliasBaseUrlSetting(viewModel: SettingsViewModel) {
    Column(
        modifier = Modifier
            .fillMaxWidth()
@@ -336,14 +285,10 @@ fun AdvancedSettingsScreen(
            keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Uri)
        )
    }
}

                    HorizontalDivider(
                        modifier = Modifier.padding(vertical = 8.dp),
                        thickness = DividerDefaults.Thickness,
                        color = MaterialTheme.colorScheme.outlineVariant
                    )

                    // Pelias API Key
@Composable
private fun PeliasApiKeySetting(viewModel: SettingsViewModel) {
    Column(
        modifier = Modifier
            .fillMaxWidth()
@@ -383,14 +328,10 @@ fun AdvancedSettingsScreen(
            keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password)
        )
    }
}

                    HorizontalDivider(
                        modifier = Modifier.padding(vertical = 8.dp),
                        thickness = DividerDefaults.Thickness,
                        color = MaterialTheme.colorScheme.outlineVariant
                    )

                    // Valhalla Base URL
@Composable
private fun ValhallaBaseUrlSetting(viewModel: SettingsViewModel) {
    Column(
        modifier = Modifier
            .fillMaxWidth()
@@ -425,14 +366,10 @@ fun AdvancedSettingsScreen(
            keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Uri)
        )
    }
}

                    HorizontalDivider(
                        modifier = Modifier.padding(vertical = 8.dp),
                        thickness = DividerDefaults.Thickness,
                        color = MaterialTheme.colorScheme.outlineVariant
                    )

                    // Valhalla API Key
@Composable
private fun ValhallaApiKeySetting(viewModel: SettingsViewModel) {
    Column(
        modifier = Modifier
            .fillMaxWidth()
@@ -472,6 +409,101 @@ fun AdvancedSettingsScreen(
            keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password)
        )
    }
}

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun AdvancedSettingsScreen(
    viewModel: SettingsViewModel = hiltViewModel<SettingsViewModel>()
) {
    val snackBarHostState = remember { SnackbarHostState() }
    Scaffold(
        snackbarHost = { SnackbarHost(snackBarHostState) },
        contentWindowInsets = WindowInsets.safeDrawing,
        topBar = {
            TopAppBar(title = {
                Text(
                    text = stringResource(string.advanced_settings_title),
                    style = MaterialTheme.typography.headlineMedium,
                    fontWeight = androidx.compose.ui.text.font.FontWeight.Bold
                )

            })
        },
        content = { padding ->
            Box(modifier = Modifier.padding(padding)) {

                Column(
                    modifier = Modifier
                        .fillMaxSize()
                        .verticalScroll(rememberScrollState())
                ) {

                    HorizontalDivider(
                        modifier = Modifier.padding(vertical = 8.dp),
                        thickness = DividerDefaults.Thickness,
                        color = MaterialTheme.colorScheme.outlineVariant
                    )

                    ContinuousLocationTrackingSetting(viewModel)

                    HorizontalDivider(
                        modifier = Modifier.padding(vertical = 8.dp),
                        thickness = DividerDefaults.Thickness,
                        color = MaterialTheme.colorScheme.outlineVariant
                    )

                    ShowZoomFabsSetting(viewModel)

                    HorizontalDivider(
                        modifier = Modifier.padding(vertical = 8.dp),
                        thickness = DividerDefaults.Thickness,
                        color = MaterialTheme.colorScheme.outlineVariant
                    )

                    TimeFormatSetting(viewModel)

                    HorizontalDivider(
                        modifier = Modifier.padding(vertical = 8.dp),
                        thickness = DividerDefaults.Thickness,
                        color = MaterialTheme.colorScheme.outlineVariant
                    )

                    DistanceUnitSetting(viewModel)

                    HorizontalDivider(
                        modifier = Modifier.padding(vertical = 8.dp),
                        thickness = DividerDefaults.Thickness,
                        color = MaterialTheme.colorScheme.outlineVariant
                    )

                    // NEW SETTINGS GO HERE.

                    PeliasBaseUrlSetting(viewModel)

                    HorizontalDivider(
                        modifier = Modifier.padding(vertical = 8.dp),
                        thickness = DividerDefaults.Thickness,
                        color = MaterialTheme.colorScheme.outlineVariant
                    )

                    PeliasApiKeySetting(viewModel)

                    HorizontalDivider(
                        modifier = Modifier.padding(vertical = 8.dp),
                        thickness = DividerDefaults.Thickness,
                        color = MaterialTheme.colorScheme.outlineVariant
                    )

                    ValhallaBaseUrlSetting(viewModel)

                    HorizontalDivider(
                        modifier = Modifier.padding(vertical = 8.dp),
                        thickness = DividerDefaults.Thickness,
                        color = MaterialTheme.colorScheme.outlineVariant
                    )

                    ValhallaApiKeySetting(viewModel)

                    Spacer(
                        modifier = Modifier