From 5a27555e418b5b1cd9bc31859c179c0a057de0a5 Mon Sep 17 00:00:00 2001 From: H2ODERP <110103899+H2ODERP@users.noreply.github.com> Date: Wed, 28 Jan 2026 18:06:48 -0500 Subject: [PATCH 01/16] Created AddFavorite component --- .../ui/components/home/AddFavoriteButton.kt | 36 +++++++++++++++++++ .../home/EcosystemBottomSheetContent.kt | 3 ++ 2 files changed, 39 insertions(+) create mode 100644 app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt new file mode 100644 index 0000000..066cfed --- /dev/null +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt @@ -0,0 +1,36 @@ +package com.cornellappdev.transit.ui.components.home + +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +@Composable +fun AddFavoriteButton( + onAddFavoriteClick: () -> Unit, + modifier: Modifier = Modifier +) { + Button( + onClick = onAddFavoriteClick, + colors = ButtonDefaults.buttonColors(containerColor = Color.White, contentColor = Color.Black), + modifier = modifier + .fillMaxWidth() + .padding(horizontal = 24.dp, vertical = 20.dp) + ) { + Text("Add Favorite") + } +} + +@Preview +@Composable +fun AddFavoriteButtonPreview() { + AddFavoriteButton( + onAddFavoriteClick = {}, + ) +} \ No newline at end of file diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt index 7f86542..ee3c1fa 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt @@ -81,6 +81,9 @@ fun EcosystemBottomSheetContent( } } + //TODO: Add onClick functionality + AddFavoriteButton(onAddFavoriteClick = {}) + BottomSheetFilteredContent( currentFilter = activeFilter, staticPlaces = staticPlaces, From 5204a179cdd030620e15d16aed737ccbf7f62cc8 Mon Sep 17 00:00:00 2001 From: H2ODERP <110103899+H2ODERP@users.noreply.github.com> Date: Wed, 28 Jan 2026 21:18:40 -0500 Subject: [PATCH 02/16] Added functionality to Add Favorite button --- app/build.gradle.kts | 1 + .../transit/ui/components/home/AddFavoriteButton.kt | 2 +- .../ui/components/home/EcosystemBottomSheetContent.kt | 9 ++++++--- .../com/cornellappdev/transit/ui/screens/HomeScreen.kt | 6 +++++- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e9b8d9e..1e10bc3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -51,6 +51,7 @@ android { "proguard-rules.pro" ) buildConfigField("boolean", "ECOSYSTEM_FLAG", "false") + signingConfig = signingConfigs.getByName("debug") } } compileOptions { diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt index 066cfed..dc0d17e 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt @@ -21,7 +21,7 @@ fun AddFavoriteButton( colors = ButtonDefaults.buttonColors(containerColor = Color.White, contentColor = Color.Black), modifier = modifier .fillMaxWidth() - .padding(horizontal = 24.dp, vertical = 20.dp) + .padding(horizontal = 12.dp, vertical = 20.dp) ) { Text("Add Favorite") } diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt index ee3c1fa..d6d30df 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt @@ -27,6 +27,7 @@ import com.cornellappdev.transit.networking.ApiResponse import com.cornellappdev.transit.ui.theme.robotoFamily import com.cornellappdev.transit.ui.viewmodels.FilterState import com.cornellappdev.transit.util.ecosystem.toPlace +import kotlinx.coroutines.launch /** @@ -47,7 +48,8 @@ fun EcosystemBottomSheetContent( modifier: Modifier = Modifier, navigateToPlace: (Place) -> Unit, onDetailsClick: (DetailedEcosystemPlace) -> Unit, - onFavoriteStarClick: (Place) -> Unit + onFavoriteStarClick: (Place) -> Unit, + onAddFavoriteClick: () -> Unit ) { Column(modifier = modifier) { Row( @@ -82,7 +84,7 @@ fun EcosystemBottomSheetContent( } //TODO: Add onClick functionality - AddFavoriteButton(onAddFavoriteClick = {}) + AddFavoriteButton(onAddFavoriteClick = onAddFavoriteClick) BottomSheetFilteredContent( currentFilter = activeFilter, @@ -296,6 +298,7 @@ private fun PreviewEcosystemBottomSheet() { modifier = Modifier, navigateToPlace = {}, onDetailsClick = {}, - onFavoriteStarClick = {} + onFavoriteStarClick = {}, + onAddFavoriteClick = {} ) } \ No newline at end of file diff --git a/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt b/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt index a90a3b4..0d05346 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt @@ -341,7 +341,11 @@ fun HomeScreen( onDetailsClick = { ecosystemSheetState = EcosystemSheetState.Details(it) }, - onFavoriteStarClick = favoritesViewModel::toggleFavorite + onFavoriteStarClick = favoritesViewModel::toggleFavorite, + onAddFavoriteClick = { scope.launch { + addSheetState.bottomSheetState.expand() + } } + ) } } From 67fd2644e53199d36156dcc96494ccf82e3d5495 Mon Sep 17 00:00:00 2001 From: H2ODERP <110103899+H2ODERP@users.noreply.github.com> Date: Wed, 4 Feb 2026 18:11:50 -0500 Subject: [PATCH 03/16] TODO: create search screen --- .../transit/ui/components/home/EcosystemBottomSheetContent.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt index d6d30df..f05d0d6 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt @@ -83,7 +83,7 @@ fun EcosystemBottomSheetContent( } } - //TODO: Add onClick functionality + //TODO: Create a separate screen for the search to add favorites AddFavoriteButton(onAddFavoriteClick = onAddFavoriteClick) BottomSheetFilteredContent( From db8b91f2c94d814d0f3880a8777c2f7cc8522837 Mon Sep 17 00:00:00 2001 From: H2ODERP <110103899+H2ODERP@users.noreply.github.com> Date: Sun, 8 Feb 2026 01:54:14 -0500 Subject: [PATCH 04/16] add favorite button parameters --- .../ui/components/home/EcosystemBottomSheetContent.kt | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt index f05d0d6..a888582 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt @@ -27,7 +27,6 @@ import com.cornellappdev.transit.networking.ApiResponse import com.cornellappdev.transit.ui.theme.robotoFamily import com.cornellappdev.transit.ui.viewmodels.FilterState import com.cornellappdev.transit.util.ecosystem.toPlace -import kotlinx.coroutines.launch /** @@ -48,8 +47,7 @@ fun EcosystemBottomSheetContent( modifier: Modifier = Modifier, navigateToPlace: (Place) -> Unit, onDetailsClick: (DetailedEcosystemPlace) -> Unit, - onFavoriteStarClick: (Place) -> Unit, - onAddFavoriteClick: () -> Unit + onFavoriteStarClick: (Place) -> Unit ) { Column(modifier = modifier) { Row( @@ -83,8 +81,6 @@ fun EcosystemBottomSheetContent( } } - //TODO: Create a separate screen for the search to add favorites - AddFavoriteButton(onAddFavoriteClick = onAddFavoriteClick) BottomSheetFilteredContent( currentFilter = activeFilter, @@ -298,7 +294,6 @@ private fun PreviewEcosystemBottomSheet() { modifier = Modifier, navigateToPlace = {}, onDetailsClick = {}, - onFavoriteStarClick = {}, - onAddFavoriteClick = {} + onFavoriteStarClick = {} ) } \ No newline at end of file From efc25628dd51416bfc1ccf6837177883ed960d01 Mon Sep 17 00:00:00 2001 From: H2ODERP <110103899+H2ODERP@users.noreply.github.com> Date: Sun, 8 Feb 2026 02:05:06 -0500 Subject: [PATCH 05/16] fix: move add fav button to only show when in favorites tab, fix design as well --- .../ui/components/home/AddFavoriteButton.kt | 15 ++++++++++++- .../home/EcosystemBottomSheetContent.kt | 21 ++++++++++++------- .../transit/ui/screens/HomeScreen.kt | 1 + 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt index dc0d17e..9d4d0f9 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt @@ -1,6 +1,7 @@ package com.cornellappdev.transit.ui.components.home import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults @@ -8,8 +9,12 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.cornellappdev.transit.ui.theme.SecondaryText +import com.cornellappdev.transit.ui.theme.robotoFamily @Composable fun AddFavoriteButton( @@ -22,8 +27,16 @@ fun AddFavoriteButton( modifier = modifier .fillMaxWidth() .padding(horizontal = 12.dp, vertical = 20.dp) + .height(40.dp) ) { - Text("Add Favorite") + //TODO: Add '+' Icon + Text( + text ="Add Favorites", + fontFamily = robotoFamily, + fontWeight = FontWeight.SemiBold, + fontSize = 16.sp, + color = SecondaryText + ) } } diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt index a888582..413eaac 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt @@ -47,7 +47,8 @@ fun EcosystemBottomSheetContent( modifier: Modifier = Modifier, navigateToPlace: (Place) -> Unit, onDetailsClick: (DetailedEcosystemPlace) -> Unit, - onFavoriteStarClick: (Place) -> Unit + onFavoriteStarClick: (Place) -> Unit, + onAddFavoriteClick: () -> Unit, ) { Column(modifier = modifier) { Row( @@ -81,14 +82,14 @@ fun EcosystemBottomSheetContent( } } - BottomSheetFilteredContent( currentFilter = activeFilter, staticPlaces = staticPlaces, favorites = favorites, navigateToPlace = navigateToPlace, onDetailsClick = onDetailsClick, - onFavoriteStarClick = onFavoriteStarClick + onFavoriteStarClick = onFavoriteStarClick, + onAddFavoriteClick = onAddFavoriteClick ) } } @@ -100,7 +101,8 @@ private fun BottomSheetFilteredContent( favorites: Set, navigateToPlace: (Place) -> Unit, onDetailsClick: (DetailedEcosystemPlace) -> Unit, - onFavoriteStarClick: (Place) -> Unit + onFavoriteStarClick: (Place) -> Unit, + onAddFavoriteClick: () -> Unit ) { LazyColumn( contentPadding = PaddingValues(bottom = 90.dp), @@ -108,7 +110,7 @@ private fun BottomSheetFilteredContent( ) { when (currentFilter) { FilterState.FAVORITES -> { - favoriteList(favorites, navigateToPlace) + favoriteList(favorites, navigateToPlace, onAddFavoriteClick) } FilterState.PRINTERS -> { @@ -141,8 +143,12 @@ private fun BottomSheetFilteredContent( */ private fun LazyListScope.favoriteList( favorites: Set, - navigateToPlace: (Place) -> Unit + navigateToPlace: (Place) -> Unit, + onAddFavoriteClick : () -> Unit ) { + item{ + AddFavoriteButton(onAddFavoriteClick = onAddFavoriteClick) + } items(favorites.toList()) { BottomSheetLocationCard( title = it.name, @@ -294,6 +300,7 @@ private fun PreviewEcosystemBottomSheet() { modifier = Modifier, navigateToPlace = {}, onDetailsClick = {}, - onFavoriteStarClick = {} + onFavoriteStarClick = {}, + onAddFavoriteClick = {} ) } \ No newline at end of file diff --git a/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt b/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt index 0d05346..eadfb31 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt @@ -342,6 +342,7 @@ fun HomeScreen( ecosystemSheetState = EcosystemSheetState.Details(it) }, onFavoriteStarClick = favoritesViewModel::toggleFavorite, + //TODO: Refactor direct call and put into viewmodel (?) onAddFavoriteClick = { scope.launch { addSheetState.bottomSheetState.expand() } } From 9c5faca24e2e9e5bd678f12e05e2e7be257bac96 Mon Sep 17 00:00:00 2001 From: H2ODERP <110103899+H2ODERP@users.noreply.github.com> Date: Sun, 8 Feb 2026 02:09:10 -0500 Subject: [PATCH 06/16] feat: Add plus icon to add favorites button --- .../transit/ui/components/home/AddFavoriteButton.kt | 13 ++++++++++++- app/src/main/res/drawable/ic_addition.xml | 9 +++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/drawable/ic_addition.xml diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt index 9d4d0f9..e66913c 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt @@ -1,18 +1,22 @@ package com.cornellappdev.transit.ui.components.home +import android.R.attr.contentDescription import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import com.cornellappdev.transit.R import com.cornellappdev.transit.ui.theme.SecondaryText import com.cornellappdev.transit.ui.theme.robotoFamily @@ -29,7 +33,14 @@ fun AddFavoriteButton( .padding(horizontal = 12.dp, vertical = 20.dp) .height(40.dp) ) { - //TODO: Add '+' Icon + + Icon( + painter = painterResource(R.drawable.ic_addition), + contentDescription = "Add Favorite", + tint = SecondaryText, + modifier = Modifier.padding(end = 8.dp) + ) + Text( text ="Add Favorites", fontFamily = robotoFamily, diff --git a/app/src/main/res/drawable/ic_addition.xml b/app/src/main/res/drawable/ic_addition.xml new file mode 100644 index 0000000..90e883e --- /dev/null +++ b/app/src/main/res/drawable/ic_addition.xml @@ -0,0 +1,9 @@ + + + From 0b64cf92b1801a76658a202695538c3367ec50ef Mon Sep 17 00:00:00 2001 From: H2ODERP <110103899+H2ODERP@users.noreply.github.com> Date: Sun, 8 Feb 2026 13:24:00 -0500 Subject: [PATCH 07/16] fix: change text to use MetadataGray when unselected in FilterRow --- .../transit/ui/components/home/BottomSheetFilterItem.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/BottomSheetFilterItem.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/BottomSheetFilterItem.kt index bfeb077..5a99bb5 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/components/home/BottomSheetFilterItem.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/BottomSheetFilterItem.kt @@ -22,6 +22,8 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.cornellappdev.transit.R +import com.cornellappdev.transit.ui.theme.MetadataGray +import com.cornellappdev.transit.ui.theme.PrimaryText import com.cornellappdev.transit.ui.theme.Style /** @@ -62,7 +64,7 @@ fun BottomSheetFilterItem( } Text( label, - color = Color.Black, + color = if(isActive) PrimaryText else MetadataGray, textAlign = TextAlign.Center, modifier = Modifier .align(Alignment.CenterHorizontally) From 4eb8ec7ef8fb555eccc2744a5096b547ea98e153 Mon Sep 17 00:00:00 2001 From: H2ODERP <110103899+H2ODERP@users.noreply.github.com> Date: Sun, 8 Feb 2026 14:34:40 -0500 Subject: [PATCH 08/16] refactor: move state handling logic from home screen to home view model --- .../home/AddFavoritesSearchSheet.kt | 2 +- .../transit/ui/screens/HomeScreen.kt | 95 ++++++++----------- .../transit/ui/viewmodels/HomeViewModel.kt | 8 ++ 3 files changed, 48 insertions(+), 57 deletions(-) diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoritesSearchSheet.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoritesSearchSheet.kt index 67832ac..af3e149 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoritesSearchSheet.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoritesSearchSheet.kt @@ -67,8 +67,8 @@ fun AddFavoritesSearchSheet( Column( modifier = Modifier - .fillMaxHeight(0.92f) .fillMaxWidth() + .fillMaxHeight(0.92f) ) { Column( modifier = Modifier diff --git a/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt b/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt index eadfb31..0e1ab9d 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt @@ -28,6 +28,7 @@ import androidx.compose.material3.BottomSheetScaffold import androidx.compose.material3.DockedSearchBar import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon +import androidx.compose.material3.ModalBottomSheet import androidx.compose.material3.SearchBarDefaults import androidx.compose.material3.SheetState import androidx.compose.material3.SheetValue @@ -35,6 +36,7 @@ import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.material3.rememberBottomSheetScaffoldState +import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState @@ -125,6 +127,11 @@ fun HomeScreen( homeViewModel.instantiateLocation(context) } + val showAddFavoritesSheet by homeViewModel.showAddFavoritesSheet.collectAsState() + + val addFavoriteSheetState = rememberModalBottomSheetState( + skipPartiallyExpanded = true) + //SheetState for FavoritesBottomSheet val favoritesSheetState = rememberBottomSheetScaffoldState( @@ -138,20 +145,6 @@ fun HomeScreen( } ) - //sheetState for AddFavorites BottomSheet - val addSheetState = rememberBottomSheetScaffoldState( - bottomSheetState = remember { - SheetState( - skipPartiallyExpanded = true, - initialValue = SheetValue.Hidden, - density = localDensity, - confirmValueChange = { - homeViewModel.onAddQueryChange("") - true - } - ) - } - ) // Filter sheet state // Using advanced-bottomsheet-compose from https://github.com/Morfly/advanced-bottomsheet-compose @@ -263,9 +256,7 @@ fun HomeScreen( navController.navigate("settings") }, onFavoriteAdd = { - scope.launch { - addSheetState.bottomSheetState.expand() - } + homeViewModel.toggleAddFavoritesSheet(true) }, onRecentClear = { homeViewModel.clearRecents() @@ -342,10 +333,9 @@ fun HomeScreen( ecosystemSheetState = EcosystemSheetState.Details(it) }, onFavoriteStarClick = favoritesViewModel::toggleFavorite, - //TODO: Refactor direct call and put into viewmodel (?) - onAddFavoriteClick = { scope.launch { - addSheetState.bottomSheetState.expand() - } } + onAddFavoriteClick = { + homeViewModel.toggleAddFavoritesSheet(true) + } ) } @@ -372,14 +362,9 @@ fun HomeScreen( "Edit" } }, addOnClick = { - scope.launch { - if (!favoritesSheetState.bottomSheetState.hasExpandedState) { - favoritesSheetState.bottomSheetState.expand() - } - if (editState) { - editState = false - } - addSheetState.bottomSheetState.expand() + homeViewModel.toggleAddFavoritesSheet(true) + if (editState) { + editState = false } }, removeOnClick = { @@ -397,45 +382,43 @@ fun HomeScreen( content = {} ) } - // AddFavorites BottomSheet - BottomSheetScaffold( - sheetShape = RoundedCornerShape(16.dp), - scaffoldState = addSheetState, - sheetContainerColor = Color.White, - sheetPeekHeight = 0.dp, - sheetContent = { + if (showAddFavoritesSheet) { + ModalBottomSheet( + onDismissRequest = { + homeViewModel.toggleAddFavoritesSheet(false) + homeViewModel.onAddQueryChange("") + }, + sheetState = addFavoriteSheetState, + shape = RoundedCornerShape(topStart = 16.dp, topEnd = 16.dp), + containerColor = Color.White + ) { AddFavoritesSearchSheet( addSearchBarValue = addSearchBarValue, placeQueryResponse = placeQueryResponse, cancelOnClick = { - scope.launch { - addSheetState.bottomSheetState.hide() - homeViewModel.onAddQueryChange("") - } + homeViewModel.toggleAddFavoritesSheet(false) + homeViewModel.onAddQueryChange("") }, onItemClick = { - scope.launch { - if (!favoritesViewModel.isFavorite(it)) { - addSheetState.bottomSheetState.hide() - homeViewModel.clearAddQuery() - favoritesViewModel.addFavorite(it) - } else { - Toast.makeText( - context, - "${it.name} is already favorited!", - Toast.LENGTH_SHORT - ) - .show() - } + if (!favoritesViewModel.isFavorite(it)) { + homeViewModel.toggleAddFavoritesSheet(false) + homeViewModel.clearAddQuery() + favoritesViewModel.addFavorite(it) + } else { + Toast.makeText( + context, + "${it.name} is already favorited!", + Toast.LENGTH_SHORT + ) + .show() } }, onQueryChange = homeViewModel::onAddQueryChange, onClearChange = homeViewModel::clearAddQuery ) - }, - content = {} - ) + } + } } /** diff --git a/app/src/main/java/com/cornellappdev/transit/ui/viewmodels/HomeViewModel.kt b/app/src/main/java/com/cornellappdev/transit/ui/viewmodels/HomeViewModel.kt index bd7c24d..8a63e61 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/viewmodels/HomeViewModel.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/viewmodels/HomeViewModel.kt @@ -99,6 +99,14 @@ class HomeViewModel @Inject constructor( ) ) + private val _showAddFavoritesSheet = MutableStateFlow(false) + val showAddFavoritesSheet: StateFlow = _showAddFavoritesSheet.asStateFlow() + + fun toggleAddFavoritesSheet(show: Boolean) { + _showAddFavoritesSheet.value = show + } + + init { userPreferenceRepository.favoritesFlow.onEach { if (_searchBarUiState.value is SearchBarUIState.RecentAndFavorites) { From 277df1a623ac48ffdf2c8911b95e91e323bc8164 Mon Sep 17 00:00:00 2001 From: H2ODERP <110103899+H2ODERP@users.noreply.github.com> Date: Sun, 8 Feb 2026 14:45:53 -0500 Subject: [PATCH 09/16] Add toast message when location is favorited instead of dismissing bottom sheet --- .../com/cornellappdev/transit/ui/screens/HomeScreen.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt b/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt index 0e1ab9d..b96e2d7 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt @@ -400,11 +400,18 @@ fun HomeScreen( homeViewModel.toggleAddFavoritesSheet(false) homeViewModel.onAddQueryChange("") }, + // If the intended design is for the favorite sheet to be dismissed when an item is added, uncomment the line below onItemClick = { if (!favoritesViewModel.isFavorite(it)) { - homeViewModel.toggleAddFavoritesSheet(false) + //homeViewModel.toggleAddFavoritesSheet(false) homeViewModel.clearAddQuery() favoritesViewModel.addFavorite(it) + Toast.makeText( + context, + "${it.name} was successfully added to your favorites list!", + Toast.LENGTH_SHORT + ) + .show() } else { Toast.makeText( context, From 17bd1732462c653a1da4a1498b9e7c4360574dd4 Mon Sep 17 00:00:00 2001 From: H2ODERP <110103899+H2ODERP@users.noreply.github.com> Date: Sun, 8 Feb 2026 14:57:53 -0500 Subject: [PATCH 10/16] chore: fix formatting and delete unused imports --- .../transit/ui/components/home/AddFavoriteButton.kt | 10 ++++++---- .../ui/components/home/BottomSheetFilterItem.kt | 3 +-- .../ui/components/home/EcosystemBottomSheetContent.kt | 5 ++--- .../com/cornellappdev/transit/ui/screens/HomeScreen.kt | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt index e66913c..5ae6e62 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt @@ -1,6 +1,5 @@ package com.cornellappdev.transit.ui.components.home -import android.R.attr.contentDescription import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding @@ -27,7 +26,10 @@ fun AddFavoriteButton( ) { Button( onClick = onAddFavoriteClick, - colors = ButtonDefaults.buttonColors(containerColor = Color.White, contentColor = Color.Black), + colors = ButtonDefaults.buttonColors( + containerColor = Color.White, + contentColor = Color.Black + ), modifier = modifier .fillMaxWidth() .padding(horizontal = 12.dp, vertical = 20.dp) @@ -39,10 +41,10 @@ fun AddFavoriteButton( contentDescription = "Add Favorite", tint = SecondaryText, modifier = Modifier.padding(end = 8.dp) - ) + ) Text( - text ="Add Favorites", + text = "Add Favorites", fontFamily = robotoFamily, fontWeight = FontWeight.SemiBold, fontSize = 16.sp, diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/BottomSheetFilterItem.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/BottomSheetFilterItem.kt index 5a99bb5..f710cc1 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/components/home/BottomSheetFilterItem.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/BottomSheetFilterItem.kt @@ -15,7 +15,6 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow @@ -64,7 +63,7 @@ fun BottomSheetFilterItem( } Text( label, - color = if(isActive) PrimaryText else MetadataGray, + color = if (isActive) PrimaryText else MetadataGray, textAlign = TextAlign.Center, modifier = Modifier .align(Alignment.CenterHorizontally) diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt index 413eaac..9800dce 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt @@ -20,7 +20,6 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.cornellappdev.transit.R import com.cornellappdev.transit.models.Place -import com.cornellappdev.transit.models.PlaceType import com.cornellappdev.transit.models.ecosystem.DetailedEcosystemPlace import com.cornellappdev.transit.models.ecosystem.StaticPlaces import com.cornellappdev.transit.networking.ApiResponse @@ -144,9 +143,9 @@ private fun BottomSheetFilteredContent( private fun LazyListScope.favoriteList( favorites: Set, navigateToPlace: (Place) -> Unit, - onAddFavoriteClick : () -> Unit + onAddFavoriteClick: () -> Unit ) { - item{ + item { AddFavoriteButton(onAddFavoriteClick = onAddFavoriteClick) } items(favorites.toList()) { diff --git a/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt b/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt index b96e2d7..96a8ffc 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt @@ -130,7 +130,8 @@ fun HomeScreen( val showAddFavoritesSheet by homeViewModel.showAddFavoritesSheet.collectAsState() val addFavoriteSheetState = rememberModalBottomSheetState( - skipPartiallyExpanded = true) + skipPartiallyExpanded = true + ) //SheetState for FavoritesBottomSheet @@ -382,6 +383,7 @@ fun HomeScreen( content = {} ) } + // AddFavorites BottomSheet if (showAddFavoritesSheet) { ModalBottomSheet( @@ -400,10 +402,8 @@ fun HomeScreen( homeViewModel.toggleAddFavoritesSheet(false) homeViewModel.onAddQueryChange("") }, - // If the intended design is for the favorite sheet to be dismissed when an item is added, uncomment the line below onItemClick = { if (!favoritesViewModel.isFavorite(it)) { - //homeViewModel.toggleAddFavoritesSheet(false) homeViewModel.clearAddQuery() favoritesViewModel.addFavorite(it) Toast.makeText( From 07ba239dcdd00909ca1c61ce5d4a4feb7641efb1 Mon Sep 17 00:00:00 2001 From: Ryan Cheung <110103899+RyanCheung555@users.noreply.github.com> Date: Wed, 11 Feb 2026 16:52:13 -0500 Subject: [PATCH 11/16] fix: make AddFavoriteButton preview private --- .../transit/ui/components/home/AddFavoriteButton.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt index 5ae6e62..791a6db 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt @@ -55,7 +55,7 @@ fun AddFavoriteButton( @Preview @Composable -fun AddFavoriteButtonPreview() { +private fun AddFavoriteButtonPreview() { AddFavoriteButton( onAddFavoriteClick = {}, ) From 4f80ab68fa84224616fd8078ae92465198554d68 Mon Sep 17 00:00:00 2001 From: Ryan Cheung <110103899+RyanCheung555@users.noreply.github.com> Date: Wed, 11 Feb 2026 18:18:33 -0500 Subject: [PATCH 12/16] refactor: rename instances of 'favorite' to 'favorites' --- ...{AddFavoriteButton.kt => AddFavoritesButton.kt} | 12 ++++++------ .../components/home/EcosystemBottomSheetContent.kt | 14 +++++++------- .../cornellappdev/transit/ui/screens/HomeScreen.kt | 6 +++--- 3 files changed, 16 insertions(+), 16 deletions(-) rename app/src/main/java/com/cornellappdev/transit/ui/components/home/{AddFavoriteButton.kt => AddFavoritesButton.kt} (89%) diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoritesButton.kt similarity index 89% rename from app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt rename to app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoritesButton.kt index 791a6db..6267725 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoriteButton.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoritesButton.kt @@ -20,12 +20,12 @@ import com.cornellappdev.transit.ui.theme.SecondaryText import com.cornellappdev.transit.ui.theme.robotoFamily @Composable -fun AddFavoriteButton( - onAddFavoriteClick: () -> Unit, +fun AddFavoritesButton( + onAddFavoritesClick: () -> Unit, modifier: Modifier = Modifier ) { Button( - onClick = onAddFavoriteClick, + onClick = onAddFavoritesClick, colors = ButtonDefaults.buttonColors( containerColor = Color.White, contentColor = Color.Black @@ -55,8 +55,8 @@ fun AddFavoriteButton( @Preview @Composable -private fun AddFavoriteButtonPreview() { - AddFavoriteButton( - onAddFavoriteClick = {}, +private fun AddFavoritesButtonPreview() { + AddFavoritesButton( + onAddFavoritesClick = {}, ) } \ No newline at end of file diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt index 9800dce..9e4351f 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt @@ -47,7 +47,7 @@ fun EcosystemBottomSheetContent( navigateToPlace: (Place) -> Unit, onDetailsClick: (DetailedEcosystemPlace) -> Unit, onFavoriteStarClick: (Place) -> Unit, - onAddFavoriteClick: () -> Unit, + onAddFavoritesClick: () -> Unit, ) { Column(modifier = modifier) { Row( @@ -88,7 +88,7 @@ fun EcosystemBottomSheetContent( navigateToPlace = navigateToPlace, onDetailsClick = onDetailsClick, onFavoriteStarClick = onFavoriteStarClick, - onAddFavoriteClick = onAddFavoriteClick + onAddFavoritesClick = onAddFavoritesClick ) } } @@ -101,7 +101,7 @@ private fun BottomSheetFilteredContent( navigateToPlace: (Place) -> Unit, onDetailsClick: (DetailedEcosystemPlace) -> Unit, onFavoriteStarClick: (Place) -> Unit, - onAddFavoriteClick: () -> Unit + onAddFavoritesClick: () -> Unit ) { LazyColumn( contentPadding = PaddingValues(bottom = 90.dp), @@ -109,7 +109,7 @@ private fun BottomSheetFilteredContent( ) { when (currentFilter) { FilterState.FAVORITES -> { - favoriteList(favorites, navigateToPlace, onAddFavoriteClick) + favoriteList(favorites, navigateToPlace, onAddFavoritesClick) } FilterState.PRINTERS -> { @@ -143,10 +143,10 @@ private fun BottomSheetFilteredContent( private fun LazyListScope.favoriteList( favorites: Set, navigateToPlace: (Place) -> Unit, - onAddFavoriteClick: () -> Unit + onAddFavoritesClick: () -> Unit ) { item { - AddFavoriteButton(onAddFavoriteClick = onAddFavoriteClick) + AddFavoritesButton(onAddFavoritesClick = onAddFavoritesClick) } items(favorites.toList()) { BottomSheetLocationCard( @@ -300,6 +300,6 @@ private fun PreviewEcosystemBottomSheet() { navigateToPlace = {}, onDetailsClick = {}, onFavoriteStarClick = {}, - onAddFavoriteClick = {} + onAddFavoritesClick = {} ) } \ No newline at end of file diff --git a/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt b/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt index 96a8ffc..0196136 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt @@ -129,7 +129,7 @@ fun HomeScreen( val showAddFavoritesSheet by homeViewModel.showAddFavoritesSheet.collectAsState() - val addFavoriteSheetState = rememberModalBottomSheetState( + val addFavoritesSheetState = rememberModalBottomSheetState( skipPartiallyExpanded = true ) @@ -334,7 +334,7 @@ fun HomeScreen( ecosystemSheetState = EcosystemSheetState.Details(it) }, onFavoriteStarClick = favoritesViewModel::toggleFavorite, - onAddFavoriteClick = { + onAddFavoritesClick = { homeViewModel.toggleAddFavoritesSheet(true) } @@ -391,7 +391,7 @@ fun HomeScreen( homeViewModel.toggleAddFavoritesSheet(false) homeViewModel.onAddQueryChange("") }, - sheetState = addFavoriteSheetState, + sheetState = addFavoritesSheetState, shape = RoundedCornerShape(topStart = 16.dp, topEnd = 16.dp), containerColor = Color.White ) { From 41120f4270dc4a938d0169b34fe9daeb60a8aeba Mon Sep 17 00:00:00 2001 From: Ryan Cheung <110103899+RyanCheung555@users.noreply.github.com> Date: Wed, 11 Feb 2026 18:28:20 -0500 Subject: [PATCH 13/16] refactor: use import of bottomSheetState/Scaffold instead of directly defining it --- .../java/com/cornellappdev/transit/ui/screens/HomeScreen.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt b/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt index 0196136..57ac1b3 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt @@ -84,6 +84,8 @@ import com.google.maps.android.compose.GoogleMap import com.google.maps.android.compose.MapProperties import com.google.maps.android.compose.MapUiSettings import com.google.maps.android.compose.rememberCameraPositionState +import io.morfly.compose.bottomsheet.material3.BottomSheetScaffold +import io.morfly.compose.bottomsheet.material3.rememberBottomSheetScaffoldState import io.morfly.compose.bottomsheet.material3.rememberBottomSheetState import io.morfly.compose.bottomsheet.material3.sheetVisibleHeightDp import kotlinx.coroutines.launch @@ -164,7 +166,7 @@ fun HomeScreen( // Filter scaffold state val filterScaffoldState = - io.morfly.compose.bottomsheet.material3.rememberBottomSheetScaffoldState(filterSheetState) + rememberBottomSheetScaffoldState(filterSheetState) // Main search bar flow val searchBarValue = homeViewModel.searchBarUiState.collectAsState().value @@ -286,7 +288,7 @@ fun HomeScreen( ) } - io.morfly.compose.bottomsheet.material3.BottomSheetScaffold( + BottomSheetScaffold( scaffoldState = filterScaffoldState, sheetSwipeEnabled = true, sheetContainerColor = DetailsHeaderGray, From e9dcad2937564a98829bfe75a3691771b12215fb Mon Sep 17 00:00:00 2001 From: Ryan Cheung <110103899+RyanCheung555@users.noreply.github.com> Date: Wed, 11 Feb 2026 18:30:21 -0500 Subject: [PATCH 14/16] refactor: use collectAsStateWithLifeCycle instead of collectAsState --- .../java/com/cornellappdev/transit/ui/screens/HomeScreen.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt b/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt index 57ac1b3..fa59363 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/screens/HomeScreen.kt @@ -55,6 +55,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel +import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.navigation.NavController import com.cornellappdev.transit.R import com.cornellappdev.transit.models.Place @@ -129,7 +130,7 @@ fun HomeScreen( homeViewModel.instantiateLocation(context) } - val showAddFavoritesSheet by homeViewModel.showAddFavoritesSheet.collectAsState() + val showAddFavoritesSheet by homeViewModel.showAddFavoritesSheet.collectAsStateWithLifecycle() val addFavoritesSheetState = rememberModalBottomSheetState( skipPartiallyExpanded = true From fc55ae272513635d5553cec297a5650254999299 Mon Sep 17 00:00:00 2001 From: Ryan Cheung <110103899+RyanCheung555@users.noreply.github.com> Date: Wed, 11 Feb 2026 18:33:50 -0500 Subject: [PATCH 15/16] refactor: Use spacer instead of padding --- .../transit/ui/components/home/AddFavoritesButton.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoritesButton.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoritesButton.kt index 6267725..e160501 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoritesButton.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoritesButton.kt @@ -1,8 +1,11 @@ package com.cornellappdev.transit.ui.components.home +import android.R.attr.text +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Icon @@ -40,9 +43,10 @@ fun AddFavoritesButton( painter = painterResource(R.drawable.ic_addition), contentDescription = "Add Favorite", tint = SecondaryText, - modifier = Modifier.padding(end = 8.dp) ) + Spacer(modifier = Modifier.width(8.dp)) + Text( text = "Add Favorites", fontFamily = robotoFamily, From a0b62b4667614da464c7f3eb2685a7600b94e3d5 Mon Sep 17 00:00:00 2001 From: Ryan Cheung <110103899+RyanCheung555@users.noreply.github.com> Date: Thu, 12 Feb 2026 14:11:51 -0500 Subject: [PATCH 16/16] refactor: move component padding to outside container by using spacers --- .../transit/ui/components/home/AddFavoritesButton.kt | 1 - .../ui/components/home/BottomSheetLocationCard.kt | 1 - .../components/home/EcosystemBottomSheetContent.kt | 12 +++++++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoritesButton.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoritesButton.kt index e160501..f2f1072 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoritesButton.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/AddFavoritesButton.kt @@ -35,7 +35,6 @@ fun AddFavoritesButton( ), modifier = modifier .fillMaxWidth() - .padding(horizontal = 12.dp, vertical = 20.dp) .height(40.dp) ) { diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/BottomSheetLocationCard.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/BottomSheetLocationCard.kt index 03292a7..ba663b6 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/components/home/BottomSheetLocationCard.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/BottomSheetLocationCard.kt @@ -30,7 +30,6 @@ fun BottomSheetLocationCard( ) { Column( modifier = Modifier - .padding(horizontal = 24.dp, vertical = 10.dp) .clickable { onClick() } diff --git a/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt b/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt index 9e4351f..fa31d75 100644 --- a/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt +++ b/app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt @@ -3,8 +3,10 @@ package com.cornellappdev.transit.ui.components.home import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyListScope @@ -104,7 +106,7 @@ private fun BottomSheetFilteredContent( onAddFavoritesClick: () -> Unit ) { LazyColumn( - contentPadding = PaddingValues(bottom = 90.dp), + contentPadding = PaddingValues(start = 24.dp, end = 24.dp, top = 20.dp, bottom = 90.dp), modifier = Modifier.fillMaxSize() ) { when (currentFilter) { @@ -147,6 +149,7 @@ private fun LazyListScope.favoriteList( ) { item { AddFavoritesButton(onAddFavoritesClick = onAddFavoritesClick) + Spacer(Modifier.height(20.dp)) } items(favorites.toList()) { BottomSheetLocationCard( @@ -155,6 +158,7 @@ private fun LazyListScope.favoriteList( ) { //TODO: Eatery } + Spacer(Modifier.height(10.dp)) } } @@ -180,7 +184,9 @@ private fun LazyListScope.gymList( ) { //TODO: Eatery } + Spacer(Modifier.height(10.dp)) } + } } } @@ -209,7 +215,9 @@ private fun LazyListScope.printerList( it.toPlace() ) } + Spacer(Modifier.height(10.dp)) } + } } } @@ -236,6 +244,7 @@ private fun LazyListScope.eateryList( ) { //TODO: Eatery } + Spacer(Modifier.height(10.dp)) } } } @@ -271,6 +280,7 @@ private fun LazyListScope.libraryList( ) { navigateToDetails(it) } + Spacer(Modifier.height(10.dp)) } } }