Loading cardinal-android/app/src/main/java/earth/maps/cardinal/ui/core/AppContent.kt +6 −2 Original line number Diff line number Diff line Loading @@ -34,12 +34,14 @@ import androidx.compose.foundation.background import androidx.compose.foundation.border import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.isImeVisible import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.safeContent import androidx.compose.foundation.layout.safeDrawing Loading Loading @@ -1305,7 +1307,9 @@ private fun HomeScreenComposable( } @OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterial3ExpressiveApi::class) @OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterial3ExpressiveApi::class, ExperimentalLayoutApi::class ) @Composable fun CardinalAppScaffold( scaffoldState: BottomSheetScaffoldState, Loading @@ -1322,7 +1326,7 @@ fun CardinalAppScaffold( val handleHeight = 48.dp // If toolbar is visible, add padding for it below the scaffold val bottomPadding = if (showToolbar) TOOLBAR_HEIGHT_DP else 0.dp val bottomPadding = if (showToolbar && !WindowInsets.isImeVisible) TOOLBAR_HEIGHT_DP else 0.dp Box(modifier = Modifier.fillMaxSize()) { BottomSheetScaffold( Loading cardinal-android/app/src/main/java/earth/maps/cardinal/ui/directions/DirectionsScreen.kt +6 −3 Original line number Diff line number Diff line Loading @@ -30,10 +30,10 @@ import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.ime import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.safeDrawing import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.windowInsetsPadding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.material3.AlertDialog import androidx.compose.material3.Button Loading Loading @@ -72,6 +72,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.max import androidx.navigation.NavController import earth.maps.cardinal.R.dimen import earth.maps.cardinal.R.drawable Loading @@ -92,6 +93,7 @@ import kotlinx.coroutines.Job import kotlinx.coroutines.launch import org.maplibre.spatialk.geojson.BoundingBox import uniffi.ferrostar.Route import kotlin.math.max enum class FieldFocusState { NONE, FROM, TO Loading Loading @@ -128,8 +130,9 @@ fun DirectionsScreen( val coroutineScope = rememberCoroutineScope() val bottomPadding = with(LocalDensity.current) { WindowInsets.safeDrawing.getBottom(this).toDp() val bottomPadding: Dp = with(LocalDensity.current) { // TODO: Find out if there's a way to get the safe drawing insets without the IME insets. max(0, WindowInsets.safeDrawing.getBottom(this) - WindowInsets.ime.getBottom(this)).toDp() } LaunchedEffect(Unit) { Loading cardinal-android/app/src/main/java/earth/maps/cardinal/ui/home/HomeScreen.kt +10 −3 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions Loading Loading @@ -312,10 +313,13 @@ private fun ContentBelow( if (homeInSearchScreen) { LazyColumn { items(geocodePlaces) { itemsIndexed(geocodePlaces) { index, place -> if (index != 0) { HorizontalDivider(modifier = Modifier.fillMaxWidth()) } SearchResultItem( addressFormatter = addressFormatter, it, place, onPlaceSelected ) } Loading @@ -332,7 +336,10 @@ private fun ContentBelow( } else { LazyColumn { // Show recent searches if any. items(recentSearches.value) { recentSearch -> itemsIndexed(recentSearches.value) { index, recentSearch -> if (index != 0) { HorizontalDivider(modifier = Modifier.fillMaxWidth()) } SearchResultItem( addressFormatter = addressFormatter, place = viewModel.searchToPlace(recentSearch), Loading cardinal-android/app/src/main/java/earth/maps/cardinal/ui/place/SearchResults.kt +7 −3 Original line number Diff line number Diff line Loading @@ -28,8 +28,10 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme Loading Loading @@ -60,7 +62,10 @@ fun SearchResults( ) { val addressFormatter = remember { AddressFormatter() } LazyColumn(modifier = modifier) { items(places) { place -> itemsIndexed(places) { index, place -> if (index != 0) { HorizontalDivider(modifier = Modifier.fillMaxWidth()) } SearchResultItem( addressFormatter = addressFormatter, place = place, Loading Loading @@ -121,7 +126,7 @@ fun SearchResultItem( onPlaceSelected: (Place) -> Unit, onRemoveTapped: (() -> Unit)? = null, ) { Card( Box( modifier = Modifier .fillMaxWidth() .padding(bottom = dimensionResource(dimen.padding)) Loading @@ -129,7 +134,6 @@ fun SearchResultItem( // Convert GeocodeResult to Place with a unique ID based on properties onPlaceSelected(place) }, elevation = CardDefaults.cardElevation(defaultElevation = 2.dp) ) { Row( modifier = Modifier Loading Loading
cardinal-android/app/src/main/java/earth/maps/cardinal/ui/core/AppContent.kt +6 −2 Original line number Diff line number Diff line Loading @@ -34,12 +34,14 @@ import androidx.compose.foundation.background import androidx.compose.foundation.border import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.isImeVisible import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.safeContent import androidx.compose.foundation.layout.safeDrawing Loading Loading @@ -1305,7 +1307,9 @@ private fun HomeScreenComposable( } @OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterial3ExpressiveApi::class) @OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterial3ExpressiveApi::class, ExperimentalLayoutApi::class ) @Composable fun CardinalAppScaffold( scaffoldState: BottomSheetScaffoldState, Loading @@ -1322,7 +1326,7 @@ fun CardinalAppScaffold( val handleHeight = 48.dp // If toolbar is visible, add padding for it below the scaffold val bottomPadding = if (showToolbar) TOOLBAR_HEIGHT_DP else 0.dp val bottomPadding = if (showToolbar && !WindowInsets.isImeVisible) TOOLBAR_HEIGHT_DP else 0.dp Box(modifier = Modifier.fillMaxSize()) { BottomSheetScaffold( Loading
cardinal-android/app/src/main/java/earth/maps/cardinal/ui/directions/DirectionsScreen.kt +6 −3 Original line number Diff line number Diff line Loading @@ -30,10 +30,10 @@ import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.ime import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.safeDrawing import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.windowInsetsPadding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.material3.AlertDialog import androidx.compose.material3.Button Loading Loading @@ -72,6 +72,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.max import androidx.navigation.NavController import earth.maps.cardinal.R.dimen import earth.maps.cardinal.R.drawable Loading @@ -92,6 +93,7 @@ import kotlinx.coroutines.Job import kotlinx.coroutines.launch import org.maplibre.spatialk.geojson.BoundingBox import uniffi.ferrostar.Route import kotlin.math.max enum class FieldFocusState { NONE, FROM, TO Loading Loading @@ -128,8 +130,9 @@ fun DirectionsScreen( val coroutineScope = rememberCoroutineScope() val bottomPadding = with(LocalDensity.current) { WindowInsets.safeDrawing.getBottom(this).toDp() val bottomPadding: Dp = with(LocalDensity.current) { // TODO: Find out if there's a way to get the safe drawing insets without the IME insets. max(0, WindowInsets.safeDrawing.getBottom(this) - WindowInsets.ime.getBottom(this)).toDp() } LaunchedEffect(Unit) { Loading
cardinal-android/app/src/main/java/earth/maps/cardinal/ui/home/HomeScreen.kt +10 −3 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions Loading Loading @@ -312,10 +313,13 @@ private fun ContentBelow( if (homeInSearchScreen) { LazyColumn { items(geocodePlaces) { itemsIndexed(geocodePlaces) { index, place -> if (index != 0) { HorizontalDivider(modifier = Modifier.fillMaxWidth()) } SearchResultItem( addressFormatter = addressFormatter, it, place, onPlaceSelected ) } Loading @@ -332,7 +336,10 @@ private fun ContentBelow( } else { LazyColumn { // Show recent searches if any. items(recentSearches.value) { recentSearch -> itemsIndexed(recentSearches.value) { index, recentSearch -> if (index != 0) { HorizontalDivider(modifier = Modifier.fillMaxWidth()) } SearchResultItem( addressFormatter = addressFormatter, place = viewModel.searchToPlace(recentSearch), Loading
cardinal-android/app/src/main/java/earth/maps/cardinal/ui/place/SearchResults.kt +7 −3 Original line number Diff line number Diff line Loading @@ -28,8 +28,10 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme Loading Loading @@ -60,7 +62,10 @@ fun SearchResults( ) { val addressFormatter = remember { AddressFormatter() } LazyColumn(modifier = modifier) { items(places) { place -> itemsIndexed(places) { index, place -> if (index != 0) { HorizontalDivider(modifier = Modifier.fillMaxWidth()) } SearchResultItem( addressFormatter = addressFormatter, place = place, Loading Loading @@ -121,7 +126,7 @@ fun SearchResultItem( onPlaceSelected: (Place) -> Unit, onRemoveTapped: (() -> Unit)? = null, ) { Card( Box( modifier = Modifier .fillMaxWidth() .padding(bottom = dimensionResource(dimen.padding)) Loading @@ -129,7 +134,6 @@ fun SearchResultItem( // Convert GeocodeResult to Place with a unique ID based on properties onPlaceSelected(place) }, elevation = CardDefaults.cardElevation(defaultElevation = 2.dp) ) { Row( modifier = Modifier Loading