diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index b653e9a4df..d402382fb5 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -19,13 +19,14 @@ jobs: with: distribution: 'zulu' java-version: 17 + - name: Install Node to use the Firebase CLI + uses: actions/setup-node@v6 + with: + node-version: 24 - name: Setup Gradle uses: gradle/gradle-build-action@v2 - name: Check Snippets run: python scripts/checksnippets.py - # TODO(thatfiredev): remove this once github.com/firebase/quickstart-android/issues/1672 is fixed - - name: Remove Firebase Data Connect from CI - run: python scripts/ci_remove_fdc.py - name: Copy mock google_services.json run: ./copy_mock_google_services_json.sh - name: Build with Gradle (Pull Request) diff --git a/build.gradle.kts b/build.gradle.kts index 0b0bb5f37b..e7900ed75b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -48,7 +48,8 @@ tasks.register("ktlintCheck") { "--code-style=android_studio", "--reporter=plain", "--reporter=checkstyle,output=${outputFile}", - "**/*.kt" + "**/*.kt", + "!**/build/**" ) jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED") diff --git a/dataconnect/app/build.gradle.kts b/dataconnect/app/build.gradle.kts index 28fb4f7c25..6c32450d26 100644 --- a/dataconnect/app/build.gradle.kts +++ b/dataconnect/app/build.gradle.kts @@ -47,7 +47,7 @@ android { } } sourceSets.getByName("main") { - java.srcDirs("build/generated/sources") + kotlin.directories.add("build/generated/sources") } } @@ -62,6 +62,7 @@ dependencies { implementation(libs.androidx.ui.graphics) implementation(libs.androidx.ui.tooling.preview) implementation(libs.androidx.material3) + implementation(libs.compose.material.icons) implementation(libs.compose.navigation) implementation(libs.androidx.lifecycle.runtime.compose.android) implementation(libs.coil.compose) diff --git a/dataconnect/build.gradle.kts b/dataconnect/build.gradle.kts index 9c6b19866e..11467f73d9 100644 --- a/dataconnect/build.gradle.kts +++ b/dataconnect/build.gradle.kts @@ -4,3 +4,20 @@ plugins { alias(libs.plugins.google.services) apply false alias(libs.plugins.compose.compiler) apply false } + +tasks { + register("dataconnectCompile") { + workingDir = project.file("./dataconnect") + if (org.apache.tools.ant.taskdefs.condition.Os.isFamily(org.apache.tools.ant.taskdefs.condition.Os.FAMILY_WINDOWS)) { + commandLine("npx.cmd", "-y", "firebase-tools@latest", "dataconnect:compile") + } else { + commandLine("npx", "-y", "firebase-tools@latest", "dataconnect:compile") + } + isIgnoreExitValue = true + } + + register("clean", Delete::class) { + delete(rootProject.layout.buildDirectory) + finalizedBy("dataconnectCompile") + } +} \ No newline at end of file diff --git a/dataconnect/dataconnect/movie-connector/connector.yaml b/dataconnect/dataconnect/movie-connector/connector.yaml index 2ba51749dc..21099bb852 100644 --- a/dataconnect/dataconnect/movie-connector/connector.yaml +++ b/dataconnect/dataconnect/movie-connector/connector.yaml @@ -10,4 +10,4 @@ generate: package: com.google.firebase.dataconnect.movies # Specify where to store the generated SDK # We're using the build/ directory so that generated code doesn't get checked into git - outputDir: ../../app/build/generated/sources/com/google/firebase/dataconnect/movies + outputDir: ../../app/build/generated/sources diff --git a/dataconnect/dataconnect/movie-connector/queries.gql b/dataconnect/dataconnect/movie-connector/queries.gql index 5e05b17e22..4e0229e98a 100644 --- a/dataconnect/dataconnect/movie-connector/queries.gql +++ b/dataconnect/dataconnect/movie-connector/queries.gql @@ -1,5 +1,5 @@ # List subset of fields for movies -query ListMovies($orderByRating: OrderDirection, $orderByReleaseYear: OrderDirection, $limit: Int) @auth(level: PUBLIC) { +query ListMovies($orderByRating: OrderDirection, $orderByReleaseYear: OrderDirection, $limit: Int) @auth(level: PUBLIC, insecureReason: "Test Mode") { movies( orderBy: [ { rating: $orderByRating }, @@ -19,7 +19,7 @@ query ListMovies($orderByRating: OrderDirection, $orderByReleaseYear: OrderDirec } # Get movie by id -query GetMovieById($id: UUID!) @auth(level: PUBLIC) { +query GetMovieById($id: UUID!) @auth(level: PUBLIC, insecureReason: "Test Mode") { movie(id: $id) { id title @@ -58,7 +58,7 @@ query GetMovieById($id: UUID!) @auth(level: PUBLIC) { } # Get actor by id -query GetActorById($id: UUID!) @auth(level: PUBLIC) { +query GetActorById($id: UUID!) @auth(level: PUBLIC, insecureReason: "Test Mode") { actor(id: $id) { id name @@ -130,7 +130,7 @@ query SearchAll( $minRating: Float! $maxRating: Float! $genre: String! -) @auth(level: PUBLIC) { +) @auth(level: PUBLIC, insecureReason: "Test Mode") { moviesMatchingTitle: movies( where: { _and: [ diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9b50ae8687..42b0b1c295 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -19,6 +19,7 @@ kotlin = "2.3.0" kotlinxSerializationCore = "1.9.0" lifecycle = "2.10.0" material = "1.13.0" +materialIcons = "1.7.8" webkit = "1.14.0" [libraries] @@ -58,6 +59,7 @@ junit = { group = "junit", name = "junit", version.ref = "junit" } kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "kotlinxSerializationCore" } kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationCore" } material = { module = "com.google.android.material:material", version.ref = "material" } +compose-material-icons = { group = "androidx.compose.material", name = "material-icons-core", version.ref = "materialIcons"} [plugins] android-application = { id = "com.android.application", version.ref = "agp" } diff --git a/scripts/ci_remove_fdc.py b/scripts/ci_remove_fdc.py deleted file mode 100644 index c425af615b..0000000000 --- a/scripts/ci_remove_fdc.py +++ /dev/null @@ -1,8 +0,0 @@ -# TODO(thatfiredev): remove this once github.com/firebase/quickstart-android/issues/1672 is fixed -with open('settings.gradle.kts', 'r') as file: - filedata = file.read() - -filedata = filedata.replace('":dataconnect:app",', '') - -with open('settings.gradle.kts', 'w') as file: - file.write(filedata)