diff --git a/app/src/main/java/com/sergiobelda/todometer/ui/home/HomeScreen.kt b/app/src/main/java/com/sergiobelda/todometer/ui/home/HomeScreen.kt index f31f2cd36..f24c56fe0 100644 --- a/app/src/main/java/com/sergiobelda/todometer/ui/home/HomeScreen.kt +++ b/app/src/main/java/com/sergiobelda/todometer/ui/home/HomeScreen.kt @@ -16,12 +16,12 @@ package com.sergiobelda.todometer.ui.home -import androidx.compose.foundation.Icon import androidx.compose.foundation.Image import androidx.compose.foundation.Text import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth @@ -33,13 +33,14 @@ import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.lazy.LazyColumnFor import androidx.compose.foundation.lazy.LazyColumnForIndexed import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.AmbientEmphasisLevels import androidx.compose.material.BottomAppBar import androidx.compose.material.Button import androidx.compose.material.Divider -import androidx.compose.material.EmphasisAmbient import androidx.compose.material.ExperimentalMaterialApi import androidx.compose.material.FabPosition import androidx.compose.material.FloatingActionButton +import androidx.compose.material.Icon import androidx.compose.material.IconButton import androidx.compose.material.LinearProgressIndicator import androidx.compose.material.ListItem @@ -50,11 +51,11 @@ import androidx.compose.material.ModalBottomSheetValue import androidx.compose.material.ProvideEmphasis import androidx.compose.material.Scaffold import androidx.compose.material.Surface +import androidx.compose.material.TextButton import androidx.compose.material.contentColorFor import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.AccountCircle import androidx.compose.material.icons.rounded.Add -import androidx.compose.material.icons.rounded.Favorite import androidx.compose.material.icons.rounded.Menu import androidx.compose.material.icons.rounded.MoreVert import androidx.compose.material.rememberModalBottomSheetState @@ -88,19 +89,7 @@ fun HomeScreen( sheetState = sheetState, sheetElevation = 16.dp, sheetContent = { - Column(modifier = Modifier.preferredHeight(320.dp)) { - Text( - text = stringResource(id = R.string.projects).toUpperCase(Locale.ROOT), - style = typography.overline - ) - LazyColumnFor(items = mainViewModel.projectList) { project -> - ListItem( - modifier = Modifier.clickable(onClick = {}), - text = { Text(text = project.name) }, - icon = { Icon(Icons.Rounded.Favorite) } - ) - } - } + SheetContainer(mainViewModel = mainViewModel, addProject) } ) { Scaffold( @@ -114,12 +103,14 @@ fun HomeScreen( contentColor = contentColorFor(colors.surface), cutoutShape = CircleShape ) { - IconButton(onClick = { sheetState.show() }) { - Icon(Icons.Rounded.Menu) - } - Spacer(modifier = Modifier.weight(1f)) - IconButton(onClick = { /* doSomething() */ }) { - Icon(Icons.Rounded.MoreVert) + ProvideEmphasis(emphasis = AmbientEmphasisLevels.current.medium) { + IconButton(onClick = { sheetState.show() }) { + Icon(Icons.Rounded.Menu) + } + Spacer(modifier = Modifier.weight(1f)) + IconButton(onClick = { /* doSomething() */ }) { + Icon(Icons.Rounded.MoreVert) + } } } } @@ -140,7 +131,7 @@ fun HomeScreen( } }, floatingActionButtonPosition = FabPosition.Center, - // isFloatingActionButtonDocked = true + isFloatingActionButtonDocked = true ) } } @@ -159,8 +150,10 @@ fun ToDometerTopBar() { modifier = Modifier.height(56.dp).fillMaxWidth() ) { ToDometerTitle(modifier = Modifier.align(Alignment.Center)) - IconButton(onClick = {}, modifier = Modifier.align(Alignment.CenterEnd)) { - Icon(Icons.Outlined.AccountCircle) + ProvideEmphasis(emphasis = AmbientEmphasisLevels.current.medium) { + IconButton(onClick = {}, modifier = Modifier.align(Alignment.CenterEnd)) { + Icon(Icons.Outlined.AccountCircle) + } } } Divider(thickness = 1.dp, color = colors.outline) @@ -168,6 +161,52 @@ fun ToDometerTopBar() { } } +@Composable +fun SheetContainer(mainViewModel: MainViewModel, addProject: () -> Unit) { + Column(modifier = Modifier.preferredHeight(480.dp)) { + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier.height(56.dp).padding(start = 16.dp, end = 16.dp) + ) { + Text( + text = stringResource(id = R.string.projects).toUpperCase(Locale.ROOT), + style = typography.overline + ) + Spacer(modifier = Modifier.weight(1f)) + TextButton(onClick = addProject) { + Icon(asset = Icons.Rounded.Add) + Text(text = stringResource(id = R.string.add_project)) + } + } + Divider(thickness = 1.dp, color = colors.outline) + LazyColumnFor(items = mainViewModel.projectList, modifier = Modifier.preferredHeight(240.dp)) { project -> + ProvideEmphasis(emphasis = AmbientEmphasisLevels.current.medium) { + ListItem( + modifier = Modifier.clickable(onClick = {}), + text = { Text(text = project.name) }, + icon = { Icon(vectorResource(id = R.drawable.ic_baseline_book_24)) } + ) + } + } + Divider(thickness = 1.dp, color = colors.outline) + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier.height(56.dp).padding(start = 16.dp, end = 16.dp) + ) { + Text( + text = stringResource(id = R.string.tags).toUpperCase(Locale.ROOT), + style = typography.overline + ) + Spacer(modifier = Modifier.weight(1f)) + TextButton(onClick = {}) { + Icon(asset = Icons.Rounded.Add) + Text(text = stringResource(id = R.string.add_tag)) + } + } + Divider(thickness = 1.dp, color = colors.outline) + } +} + @Composable fun ProjectTasksListView( mainViewModel: MainViewModel, @@ -185,7 +224,7 @@ fun ProjectTasksListView( } else { 0f } - ProvideEmphasis(emphasis = EmphasisAmbient.current.medium) { + ProvideEmphasis(emphasis = AmbientEmphasisLevels.current.medium) { Text( ProgressUtil.getPercentage(progress), style = typography.body1, @@ -229,8 +268,7 @@ fun EmptyProjectTaskListView(addProject: () -> Unit) { Text(stringResource(id = R.string.you_have_not_any_project)) Button( modifier = Modifier.align(Alignment.CenterHorizontally).padding(16.dp), - onClick = addProject, - elevation = 0.dp + onClick = addProject ) { Text(stringResource(id = R.string.add_project)) } diff --git a/app/src/main/java/com/sergiobelda/todometer/ui/home/TaskItem.kt b/app/src/main/java/com/sergiobelda/todometer/ui/home/TaskItem.kt index 7333e3629..2bbcdfc9d 100644 --- a/app/src/main/java/com/sergiobelda/todometer/ui/home/TaskItem.kt +++ b/app/src/main/java/com/sergiobelda/todometer/ui/home/TaskItem.kt @@ -25,8 +25,8 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.material.AmbientEmphasisLevels import androidx.compose.material.Card -import androidx.compose.material.EmphasisAmbient import androidx.compose.material.IconButton import androidx.compose.material.MaterialTheme.colors import androidx.compose.material.ProvideEmphasis @@ -71,7 +71,7 @@ fun TaskItem( verticalAlignment = Alignment.CenterVertically, modifier = Modifier.padding(start = 16.dp) ) { - ProvideEmphasis(emphasis = EmphasisAmbient.current.medium) { + ProvideEmphasis(emphasis = AmbientEmphasisLevels.current.medium) { Icon(Icons.Rounded.DateRange, modifier = Modifier.padding(end = 8.dp)) } when (task.state) { @@ -98,7 +98,7 @@ fun TaskItem( } } } - ProvideEmphasis(emphasis = EmphasisAmbient.current.medium) { + ProvideEmphasis(emphasis = AmbientEmphasisLevels.current.medium) { Text( task.description, modifier = Modifier.padding(start = 16.dp, end = 16.dp, bottom = 16.dp), diff --git a/app/src/main/java/com/sergiobelda/todometer/ui/theme/Color.kt b/app/src/main/java/com/sergiobelda/todometer/ui/theme/Color.kt index aeeaa65df..693e4e954 100644 --- a/app/src/main/java/com/sergiobelda/todometer/ui/theme/Color.kt +++ b/app/src/main/java/com/sergiobelda/todometer/ui/theme/Color.kt @@ -23,5 +23,5 @@ val blue = Color(0xFF4285f4) val orange = Color(0xFFF86734) val navy = Color(0xFF073042) val background = Color(0xFFFFFFFF) -val outlineDark = Color(255, 255, 255, alpha = 50) -val outlineLight = Color(0, 0, 0, alpha = 50) +val outlineDark = Color(255, 255, 255, alpha = 12) +val outlineLight = Color(0, 0, 0, alpha = 12) diff --git a/app/src/main/res/drawable/ic_baseline_book_24.xml b/app/src/main/res/drawable/ic_baseline_book_24.xml new file mode 100644 index 000000000..4a4cbeae2 --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_book_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3ac30051f..17527df08 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -9,4 +9,6 @@ Description You haven\'t any project Save + Tags + Add tag \ No newline at end of file diff --git a/build.gradle b/build.gradle index 7edf599f7..5fc2c9366 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext { - compose_version = '1.0.0-alpha04' + compose_version = '1.0.0-alpha06' dagger_hilt_version = '2.28.3-alpha' } ext.kotlin_version = "1.4.10" @@ -10,7 +10,7 @@ buildscript { jcenter() } dependencies { - classpath "com.android.tools.build:gradle:4.2.0-alpha13" + classpath "com.android.tools.build:gradle:4.2.0-alpha15" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "com.google.dagger:hilt-android-gradle-plugin:$dagger_hilt_version" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9ebfecd29..d8f1beb9e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Oct 06 20:52:32 CEST 2020 +#Fri Oct 30 23:57:12 CET 2020 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME