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

Commit 1e034632 authored by Ellen Poe's avatar Ellen Poe
Browse files

fix: directions endpoint modification

parent 66c95594
Loading
Loading
Loading
Loading
+44 −27
Original line number Diff line number Diff line
@@ -148,19 +148,31 @@ fun DirectionsScreen(
        }
    }

    stringResource(string.change_start_location_to_my_location)

    Column(
        modifier = Modifier
            .fillMaxSize()
            .padding(horizontal = dimensionResource(dimen.padding))
    ) {
        if (!isAnyFieldFocused) {
        if (isAnyFieldFocused) {
            DirectionsScreenFocusedField(
                viewModel = viewModel,
                fieldFocusState = fieldFocusState,
                onFieldFocusStateChange = {
                    fieldFocusState = it
                    if (fieldFocusState != FieldFocusState.NONE) {
                        onFullExpansionRequired()
                    }
                },
                savedPlaces = savedPlaces,
                hasLocationPermission = hasLocationPermission,
                onRequestLocationPermission = onRequestLocationPermission,
                coroutineScope = coroutineScope
            )
        } else {
            DirectionsScreenFullUI(
                viewModel = viewModel,
                onPeekHeightChange = onPeekHeightChange,
                onBack = onBack,
                onFullExpansionRequired = onFullExpansionRequired,
                navController = navController,
                onFieldFocusStateChange = { fieldFocusState = it },
                fieldFocusState = fieldFocusState,
@@ -170,16 +182,6 @@ fun DirectionsScreen(
                hasNotificationPermission = hasNotificationPermission,
                onRequestNotificationPermission = onRequestNotificationPermission
            )
        } else {
            DirectionsScreenFocusedField(
                viewModel = viewModel,
                fieldFocusState = fieldFocusState,
                savedPlaces = savedPlaces,
                hasLocationPermission = hasLocationPermission,
                onRequestLocationPermission = onRequestLocationPermission,
                pendingLocationRequest = pendingLocationRequest,
                coroutineScope = coroutineScope
            )
        }
    }
}
@@ -189,7 +191,6 @@ private fun DirectionsScreenFullUI(
    viewModel: DirectionsViewModel,
    onPeekHeightChange: (Dp) -> Unit,
    onBack: () -> Unit,
    onFullExpansionRequired: () -> Job,
    navController: NavController,
    onFieldFocusStateChange: (FieldFocusState) -> Unit,
    fieldFocusState: FieldFocusState,
@@ -324,7 +325,12 @@ private fun DirectionsRouteResults(
) {
    val planState = viewModel.planState
    if (viewModel.selectedRoutingMode == RoutingMode.PUBLIC_TRANSPORT) {
        TransitRouteResults(planState = planState, navController = navController, viewModel = viewModel, appPreferences = appPreferences)
        TransitRouteResults(
            planState = planState,
            navController = navController,
            viewModel = viewModel,
            appPreferences = appPreferences
        )
    } else {
        NonTransitRouteResults(
            routeState = routeState,
@@ -445,10 +451,10 @@ private fun NonTransitRouteResults(
private fun DirectionsScreenFocusedField(
    viewModel: DirectionsViewModel,
    fieldFocusState: FieldFocusState,
    onFieldFocusStateChange: (FieldFocusState) -> Unit,
    savedPlaces: List<Place>,
    hasLocationPermission: Boolean,
    onRequestLocationPermission: () -> Unit,
    pendingLocationRequest: FieldFocusState?,
    coroutineScope: CoroutineScope
) {
    // Show only the focused field and search results when a field is focused
@@ -464,7 +470,11 @@ private fun DirectionsScreenFocusedField(
        },
        onTextChange = { viewModel.updateSearchQuery(it) },
        onTextFieldFocusChange = { isFocused ->

            if (isFocused) {
                onFieldFocusStateChange(fieldFocusState)
            } else {
                onFieldFocusStateChange(FieldFocusState.NONE)
            }
        },
        isFocused = true,
        modifier = Modifier
@@ -479,8 +489,8 @@ private fun DirectionsScreenFocusedField(
        savedPlaces = savedPlaces,
        hasLocationPermission = hasLocationPermission,
        onRequestLocationPermission = onRequestLocationPermission,
        pendingLocationRequest = pendingLocationRequest,
        coroutineScope = coroutineScope
        coroutineScope = coroutineScope,
        onFieldFocusStateChange = onFieldFocusStateChange,
    )
}

@@ -488,10 +498,10 @@ private fun DirectionsScreenFocusedField(
private fun FocusedFieldContent(
    viewModel: DirectionsViewModel,
    fieldFocusState: FieldFocusState,
    onFieldFocusStateChange: (FieldFocusState) -> Unit,
    savedPlaces: List<Place>,
    hasLocationPermission: Boolean,
    onRequestLocationPermission: () -> Unit,
    pendingLocationRequest: FieldFocusState?,
    coroutineScope: CoroutineScope
) {
    when {
@@ -506,15 +516,16 @@ private fun FocusedFieldContent(
                savedPlaces = savedPlaces,
                hasLocationPermission = hasLocationPermission,
                onRequestLocationPermission = onRequestLocationPermission,
                pendingLocationRequest = pendingLocationRequest,
                coroutineScope = coroutineScope
                coroutineScope = coroutineScope,
                onFieldFocusStateChange = onFieldFocusStateChange,
            )
        }

        else -> {
            SearchResultsContent(
                viewModel = viewModel,
                fieldFocusState = fieldFocusState
                fieldFocusState = fieldFocusState,
                onFieldFocusStateChange = onFieldFocusStateChange,
            )
        }
    }
@@ -523,7 +534,7 @@ private fun FocusedFieldContent(
@Composable
private fun SearchingIndicator() {
    Text(
        text = "Searching...",
        text = stringResource(string.searching),
        modifier = Modifier
            .fillMaxWidth()
            .padding(dimensionResource(dimen.padding))
@@ -534,10 +545,10 @@ private fun SearchingIndicator() {
private fun QuickSuggestionsContent(
    viewModel: DirectionsViewModel,
    fieldFocusState: FieldFocusState,
    onFieldFocusStateChange: (FieldFocusState) -> Unit,
    savedPlaces: List<Place>,
    hasLocationPermission: Boolean,
    onRequestLocationPermission: () -> Unit,
    pendingLocationRequest: FieldFocusState?,
    coroutineScope: CoroutineScope
) {
    QuickSuggestions(
@@ -546,11 +557,13 @@ private fun QuickSuggestionsContent(
            fieldFocusState = fieldFocusState,
            hasLocationPermission = hasLocationPermission,
            onRequestLocationPermission = onRequestLocationPermission,
            coroutineScope = coroutineScope
            coroutineScope = coroutineScope,
            onFieldFocusStateChange = onFieldFocusStateChange,
        ),
        savedPlaces = savedPlaces,
        onSavedPlaceSelected = { place ->
            updatePlaceForField(viewModel, fieldFocusState, place)
            onFieldFocusStateChange(FieldFocusState.NONE)
        },
        isGettingLocation = viewModel.isGettingLocation,
        modifier = Modifier.fillMaxWidth()
@@ -560,6 +573,7 @@ private fun QuickSuggestionsContent(
@Composable
private fun SearchResultsContent(
    viewModel: DirectionsViewModel,
    onFieldFocusStateChange: (FieldFocusState) -> Unit,
    fieldFocusState: FieldFocusState
) {
    SearchResults(
@@ -567,6 +581,7 @@ private fun SearchResultsContent(
        geocodeResults = deduplicateSearchResults(viewModel.geocodeResults.value),
        onPlaceSelected = { place ->
            updatePlaceForField(viewModel, fieldFocusState, place)
            onFieldFocusStateChange(FieldFocusState.NONE)
        },
        modifier = Modifier.fillMaxWidth()
    )
@@ -589,6 +604,7 @@ private fun handleMyLocationSelected(
    fieldFocusState: FieldFocusState,
    hasLocationPermission: Boolean,
    onRequestLocationPermission: () -> Unit,
    onFieldFocusStateChange: (FieldFocusState) -> Unit,
    coroutineScope: CoroutineScope
): () -> Unit = {
    if (hasLocationPermission) {
@@ -596,6 +612,7 @@ private fun handleMyLocationSelected(
            val myLocationPlace = viewModel.getCurrentLocationAsPlace()
            myLocationPlace?.let { place ->
                updatePlaceForField(viewModel, fieldFocusState, place)
                onFieldFocusStateChange(FieldFocusState.NONE)
            }
        }
    } else {
+1 −0
Original line number Diff line number Diff line
@@ -247,4 +247,5 @@
    <string name="imperial">Imperial</string>
    <string name="zoom_in">Zoom in</string>
    <string name="zoom_out">Zoom out</string>
    <string name="searching">Searching…</string>
</resources>