From 7a1a81c33688ebf9f77d4ae077c29b154c2067ff Mon Sep 17 00:00:00 2001 From: GerardPaligot Date: Sat, 11 May 2024 00:28:20 +0200 Subject: [PATCH] feat(schedules): address component on event sessions if exist. --- .../devfest/android/theme/MainNavigation.kt | 1 + .../feature/ScheduleDetailEventSessionVM.kt | 2 ++ .../schedules/schedules-screens/build.gradle.kts | 1 + .../screens/ScheduleDetailEventSessionScreen.kt | 13 +++++++++++++ 4 files changed, 17 insertions(+) diff --git a/theme-m3/main/main/src/main/kotlin/org/gdglille/devfest/android/theme/MainNavigation.kt b/theme-m3/main/main/src/main/kotlin/org/gdglille/devfest/android/theme/MainNavigation.kt index 4f2e718c..df1cea52 100644 --- a/theme-m3/main/main/src/main/kotlin/org/gdglille/devfest/android/theme/MainNavigation.kt +++ b/theme-m3/main/main/src/main/kotlin/org/gdglille/devfest/android/theme/MainNavigation.kt @@ -250,6 +250,7 @@ fun MainNavigation( ) { ScheduleDetailEventSessionVM( scheduleId = it.arguments?.getString("scheduleId")!!, + onItineraryClicked = onItineraryClicked, onBackClicked = { navController.popBackStack() } ) } diff --git a/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/ScheduleDetailEventSessionVM.kt b/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/ScheduleDetailEventSessionVM.kt index c96c5bc2..ad4bbe45 100644 --- a/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/ScheduleDetailEventSessionVM.kt +++ b/theme-m3/schedules/schedules-feature/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/feature/ScheduleDetailEventSessionVM.kt @@ -18,6 +18,7 @@ import org.koin.core.parameter.parametersOf @Composable fun ScheduleDetailEventSessionVM( scheduleId: String, + onItineraryClicked: (lat: Double, lng: Double) -> Unit, onBackClicked: () -> Unit, modifier: Modifier = Modifier, viewModel: ScheduleDetailEventSessionViewModel = @@ -29,6 +30,7 @@ fun ScheduleDetailEventSessionVM( is ScheduleEventUiState.Success -> ScheduleDetailEventSessionScreen( session = uiState.session, modifier = modifier, + onItineraryClicked = onItineraryClicked, onBackClicked = onBackClicked ) } diff --git a/theme-m3/schedules/schedules-screens/build.gradle.kts b/theme-m3/schedules/schedules-screens/build.gradle.kts index f17461b6..4b3107fd 100644 --- a/theme-m3/schedules/schedules-screens/build.gradle.kts +++ b/theme-m3/schedules/schedules-screens/build.gradle.kts @@ -15,6 +15,7 @@ dependencies { implementation(projects.themeM3.schedules.schedulesSemantics) implementation(projects.themeM3.navigation) implementation(projects.themeM3.style.components.placeholder) + implementation(projects.themeM3.style.events) implementation(projects.themeM3.style.schedules) implementation(projects.themeM3.style.speakers) implementation(projects.themeM3.style.theme) diff --git a/theme-m3/schedules/schedules-screens/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/screens/ScheduleDetailEventSessionScreen.kt b/theme-m3/schedules/schedules-screens/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/screens/ScheduleDetailEventSessionScreen.kt index cb4b2958..a588f9d3 100644 --- a/theme-m3/schedules/schedules-screens/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/screens/ScheduleDetailEventSessionScreen.kt +++ b/theme-m3/schedules/schedules-screens/src/main/kotlin/org/gdglille/devfest/android/theme/m3/schedules/screens/ScheduleDetailEventSessionScreen.kt @@ -21,6 +21,7 @@ import org.gdglille.devfest.android.theme.m3.schedules.ui.schedule.EventSessionS import org.gdglille.devfest.android.theme.m3.schedules.ui.schedule.TalkAbstract import org.gdglille.devfest.android.theme.m3.style.SpacingTokens import org.gdglille.devfest.android.theme.m3.style.appbars.TopAppBar +import org.gdglille.devfest.android.theme.m3.style.events.cards.AddressCard import org.gdglille.devfest.android.theme.m3.style.toDp import org.gdglille.devfest.models.ui.EventSessionItemUi import org.jetbrains.compose.resources.ExperimentalResourceApi @@ -31,6 +32,7 @@ import org.jetbrains.compose.resources.stringResource @Composable fun ScheduleDetailEventSessionScreen( session: EventSessionItemUi, + onItineraryClicked: (lat: Double, lng: Double) -> Unit, onBackClicked: () -> Unit, modifier: Modifier = Modifier, state: LazyListState = rememberLazyListState() @@ -63,6 +65,17 @@ fun ScheduleDetailEventSessionScreen( TalkAbstract(abstract = it) } } + session.addressUi?.let { + item { + AddressCard( + formattedAddress = it.formattedAddress, + onItineraryClicked = { + onItineraryClicked(it.latitude, it.longitude) + }, + hasGpsLocation = true + ) + } + } item { Spacer(modifier = Modifier.height(SpacingTokens.ExtraLargeSpacing.toDp())) }