Skip to content

Instantly share code, notes, and snippets.

View pauloaapereira's full-sized avatar

Paulo Pereira pauloaapereira

View GitHub Profile
@pauloaapereira
pauloaapereira / bloombottombar.kt
Created March 16, 2021 18:53
Android Dev Challenge - Week 3 - Bloom - A Full Development Overview - 7
val BottomNavigationElevation = 16.dp
@Composable
fun BloomBottomBar() {
BottomAppBar(
elevation = BottomNavigationElevation,
backgroundColor = MaterialTheme.colors.primary
) {
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceEvenly,
@pauloaapereira
pauloaapereira / bloombottombaritem.kt
Created March 16, 2021 18:54
Android Dev Challenge - Week 3 - Bloom - A Full Development Overview - 8
@Composable
private fun BloomBottomBarItem(isSelected: Boolean = false, text: String, @DrawableRes icon: Int) {
val color =
if (isSelected) MaterialTheme.colors.onBackground else LocalContentColor.current.copy(alpha = .6f)
val style = if (isSelected) MaterialTheme.typography.caption else LocalTextStyle.current
Column(
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
@pauloaapereira
pauloaapereira / home_2.kt
Created March 16, 2021 18:54
Android Dev Challenge - Week 3 - Bloom - A Full Development Overview - 9
@ExperimentalComposeUiApi
@Composable
fun Home() {
Scaffold(
topBar = { BloomTopBar() },
bottomBar = { BloomBottomBar() }
) {
...
}
}
@pauloaapereira
pauloaapereira / homegardenrepository.kt
Created March 16, 2021 18:55
Android Dev Challenge - Week 3 - Bloom - A Full Development Overview - 10
interface IHomeGardenRepository {
fun getHomeGardenList(): Flow<List<HomeGarden>>
}
class HomeGardenRepository : IHomeGardenRepository {
override fun getHomeGardenList() = flowOf(
listOf(
HomeGarden(
name = "Desert chic",
imageRes = R.drawable.desert_chic
@pauloaapereira
pauloaapereira / homegardenviewmodel.kt
Created March 16, 2021 18:55
Android Dev Challenge - Week 3 - Bloom - A Full Development Overview - 11
class HomeGardenViewModel(homeGardenRepository: IHomeGardenRepository) : ViewModel() {
val homeGardens = homeGardenRepository.getHomeGardenList()
}
@Suppress("UNCHECKED_CAST")
class HomeGardenViewModelFactory(private val homeGardenRepository: IHomeGardenRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
if (modelClass.isAssignableFrom(HomeGardenViewModel::class.java)) {
return HomeGardenViewModel(homeGardenRepository) as T
@pauloaapereira
pauloaapereira / bloomapp.kt
Created March 16, 2021 18:56
Android Dev Challenge - Week 3 - Bloom - A Full Development Overview - 12
@ExperimentalComposeUiApi
@Composable
fun Bloom() {
val navController = rememberNavController()
val viewModel = viewModel(
HomeGardenViewModel::class.java,
factory = HomeGardenViewModelFactory(HomeGardenRepository())
)
NavHost(navController, startDestination = "welcome") {
@pauloaapereira
pauloaapereira / home_3.kt
Created March 16, 2021 18:56
Android Dev Challenge - Week 3 - Bloom - A Full Development Overview - 13
@ExperimentalComposeUiApi
@Composable
fun Home(viewModel: HomeGardenViewModel) {
val scrollState = rememberScrollState()
val homeGardens by viewModel.homeGardens.collectAsState(initial = listOf())
Scaffold(
topBar = { BloomTopBar() },
bottomBar = { BloomBottomBar() }
) {
@pauloaapereira
pauloaapereira / bloomcardrow.kt
Created March 16, 2021 18:56
Android Dev Challenge - Week 3 - Bloom - A Full Development Overview - 14
@Composable
fun BloomCardRow(homeGardens: List<HomeGarden>) {
Text(
text = "Browse themes",
modifier = Modifier
.paddingFromBaseline(top = 32.dp)
.padding(start = 16.dp),
style = MaterialTheme.typography.h1,
color = MaterialTheme.colors.onBackground
)
@pauloaapereira
pauloaapereira / bloomcardrowitem.kt
Created March 16, 2021 18:57
Android Dev Challenge - Week 3 - Bloom - A Full Development Overview - 15
@Composable
private fun BloomCardRowItem(homeGarden: HomeGarden) {
val cardShape = MaterialTheme.shapes.small.copy(
bottomStart = CornerSize(0.dp),
bottomEnd = CornerSize(0.dp)
)
Box(
modifier = Modifier
.size(138.dp)
@pauloaapereira
pauloaapereira / bloomimagelist.kt
Created March 16, 2021 18:57
Android Dev Challenge - Week 3 - Bloom - A Full Development Overview - 16
@Composable
fun BloomImageList(homeGardens: List<HomeGarden>) {
Row(
modifier = Modifier
.fillMaxWidth()
.padding(top = 32.dp, start = 16.dp),
horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically
) {
Text(