From a9bb0afa086b6a81277e5ecaed3e521a9b5cfd19 Mon Sep 17 00:00:00 2001 From: Eric Chang Date: Thu, 19 May 2022 15:20:53 -0700 Subject: [PATCH] Updates to ViewModel support to use the new CreationExtras. - Fixes issues with keyed ViewModels. - Fixes issues with using the ViewModel factory with a navigation entry as owner. Now the lazy function hiltNavGraphViewModels() provided by androidx.hilt:hilt-navigation-fragment is no longer needed. - Updates deps on fragment to 1.5.0 and lifecycle to 2.5.0 - That required updating the Android SDK to 31+, so upgrading to 32 and tools to 32.0.0 (besides a bazel example which has issues with that) - This requires AGP 7.0.0 so dropping support for AGP 4.2.0 - AGP 7.0.0 requires Java 11 so dropping support for Java 8 - Targeting 31+ requires updating androidx.text.core to 1.4.0 Fixes #3232. Issue #2152. RELNOTES=Fixes #3232 and #2152 (without hiltNavGraphViewModels). Also, due to the update to the new fragment 1.5.0 version, requires apps using Hilt to use SDK 31+ for the compile SDK. PiperOrigin-RevId: 449844449 --- .github/workflows/ci.yml | 2 +- .github/workflows/release.yml | 2 +- BUILD | 4 +- CONTRIBUTING.md | 4 +- WORKSPACE | 25 +-- examples/bazel/WORKSPACE | 10 +- java/dagger/android/support/BUILD | 2 +- java/dagger/hilt/android/BUILD | 2 +- .../lifecycle/HiltViewModelFactory.java | 14 +- .../hilt/android/plugin/main/build.gradle | 8 +- .../test/data/android-libraryA/build.gradle | 12 +- .../test/data/android-libraryC/build.gradle | 12 +- .../data/flavored-project/app/build.gradle | 12 +- .../flavored-project/feature/build.gradle | 12 +- .../src/test/data/java-libraryA/build.gradle | 4 +- .../src/test/data/java-libraryB/build.gradle | 4 +- .../app/build.gradle | 10 +- .../feature/build.gradle | 10 +- .../src/test/kotlin/AGPCompatibilityTest.kt | 1 - .../main/src/test/kotlin/BuildCacheTest.kt | 58 +++--- .../main/src/test/kotlin/GradleTestRunner.kt | 77 ++++---- .../test/kotlin/IncrementalProcessorTest.kt | 16 +- java/dagger/hilt/android/processor/BUILD | 2 +- java/dagger/hilt/android/testing/BUILD | 2 +- java/dagger/hilt/processor/BUILD | 2 +- .../dagger-android/simple/app/build.gradle | 22 +-- .../dagger-android/simple/build.gradle | 2 +- .../artifacts/dagger/kotlin-app/build.gradle | 2 +- .../kotlin-app/kotlin-library/build.gradle | 2 +- .../pluginMarker/app/build.gradle | 12 +- .../simple/app-java-only/build.gradle | 16 +- .../hilt-android/simple/app/build.gradle | 22 +-- .../hilt-android/simple/build.gradle | 2 +- .../simple/deep-android-lib/build.gradle | 12 +- .../simple/earlyentrypoint/build.gradle | 16 +- .../hilt-android/simple/feature/build.gradle | 10 +- .../hilt-android/simple/lib/build.gradle | 4 +- .../simpleKotlin/android-library/build.gradle | 14 +- .../simpleKotlin/app/build.gradle | 24 +-- .../hilt-android/simpleKotlin/build.gradle | 2 +- .../deep-android-lib/build.gradle | 20 +- .../simpleKotlin/deep-kotlin-lib/build.gradle | 4 +- .../simpleKotlin/kotlin-library/build.gradle | 4 +- javatests/dagger/android/processor/BUILD | 2 +- .../dagger/hilt/android/AndroidManifest.xml | 4 + javatests/dagger/hilt/android/BUILD | 42 ++++ .../android/ViewModelSavedStateOwnerTest.java | 183 ++++++++++++++++++ .../hilt/android/ViewModelScopedTest.java | 14 +- .../hilt/android/processor/internal/BUILD | 2 +- .../processor/internal/aggregateddeps/BUILD | 4 +- .../internal/androidentrypoint/BUILD | 6 +- .../internal/customtestapplication/BUILD | 2 +- .../processor/internal/viewmodel/BUILD | 6 +- .../res/layout/navigation_activity.xml | 11 ++ .../hilt/android/res/navigation/nav_graph.xml | 22 +++ .../hilt/processor/internal/aliasof/BUILD | 2 +- .../internal/originatingelement/BUILD | 2 +- .../dagger/hilt/processor/internal/root/BUILD | 8 +- .../processor/internal/uninstallmodules/BUILD | 2 +- tools/shader/build.gradle | 2 +- util/run-local-gradle-android-tests.sh | 12 +- util/run-local-tests.sh | 2 - 62 files changed, 551 insertions(+), 274 deletions(-) create mode 100644 javatests/dagger/hilt/android/ViewModelSavedStateOwnerTest.java create mode 100644 javatests/dagger/hilt/android/res/layout/navigation_activity.xml create mode 100644 javatests/dagger/hilt/android/res/navigation/nav_graph.xml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 33f6087d3ef..61ceb7249d3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,7 +56,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - agp: ['4.1.0', '4.2.0', '7.0.0', '7.1.2'] + agp: ['7.0.0', '7.1.2'] steps: - uses: actions/checkout@v2 - uses: ./.github/actions/artifact-android-local-tests diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8f3b2638264..2430b55f45d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -58,7 +58,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - agp: ['4.1.0', '4.2.0', '7.0.0'] + agp: ['7.0.0', '7.1.2'] steps: - uses: actions/checkout@v2 - uses: ./.github/actions/artifact-android-local-tests diff --git a/BUILD b/BUILD index 8692ea11d58..a22ba7a24e7 100644 --- a/BUILD +++ b/BUILD @@ -101,7 +101,7 @@ android_library( name = "android_local_test_exports", exports = [ # TODO(bcorso): see if we can remove jsr250 dep from autovalue to prevent this. - "@javax_annotation_jsr250_api", # For @Generated + "@maven//:javax_annotation_jsr250_api", # For @Generated "@maven//:org_robolectric_shadows_framework", # For ActivityController "@maven//:androidx_lifecycle_lifecycle_common", # For Lifecycle.State "@maven//:androidx_activity_activity", # For ComponentActivity @@ -127,7 +127,7 @@ javadoc_library( "//java/dagger/producers:producers-srcs", "//java/dagger/spi:spi-srcs", ], - android_api_level = 30, + android_api_level = 32, # TODO(ronshapiro): figure out how to specify the version number for release builds doctitle = "Dagger Dependency Injection API", exclude_packages = [ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f0748e091f2..8975bcbc395 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -44,9 +44,9 @@ attempt to delete the `build/` folder will also delete the bazel `BUILD` files. [download](https://developer.android.com/studio#command-tools) and unzip it first. * Install the necessary components. For example, under Linux, run: - `$ANDROID_HOME/tools/bin/sdkmanager "platforms;android-30" "build-tools;30.0.2"` + `$ANDROID_HOME/tools/bin/sdkmanager "platforms;android-32" "build-tools;32.0.0"` * If you skip this step, you will see an error similar to - `ERROR: missing input file '@androidsdk//:build-tools/30.0.2/aapt'`. + `ERROR: missing input file '@androidsdk//:build-tools/32.0.0/aapt'`. * You may also need to run `bazel sync`. * Run tests with `bazel test `, or `bazel test //...` to run all tests. diff --git a/WORKSPACE b/WORKSPACE index 2a8db13ce43..0cc004f842f 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -64,9 +64,9 @@ local_repository( http_archive( name = "google_bazel_common", - sha256 = "8b6aebdc095c8448b2f6a72bb8eae4a563891467e2d20c943f21940b1c444e38", - strip_prefix = "bazel-common-3d0e5005cfcbee836e31695d4ab91b5328ccc506", - urls = ["https://github.com/google/bazel-common/archive/3d0e5005cfcbee836e31695d4ab91b5328ccc506.zip"], + sha256 = "60a9aebe25f476646f61c041d1679a9b21076deffbd51526838c7f24d6468ac0", + strip_prefix = "bazel-common-227a23a508a2fab0fa67ffe2d9332ae536a40edc", + urls = ["https://github.com/google/bazel-common/archive/227a23a508a2fab0fa67ffe2d9332ae536a40edc.zip"], ) load("@google_bazel_common//:workspace_defs.bzl", "google_common_workspace_rules") @@ -161,9 +161,9 @@ kt_register_toolchains() # Load Maven dependencies ############################# -RULES_JVM_EXTERNAL_TAG = "2.7" +RULES_JVM_EXTERNAL_TAG = "4.2" -RULES_JVM_EXTERNAL_SHA = "f04b1466a00a2845106801e0c5cec96841f49ea4e7d1df88dc8e4bf31523df74" +RULES_JVM_EXTERNAL_SHA = "cd1a77b7b02e8e008439ca76fd34f5b07aecb8c752961f9640dea15e9e5ba1ca" http_archive( name = "rules_jvm_external", @@ -199,13 +199,16 @@ maven_install( artifacts = [ "androidx.annotation:annotation:1.1.0", "androidx.appcompat:appcompat:1.3.1", - "androidx.activity:activity:1.3.1", - "androidx.fragment:fragment:1.3.6", - "androidx.lifecycle:lifecycle-common:2.3.1", - "androidx.lifecycle:lifecycle-viewmodel:2.3.1", - "androidx.lifecycle:lifecycle-viewmodel-savedstate:2.3.1", + "androidx.activity:activity:1.5.0", + "androidx.fragment:fragment:1.5.0", + "androidx.lifecycle:lifecycle-common:2.5.0", + "androidx.lifecycle:lifecycle-viewmodel:2.5.0", + "androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.0", "androidx.multidex:multidex:2.0.1", - "androidx.savedstate:savedstate:1.0.0", + "androidx.navigation:navigation-common:2.5.0", + "androidx.navigation:navigation-fragment:2.5.0", + "androidx.navigation:navigation-runtime:2.5.0", + "androidx.savedstate:savedstate:1.2.0", "androidx.test:monitor:1.4.0", "androidx.test:core:1.4.0", "androidx.test.ext:junit:1.1.3", diff --git a/examples/bazel/WORKSPACE b/examples/bazel/WORKSPACE index 6a1197f4dfc..3291f3a69ca 100644 --- a/examples/bazel/WORKSPACE +++ b/examples/bazel/WORKSPACE @@ -41,8 +41,10 @@ load( android_sdk_repository( name = "androidsdk", - api_level = 30, - build_tools_version = "30.0.2", + api_level = 32, + # Need to upgrade Bazel before upgrading tools + # https://github.com/bazelbuild/bazel/issues/13989 + build_tools_version = "30.0.3", ) ############################# @@ -65,9 +67,9 @@ robolectric_repositories() # Load Maven repositories ######################### -RULES_JVM_EXTERNAL_TAG = "2.7" +RULES_JVM_EXTERNAL_TAG = "4.2" -RULES_JVM_EXTERNAL_SHA = "f04b1466a00a2845106801e0c5cec96841f49ea4e7d1df88dc8e4bf31523df74" +RULES_JVM_EXTERNAL_SHA = "cd1a77b7b02e8e008439ca76fd34f5b07aecb8c752961f9640dea15e9e5ba1ca" http_archive( name = "rules_jvm_external", diff --git a/java/dagger/android/support/BUILD b/java/dagger/android/support/BUILD index 80747a4b1f5..0a7affe62ff 100644 --- a/java/dagger/android/support/BUILD +++ b/java/dagger/android/support/BUILD @@ -89,7 +89,7 @@ pom_file( javadoc_library( name = "support-javadoc", srcs = [":support-srcs"], - android_api_level = 30, + android_api_level = 32, root_packages = ["dagger.android.support"], deps = [":support"], ) diff --git a/java/dagger/hilt/android/BUILD b/java/dagger/hilt/android/BUILD index 1cce5ea8c15..003a8a3cee7 100644 --- a/java/dagger/hilt/android/BUILD +++ b/java/dagger/hilt/android/BUILD @@ -216,7 +216,7 @@ gen_maven_artifact( "com.google.guava:guava", "javax.annotation:jsr250-api", ], - javadoc_android_api_level = 30, + javadoc_android_api_level = 32, javadoc_exclude_packages = [ "dagger.hilt.android.internal", ], diff --git a/java/dagger/hilt/android/internal/lifecycle/HiltViewModelFactory.java b/java/dagger/hilt/android/internal/lifecycle/HiltViewModelFactory.java index 4e2e0fa8bb4..53163f0c571 100644 --- a/java/dagger/hilt/android/internal/lifecycle/HiltViewModelFactory.java +++ b/java/dagger/hilt/android/internal/lifecycle/HiltViewModelFactory.java @@ -24,6 +24,7 @@ import androidx.lifecycle.SavedStateHandle; import androidx.lifecycle.ViewModel; import androidx.lifecycle.ViewModelProvider; +import androidx.lifecycle.viewmodel.CreationExtras; import androidx.savedstate.SavedStateRegistryOwner; import dagger.Module; import dagger.hilt.EntryPoint; @@ -78,7 +79,7 @@ public HiltViewModelFactory( this.hiltViewModelKeys = hiltViewModelKeys; this.delegateFactory = delegateFactory; this.hiltViewModelFactory = - new AbstractSavedStateViewModelFactory(owner, defaultArgs) { + new AbstractSavedStateViewModelFactory() { @NonNull @Override @SuppressWarnings("unchecked") @@ -102,6 +103,17 @@ protected T create( }; } + @NonNull + @Override + public T create( + @NonNull Class modelClass, @NonNull CreationExtras extras) { + if (hiltViewModelKeys.contains(modelClass.getName())) { + return hiltViewModelFactory.create(modelClass, extras); + } else { + return delegateFactory.create(modelClass, extras); + } + } + @NonNull @Override public T create(@NonNull Class modelClass) { diff --git a/java/dagger/hilt/android/plugin/main/build.gradle b/java/dagger/hilt/android/plugin/main/build.gradle index ebd2a12f09d..91e74706068 100644 --- a/java/dagger/hilt/android/plugin/main/build.gradle +++ b/java/dagger/hilt/android/plugin/main/build.gradle @@ -65,7 +65,7 @@ dependencies { testImplementation gradleTestKit() testImplementation 'junit:junit:4.12' testImplementation 'com.google.truth:truth:1.0.1' - testPluginCompile 'com.android.tools.build:gradle:4.2.0' + testPluginCompile 'com.android.tools.build:gradle:7.1.2' } // Configure the generating task of plugin-under-test-metadata.properties to @@ -78,14 +78,14 @@ tasks.withType(PluginUnderTestMetadata.class).named("pluginUnderTestMetadata").c compileKotlin { kotlinOptions { - jvmTarget = "1.8" + jvmTarget = '11' allWarningsAsErrors = true } } java { - sourceCompatibility = "1.8" - targetCompatibility = "1.8" + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } // Imports a shared library from the main project. The library and its classes diff --git a/java/dagger/hilt/android/plugin/main/src/test/data/android-libraryA/build.gradle b/java/dagger/hilt/android/plugin/main/src/test/data/android-libraryA/build.gradle index 67a5cae3fb4..e0ec2309742 100644 --- a/java/dagger/hilt/android/plugin/main/src/test/data/android-libraryA/build.gradle +++ b/java/dagger/hilt/android/plugin/main/src/test/data/android-libraryA/build.gradle @@ -4,18 +4,18 @@ plugins { } android { - compileSdkVersion 30 - buildToolsVersion "30.0.2" + compileSdkVersion 32 + buildToolsVersion "32.0.0" defaultConfig { minSdkVersion 21 - targetSdkVersion 30 + targetSdkVersion 32 versionCode 1 versionName "1.0" } compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } } @@ -25,4 +25,4 @@ dependencies { implementation project(':libraryB') implementation project(':libraryC') -} \ No newline at end of file +} diff --git a/java/dagger/hilt/android/plugin/main/src/test/data/android-libraryC/build.gradle b/java/dagger/hilt/android/plugin/main/src/test/data/android-libraryC/build.gradle index a018daec157..68c6a97f377 100644 --- a/java/dagger/hilt/android/plugin/main/src/test/data/android-libraryC/build.gradle +++ b/java/dagger/hilt/android/plugin/main/src/test/data/android-libraryC/build.gradle @@ -4,22 +4,22 @@ plugins { } android { - compileSdkVersion 30 - buildToolsVersion "30.0.2" + compileSdkVersion 32 + buildToolsVersion "32.0.0" defaultConfig { minSdkVersion 21 - targetSdkVersion 30 + targetSdkVersion 32 versionCode 1 versionName "1.0" } compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } } dependencies { implementation 'com.google.dagger:hilt-android:LOCAL-SNAPSHOT' annotationProcessor 'com.google.dagger:hilt-compiler:LOCAL-SNAPSHOT' -} \ No newline at end of file +} diff --git a/java/dagger/hilt/android/plugin/main/src/test/data/flavored-project/app/build.gradle b/java/dagger/hilt/android/plugin/main/src/test/data/flavored-project/app/build.gradle index 71034660e45..23cd028b949 100644 --- a/java/dagger/hilt/android/plugin/main/src/test/data/flavored-project/app/build.gradle +++ b/java/dagger/hilt/android/plugin/main/src/test/data/flavored-project/app/build.gradle @@ -20,8 +20,8 @@ plugins { } android { - compileSdkVersion 30 - buildToolsVersion "30.0.2" + compileSdkVersion 32 + buildToolsVersion "32.0.0" flavorDimensions 'api', 'version' productFlavors { @@ -46,12 +46,12 @@ android { defaultConfig { applicationId "simple.app" minSdkVersion 21 - targetSdkVersion 30 + targetSdkVersion 32 } compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } } @@ -63,4 +63,4 @@ dependencies { hilt { enableAggregatingTask = true -} \ No newline at end of file +} diff --git a/java/dagger/hilt/android/plugin/main/src/test/data/flavored-project/feature/build.gradle b/java/dagger/hilt/android/plugin/main/src/test/data/flavored-project/feature/build.gradle index ca5ec12c062..8e34951566b 100644 --- a/java/dagger/hilt/android/plugin/main/src/test/data/flavored-project/feature/build.gradle +++ b/java/dagger/hilt/android/plugin/main/src/test/data/flavored-project/feature/build.gradle @@ -20,8 +20,8 @@ plugins { } android { - compileSdkVersion 30 - buildToolsVersion "30.0.2" + compileSdkVersion 32 + buildToolsVersion "32.0.0" flavorDimensions 'api', 'version' productFlavors { @@ -45,16 +45,16 @@ android { defaultConfig { minSdkVersion 16 - targetSdkVersion 30 + targetSdkVersion 32 } compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } } dependencies { implementation 'com.google.dagger:hilt-android:LOCAL-SNAPSHOT' annotationProcessor 'com.google.dagger:hilt-compiler:LOCAL-SNAPSHOT' -} \ No newline at end of file +} diff --git a/java/dagger/hilt/android/plugin/main/src/test/data/java-libraryA/build.gradle b/java/dagger/hilt/android/plugin/main/src/test/data/java-libraryA/build.gradle index dde885882fb..8bd81659119 100644 --- a/java/dagger/hilt/android/plugin/main/src/test/data/java-libraryA/build.gradle +++ b/java/dagger/hilt/android/plugin/main/src/test/data/java-libraryA/build.gradle @@ -3,8 +3,8 @@ plugins { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_8 + targetCompatibility = JavaVersion.VERSION_11 } dependencies { diff --git a/java/dagger/hilt/android/plugin/main/src/test/data/java-libraryB/build.gradle b/java/dagger/hilt/android/plugin/main/src/test/data/java-libraryB/build.gradle index 55780ccb05e..df46c443605 100644 --- a/java/dagger/hilt/android/plugin/main/src/test/data/java-libraryB/build.gradle +++ b/java/dagger/hilt/android/plugin/main/src/test/data/java-libraryB/build.gradle @@ -3,8 +3,8 @@ plugins { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_8 + targetCompatibility = JavaVersion.VERSION_11 } dependencies { diff --git a/java/dagger/hilt/android/plugin/main/src/test/data/simple-project-for-agp-test/app/build.gradle b/java/dagger/hilt/android/plugin/main/src/test/data/simple-project-for-agp-test/app/build.gradle index 0af19314332..2173a828023 100644 --- a/java/dagger/hilt/android/plugin/main/src/test/data/simple-project-for-agp-test/app/build.gradle +++ b/java/dagger/hilt/android/plugin/main/src/test/data/simple-project-for-agp-test/app/build.gradle @@ -20,18 +20,18 @@ plugins { } android { - compileSdkVersion 30 - buildToolsVersion "30.0.2" + compileSdkVersion 32 + buildToolsVersion "32.0.0" defaultConfig { applicationId "simple.app" minSdkVersion 21 - targetSdkVersion 30 + targetSdkVersion 32 } compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } } diff --git a/java/dagger/hilt/android/plugin/main/src/test/data/simple-project-for-agp-test/feature/build.gradle b/java/dagger/hilt/android/plugin/main/src/test/data/simple-project-for-agp-test/feature/build.gradle index f6bf2db90c5..e19f1d5713c 100644 --- a/java/dagger/hilt/android/plugin/main/src/test/data/simple-project-for-agp-test/feature/build.gradle +++ b/java/dagger/hilt/android/plugin/main/src/test/data/simple-project-for-agp-test/feature/build.gradle @@ -20,17 +20,17 @@ plugins { } android { - compileSdkVersion 30 - buildToolsVersion "30.0.2" + compileSdkVersion 32 + buildToolsVersion "32.0.0" defaultConfig { minSdkVersion 16 - targetSdkVersion 30 + targetSdkVersion 32 } compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } } diff --git a/java/dagger/hilt/android/plugin/main/src/test/kotlin/AGPCompatibilityTest.kt b/java/dagger/hilt/android/plugin/main/src/test/kotlin/AGPCompatibilityTest.kt index 662267fff27..d5bc488025b 100644 --- a/java/dagger/hilt/android/plugin/main/src/test/kotlin/AGPCompatibilityTest.kt +++ b/java/dagger/hilt/android/plugin/main/src/test/kotlin/AGPCompatibilityTest.kt @@ -87,7 +87,6 @@ class AGPCompatibilityTest( arrayOf("7.2.0"), arrayOf("7.1.0"), arrayOf("7.0.0"), - arrayOf("4.2.0"), ) } } diff --git a/java/dagger/hilt/android/plugin/main/src/test/kotlin/BuildCacheTest.kt b/java/dagger/hilt/android/plugin/main/src/test/kotlin/BuildCacheTest.kt index 517032d2484..4c34dd621cf 100644 --- a/java/dagger/hilt/android/plugin/main/src/test/kotlin/BuildCacheTest.kt +++ b/java/dagger/hilt/android/plugin/main/src/test/kotlin/BuildCacheTest.kt @@ -47,7 +47,7 @@ class BuildCacheTest(private val enableAggregatingTask: Boolean) { private fun createGradleRunner(folder: TemporaryFolder): GradleTestRunner { val gradleRunner = GradleTestRunner(folder) gradleRunner.addDependencies( - "implementation 'androidx.appcompat:appcompat:1.1.0'", + "implementation 'androidx.appcompat:appcompat:1.3.1'", "implementation 'com.google.dagger:hilt-android:LOCAL-SNAPSHOT'", "annotationProcessor 'com.google.dagger:hilt-compiler:LOCAL-SNAPSHOT'", ) @@ -80,35 +80,35 @@ class BuildCacheTest(private val enableAggregatingTask: Boolean) { assertEquals(firstResult.getTask(":transformDebugClassesWithAsm").outcome, SUCCESS) val secondResult = secondGradleRunner.build() - val cacheableTasks: List = mutableListOf().apply { - add(":checkDebugAarMetadata") - add(":checkDebugDuplicateClasses") - add(":compileDebugJavaWithJavac") - add(":compressDebugAssets") - add(":extractDeepLinksDebug") - add(":generateDebugBuildConfig") - add(":generateDebugResValues") - // When aggregating task is enabled, the plugin adds two more tasks that should be - // cacheable. - if (enableAggregatingTask) { - add(":hiltAggregateDepsDebug") - add(":hiltJavaCompileDebug") + val cacheableTasks: List = + mutableListOf().apply { + add(":checkDebugAarMetadata") + add(":checkDebugDuplicateClasses") + add(":compileDebugJavaWithJavac") + add(":compressDebugAssets") + add(":desugarDebugFileDependencies") + add(":extractDeepLinksDebug") + add(":generateDebugBuildConfig") + add(":generateDebugResValues") + // When aggregating task is enabled, the plugin adds two more tasks that should be + // cacheable. + if (enableAggregatingTask) { + add(":hiltAggregateDepsDebug") + add(":hiltJavaCompileDebug") + } + add(":javaPreCompileDebug") + add(":mergeDebugAssets") + add(":mergeDebugJniLibFolders") + add(":mergeDebugShaders") + add(":mergeExtDexDebug") + add(":mergeLibDexDebug") + add(":mergeProjectDexDebug") + add(":processDebugManifestForPackage") + add(":transformDebugClassesWithAsm") + add(":validateSigningDebug") + add(":writeDebugAppMetadata") + add(":writeDebugSigningConfigVersions") } - add(":javaPreCompileDebug") - add(":mergeDebugAssets") - add(":mergeDebugJavaResource") - add(":mergeDebugJniLibFolders") - add(":mergeDebugNativeLibs") - add(":mergeDebugShaders") - add(":mergeExtDexDebug") - add(":mergeLibDexDebug") - add(":mergeProjectDexDebug") - add(":processDebugManifestForPackage") - add(":transformDebugClassesWithAsm") - add(":validateSigningDebug") - add(":writeDebugAppMetadata") - add(":writeDebugSigningConfigVersions") - } val tasksFromCache = secondResult.tasks.filter { it.outcome == FROM_CACHE }.map { it.path }.sorted() diff --git a/java/dagger/hilt/android/plugin/main/src/test/kotlin/GradleTestRunner.kt b/java/dagger/hilt/android/plugin/main/src/test/kotlin/GradleTestRunner.kt index 5043c727475..5c250e55352 100644 --- a/java/dagger/hilt/android/plugin/main/src/test/kotlin/GradleTestRunner.kt +++ b/java/dagger/hilt/android/plugin/main/src/test/kotlin/GradleTestRunner.kt @@ -20,9 +20,7 @@ import org.gradle.testkit.runner.BuildTask import org.gradle.testkit.runner.GradleRunner import org.junit.rules.TemporaryFolder -/** - * Testing utility class that sets up a simple Android project that applies the Hilt plugin. - */ +/** Testing utility class that sets up a simple Android project that applies the Hilt plugin. */ class GradleTestRunner(val tempFolder: TemporaryFolder) { private val dependencies = mutableListOf() private val activities = mutableListOf() @@ -50,12 +48,14 @@ class GradleTestRunner(val tempFolder: TemporaryFolder) { activities.addAll(activityElements) } - // Adds 'android' options to the project's build.gradle, e.g. "lintOptions.checkReleaseBuilds = false" + // Adds 'android' options to the project's build.gradle, e.g. "lintOptions.checkReleaseBuilds = + // false" fun addAndroidOption(vararg options: String) { additionalAndroidOptions.addAll(options) } - // Adds 'hilt' options to the project's build.gradle, e.g. "enableExperimentalClasspathAggregation = true" + // Adds 'hilt' options to the project's build.gradle, e.g. "enableExperimentalClasspathAggregation + // = true" fun addHiltOption(vararg options: String) { hiltOptions.addAll(options) } @@ -111,16 +111,17 @@ class GradleTestRunner(val tempFolder: TemporaryFolder) { private fun writeBuildFile() { buildFile?.delete() - buildFile = tempFolder.newFile("build.gradle").apply { - writeText( - """ + buildFile = + tempFolder.newFile("build.gradle").apply { + writeText( + """ buildscript { repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.0' + classpath 'com.android.tools.build:gradle:7.1.2' } } @@ -130,18 +131,18 @@ class GradleTestRunner(val tempFolder: TemporaryFolder) { } android { - compileSdkVersion 30 - buildToolsVersion "30.0.2" + compileSdkVersion 32 + buildToolsVersion "32.0.0" defaultConfig { applicationId "plugin.test" minSdkVersion 21 - targetSdkVersion 30 + targetSdkVersion 32 } compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } ${additionalAndroidOptions.joinToString(separator = "\n")} } @@ -162,26 +163,26 @@ class GradleTestRunner(val tempFolder: TemporaryFolder) { ${hiltOptions.joinToString(separator = "\n")} } """.trimIndent() - ) - } + ) + } } private fun writeGradleProperties() { gradlePropertiesFile?.delete() - gradlePropertiesFile = tempFolder.newFile("gradle.properties").apply { - writeText( - """ + gradlePropertiesFile = + tempFolder.newFile("gradle.properties").apply { + writeText(""" android.useAndroidX=true - """.trimIndent() - ) - } + """.trimIndent()) + } } private fun writeAndroidManifest() { manifestFile?.delete() - manifestFile = tempFolder.newFile("/src/main/AndroidManifest.xml").apply { - writeText( - """ + manifestFile = + tempFolder.newFile("/src/main/AndroidManifest.xml").apply { + writeText( + """ """.trimIndent() - ) - } + ) + } } - private fun createRunner() = GradleRunner.create() - .withProjectDir(tempFolder.root) - .withArguments(listOf("--stacktrace", "assembleDebug") + additionalTasks) - .withPluginClasspath() -// .withDebug(true) // Add this line to enable attaching a debugger to the gradle test invocation - .forwardOutput() + private fun createRunner() = + GradleRunner.create() + .withProjectDir(tempFolder.root) + .withArguments(listOf("--stacktrace", "assembleDebug") + additionalTasks) + .withPluginClasspath() + // .withDebug(true) // Add this line to enable attaching a debugger to the gradle test + // invocation + .forwardOutput() // Data class representing a Gradle Test run result. - data class Result( - private val projectRoot: File, - private val buildResult: BuildResult - ) { + data class Result(private val projectRoot: File, private val buildResult: BuildResult) { - val tasks: List get() = buildResult.tasks + val tasks: List + get() = buildResult.tasks // Finds a task by name. fun getTask(name: String) = buildResult.task(name) ?: error("Task '$name' not found.") diff --git a/java/dagger/hilt/android/plugin/main/src/test/kotlin/IncrementalProcessorTest.kt b/java/dagger/hilt/android/plugin/main/src/test/kotlin/IncrementalProcessorTest.kt index 4b242eadaeb..d13253b02aa 100644 --- a/java/dagger/hilt/android/plugin/main/src/test/kotlin/IncrementalProcessorTest.kt +++ b/java/dagger/hilt/android/plugin/main/src/test/kotlin/IncrementalProcessorTest.kt @@ -136,7 +136,7 @@ class IncrementalProcessorTest(private val incapMode: String) { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.0' + classpath 'com.android.tools.build:gradle:7.1.2' } } @@ -146,13 +146,13 @@ class IncrementalProcessorTest(private val incapMode: String) { } android { - compileSdkVersion 30 - buildToolsVersion "30.0.2" + compileSdkVersion 32 + buildToolsVersion "32.0.0" defaultConfig { applicationId "hilt.simple" minSdkVersion 21 - targetSdkVersion 30 + targetSdkVersion 32 javaCompileOptions { annotationProcessorOptions { arguments += ["dagger.hilt.shareTestComponents" : "true"] @@ -161,8 +161,8 @@ class IncrementalProcessorTest(private val incapMode: String) { } compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } } @@ -180,8 +180,8 @@ class IncrementalProcessorTest(private val incapMode: String) { annotationProcessor 'com.google.dagger:hilt-compiler:LOCAL-SNAPSHOT' testImplementation 'junit:junit:4.12' - testImplementation 'androidx.test.ext:junit:1.1.2' - testImplementation 'androidx.test:runner:1.3.0' + testImplementation 'androidx.test.ext:junit:1.1.3' + testImplementation 'androidx.test:runner:1.4.0' testImplementation 'org.robolectric:robolectric:4.4' testImplementation 'com.google.dagger:hilt-android-testing:LOCAL-SNAPSHOT' testAnnotationProcessor 'com.google.dagger:hilt-compiler:LOCAL-SNAPSHOT' diff --git a/java/dagger/hilt/android/processor/BUILD b/java/dagger/hilt/android/processor/BUILD index 20f1f2e1088..1dba4e47cae 100644 --- a/java/dagger/hilt/android/processor/BUILD +++ b/java/dagger/hilt/android/processor/BUILD @@ -90,7 +90,7 @@ gen_maven_artifact( "org.jetbrains.kotlin:kotlin-stdlib", "org.jetbrains.kotlinx:kotlinx-metadata-jvm", ], - javadoc_android_api_level = 30, + javadoc_android_api_level = 32, javadoc_root_packages = [ # Java 11 javadocs requires non-empty root package so use ".internal" as the root package. "dagger.hilt.processor.internal", diff --git a/java/dagger/hilt/android/testing/BUILD b/java/dagger/hilt/android/testing/BUILD index 85dea9df431..09b9cdefee4 100644 --- a/java/dagger/hilt/android/testing/BUILD +++ b/java/dagger/hilt/android/testing/BUILD @@ -237,7 +237,7 @@ gen_maven_artifact( "com.google.guava:guava", "javax.annotation:jsr250-api", ], - javadoc_android_api_level = 30, + javadoc_android_api_level = 32, javadoc_exclude_packages = [ "dagger.hilt.internal", "dagger.hilt.android.internal", diff --git a/java/dagger/hilt/processor/BUILD b/java/dagger/hilt/processor/BUILD index bad86ff24bb..868ab09028c 100644 --- a/java/dagger/hilt/processor/BUILD +++ b/java/dagger/hilt/processor/BUILD @@ -112,7 +112,7 @@ gen_maven_artifact( "org.jetbrains.kotlin:kotlin-stdlib", "org.jetbrains.kotlinx:kotlinx-metadata-jvm", ], - javadoc_android_api_level = 30, + javadoc_android_api_level = 32, javadoc_root_packages = [ # Java 11 javadocs requires non-empty root package so use ".internal" as the root package. "dagger.hilt.processor.internal", diff --git a/javatests/artifacts/dagger-android/simple/app/build.gradle b/javatests/artifacts/dagger-android/simple/app/build.gradle index 20a37340e3e..be30b3bc17f 100644 --- a/javatests/artifacts/dagger-android/simple/app/build.gradle +++ b/javatests/artifacts/dagger-android/simple/app/build.gradle @@ -17,19 +17,19 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 30 - buildToolsVersion "30.0.2" + compileSdkVersion 32 + buildToolsVersion "32.0.0" defaultConfig { applicationId "dagger.android.simple" minSdkVersion 15 - targetSdkVersion 30 + targetSdkVersion 32 versionCode 1 versionName "1.0" } compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } testOptions { unitTests.includeAndroidResources = true @@ -55,16 +55,16 @@ dependencies { testImplementation 'com.google.truth:truth:1.0.1' testImplementation 'org.robolectric:robolectric:4.5-alpha-3' testImplementation 'androidx.core:core:1.3.2' - testImplementation 'androidx.test.ext:junit:1.1.2' - testImplementation 'androidx.test:runner:1.3.0' - testImplementation 'androidx.test.espresso:espresso-core:3.3.0' + testImplementation 'androidx.test.ext:junit:1.1.3' + testImplementation 'androidx.test:runner:1.4.0' + testImplementation 'androidx.test.espresso:espresso-core:3.4.0' testImplementation 'com.google.dagger:dagger-compiler:LOCAL-SNAPSHOT' testAnnotationProcessor 'com.google.dagger:dagger-android-processor:LOCAL-SNAPSHOT' androidTestImplementation 'com.google.truth:truth:1.0.1' - androidTestImplementation 'androidx.test.ext:junit:1.1.2' - androidTestImplementation 'androidx.test:runner:1.3.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test:runner:1.4.0' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' androidTestImplementation 'com.google.dagger:dagger-compiler:LOCAL-SNAPSHOT' androidTestAnnotationProcessor 'com.google.dagger:dagger-android-processor:LOCAL-SNAPSHOT' diff --git a/javatests/artifacts/dagger-android/simple/build.gradle b/javatests/artifacts/dagger-android/simple/build.gradle index 3fedf3b5ab8..54088d3ac0b 100644 --- a/javatests/artifacts/dagger-android/simple/build.gradle +++ b/javatests/artifacts/dagger-android/simple/build.gradle @@ -16,7 +16,7 @@ buildscript { ext { - agp_version = System.getenv('AGP_VERSION') ?: "4.2.0" + agp_version = System.getenv('AGP_VERSION') ?: "7.1.2" } repositories { google() diff --git a/javatests/artifacts/dagger/kotlin-app/build.gradle b/javatests/artifacts/dagger/kotlin-app/build.gradle index 2f4f7f3c5a7..05afd6e125c 100644 --- a/javatests/artifacts/dagger/kotlin-app/build.gradle +++ b/javatests/artifacts/dagger/kotlin-app/build.gradle @@ -22,7 +22,7 @@ plugins { java { // Make sure the generated source is compatible with Java 8. - sourceCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_8 } dependencies { diff --git a/javatests/artifacts/dagger/kotlin-app/kotlin-library/build.gradle b/javatests/artifacts/dagger/kotlin-app/kotlin-library/build.gradle index 954bd9f5a28..aee92670e70 100644 --- a/javatests/artifacts/dagger/kotlin-app/kotlin-library/build.gradle +++ b/javatests/artifacts/dagger/kotlin-app/kotlin-library/build.gradle @@ -21,7 +21,7 @@ plugins { java { // Make sure the generated source is compatible with Java 8. - sourceCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_8 } dependencies { diff --git a/javatests/artifacts/hilt-android/pluginMarker/app/build.gradle b/javatests/artifacts/hilt-android/pluginMarker/app/build.gradle index b288628be76..b1f6532732e 100644 --- a/javatests/artifacts/hilt-android/pluginMarker/app/build.gradle +++ b/javatests/artifacts/hilt-android/pluginMarker/app/build.gradle @@ -20,22 +20,22 @@ plugins { } android { - compileSdkVersion 30 - buildToolsVersion "30.0.2" + compileSdkVersion 32 + buildToolsVersion "32.0.0" defaultConfig { applicationId "dagger.hilt.android.simple" minSdkVersion 21 - targetSdkVersion 30 + targetSdkVersion 32 } compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } } dependencies { implementation 'com.google.dagger:hilt-android:LOCAL-SNAPSHOT' annotationProcessor 'com.google.dagger:hilt-compiler:LOCAL-SNAPSHOT' -} \ No newline at end of file +} diff --git a/javatests/artifacts/hilt-android/simple/app-java-only/build.gradle b/javatests/artifacts/hilt-android/simple/app-java-only/build.gradle index 28a3ad5ca08..823b2025f1a 100644 --- a/javatests/artifacts/hilt-android/simple/app-java-only/build.gradle +++ b/javatests/artifacts/hilt-android/simple/app-java-only/build.gradle @@ -18,20 +18,20 @@ apply plugin: 'com.android.application' apply plugin: 'com.google.dagger.hilt.android' android { - compileSdkVersion 30 - buildToolsVersion "30.0.2" + compileSdkVersion 32 + buildToolsVersion "32.0.0" defaultConfig { applicationId "dagger.hilt.android.simple" minSdkVersion 15 - targetSdkVersion 30 + targetSdkVersion 32 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } testOptions { unitTests.includeAndroidResources = true @@ -63,7 +63,7 @@ dependencies { testImplementation 'junit:junit:4.13' testImplementation 'org.robolectric:robolectric:4.5-alpha-3' testImplementation 'androidx.core:core:1.3.2' - testImplementation 'androidx.test.ext:junit:1.1.2' - testImplementation 'androidx.test:runner:1.3.0' - testImplementation 'androidx.test.espresso:espresso-core:3.3.0' + testImplementation 'androidx.test.ext:junit:1.1.3' + testImplementation 'androidx.test:runner:1.4.0' + testImplementation 'androidx.test.espresso:espresso-core:3.4.0' } diff --git a/javatests/artifacts/hilt-android/simple/app/build.gradle b/javatests/artifacts/hilt-android/simple/app/build.gradle index 4990d192162..48d9b996ac5 100644 --- a/javatests/artifacts/hilt-android/simple/app/build.gradle +++ b/javatests/artifacts/hilt-android/simple/app/build.gradle @@ -43,20 +43,20 @@ def getAdditionalTestDirs(String variant) { } android { - compileSdkVersion 30 - buildToolsVersion "30.0.2" + compileSdkVersion 32 + buildToolsVersion "32.0.0" defaultConfig { applicationId "dagger.hilt.android.simple" minSdkVersion 15 - targetSdkVersion 30 + targetSdkVersion 32 versionCode 1 versionName "1.0" testInstrumentationRunner "dagger.hilt.android.simple.SimpleEmulatorTestRunner" } compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } testOptions { unitTests.includeAndroidResources = true @@ -110,17 +110,17 @@ dependencies { testImplementation 'junit:junit:4.13' testImplementation 'org.robolectric:robolectric:4.5-alpha-3' testImplementation 'androidx.core:core:1.3.2' - testImplementation 'androidx.test.ext:junit:1.1.2' - testImplementation 'androidx.test:runner:1.3.0' - testImplementation 'androidx.test.espresso:espresso-core:3.3.0' + testImplementation 'androidx.test.ext:junit:1.1.3' + testImplementation 'androidx.test:runner:1.4.0' + testImplementation 'androidx.test.espresso:espresso-core:3.4.0' testImplementation "com.google.dagger:hilt-android-testing:$dagger_version" testAnnotationProcessor "com.google.dagger:hilt-compiler:$dagger_version" androidTestImplementation 'com.google.truth:truth:1.0.1' androidTestImplementation 'junit:junit:4.13' - androidTestImplementation 'androidx.test.ext:junit:1.1.2' - androidTestImplementation 'androidx.test:runner:1.3.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test:runner:1.4.0' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' androidTestImplementation "com.google.dagger:hilt-android-testing:$dagger_version" androidTestAnnotationProcessor "com.google.dagger:hilt-compiler:$dagger_version" diff --git a/javatests/artifacts/hilt-android/simple/build.gradle b/javatests/artifacts/hilt-android/simple/build.gradle index 4df3d84268e..f465b685df3 100644 --- a/javatests/artifacts/hilt-android/simple/build.gradle +++ b/javatests/artifacts/hilt-android/simple/build.gradle @@ -18,7 +18,7 @@ buildscript { ext { dagger_version = 'LOCAL-SNAPSHOT' kotlin_version = '1.7.0' - agp_version = System.getenv('AGP_VERSION') ?: "4.2.0" + agp_version = System.getenv('AGP_VERSION') ?: "7.1.2" } repositories { google() diff --git a/javatests/artifacts/hilt-android/simple/deep-android-lib/build.gradle b/javatests/artifacts/hilt-android/simple/deep-android-lib/build.gradle index 2b71f2a1355..41b125d13fb 100644 --- a/javatests/artifacts/hilt-android/simple/deep-android-lib/build.gradle +++ b/javatests/artifacts/hilt-android/simple/deep-android-lib/build.gradle @@ -4,23 +4,23 @@ plugins { } android { - compileSdkVersion 30 - buildToolsVersion "30.0.2" + compileSdkVersion 32 + buildToolsVersion "32.0.0" defaultConfig { minSdkVersion 15 - targetSdkVersion 30 + targetSdkVersion 32 versionCode 1 versionName "1.0" } compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } } dependencies { implementation "com.google.dagger:hilt-android:$dagger_version" annotationProcessor "com.google.dagger:hilt-compiler:$dagger_version" -} \ No newline at end of file +} diff --git a/javatests/artifacts/hilt-android/simple/earlyentrypoint/build.gradle b/javatests/artifacts/hilt-android/simple/earlyentrypoint/build.gradle index 3480762f803..4c3d8c823d3 100644 --- a/javatests/artifacts/hilt-android/simple/earlyentrypoint/build.gradle +++ b/javatests/artifacts/hilt-android/simple/earlyentrypoint/build.gradle @@ -4,18 +4,18 @@ plugins { } android { - compileSdkVersion 30 - buildToolsVersion "30.0.2" + compileSdkVersion 32 + buildToolsVersion "32.0.0" defaultConfig { minSdkVersion 15 - targetSdkVersion 30 + targetSdkVersion 32 versionCode 1 versionName "1.0" } compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } testOptions { unitTests.includeAndroidResources = true @@ -61,8 +61,8 @@ dependencies { testImplementation 'junit:junit:4.13' testImplementation 'org.robolectric:robolectric:4.5-alpha-3' testImplementation 'androidx.core:core:1.3.2' - testImplementation 'androidx.test.ext:junit:1.1.2' - testImplementation 'androidx.test:runner:1.3.0' + testImplementation 'androidx.test.ext:junit:1.1.3' + testImplementation 'androidx.test:runner:1.4.0' testImplementation "com.google.dagger:hilt-android-testing:$dagger_version" testAnnotationProcessor "com.google.dagger:hilt-compiler:$dagger_version" -} \ No newline at end of file +} diff --git a/javatests/artifacts/hilt-android/simple/feature/build.gradle b/javatests/artifacts/hilt-android/simple/feature/build.gradle index 286dd5c97de..ab9a3438d5b 100644 --- a/javatests/artifacts/hilt-android/simple/feature/build.gradle +++ b/javatests/artifacts/hilt-android/simple/feature/build.gradle @@ -20,18 +20,18 @@ apply plugin: 'kotlin-kapt' apply plugin: 'com.google.dagger.hilt.android' android { - compileSdkVersion 30 - buildToolsVersion "30.0.2" + compileSdkVersion 32 + buildToolsVersion "32.0.0" defaultConfig { minSdkVersion 15 - targetSdkVersion 30 + targetSdkVersion 32 versionCode 1 versionName "1.0" } compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } flavorDimensions "tier" productFlavors { diff --git a/javatests/artifacts/hilt-android/simple/lib/build.gradle b/javatests/artifacts/hilt-android/simple/lib/build.gradle index d67be3bde32..67b7cce47d6 100644 --- a/javatests/artifacts/hilt-android/simple/lib/build.gradle +++ b/javatests/artifacts/hilt-android/simple/lib/build.gradle @@ -19,8 +19,8 @@ plugins { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_8 + targetCompatibility = JavaVersion.VERSION_11 } dependencies { diff --git a/javatests/artifacts/hilt-android/simpleKotlin/android-library/build.gradle b/javatests/artifacts/hilt-android/simpleKotlin/android-library/build.gradle index 58efef4de45..14364e1c510 100644 --- a/javatests/artifacts/hilt-android/simpleKotlin/android-library/build.gradle +++ b/javatests/artifacts/hilt-android/simpleKotlin/android-library/build.gradle @@ -5,21 +5,21 @@ plugins { } android { - compileSdkVersion 30 - buildToolsVersion "30.0.2" + compileSdkVersion 32 + buildToolsVersion "32.0.0" defaultConfig { minSdkVersion 15 - targetSdkVersion 30 + targetSdkVersion 32 versionCode 1 versionName "1.0" } compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { - jvmTarget = '1.8' + jvmTarget = '11' } flavorDimensions "tier" productFlavors { @@ -38,4 +38,4 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation 'com.google.dagger:hilt-android:LOCAL-SNAPSHOT' kapt 'com.google.dagger:hilt-compiler:LOCAL-SNAPSHOT' -} \ No newline at end of file +} diff --git a/javatests/artifacts/hilt-android/simpleKotlin/app/build.gradle b/javatests/artifacts/hilt-android/simpleKotlin/app/build.gradle index 8234960f986..646e78dccfc 100644 --- a/javatests/artifacts/hilt-android/simpleKotlin/app/build.gradle +++ b/javatests/artifacts/hilt-android/simpleKotlin/app/build.gradle @@ -20,13 +20,13 @@ apply plugin: 'com.google.dagger.hilt.android' apply plugin: 'kotlin-kapt' android { - compileSdkVersion 30 - buildToolsVersion "30.0.2" + compileSdkVersion 32 + buildToolsVersion "32.0.0" defaultConfig { applicationId "dagger.hilt.android.simpleKotlin" minSdkVersion 15 - targetSdkVersion 30 + targetSdkVersion 32 versionCode 1 versionName "1.0" testInstrumentationRunner "dagger.hilt.android.example.gradle.simpleKotlin.TestRunner" @@ -48,11 +48,11 @@ android { } } compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { - jvmTarget = '1.8' + jvmTarget = '11' } testOptions { unitTests.includeAndroidResources = true @@ -81,13 +81,13 @@ dependencies { implementation project(':kotlin-library') implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.activity:activity-ktx:1.1.0' + implementation 'androidx.activity:activity-ktx:1.5.0' implementation 'com.google.dagger:hilt-android:LOCAL-SNAPSHOT' kapt 'com.google.dagger:hilt-compiler:LOCAL-SNAPSHOT' - testImplementation 'androidx.test.ext:junit:1.1.2' - testImplementation 'androidx.test:runner:1.3.0' + testImplementation 'androidx.test.ext:junit:1.1.3' + testImplementation 'androidx.test:runner:1.4.0' testImplementation 'com.google.truth:truth:1.0.1' testImplementation 'junit:junit:4.13' testImplementation 'org.robolectric:robolectric:4.5-alpha-3' @@ -97,9 +97,9 @@ dependencies { testImplementation 'com.google.dagger:hilt-android-testing:LOCAL-SNAPSHOT' kaptTest 'com.google.dagger:hilt-compiler:LOCAL-SNAPSHOT' - androidTestImplementation 'androidx.fragment:fragment-ktx:1.2.5' - androidTestImplementation 'androidx.test.ext:junit:1.1.2' - androidTestImplementation 'androidx.test:runner:1.3.0' + androidTestImplementation 'androidx.fragment:fragment-ktx:1.5.0' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test:runner:1.4.0' androidTestImplementation 'com.google.truth:truth:1.0.1' androidTestImplementation 'com.google.dagger:hilt-android-testing:LOCAL-SNAPSHOT' kaptAndroidTest 'com.google.dagger:hilt-compiler:LOCAL-SNAPSHOT' diff --git a/javatests/artifacts/hilt-android/simpleKotlin/build.gradle b/javatests/artifacts/hilt-android/simpleKotlin/build.gradle index c0ced33d1ed..9889dc0ac03 100644 --- a/javatests/artifacts/hilt-android/simpleKotlin/build.gradle +++ b/javatests/artifacts/hilt-android/simpleKotlin/build.gradle @@ -17,7 +17,7 @@ buildscript { ext { kotlin_version = '1.7.0' - agp_version = System.getenv('AGP_VERSION') ?: "4.2.0" + agp_version = System.getenv('AGP_VERSION') ?: "7.1.2" } repositories { google() diff --git a/javatests/artifacts/hilt-android/simpleKotlin/deep-android-lib/build.gradle b/javatests/artifacts/hilt-android/simpleKotlin/deep-android-lib/build.gradle index 76c83001bd1..01662eed01b 100644 --- a/javatests/artifacts/hilt-android/simpleKotlin/deep-android-lib/build.gradle +++ b/javatests/artifacts/hilt-android/simpleKotlin/deep-android-lib/build.gradle @@ -6,23 +6,23 @@ plugins { } android { - compileSdkVersion 30 - buildToolsVersion "30.0.2" + compileSdkVersion 32 + buildToolsVersion "32.0.0" defaultConfig { minSdkVersion 15 - targetSdkVersion 30 + targetSdkVersion 32 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { - jvmTarget = '1.8' + jvmTarget = '11' } lintOptions { checkReleaseBuilds = false @@ -35,14 +35,14 @@ dependencies { implementation 'com.google.dagger:hilt-android:LOCAL-SNAPSHOT' kapt 'com.google.dagger:hilt-compiler:LOCAL-SNAPSHOT' - testImplementation 'androidx.test.ext:junit:1.1.2' + testImplementation 'androidx.test.ext:junit:1.1.3' testImplementation 'com.google.truth:truth:1.0.1' - androidTestImplementation 'androidx.test.ext:junit:1.1.2' - androidTestImplementation 'androidx.test:runner:1.3.0' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test:runner:1.4.0' androidTestImplementation 'com.google.truth:truth:1.0.1' } hilt { enableAggregatingTask = true -} \ No newline at end of file +} diff --git a/javatests/artifacts/hilt-android/simpleKotlin/deep-kotlin-lib/build.gradle b/javatests/artifacts/hilt-android/simpleKotlin/deep-kotlin-lib/build.gradle index 306c171e7bc..5e5dd19d361 100644 --- a/javatests/artifacts/hilt-android/simpleKotlin/deep-kotlin-lib/build.gradle +++ b/javatests/artifacts/hilt-android/simpleKotlin/deep-kotlin-lib/build.gradle @@ -5,8 +5,8 @@ plugins { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_8 + targetCompatibility = JavaVersion.VERSION_11 } dependencies { diff --git a/javatests/artifacts/hilt-android/simpleKotlin/kotlin-library/build.gradle b/javatests/artifacts/hilt-android/simpleKotlin/kotlin-library/build.gradle index 7c8462f9ad6..1e4aa7b1994 100644 --- a/javatests/artifacts/hilt-android/simpleKotlin/kotlin-library/build.gradle +++ b/javatests/artifacts/hilt-android/simpleKotlin/kotlin-library/build.gradle @@ -5,8 +5,8 @@ plugins { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_8 + targetCompatibility = JavaVersion.VERSION_11 } dependencies { diff --git a/javatests/dagger/android/processor/BUILD b/javatests/dagger/android/processor/BUILD index 4dbd260743d..321293dd76e 100644 --- a/javatests/dagger/android/processor/BUILD +++ b/javatests/dagger/android/processor/BUILD @@ -35,7 +35,7 @@ GenJavaTests( "//third_party/java/guava/collect", "//third_party/java/junit", "//third_party/java/truth", - "@androidsdk//:platforms/android-30/android.jar", + "@androidsdk//:platforms/android-32/android.jar", "@maven//:androidx_activity_activity", "@maven//:androidx_fragment_fragment", "@maven//:androidx_lifecycle_lifecycle_common", diff --git a/javatests/dagger/hilt/android/AndroidManifest.xml b/javatests/dagger/hilt/android/AndroidManifest.xml index 5195ca61c69..3c0fa840d1c 100644 --- a/javatests/dagger/hilt/android/AndroidManifest.xml +++ b/javatests/dagger/hilt/android/AndroidManifest.xml @@ -65,6 +65,10 @@ android:name=".ViewModelScopedTest$TestActivity" android:exported="false" tools:ignore="MissingClass"/> + scenario = ActivityScenario.launch(TestActivity.class)) { + scenario.onActivity( + activity -> { + NavController navController = + Navigation.findNavController(activity, R.id.nav_host_fragment); + TestFragment startFragment = findTestFragment(activity); + + MyViewModel activityVm = + getViewModel(activity, activity.getDefaultViewModelProviderFactory()); + MyViewModel fragmentVm = + getViewModel(startFragment, startFragment.getDefaultViewModelProviderFactory()); + MyViewModel fragmentBackStackVm = + getViewModel( + navController.getBackStackEntry(R.id.start_destination), + startFragment.getDefaultViewModelProviderFactory()); + MyViewModel navGraphVm = + getViewModel( + navController.getBackStackEntry(R.id.nav_graph), + startFragment.getDefaultViewModelProviderFactory()); + + // The activity shouldn't have any arguments since it was only set on the fragment. + assertThat((String) activityVm.savedStateHandle.get("argument_key")).isNull(); + activityVm.savedStateHandle.set("other_key", "activity_other_key"); + + // The fragment argument (set in the navgraph xml) should be set. + assertThat((String) fragmentVm.savedStateHandle.get("argument_key")) + .isEqualTo("fragment_argument"); + fragmentVm.savedStateHandle.set("other_key", "fragment_other_key"); + + // The back stack entry also has the fragment arguments + assertThat((String) fragmentBackStackVm.savedStateHandle.get("argument_key")) + .isEqualTo("fragment_argument"); + fragmentBackStackVm.savedStateHandle.set("other_key", "fragment_backstack_other_key"); + + // When the nav graph itself is the owner, then there should be no arguments. + assertThat((String) navGraphVm.savedStateHandle.get("argument_key")).isNull(); + navGraphVm.savedStateHandle.set("other_key", "nav_graph_other_key"); + + navController.navigate(R.id.next_destination); + }); + + // Now move to the next fragment to compare + scenario.onActivity( + activity -> { + NavController navController = + Navigation.findNavController(activity, R.id.nav_host_fragment); + + TestFragment nextFragment = findTestFragment(activity); + + MyViewModel activityVm = + getViewModel(activity, activity.getDefaultViewModelProviderFactory()); + MyViewModel fragmentVm = + getViewModel(nextFragment, nextFragment.getDefaultViewModelProviderFactory()); + MyViewModel navGraphVm = + getViewModel( + navController.getBackStackEntry(R.id.nav_graph), + nextFragment.getDefaultViewModelProviderFactory()); + MyViewModel fragmentBackStackVm = + getViewModel( + navController.getBackStackEntry(R.id.next_destination), + nextFragment.getDefaultViewModelProviderFactory()); + + // The activity still shouldn't have any arguments, but since it is the same + // owner (since the activity didn't change), the other key should still be set + // from before. + assertThat((String) activityVm.savedStateHandle.get("argument_key")).isNull(); + assertThat((String) activityVm.savedStateHandle.get("other_key")) + .isEqualTo("activity_other_key"); + + // The fragment argument should be set via the navgraph xml again. Also, since + // this is a new fragment, the other key should not be set. + assertThat((String) fragmentVm.savedStateHandle.get("argument_key")) + .isEqualTo("next_fragment_argument"); + assertThat((String) fragmentVm.savedStateHandle.get("other_key")).isNull(); + + // Same as using the fragment as the owner. + assertThat((String) fragmentBackStackVm.savedStateHandle.get("argument_key")) + .isEqualTo("next_fragment_argument"); + assertThat((String) fragmentBackStackVm.savedStateHandle.get("other_key")).isNull(); + + // Similar to the activity case, the navgraph is the same so we expect the same + // key to be set from before. Arguments should still be missing. + assertThat((String) navGraphVm.savedStateHandle.get("argument_key")).isNull(); + assertThat((String) navGraphVm.savedStateHandle.get("other_key")) + .isEqualTo("nav_graph_other_key"); + }); + } + } + + private TestFragment findTestFragment(FragmentActivity activity) { + return (TestFragment) + activity + .getSupportFragmentManager() + .findFragmentById(R.id.nav_host_fragment) + .getChildFragmentManager() + .getPrimaryNavigationFragment(); + } + + private MyViewModel getViewModel(ViewModelStoreOwner owner, ViewModelProvider.Factory factory) { + return new ViewModelProvider(owner, factory).get(MyViewModel.class); + } + + @AndroidEntryPoint(FragmentActivity.class) + public static class TestActivity extends Hilt_ViewModelSavedStateOwnerTest_TestActivity { + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.navigation_activity); + } + } + + @AndroidEntryPoint(Fragment.class) + public static class TestFragment extends Hilt_ViewModelSavedStateOwnerTest_TestFragment { + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + } + + @HiltViewModel + static class MyViewModel extends ViewModel { + final SavedStateHandle savedStateHandle; + + @Inject + MyViewModel(SavedStateHandle savedStateHandle) { + this.savedStateHandle = savedStateHandle; + } + } +} diff --git a/javatests/dagger/hilt/android/ViewModelScopedTest.java b/javatests/dagger/hilt/android/ViewModelScopedTest.java index 4c912ad1998..17aca32bb7a 100644 --- a/javatests/dagger/hilt/android/ViewModelScopedTest.java +++ b/javatests/dagger/hilt/android/ViewModelScopedTest.java @@ -53,7 +53,13 @@ public void testViewModelScopeInFragment() { activity -> { TestFragment fragment = (TestFragment) activity.getSupportFragmentManager().findFragmentByTag("tag"); - assertThat(fragment.vm.one.bar).isEqualTo(fragment.vm.two.bar); + // Check that the scoped bar is the same instance within the same view model. + assertThat(fragment.vm1.one.bar).isEqualTo(fragment.vm1.two.bar); + assertThat(fragment.vm2.one.bar).isEqualTo(fragment.vm2.two.bar); + + // Check that the keyed viewmodels are separate by checking that the bar instances + // are different, and hence have different components. + assertThat(fragment.vm1.one.bar).isNotEqualTo(fragment.vm2.one.bar); }); } } @@ -76,12 +82,14 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { @AndroidEntryPoint(Fragment.class) public static class TestFragment extends Hilt_ViewModelScopedTest_TestFragment { - MyViewModel vm; + MyViewModel vm1; + MyViewModel vm2; @Override public void onCreate(@Nullable Bundle bundle) { super.onCreate(bundle); - vm = new ViewModelProvider(this).get(MyViewModel.class); + vm1 = new ViewModelProvider(this).get("foo", MyViewModel.class); + vm2 = new ViewModelProvider(this).get("bar", MyViewModel.class); } } diff --git a/javatests/dagger/hilt/android/processor/internal/BUILD b/javatests/dagger/hilt/android/processor/internal/BUILD index 513173f1557..7d2c73987fb 100644 --- a/javatests/dagger/hilt/android/processor/internal/BUILD +++ b/javatests/dagger/hilt/android/processor/internal/BUILD @@ -24,7 +24,7 @@ compiler_test( compiler_deps = [ "//java/dagger/hilt/android:hilt_android_app", "//java/dagger/hilt/android:android_entry_point", - "@androidsdk//:platforms/android-30/android.jar", + "@androidsdk//:platforms/android-32/android.jar", "@maven//:androidx_annotation_annotation", ], deps = [ diff --git a/javatests/dagger/hilt/android/processor/internal/aggregateddeps/BUILD b/javatests/dagger/hilt/android/processor/internal/aggregateddeps/BUILD index 79a45c4e55a..f6705b80de1 100644 --- a/javatests/dagger/hilt/android/processor/internal/aggregateddeps/BUILD +++ b/javatests/dagger/hilt/android/processor/internal/aggregateddeps/BUILD @@ -30,7 +30,7 @@ compiler_test( "//java/dagger/hilt/android/internal/modules", "//java/dagger/hilt/testing:test_install_in", "//java/dagger/hilt/android/testing:hilt_android_test", - "@androidsdk//:platforms/android-30/android.jar", + "@androidsdk//:platforms/android-32/android.jar", ], deps = [ "//third_party/java/compile_testing", @@ -49,7 +49,7 @@ compiler_test( "//java/dagger/hilt/android:early_entry_point", "//java/dagger/hilt/android/components", "//java/dagger/hilt/android/testing:hilt_android_test", - "@androidsdk//:platforms/android-30/android.jar", + "@androidsdk//:platforms/android-32/android.jar", ], deps = [ "//third_party/java/compile_testing", diff --git a/javatests/dagger/hilt/android/processor/internal/androidentrypoint/BUILD b/javatests/dagger/hilt/android/processor/internal/androidentrypoint/BUILD index d69f50483a7..656e15aa43d 100644 --- a/javatests/dagger/hilt/android/processor/internal/androidentrypoint/BUILD +++ b/javatests/dagger/hilt/android/processor/internal/androidentrypoint/BUILD @@ -23,7 +23,7 @@ compiler_test( srcs = ["ActivityGeneratorTest.java"], compiler_deps = [ "//java/dagger/hilt/android:android_entry_point", - "@androidsdk//:platforms/android-30/android.jar", + "@androidsdk//:platforms/android-32/android.jar", ], deps = [ "//third_party/java/compile_testing", @@ -39,7 +39,7 @@ compiler_test( compiler_deps = [ "//java/dagger/hilt/android:hilt_android_app", "//java/dagger/hilt/android:android_entry_point", - "@androidsdk//:platforms/android-30/android.jar", + "@androidsdk//:platforms/android-32/android.jar", ], deps = [ "//third_party/java/compile_testing", @@ -55,7 +55,7 @@ kt_compiler_test( compiler_deps = [ "//java/dagger/hilt/android:hilt_android_app", "//java/dagger/hilt/android:android_entry_point", - "@androidsdk//:platforms/android-30/android.jar", + "@androidsdk//:platforms/android-32/android.jar", ], deps = [ "//third_party/java/guava/collect", diff --git a/javatests/dagger/hilt/android/processor/internal/customtestapplication/BUILD b/javatests/dagger/hilt/android/processor/internal/customtestapplication/BUILD index 2e564ec78d2..e2000ab1450 100644 --- a/javatests/dagger/hilt/android/processor/internal/customtestapplication/BUILD +++ b/javatests/dagger/hilt/android/processor/internal/customtestapplication/BUILD @@ -25,7 +25,7 @@ compiler_test( "//java/dagger/hilt/android/testing:custom_test_application", "//java/dagger/hilt/android/testing:hilt_android_test", "//java/dagger/hilt/android:hilt_android_app", - "@androidsdk//:platforms/android-30/android.jar", + "@androidsdk//:platforms/android-32/android.jar", ], deps = [ "//third_party/java/compile_testing", diff --git a/javatests/dagger/hilt/android/processor/internal/viewmodel/BUILD b/javatests/dagger/hilt/android/processor/internal/viewmodel/BUILD index 86342bd198a..1fdc9ea1e1b 100644 --- a/javatests/dagger/hilt/android/processor/internal/viewmodel/BUILD +++ b/javatests/dagger/hilt/android/processor/internal/viewmodel/BUILD @@ -27,7 +27,7 @@ java_test( "//java/dagger/hilt/android/lifecycle", "//third_party/java/compile_testing", "//third_party/java/truth", - "@androidsdk//:platforms/android-30/android.jar", + "@androidsdk//:platforms/android-32/android.jar", "@maven//:androidx_lifecycle_lifecycle_viewmodel", "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate", ], @@ -54,7 +54,7 @@ java_test( "//java/dagger/hilt/android/lifecycle", "//third_party/java/compile_testing", "//third_party/java/truth", - "@androidsdk//:platforms/android-30/android.jar", + "@androidsdk//:platforms/android-32/android.jar", "@maven//:androidx_lifecycle_lifecycle_viewmodel", "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate", ], @@ -80,7 +80,7 @@ kt_compiler_test( "ViewModelValidationPluginTest.kt", ], compiler_deps = [ - "@androidsdk//:platforms/android-30/android.jar", + "@androidsdk//:platforms/android-32/android.jar", "@maven//:androidx_lifecycle_lifecycle_viewmodel", "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate", "//third_party/java/compile_testing", diff --git a/javatests/dagger/hilt/android/res/layout/navigation_activity.xml b/javatests/dagger/hilt/android/res/layout/navigation_activity.xml new file mode 100644 index 00000000000..ec6365d7a37 --- /dev/null +++ b/javatests/dagger/hilt/android/res/layout/navigation_activity.xml @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/javatests/dagger/hilt/android/res/navigation/nav_graph.xml b/javatests/dagger/hilt/android/res/navigation/nav_graph.xml new file mode 100644 index 00000000000..5e1331e3192 --- /dev/null +++ b/javatests/dagger/hilt/android/res/navigation/nav_graph.xml @@ -0,0 +1,22 @@ + + + + + + + + + + \ No newline at end of file diff --git a/javatests/dagger/hilt/processor/internal/aliasof/BUILD b/javatests/dagger/hilt/processor/internal/aliasof/BUILD index 3a7b4af6819..d58e6ab3910 100644 --- a/javatests/dagger/hilt/processor/internal/aliasof/BUILD +++ b/javatests/dagger/hilt/processor/internal/aliasof/BUILD @@ -24,7 +24,7 @@ compiler_test( size = "small", srcs = ["AliasOfProcessorTest.java"], compiler_deps = [ - "@androidsdk//:platforms/android-30/android.jar", + "@androidsdk//:platforms/android-32/android.jar", "//third_party/java/jsr330_inject", "//java/dagger/hilt/android:hilt_android_app", "//java/dagger/hilt/android/components", diff --git a/javatests/dagger/hilt/processor/internal/originatingelement/BUILD b/javatests/dagger/hilt/processor/internal/originatingelement/BUILD index c45cfb6e988..96fdab6cb5b 100644 --- a/javatests/dagger/hilt/processor/internal/originatingelement/BUILD +++ b/javatests/dagger/hilt/processor/internal/originatingelement/BUILD @@ -24,7 +24,7 @@ compiler_test( srcs = ["OriginatingElementProcessorTest.java"], compiler_deps = [ "//java/dagger/hilt/codegen:originating_element", - "@androidsdk//:platforms/android-30/android.jar", + "@androidsdk//:platforms/android-32/android.jar", "@maven//:androidx_annotation_annotation", ], deps = [ diff --git a/javatests/dagger/hilt/processor/internal/root/BUILD b/javatests/dagger/hilt/processor/internal/root/BUILD index ef2344c1d03..1d9201662e7 100644 --- a/javatests/dagger/hilt/processor/internal/root/BUILD +++ b/javatests/dagger/hilt/processor/internal/root/BUILD @@ -33,7 +33,7 @@ compiler_test( ":MyAppPreviousCompilation", "//java/dagger/hilt/android:hilt_android_app", "//java/dagger/hilt/android/testing:hilt_android_test", - "@androidsdk//:platforms/android-30/android.jar", + "@androidsdk//:platforms/android-32/android.jar", "@maven//:androidx_annotation_annotation", "@maven//:org_robolectric_robolectric", "@maven//:androidx_test_ext_junit", @@ -64,7 +64,7 @@ compiler_test( ":MyTestPreviousCompilation", "//java/dagger/hilt/android:hilt_android_app", "//java/dagger/hilt/android/testing:hilt_android_test", - "@androidsdk//:platforms/android-30/android.jar", + "@androidsdk//:platforms/android-32/android.jar", "@maven//:androidx_annotation_annotation", "@maven//:org_robolectric_robolectric", "@maven//:androidx_test_ext_junit", @@ -85,7 +85,7 @@ compiler_test( compiler_deps = [ "//java/dagger/hilt/android:hilt_android_app", "//java/dagger/hilt/android/testing:hilt_android_test", - "@androidsdk//:platforms/android-30/android.jar", + "@androidsdk//:platforms/android-32/android.jar", "@maven//:androidx_annotation_annotation", "@maven//:org_robolectric_robolectric", "@maven//:androidx_test_ext_junit", @@ -106,7 +106,7 @@ compiler_test( compiler_deps = [ "//java/dagger/hilt/android:hilt_android_app", "//java/dagger/hilt/android/testing:hilt_android_test", - "@androidsdk//:platforms/android-30/android.jar", + "@androidsdk//:platforms/android-32/android.jar", "@maven//:androidx_annotation_annotation", "@maven//:org_robolectric_robolectric", "@maven//:androidx_test_ext_junit", diff --git a/javatests/dagger/hilt/processor/internal/uninstallmodules/BUILD b/javatests/dagger/hilt/processor/internal/uninstallmodules/BUILD index e407193b498..0436f993161 100644 --- a/javatests/dagger/hilt/processor/internal/uninstallmodules/BUILD +++ b/javatests/dagger/hilt/processor/internal/uninstallmodules/BUILD @@ -27,7 +27,7 @@ compiler_test( "//java/dagger/hilt/android/testing:hilt_android_test", "//java/dagger/hilt/android/testing:uninstall_modules", "//java/dagger/hilt/migration:disable_install_in_check", - "@androidsdk//:platforms/android-30/android.jar", + "@androidsdk//:platforms/android-32/android.jar", "@maven//:androidx_annotation_annotation", ], deps = [ diff --git a/tools/shader/build.gradle b/tools/shader/build.gradle index 2d1bc18d028..c59a76515b3 100644 --- a/tools/shader/build.gradle +++ b/tools/shader/build.gradle @@ -33,7 +33,7 @@ repositories { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_8 } // This transformation makes sure the input jar's MANIFEST.MF properties, diff --git a/util/run-local-gradle-android-tests.sh b/util/run-local-gradle-android-tests.sh index 2890849f1b9..23eb864153d 100755 --- a/util/run-local-gradle-android-tests.sh +++ b/util/run-local-gradle-android-tests.sh @@ -10,14 +10,6 @@ readonly ANDROID_GRADLE_PROJECTS=( ) for project in "${ANDROID_GRADLE_PROJECTS[@]}"; do echo "Running gradle tests for $project with AGP $AGP_VERSION_INPUT" - # Enable config cache if AGP is 4.2.0 or greater. - # Note that this is a lexicographical comparison. - if [[ "$AGP_VERSION_INPUT" > "4.1.0" ]] - then - CONFIG_CACHE_ARG="--configuration-cache" - else - CONFIG_CACHE_ARG="" - fi - AGP_VERSION=$AGP_VERSION_INPUT ./$project/gradlew -p $project assembleDebug --no-daemon --stacktrace $CONFIG_CACHE_ARG - AGP_VERSION=$AGP_VERSION_INPUT ./$project/gradlew -p $project testDebug --continue --no-daemon --stacktrace $CONFIG_CACHE_ARG + AGP_VERSION=$AGP_VERSION_INPUT ./$project/gradlew -p $project assembleDebug --no-daemon --stacktrace --configuration-cache + AGP_VERSION=$AGP_VERSION_INPUT ./$project/gradlew -p $project testDebug --continue --no-daemon --stacktrace --configuration-cache done diff --git a/util/run-local-tests.sh b/util/run-local-tests.sh index ee2db4af483..4e81e5fe119 100755 --- a/util/run-local-tests.sh +++ b/util/run-local-tests.sh @@ -16,8 +16,6 @@ pushd examples/maven && mvn compile && popd # Run local gradle tests util/run-local-gradle-tests.sh -util/run-local-gradle-android-tests.sh "4.1.0" -util/run-local-gradle-android-tests.sh "4.2.0" util/run-local-gradle-android-tests.sh "7.0.0" util/run-local-gradle-android-tests.sh "7.1.2"