11package com.google.firebase.example.dataconnect.feature.actordetail
22
3- import androidx.compose.foundation.layout.Box
43import androidx.compose.foundation.layout.Column
54import androidx.compose.foundation.layout.Row
65import androidx.compose.foundation.layout.Spacer
76import androidx.compose.foundation.layout.aspectRatio
8- import androidx.compose.foundation.layout.fillMaxSize
97import androidx.compose.foundation.layout.fillMaxWidth
108import androidx.compose.foundation.layout.height
119import androidx.compose.foundation.layout.padding
@@ -15,17 +13,12 @@ import androidx.compose.foundation.verticalScroll
1513import androidx.compose.material.icons.Icons
1614import androidx.compose.material.icons.filled.Favorite
1715import androidx.compose.material.icons.outlined.FavoriteBorder
18- import androidx.compose.material3.CircularProgressIndicator
19- import androidx.compose.material3.FilledTonalButton
20- import androidx.compose.material3.Icon
2116import androidx.compose.material3.MaterialTheme
22- import androidx.compose.material3.OutlinedButton
2317import androidx.compose.material3.Scaffold
2418import androidx.compose.material3.Text
2519import androidx.compose.runtime.Composable
2620import androidx.compose.runtime.collectAsState
2721import androidx.compose.runtime.getValue
28- import androidx.compose.ui.Alignment
2922import androidx.compose.ui.Modifier
3023import androidx.compose.ui.layout.ContentScale
3124import androidx.compose.ui.res.stringResource
@@ -38,6 +31,7 @@ import com.google.firebase.example.dataconnect.ui.components.ErrorCard
3831import com.google.firebase.example.dataconnect.ui.components.LoadingScreen
3932import com.google.firebase.example.dataconnect.ui.components.Movie
4033import com.google.firebase.example.dataconnect.ui.components.MoviesList
34+ import com.google.firebase.example.dataconnect.ui.components.ToggleButton
4135
4236@Composable
4337fun ActorDetailScreen (
@@ -68,6 +62,25 @@ fun ActorDetailScreen(
6862 actorDetailViewModel.toggleFavorite(it)
6963 }
7064 )
65+ MoviesList (
66+ listTitle = stringResource(R .string.title_main_roles),
67+ movies = ui.actor?.mainActors?.mapNotNull {
68+ Movie (it.id.toString(), it.imageUrl, it.title)
69+ },
70+ onMovieClicked = { movieId ->
71+ // TODO(thatfiredev): Support navigating to movie
72+ }
73+ )
74+ Spacer (modifier = Modifier .height(8 .dp))
75+ MoviesList (
76+ listTitle = stringResource(R .string.title_supporting_actors),
77+ movies = ui.actor?.supportingActors?.mapNotNull {
78+ Movie (it.id.toString(), it.imageUrl, it.title)
79+ },
80+ onMovieClicked = { movieId ->
81+ // TODO(thatfiredev): Support navigating to movie
82+ }
83+ )
7184 }
7285 }
7386 }
@@ -102,52 +115,21 @@ fun ActorInformation(
102115 .aspectRatio(9f / 16f )
103116 .padding(vertical = 8 .dp)
104117 )
105- Column (
106- modifier = Modifier .padding(horizontal = 16 .dp)
107- ) {
108- Text (
109- text = actor.biography ? : stringResource(R .string.biography_not_available),
110- modifier = Modifier .fillMaxWidth()
111- )
112- }
113- }
114- Spacer (modifier = Modifier .height(8 .dp))
115- Row {
116- Spacer (modifier = Modifier .width(8 .dp))
117- if (isActorFavorite) {
118- FilledTonalButton (onClick = {
119- onFavoriteToggled(false )
120- }) {
121- Icon (Icons .Filled .Favorite , " Favorite" )
122- Text (" Favorite" , modifier = Modifier .padding(start = 4 .dp))
123- }
124- } else {
125- OutlinedButton (onClick = {
126- onFavoriteToggled(true )
127- }) {
128- Icon (Icons .Outlined .FavoriteBorder , " Favorite" )
129- Text (" Add to Favorites" , modifier = Modifier .padding(start = 4 .dp))
130- }
131- }
118+ Text (
119+ text = actor.biography ? : stringResource(R .string.biography_not_available),
120+ modifier = Modifier
121+ .padding(horizontal = 16 .dp)
122+ .fillMaxWidth()
123+ )
132124 }
133125 Spacer (modifier = Modifier .height(8 .dp))
134- MoviesList (
135- listTitle = stringResource(R .string.title_main_roles),
136- movies = actor.mainActors.mapNotNull {
137- Movie (it.id.toString(), it.imageUrl, it.title)
138- },
139- onMovieClicked = { movieId ->
140- // TODO(thatfiredev): Support navigating to movie
141- }
142- )
143- MoviesList (
144- listTitle = stringResource(R .string.title_supporting_actors),
145- movies = actor.supportingActors.mapNotNull {
146- Movie (it.id.toString(), it.imageUrl, it.title)
147- },
148- onMovieClicked = { movieId ->
149- // TODO(thatfiredev): Support navigating to movie
150- }
126+ ToggleButton (
127+ iconEnabled = Icons .Filled .Favorite ,
128+ iconDisabled = Icons .Outlined .FavoriteBorder ,
129+ textEnabled = stringResource(R .string.button_remove_favorite),
130+ textDisabled = stringResource(R .string.button_favorite),
131+ isEnabled = isActorFavorite,
132+ onToggle = onFavoriteToggled
151133 )
152134 }
153135 }
0 commit comments