diff --git a/composeApp/src/commonMain/kotlin/com/sixbynine/transit/path/app/ui/home/DepartureBoard.kt b/composeApp/src/commonMain/kotlin/com/sixbynine/transit/path/app/ui/home/DepartureBoard.kt index addf06b..a370582 100644 --- a/composeApp/src/commonMain/kotlin/com/sixbynine/transit/path/app/ui/home/DepartureBoard.kt +++ b/composeApp/src/commonMain/kotlin/com/sixbynine/transit/path/app/ui/home/DepartureBoard.kt @@ -2,6 +2,7 @@ package com.sixbynine.transit.path.app.ui.home import androidx.compose.animation.AnimatedVisibility import androidx.compose.foundation.clickable +import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -40,6 +41,7 @@ import com.sixbynine.transit.path.app.ui.home.HomeScreenContract.Intent.MoveStat import com.sixbynine.transit.path.app.ui.home.HomeScreenContract.Intent.MoveStationUpClicked import com.sixbynine.transit.path.app.ui.home.HomeScreenContract.Intent.RemoveStationClicked import com.sixbynine.transit.path.app.ui.home.HomeScreenContract.Intent.StationClicked +import com.sixbynine.transit.path.app.ui.home.HomeScreenContract.Intent.StationLongClicked import com.sixbynine.transit.path.app.ui.home.HomeScreenContract.StationData import com.sixbynine.transit.path.app.ui.home.TrainGrouper.groupTrains import com.sixbynine.transit.path.app.ui.icon.IconType @@ -122,7 +124,12 @@ private fun HomeScreenScope.Station( nextStation.state == station.state } - Card(modifier.clickable { onIntent(StationClicked(station.id)) }) { + Card( + modifier.combinedClickable( + onLongClick = { onIntent(StationLongClicked(station.id)) }, + onClick = { onIntent(StationClicked(station.id)) } + ) + ) { Column(Modifier.padding(bottom = 8.dp)) { StationHeader( modifier = Modifier.fillMaxSize(), diff --git a/composeApp/src/commonMain/kotlin/com/sixbynine/transit/path/app/ui/home/HomeScreenContract.kt b/composeApp/src/commonMain/kotlin/com/sixbynine/transit/path/app/ui/home/HomeScreenContract.kt index 1707ed1..b55cf37 100644 --- a/composeApp/src/commonMain/kotlin/com/sixbynine/transit/path/app/ui/home/HomeScreenContract.kt +++ b/composeApp/src/commonMain/kotlin/com/sixbynine/transit/path/app/ui/home/HomeScreenContract.kt @@ -70,6 +70,7 @@ object HomeScreenContract { data object AddStationClicked : Intent data class ConstraintsChanged(val maxWidth: Dp, val maxHeight: Dp) : Intent data class StationClicked(val id: String) : Intent + data class StationLongClicked(val id: String) : Intent } sealed interface Effect { diff --git a/composeApp/src/commonMain/kotlin/com/sixbynine/transit/path/app/ui/home/HomeScreenViewModel.kt b/composeApp/src/commonMain/kotlin/com/sixbynine/transit/path/app/ui/home/HomeScreenViewModel.kt index 0168798..e4397f8 100644 --- a/composeApp/src/commonMain/kotlin/com/sixbynine/transit/path/app/ui/home/HomeScreenViewModel.kt +++ b/composeApp/src/commonMain/kotlin/com/sixbynine/transit/path/app/ui/home/HomeScreenViewModel.kt @@ -42,6 +42,7 @@ import com.sixbynine.transit.path.app.ui.home.HomeScreenContract.Intent.Settings import com.sixbynine.transit.path.app.ui.home.HomeScreenContract.Intent.StationBottomSheetDismissed import com.sixbynine.transit.path.app.ui.home.HomeScreenContract.Intent.StationBottomSheetSelection import com.sixbynine.transit.path.app.ui.home.HomeScreenContract.Intent.StationClicked +import com.sixbynine.transit.path.app.ui.home.HomeScreenContract.Intent.StationLongClicked import com.sixbynine.transit.path.app.ui.home.HomeScreenContract.Intent.StationSelectionDialogDismissed import com.sixbynine.transit.path.app.ui.home.HomeScreenContract.Intent.StopEditingClicked import com.sixbynine.transit.path.app.ui.home.HomeScreenContract.Intent.UpdateNowClicked @@ -209,6 +210,10 @@ class HomeScreenViewModel(maxWidth: Dp, maxHeight: Dp) : PathViewModel { sendEffect(NavigateToStation(intent.id)) } + + is StationLongClicked -> { + updateState { copy(isEditing = !isEditing) } + } } }