diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bf0a6ff8b..7acbcb452 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,7 +30,8 @@ jobs: steps: - uses: actions/checkout@v3 - + with: + token: ${{ secrets.PAT}} - name: set up Java 17 uses: actions/setup-java@v2 with: @@ -47,6 +48,3 @@ jobs: run: ./gradlew :compose:recomposehighlighter:build - name: Build kotlin snippets run: ./gradlew :kotlin:build - # TODO fix bluetoothle snippets (lint is failing) - name: Build bluetoothle snippets - # run: ./gradlew :bluetoothle:build - diff --git a/.github/workflows/update_deps.yml b/.github/workflows/update_deps.yml index b7602f303..9f92a69b2 100644 --- a/.github/workflows/update_deps.yml +++ b/.github/workflows/update_deps.yml @@ -29,5 +29,5 @@ jobs: branch: bot-update-deps delete-branch: true title: '🤖 Update Dependencies' - body: Updated depedencies + body: Updated dependencies reviewers: ${{ github.actor }} diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/AnimationQuickGuide.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/AnimationQuickGuide.kt index 7c6493578..297f579a4 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/AnimationQuickGuide.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/AnimationQuickGuide.kt @@ -87,6 +87,7 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment +import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.drawBehind @@ -719,6 +720,7 @@ private fun LoadingScreen() { } } +@OptIn(ExperimentalComposeUiApi::class) @Preview @Composable fun AnimationLayout() { diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/graphics/AdvancedGraphicsSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/graphics/AdvancedGraphicsSnippets.kt index 63d3300ba..900f38da6 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/graphics/AdvancedGraphicsSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/graphics/AdvancedGraphicsSnippets.kt @@ -21,7 +21,6 @@ import android.content.Context import android.content.Intent import android.content.Intent.createChooser import android.graphics.Bitmap -import android.graphics.Canvas import android.graphics.Picture import android.media.MediaScannerConnection import android.net.Uri @@ -45,8 +44,10 @@ import androidx.compose.material3.SnackbarHostState import androidx.compose.material3.SnackbarResult import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawWithCache @@ -67,7 +68,6 @@ import com.google.accompanist.permissions.ExperimentalPermissionsApi import com.google.accompanist.permissions.rememberMultiplePermissionsState import java.io.File import kotlin.coroutines.resume -import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.suspendCancellableCoroutine @@ -86,6 +86,7 @@ import kotlinx.coroutines.suspendCancellableCoroutine * See the License for the specific language governing permissions and * limitations under the License. */ + @OptIn(ExperimentalPermissionsApi::class) @Preview @Composable @@ -108,7 +109,7 @@ fun BitmapFromComposableSnippet() { // and shares it with the default share sheet. fun shareBitmapFromComposable() { if (writeStorageAccessState.allPermissionsGranted) { - coroutineScope.launch(Dispatchers.IO) { + coroutineScope.launch { val bitmap = createBitmapFromPicture(picture) val uri = bitmap.saveToDisk(context) shareBitmap(context, uri) @@ -158,6 +159,7 @@ fun BitmapFromComposableSnippet() { height ) ) + // requires at least 1.6.0-alpha01+ draw(this, this.layoutDirection, pictureCanvas, this.size) { this@onDrawWithContent.drawContent() } diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/tooling/AndroidStudioComposeSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/tooling/AndroidStudioComposeSnippets.kt index eda389162..d1c23a52d 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/tooling/AndroidStudioComposeSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/tooling/AndroidStudioComposeSnippets.kt @@ -16,8 +16,6 @@ package com.example.compose.snippets.tooling -import androidx.annotation.FloatRange -import androidx.annotation.IntRange import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.material3.MaterialTheme @@ -28,14 +26,9 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalInspectionMode import androidx.compose.ui.res.stringResource -import androidx.compose.ui.tooling.preview.Device -import androidx.compose.ui.tooling.preview.Devices import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider -import androidx.compose.ui.tooling.preview.UiMode -import androidx.compose.ui.tooling.preview.Wallpaper -import androidx.compose.ui.tooling.preview.Wallpapers import com.example.compose.snippets.R import com.example.compose.snippets.interop.User @@ -174,7 +167,7 @@ fun UserProfilePreview2( UserProfile(user) } // [END android_compose_tooling_preview_parameter_provider_composable2] - +/* private object PreviewAnnotationEx { // [START android_compose_tooling_preview_annotation] annotation class Preview( @@ -194,3 +187,4 @@ private object PreviewAnnotationEx { ) // [END android_compose_tooling_preview_annotation] } + */ diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 222917da7..12c713722 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,36 +1,23 @@ -##### -# This file is duplicated to individual samples from the global scripts/libs.versions.toml -# Do not add a dependency to an individual sample, edit the global version instead. -##### [versions] accompanist = "0.30.1" androidGradlePlugin = "8.1.1" -androidx-activity-compose = "1.8.0-alpha06" +androidx-activity-compose = "1.8.0-beta01" androidx-appcompat = "1.6.1" -androidx-benchmark = "1.1.1" -androidx-benchmark-junit4 = "1.1.0-beta04" -androidx-cardview = "1.0.0" -androidx-compose-bom = "2023.08.00" +androidx-compose-bom = "2023.09.00" androidx-constraintlayout = "2.1.4" -androidx-constraintlayout-compose = "1.1.0-alpha12" +androidx-constraintlayout-compose = "1.0.1" androidx-coordinator-layout = "1.2.0" -androidx-corektx = "1.9.0" -androidx-emoji2-views = "1.4.0-beta05" +androidx-corektx = "1.12.0" +androidx-emoji2-views = "1.4.0" androidx-fragment-ktx = "1.6.1" androidx-glance-appwidget = "1.0.0" -androidx-lifecycle-compose = "2.6.1" -androidx-lifecycle-runtime-compose = "2.6.1" -androidx-navigation = "2.7.0" -androidx-paging = "3.2.0-rc01" -androidx-paging-common = "3.1.1" -androidx-palette = "1.0.0" +androidx-lifecycle-compose = "2.6.2" +androidx-lifecycle-runtime-compose = "2.6.2" +androidx-navigation = "2.7.2" +androidx-paging = "3.2.1" androidx-test = "1.5.0" androidx-test-espresso = "3.5.1" -androidx-test-ext-junit = "1.1.5" -androidx-test-ext-truth = "1.5.0" -androidx-window = "1.2.0-alpha02" androidxHiltNavigationCompose = "1.0.0" -androix-test-uiautomator = "2.2.0" coil = "2.4.0" # @keep compileSdk = "34" @@ -39,23 +26,15 @@ coroutines = "1.7.3" google-maps = "18.1.0" gradle-versions = "0.47.0" hilt = "2.47" -hiltExt = "1.0.0" -# @pin When updating to AGP 7.4.0-alpha10 and up we can update this https://developer.android.com/studio/write/java8-support#library-desugaring-versions -jdkDesugar = "1.2.2" junit = "4.13.2" # @pin Update in conjuction with Compose Compiler kotlin = "1.8.21" ksp = "1.8.0-1.0.9" maps-compose = "2.13.0" -material = "1.11.0-alpha01" +material = "1.11.0-alpha02" # @keep minSdk = "21" -okhttp = "4.11.0" recyclerview = "1.3.1" -robolectric = "4.9.2" -rome = "1.18.0" -room = "2.5.1" -secrets = "2.0.1" # @keep targetSdk = "34" version-catalog-update = "0.8.1" @@ -63,18 +42,12 @@ version-catalog-update = "0.8.1" [libraries] accompanist-adaptive = { module = "com.google.accompanist:accompanist-adaptive", version.ref = "accompanist" } accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist" } -accompanist-swiperefresh = { module = "com.google.accompanist:accompanist-swiperefresh", version.ref = "accompanist" } -accompanist-systemuicontroller = { module = "com.google.accompanist:accompanist-systemuicontroller", version.ref = "accompanist" } accompanist-theme-adapter-appcompat = { module = "com.google.accompanist:accompanist-themeadapter-appcompat", version.ref = "accompanist" } accompanist-theme-adapter-material = { module = "com.google.accompanist:accompanist-themeadapter-material", version.ref = "accompanist" } accompanist-theme-adapter-material3 = { module = "com.google.accompanist:accompanist-themeadapter-material3", version.ref = "accompanist" } androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity-compose" } -androidx-activity-ktx = "androidx.activity:activity-ktx:1.8.0-alpha05" + androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" } -androidx-benchmark-macrobenchmark = { module = "androidx.benchmark:benchmark-macro", version.ref = "androidx-benchmark" } -androidx-benchmark-macrobenchmark-junit4 = { module = "androidx.benchmark:benchmark-macro-junit4", version.ref = "androidx-benchmark-junit4" } -androidx-cardview = { module = "androidx.cardview:cardview", version.ref = "androidx-cardview" } -androidx-compose-animation = { module = "androidx.compose.animation:animation" } androidx-compose-animation-graphics = { module = "androidx.compose.animation:animation-graphics" } androidx-compose-bom = { module = "androidx.compose:compose-bom", version.ref = "androidx-compose-bom" } androidx-compose-foundation = { module = "androidx.compose.foundation:foundation" } @@ -87,7 +60,8 @@ androidx-compose-runtime = { module = "androidx.compose.runtime:runtime" } androidx-compose-runtime-livedata = { module = "androidx.compose.runtime:runtime-livedata" } androidx-compose-ui = { module = "androidx.compose.ui:ui" } androidx-compose-ui-googlefonts = { module = "androidx.compose.ui:ui-text-google-fonts" } -androidx-compose-ui-graphics = { module = "androidx.compose.ui:ui-graphics" } +# TODO remove usage of this when `draw` method is in stable. +androidx-compose-ui-graphics = "androidx.compose.ui:ui-graphics:1.6.0-alpha05" androidx-compose-ui-test = { module = "androidx.compose.ui:ui-test" } androidx-compose-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4" } androidx-compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest" } @@ -104,59 +78,33 @@ androidx-fragment-ktx = { module = "androidx.fragment:fragment-ktx", version.ref androidx-glance-appwidget = { module = "androidx.glance:glance-appwidget", version.ref = "androidx-glance-appwidget" } androidx-glance-material3 = { module = "androidx.glance:glance-material3", version.ref = "androidx-glance-appwidget" } androidx-hilt-navigation-compose = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "androidxHiltNavigationCompose" } -androidx-lifecycle-livedata-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "androidx-lifecycle-compose" } androidx-lifecycle-runtime = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidx-lifecycle-compose" } androidx-lifecycle-runtime-compose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidx-lifecycle-runtime-compose" } androidx-lifecycle-viewModelCompose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle-compose" } androidx-lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "androidx-lifecycle-compose" } -androidx-lifecycle-viewmodel-savedstate = { module = "androidx.lifecycle:lifecycle-viewmodel-savedstate", version.ref = "androidx-lifecycle-compose" } androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "androidx-navigation" } -androidx-navigation-fragment = { module = "androidx.navigation:navigation-fragment-ktx", version.ref = "androidx-navigation" } -androidx-navigation-ui-ktx = { module = "androidx.navigation:navigation-ui-ktx", version.ref = "androidx-navigation" } -androidx-paging-common-ktx = { module = "androidx.paging:paging-common-ktx", version.ref = "androidx-paging-common" } androidx-paging-compose = { module = "androidx.paging:paging-compose", version.ref = "androidx-paging" } -androidx-palette = { module = "androidx.palette:palette", version.ref = "androidx-palette" } androidx-recyclerview = { module = "androidx.recyclerview:recyclerview", version.ref = "recyclerview" } -androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" } -androidx-room-ktx = { module = "androidx.room:room-ktx", version.ref = "room" } -androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = "room" } androidx-test-core = { module = "androidx.test:core", version.ref = "androidx-test" } androidx-test-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "androidx-test-espresso" } -androidx-test-ext-junit = { module = "androidx.test.ext:junit", version.ref = "androidx-test-ext-junit" } -androidx-test-ext-truth = { module = "androidx.test.ext:truth", version.ref = "androidx-test-ext-truth" } -androidx-test-rules = { module = "androidx.test:rules", version.ref = "androidx-test" } androidx-test-runner = "androidx.test:runner:1.5.2" -androidx-test-uiautomator = { module = "androidx.test.uiautomator:uiautomator", version.ref = "androix-test-uiautomator" } -androidx-window = { module = "androidx.window:window", version.ref = "androidx-window" } androidx-work-runtime-ktx = "androidx.work:work-runtime-ktx:2.8.1" coil-kt-compose = { module = "io.coil-kt:coil-compose", version.ref = "coil" } -core-jdk-desugaring = { module = "com.android.tools:desugar_jdk_libs", version.ref = "jdkDesugar" } google-android-material = { module = "com.google.android.material:material", version.ref = "material" } googlemaps-compose = { module = "com.google.maps.android:maps-compose", version.ref = "maps-compose" } googlemaps-maps = { module = "com.google.android.gms:play-services-maps", version.ref = "google-maps" } hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } -hilt-android-testing = { module = "com.google.dagger:hilt-android-testing", version.ref = "hilt" } hilt-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hilt" } -hilt-ext-compiler = { module = "androidx.hilt:hilt-compiler", version.ref = "hiltExt" } junit = { module = "junit:junit", version.ref = "junit" } kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8", version.ref = "kotlin" } kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "coroutines" } kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" } -okhttp-logging = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttp" } -okhttp3 = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" } -robolectric = { module = "org.robolectric:robolectric", version.ref = "robolectric" } -rometools-modules = { module = "com.rometools:rome-modules", version.ref = "rome" } -rometools-rome = { module = "com.rometools:rome", version.ref = "rome" } [plugins] android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" } android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" } -android-test = { id = "com.android.test", version.ref = "androidGradlePlugin" } gradle-versions = { id = "com.github.ben-manes.versions", version.ref = "gradle-versions" } hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } -kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } -ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } -secrets = { id = "com.google.android.libraries.mapsplatform.secrets-gradle-plugin", version.ref = "secrets" } version-catalog-update = { id = "nl.littlerobots.version-catalog-update", version.ref = "version-catalog-update" }