diff --git a/.github/workflows/lint-report.yml b/.github/workflows/lint-report.yml index 5f6938051..da812752e 100644 --- a/.github/workflows/lint-report.yml +++ b/.github/workflows/lint-report.yml @@ -37,16 +37,16 @@ jobs: uses: gradle/actions/setup-gradle@v4 - name: Run Android Lint - run: ./gradlew lint + run: ./gradlew :library:lintDebug :demo:lintStandardDebug - name: Upload SARIF for library uses: github/codeql-action/upload-sarif@v3 with: - sarif_file: library/build/reports/lint-results-debug.sarif + sarif_file: library/build/reports/lint-results.sarif category: library - name: Upload SARIF for demo uses: github/codeql-action/upload-sarif@v3 with: - sarif_file: demo/build/reports/lint-results-debug.sarif + sarif_file: demo/build/reports/lint-results.sarif category: demo diff --git a/demo/build.gradle.kts b/demo/build.gradle.kts index 8148ff11c..62eea31a0 100644 --- a/demo/build.gradle.kts +++ b/demo/build.gradle.kts @@ -52,6 +52,12 @@ android { compose = true } + compileOptions { + isCoreLibraryDesugaringEnabled = true + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + kotlin { compilerOptions { jvmTarget.set(JvmTarget.JVM_17) @@ -60,13 +66,31 @@ android { } namespace = "com.google.maps.android.utils.demo" + + flavorDimensions += "sdk" + productFlavors { + create("standard") { + dimension = "sdk" + isDefault = true + } + create("navigation") { + dimension = "sdk" + minSdk = 24 // Navigation SDK 7.x requires API 24+ + } + } } // [START maps_android_utils_install_snippet] dependencies { + coreLibraryDesugaring(libs.desugar.jdk.libs) // [START_EXCLUDE silent] - implementation(project(":library")) + "standardImplementation"(project(":library")) + "navigationImplementation"(project(":library")) { + exclude(group = "com.google.android.gms", module = "play-services-maps") + } + "navigationImplementation"(libs.navigation.sdk) + implementation(libs.appcompat) implementation(libs.lifecycle.extensions) implementation(libs.lifecycle.viewmodel.ktx) diff --git a/demo/src/main/AndroidManifest.xml b/demo/src/main/AndroidManifest.xml index 5b9ce9fa9..5b43e03f7 100644 --- a/demo/src/main/AndroidManifest.xml +++ b/demo/src/main/AndroidManifest.xml @@ -42,10 +42,6 @@ android:theme="@style/AppTheme" tools:ignore="GoogleAppIndexingWarning"> - - + + + + + diff --git a/demo/src/standard/java/com/google/maps/android/utils/demo/MapFragmentProvider.java b/demo/src/standard/java/com/google/maps/android/utils/demo/MapFragmentProvider.java new file mode 100644 index 000000000..5f133da80 --- /dev/null +++ b/demo/src/standard/java/com/google/maps/android/utils/demo/MapFragmentProvider.java @@ -0,0 +1,31 @@ +/* + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.maps.android.utils.demo; + +import androidx.fragment.app.Fragment; +import com.google.android.gms.maps.GoogleMapOptions; +import com.google.android.gms.maps.SupportMapFragment; + +public class MapFragmentProvider { + public static Fragment getFragment(GoogleMapOptions options) { + if (options == null) { + return SupportMapFragment.newInstance(); + } else { + return SupportMapFragment.newInstance(options); + } + } +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index be822d6ae..1f8b6319d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -30,6 +30,8 @@ compose-bom = "2026.02.00" # --- Google Services (Maps) --- # Versions for Google Play Services libraries essential for map functionality. play-services-maps = "20.0.0" +navigation-sdk = "7.6.0" +desugar-jdk-libs = "2.1.5" # --- Testing --- # Versions for unit and instrumented testing libraries. @@ -84,6 +86,8 @@ material-icons-core = { group = "androidx.compose.material", name = "material-ic # --- Google Services (Maps) --- # Key libraries for integrating Google Maps and related services. play-services-maps = { module = "com.google.android.gms:play-services-maps", version.ref = "play-services-maps" } +navigation-sdk = { module = "com.google.android.libraries.navigation:navigation", version.ref = "navigation-sdk" } +desugar-jdk-libs = { module = "com.android.tools:desugar_jdk_libs_nio", version.ref = "desugar-jdk-libs" } # --- Testing --- # Tools for running implementation validation and user interface tests. diff --git a/library/src/main/AndroidManifest.xml b/library/src/main/AndroidManifest.xml index 1acde0b75..0d5f7f4f1 100644 --- a/library/src/main/AndroidManifest.xml +++ b/library/src/main/AndroidManifest.xml @@ -19,10 +19,6 @@ xmlns:tools="http://schemas.android.com/tools"> - -