diff --git a/Crane/app/build.gradle b/Crane/app/build.gradle index 2838864b8c..a2d1d99f64 100644 --- a/Crane/app/build.gradle +++ b/Crane/app/build.gradle @@ -72,7 +72,14 @@ android { } buildFeatures { - compose true + compose true + + // Disable unused AGP features + buildConfig false + aidl false + renderScript false + resValues false + shaders false } composeOptions { kotlinCompilerVersion Libs.Kotlin.version @@ -92,7 +99,6 @@ dependencies { implementation Libs.AndroidX.Compose.animation implementation Libs.AndroidX.UI.tooling - implementation Libs.AndroidX.appcompat implementation Libs.Accompanist.coil androidTestImplementation Libs.AndroidX.Test.runner diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/base/BaseUserInput.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/base/BaseUserInput.kt index 9122f264ec..f6e39f8555 100644 --- a/Crane/app/src/main/java/androidx/compose/samples/crane/base/BaseUserInput.kt +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/base/BaseUserInput.kt @@ -17,11 +17,11 @@ package androidx.compose.samples.crane.base import androidx.annotation.DrawableRes +import androidx.compose.foundation.AmbientContentColor import androidx.compose.foundation.BaseTextField import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.Icon import androidx.compose.foundation.Text -import androidx.compose.foundation.contentColor import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.padding @@ -63,7 +63,7 @@ fun CraneUserInput( modifier: Modifier = Modifier, caption: String? = null, @DrawableRes vectorImageId: Int? = null, - tint: Color = contentColor() + tint: Color = AmbientContentColor.current ) { CraneBaseUserInput( modifier = modifier, @@ -111,7 +111,7 @@ private fun CraneBaseUserInput( @DrawableRes vectorImageId: Int? = null, showCaption: () -> Boolean = { true }, tintIcon: () -> Boolean, - tint: Color = contentColor(), + tint: Color = AmbientContentColor.current, children: @Composable () -> Unit ) { Surface(modifier = modifier, color = MaterialTheme.colors.primaryVariant) { diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/base/ExploreSection.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/base/ExploreSection.kt index 74ec38879e..ffacb17f7a 100644 --- a/Crane/app/src/main/java/androidx/compose/samples/crane/base/ExploreSection.kt +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/base/ExploreSection.kt @@ -19,10 +19,10 @@ package androidx.compose.samples.crane.base 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.Stack import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.preferredHeight @@ -46,7 +46,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.vectorResource import androidx.compose.ui.unit.dp -import dev.chrisbanes.accompanist.coil.CoilImageWithCrossfade +import dev.chrisbanes.accompanist.coil.CoilImage @Composable fun ExploreSection( @@ -89,11 +89,12 @@ private fun ExploreItem( .padding(top = 12.dp, bottom = 12.dp) ) { ExploreImageContainer { - CoilImageWithCrossfade( + CoilImage( data = item.imageUrl, + fadeIn = true, contentScale = ContentScale.Crop, loading = { - Stack(Modifier.fillMaxSize()) { + Box(Modifier.fillMaxSize()) { Image( modifier = Modifier.preferredSize(36.dp).align(Alignment.Center), asset = vectorResource(id = R.drawable.ic_crane_logo) diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/Calendar.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/Calendar.kt index 4614da8891..b785cbe137 100644 --- a/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/Calendar.kt +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/Calendar.kt @@ -19,10 +19,10 @@ package androidx.compose.samples.crane.calendar import androidx.compose.foundation.ScrollableColumn 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.Stack import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth @@ -210,7 +210,7 @@ private fun DayStatusContainer( children: @Composable () -> Unit ) { if (status.isMarked()) { - Stack { + Box { val color = MaterialTheme.colors.secondary Circle(color = color) if (status == DaySelectedStatus.FirstDay) { diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/CalendarActivity.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/CalendarActivity.kt index 45152a8d07..bdfb166bb7 100644 --- a/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/CalendarActivity.kt +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/calendar/CalendarActivity.kt @@ -19,7 +19,7 @@ package androidx.compose.samples.crane.calendar import android.content.Context import android.content.Intent import android.os.Bundle -import androidx.appcompat.app.AppCompatActivity +import androidx.activity.ComponentActivity import androidx.compose.foundation.Image import androidx.compose.foundation.Text import androidx.compose.foundation.layout.Column @@ -42,7 +42,7 @@ fun launchCalendarActivity(context: Context) { context.startActivity(intent) } -class CalendarActivity : AppCompatActivity() { +class CalendarActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/details/DetailsActivity.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/details/DetailsActivity.kt index c352a63f4e..4715a32dc5 100644 --- a/Crane/app/src/main/java/androidx/compose/samples/crane/details/DetailsActivity.kt +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/details/DetailsActivity.kt @@ -19,8 +19,8 @@ package androidx.compose.samples.crane.details import android.content.Context import android.content.Intent import android.os.Bundle +import androidx.activity.ComponentActivity import androidx.annotation.VisibleForTesting -import androidx.appcompat.app.AppCompatActivity import androidx.compose.foundation.Text import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -73,7 +73,7 @@ data class DetailsActivityArg( val longitude: String ) -class DetailsActivity : AppCompatActivity() { +class DetailsActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/home/CraneHome.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/home/CraneHome.kt index a53e914198..510c72769f 100644 --- a/Crane/app/src/main/java/androidx/compose/samples/crane/home/CraneHome.kt +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/home/CraneHome.kt @@ -21,7 +21,7 @@ import androidx.compose.material.BackdropValue import androidx.compose.material.DrawerValue import androidx.compose.material.ExperimentalMaterialApi import androidx.compose.material.ModalDrawerLayout -import androidx.compose.material.rememberBackdropState +import androidx.compose.material.rememberBackdropScaffoldState import androidx.compose.material.rememberDrawerState import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -82,7 +82,7 @@ fun CraneHomeContent( BackdropScaffold( modifier = modifier, - backdropScaffoldState = rememberBackdropState(BackdropValue.Revealed), + scaffoldState = rememberBackdropScaffoldState(BackdropValue.Revealed), frontLayerScrimColor = Color.Transparent, appBar = { HomeTabBar(openDrawer, tabSelected, onTabSelected = { tabSelected = it }) diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/home/LandingScreen.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/home/LandingScreen.kt index ee3e8dcfbb..577aab16e5 100644 --- a/Crane/app/src/main/java/androidx/compose/samples/crane/home/LandingScreen.kt +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/home/LandingScreen.kt @@ -16,13 +16,13 @@ package androidx.compose.samples.crane.home -import androidx.compose.foundation.Box -import androidx.compose.foundation.ContentGravity import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable -import androidx.compose.runtime.launchInComposition +import androidx.compose.runtime.LaunchedTask import androidx.compose.samples.crane.R +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.vectorResource import kotlinx.coroutines.delay @@ -31,8 +31,8 @@ private const val SplashWaitTime: Long = 2000 @Composable fun LandingScreen(modifier: Modifier = Modifier, onTimeout: () -> Unit) { - Box(modifier = modifier.fillMaxSize(), gravity = ContentGravity.Center) { - launchInComposition { + Box(modifier = modifier.fillMaxSize(), alignment = Alignment.Center) { + LaunchedTask { delay(SplashWaitTime) onTimeout() } diff --git a/Crane/app/src/main/java/androidx/compose/samples/crane/home/MainActivity.kt b/Crane/app/src/main/java/androidx/compose/samples/crane/home/MainActivity.kt index 96d228954a..f600492b94 100644 --- a/Crane/app/src/main/java/androidx/compose/samples/crane/home/MainActivity.kt +++ b/Crane/app/src/main/java/androidx/compose/samples/crane/home/MainActivity.kt @@ -17,7 +17,7 @@ package androidx.compose.samples.crane.home import android.os.Bundle -import androidx.appcompat.app.AppCompatActivity +import androidx.activity.ComponentActivity import androidx.compose.animation.DpPropKey import androidx.compose.animation.core.FloatPropKey import androidx.compose.animation.core.Spring.StiffnessLow @@ -25,9 +25,9 @@ import androidx.compose.animation.core.spring import androidx.compose.animation.core.transitionDefinition import androidx.compose.animation.core.tween import androidx.compose.animation.transition +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.Stack import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -43,7 +43,7 @@ import androidx.compose.ui.platform.setContent import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp -class MainActivity : AppCompatActivity() { +class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -59,7 +59,7 @@ class MainActivity : AppCompatActivity() { var splashShown by remember { mutableStateOf(SplashState.Shown) } val transition = transition(splashTransitionDefinition, splashShown) - Stack { + Box { LandingScreen( modifier = Modifier.drawOpacity(transition[splashAlphaKey]), onTimeout = { splashShown = SplashState.Completed } diff --git a/Crane/build.gradle b/Crane/build.gradle index fafda987f3..1f6412ac10 100644 --- a/Crane/build.gradle +++ b/Crane/build.gradle @@ -17,7 +17,6 @@ import com.example.crane.buildsrc.Libs import com.example.crane.buildsrc.Urls import com.example.crane.buildsrc.Versions -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile buildscript { repositories { @@ -57,7 +56,7 @@ subprojects { } } - tasks.withType(KotlinCompile).configureEach { + tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { kotlinOptions { // Treat all Kotlin warnings as errors allWarningsAsErrors = true @@ -69,18 +68,4 @@ subprojects { freeCompilerArgs += '-Xallow-jvm-ir-dependencies' } } - - // Crane uses Compose alpha03 and Android Gradle Plugin 4.2.0-alpha13 which are incompatible - // TODO: Remove this workaround when updating to >alpha04 - configurations.configureEach { - resolutionStrategy.eachDependency { DependencyResolveDetails details -> - def group = details.requested.group - def module = details.requested.module.name - def version = details.requested.version - - if (group == 'androidx.compose.compiler' && module == 'compiler') { - details.useTarget("androidx.compose:compose-compiler:$version") - } - } - } } \ No newline at end of file diff --git a/Crane/buildSrc/src/main/java/com/example/crane/buildsrc/Dependencies.kt b/Crane/buildSrc/src/main/java/com/example/crane/buildsrc/Dependencies.kt index 57bda87c95..8c51508f51 100644 --- a/Crane/buildSrc/src/main/java/com/example/crane/buildsrc/Dependencies.kt +++ b/Crane/buildSrc/src/main/java/com/example/crane/buildsrc/Dependencies.kt @@ -17,7 +17,7 @@ package com.example.crane.buildsrc object Versions { - const val ktLint = "0.38.1" + const val ktLint = "0.39.0" } object Libs { @@ -26,23 +26,21 @@ object Libs { const val googleMaps = "com.google.android.libraries.maps:maps:3.1.0-beta" object Accompanist { - private const val version = "0.2.2" + 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" } object AndroidX { - const val appcompat = "androidx.appcompat:appcompat:1.3.0-alpha02" - object Compose { - const val snapshot = "" - const val version = "1.0.0-alpha03" + const val snapshot = "6891475" + const val version = "1.0.0-SNAPSHOT" const val runtime = "androidx.compose.runtime:runtime:$version" const val runtimeLivedata = "androidx.compose.runtime:runtime-livedata:$version"