From bdab73bf8f07c95ca7eae83add6bb3f067ec923d Mon Sep 17 00:00:00 2001 From: Chris Banes Date: Thu, 8 Oct 2020 10:17:53 +0100 Subject: [PATCH 1/2] Update Jetcaster to SNAPSHOT 6891475 Change-Id: I4b9011f4d6a1c0115d59b0d6a02881ee3980ba93 --- .../java/com/example/jetcaster/ui/home/Home.kt | 12 ++++++------ .../ui/home/category/PodcastCategory.kt | 18 +++++++++--------- .../java/com/example/jetcaster/util/Buttons.kt | 8 ++++---- Jetcaster/build.gradle | 7 +++---- .../example/jetcaster/buildsrc/dependencies.kt | 12 ++++++++---- 5 files changed, 30 insertions(+), 27 deletions(-) diff --git a/Jetcaster/app/src/main/java/com/example/jetcaster/ui/home/Home.kt b/Jetcaster/app/src/main/java/com/example/jetcaster/ui/home/Home.kt index c89c293dd5..2d5968fa24 100644 --- a/Jetcaster/app/src/main/java/com/example/jetcaster/ui/home/Home.kt +++ b/Jetcaster/app/src/main/java/com/example/jetcaster/ui/home/Home.kt @@ -34,7 +34,7 @@ import androidx.compose.foundation.layout.preferredHeight import androidx.compose.foundation.layout.preferredHeightIn import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.EmphasisAmbient +import androidx.compose.material.AmbientEmphasisLevels import androidx.compose.material.IconButton import androidx.compose.material.MaterialTheme import androidx.compose.material.ProvideEmphasis @@ -48,9 +48,9 @@ import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.AccountCircle import androidx.compose.material.icons.filled.Search import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedTask import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue -import androidx.compose.runtime.launchInComposition import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -119,7 +119,7 @@ fun HomeAppBar( }, backgroundColor = backgroundColor, actions = { - ProvideEmphasis(EmphasisAmbient.current.medium) { + ProvideEmphasis(AmbientEmphasisLevels.current.medium) { IconButton( onClick = { /* TODO: Open search */ }, icon = { Icon(Icons.Filled.Search) } @@ -170,7 +170,7 @@ fun HomeContent( // When the selected image url changes, call updateColorsFromImageUrl() or reset() if (selectedImageUrl != null) { - launchInComposition(selectedImageUrl) { + LaunchedTask(selectedImageUrl) { dominantColorState.updateColorsFromImageUrl(selectedImageUrl) } } else { @@ -338,7 +338,7 @@ private fun FollowedPodcastCarouselItem( ) } - ProvideEmphasis(EmphasisAmbient.current.high) { + ProvideEmphasis(AmbientEmphasisLevels.current.high) { ToggleFollowPodcastIconButton( onClick = onUnfollowedClick, isFollowed = true, /* All podcasts are followed in this feed */ @@ -348,7 +348,7 @@ private fun FollowedPodcastCarouselItem( } if (lastEpisodeDate != null) { - ProvideEmphasis(EmphasisAmbient.current.medium) { + ProvideEmphasis(AmbientEmphasisLevels.current.medium) { Text( text = lastUpdated(lastEpisodeDate), style = MaterialTheme.typography.caption, diff --git a/Jetcaster/app/src/main/java/com/example/jetcaster/ui/home/category/PodcastCategory.kt b/Jetcaster/app/src/main/java/com/example/jetcaster/ui/home/category/PodcastCategory.kt index 8b9aac5b67..38c40a200c 100644 --- a/Jetcaster/app/src/main/java/com/example/jetcaster/ui/home/category/PodcastCategory.kt +++ b/Jetcaster/app/src/main/java/com/example/jetcaster/ui/home/category/PodcastCategory.kt @@ -16,11 +16,11 @@ package com.example.jetcaster.ui.home.category +import androidx.compose.foundation.AmbientContentColor import androidx.compose.foundation.Icon import androidx.compose.foundation.Image import androidx.compose.foundation.Text import androidx.compose.foundation.clickable -import androidx.compose.foundation.contentColor import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ConstraintLayout @@ -36,8 +36,8 @@ import androidx.compose.foundation.layout.preferredWidth import androidx.compose.foundation.lazy.ExperimentalLazyDsl import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyRowForIndexed +import androidx.compose.material.AmbientEmphasisLevels import androidx.compose.material.Divider -import androidx.compose.material.EmphasisAmbient import androidx.compose.material.IconButton import androidx.compose.material.MaterialTheme import androidx.compose.material.ProvideEmphasis @@ -166,7 +166,7 @@ fun EpisodeListItem( ) } - ProvideEmphasis(EmphasisAmbient.current.high) { + ProvideEmphasis(AmbientEmphasisLevels.current.high) { Text( text = episode.title, maxLines = 2, @@ -188,7 +188,7 @@ fun EpisodeListItem( val titleImageBarrier = createBottomBarrier(podcastTitle, image) - ProvideEmphasis(EmphasisAmbient.current.medium) { + ProvideEmphasis(AmbientEmphasisLevels.current.medium) { Text( text = podcast.title, maxLines = 2, @@ -208,11 +208,11 @@ fun EpisodeListItem( ) } - ProvideEmphasis(EmphasisAmbient.current.high) { + ProvideEmphasis(AmbientEmphasisLevels.current.high) { Image( asset = Icons.Rounded.PlayCircleFilled, contentScale = ContentScale.Fit, - colorFilter = ColorFilter.tint(contentColor()), + colorFilter = ColorFilter.tint(AmbientContentColor.current), modifier = Modifier .clickable(indication = RippleIndication(bounded = false, radius = 24.dp)) { /* TODO */ @@ -226,7 +226,7 @@ fun EpisodeListItem( ) } - ProvideEmphasis(EmphasisAmbient.current.medium) { + ProvideEmphasis(AmbientEmphasisLevels.current.medium) { Text( text = when { episode.duration != null -> { @@ -323,7 +323,7 @@ private fun TopPodcastRowItem( ) } - ProvideEmphasis(EmphasisAmbient.current.high) { + ProvideEmphasis(AmbientEmphasisLevels.current.high) { ToggleFollowPodcastIconButton( onClick = onToggleFollowClicked, isFollowed = isFollowed, @@ -332,7 +332,7 @@ private fun TopPodcastRowItem( } } - ProvideEmphasis(EmphasisAmbient.current.high) { + ProvideEmphasis(AmbientEmphasisLevels.current.high) { Text( text = podcastTitle, style = MaterialTheme.typography.body2, diff --git a/Jetcaster/app/src/main/java/com/example/jetcaster/util/Buttons.kt b/Jetcaster/app/src/main/java/com/example/jetcaster/util/Buttons.kt index aa4e8a56ec..103e51ca33 100644 --- a/Jetcaster/app/src/main/java/com/example/jetcaster/util/Buttons.kt +++ b/Jetcaster/app/src/main/java/com/example/jetcaster/util/Buttons.kt @@ -17,11 +17,11 @@ package com.example.jetcaster.util import androidx.compose.animation.animate +import androidx.compose.foundation.AmbientContentColor import androidx.compose.foundation.Icon import androidx.compose.foundation.background -import androidx.compose.foundation.contentColor import androidx.compose.foundation.layout.padding -import androidx.compose.material.EmphasisAmbient +import androidx.compose.material.AmbientEmphasisLevels import androidx.compose.material.IconButton import androidx.compose.material.MaterialTheme import androidx.compose.material.icons.Icons @@ -51,8 +51,8 @@ fun ToggleFollowPodcastIconButton( }, tint = animate( when { - isFollowed -> contentColor() - else -> EmphasisAmbient.current.high.applyEmphasis(Color.Black) + isFollowed -> AmbientContentColor.current + else -> AmbientEmphasisLevels.current.high.applyEmphasis(Color.Black) } ), modifier = Modifier diff --git a/Jetcaster/build.gradle b/Jetcaster/build.gradle index d66ba8d8b3..f3bb7bd530 100644 --- a/Jetcaster/build.gradle +++ b/Jetcaster/build.gradle @@ -43,10 +43,9 @@ subprojects { mavenCentral() jcenter() - if (!Libs.AndroidX.Compose.snapshot.isEmpty()) { - maven { - url "https://androidx.dev/snapshots/builds/${Libs.AndroidX.Compose.snapshot}/artifacts/ui/repository/" - } + // Jetpack Compose SNAPSHOTs + if (Libs.AndroidX.Compose.version.endsWith("SNAPSHOT")) { + maven { url Libs.AndroidX.Compose.snapshotUrl } } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } diff --git a/Jetcaster/buildSrc/src/main/java/com/example/jetcaster/buildsrc/dependencies.kt b/Jetcaster/buildSrc/src/main/java/com/example/jetcaster/buildsrc/dependencies.kt index f6e6e94901..33534fabba 100644 --- a/Jetcaster/buildSrc/src/main/java/com/example/jetcaster/buildsrc/dependencies.kt +++ b/Jetcaster/buildSrc/src/main/java/com/example/jetcaster/buildsrc/dependencies.kt @@ -29,12 +29,12 @@ object Libs { const val material = "com.google.android.material:material:1.1.0" object Accompanist { - private const val version = "0.3.0" + private const val version = "0.3.1.compose-6891475-SNAPSHOT" const val coil = "dev.chrisbanes.accompanist:accompanist-coil:$version" } object Kotlin { - private const val version = "1.4.0" + private const val version = "1.4.10" const val stdlib = "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$version" const val gradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:$version" const val extensions = "org.jetbrains.kotlin:kotlin-android-extensions:$version" @@ -61,8 +61,12 @@ object Libs { const val coreKtx = "androidx.core:core-ktx:1.5.0-alpha02" object Compose { - const val snapshot = "" - const val version = "1.0.0-alpha04" + private const val snapshot = "6891475" + const val version = "1.0.0-SNAPSHOT" + + @get:JvmStatic + val snapshotUrl: String + get() = "https://androidx.dev/snapshots/builds/$snapshot/artifacts/ui/repository/" const val runtime = "androidx.compose.runtime:runtime:$version" const val foundation = "androidx.compose.foundation:foundation:${version}" From 37973a6c02fdee62213332e495d614c5adda1c0e Mon Sep 17 00:00:00 2001 From: Chris Banes Date: Thu, 8 Oct 2020 10:49:13 +0100 Subject: [PATCH 2/2] Fix episode title being centered Change-Id: Iaea2200a99355e025d328ef8e4bc0e52a9479d55 --- .../jetcaster/ui/home/category/PodcastCategory.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Jetcaster/app/src/main/java/com/example/jetcaster/ui/home/category/PodcastCategory.kt b/Jetcaster/app/src/main/java/com/example/jetcaster/ui/home/category/PodcastCategory.kt index 38c40a200c..7b110f634d 100644 --- a/Jetcaster/app/src/main/java/com/example/jetcaster/ui/home/category/PodcastCategory.kt +++ b/Jetcaster/app/src/main/java/com/example/jetcaster/ui/home/category/PodcastCategory.kt @@ -245,11 +245,14 @@ fun EpisodeListItem( overflow = TextOverflow.Ellipsis, style = MaterialTheme.typography.caption, modifier = Modifier.constrainAs(date) { - start.linkTo(playIcon.end, margin = 12.dp) - end.linkTo(addPlaylist.start, margin = 16.dp) centerVerticallyTo(playIcon) - - width = Dimension.fillToConstraints + linkTo( + start = playIcon.end, + startMargin = 12.dp, + end = addPlaylist.start, + endMargin = 16.dp, + bias = 0f // float this towards the start + ) } )