diff --git a/README.md b/README.md index 6bf2f8dc..b4fe906d 100644 --- a/README.md +++ b/README.md @@ -29,14 +29,14 @@ You no longer need to specify the Maps SDK for Android or its Utility Library as ```groovy dependencies { - implementation 'com.google.maps.android:maps-compose:6.5.3' + implementation 'com.google.maps.android:maps-compose:6.6.0' // Optionally, you can include the Compose utils library for Clustering, // Street View metadata checks, etc. - implementation 'com.google.maps.android:maps-compose-utils:6.5.3' + implementation 'com.google.maps.android:maps-compose-utils:6.6.0' // Optionally, you can include the widgets library for ScaleBar, etc. - implementation 'com.google.maps.android:maps-compose-widgets:6.5.3' + implementation 'com.google.maps.android:maps-compose-widgets:6.6.0' } ``` diff --git a/build.gradle.kts b/build.gradle.kts index 4b42fb55..8d9dcbc5 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -34,7 +34,7 @@ val projectArtifactId by extra { project: Project -> allprojects { group = "com.google.maps.android" - version = "6.5.3" + version = "6.6.0" val projectArtifactId by extra { project.name } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ae27c157..0b5f7c04 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,26 +1,26 @@ [versions] accompanistPermissions = "0.37.0" -activitycompose = "1.9.3" -agp = "8.7.2" +activitycompose = "1.10.1" +agp = "8.9.1" androidCore = "1.6.1" -androidx-core = "1.15.0" +androidx-core = "1.16.0" androidxtest = "1.6.2" -compose-bom = "2024.11.00" +compose-bom = "2025.04.00" dokka = "1.9.20" espresso = "3.6.1" jacoco-plugin = "0.2.1" junit = "4.13.2" junitVersion = "1.2.1" junitktx = "1.2.1" -kotlin = "2.0.21" -kotlinxCoroutines = "1.9.0" +kotlin = "2.1.10" +kotlinxCoroutines = "1.10.1" leakcanaryAndroid = "2.12" lifecycleRuntimeKtx = "2.8.7" mapsecrets = "2.0.1" -mapsktx = "5.1.1" -navigation = "6.1.0" -org-jacoco-core = "0.8.11" -places = "4.1.0" +mapsktx = "5.2.0" +navigation = "6.2.0" +org-jacoco-core = "0.8.12" +places = "4.2.0" playServicesLocation = "21.3.0" robolectric = "4.14.1" screenshot = "0.0.1-alpha08" diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 2c352119..a4b76b95 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 09523c0e..e2847c82 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/maps-compose/build.gradle.kts b/maps-compose/build.gradle.kts index 7f54638d..b2e17e7c 100644 --- a/maps-compose/build.gradle.kts +++ b/maps-compose/build.gradle.kts @@ -1,3 +1,5 @@ +import org.gradle.kotlin.dsl.sourceSets + plugins { id("org.jetbrains.kotlin.android") alias(libs.plugins.compose.compiler) @@ -33,6 +35,8 @@ android { "-Xopt-in=kotlin.RequiresOptIn", ) } + + sourceSets["main"].java.srcDir("build/generated/source/artifactId") } composeCompiler { @@ -60,3 +64,32 @@ dependencies { androidTestImplementation(libs.androidx.test.espresso) androidTestImplementation(libs.androidx.test.junit.ktx) } + +// Artifact ID logic +val attributionId = "gmp_git_androidmapscompose_v$version" + +val generateArtifactIdFile = tasks.register("generateArtifactIdFile") { + val outputDir = layout.buildDirectory.dir("generated/source/artifactId") + val packageName = "com.google.maps.android.compose.meta" + val packagePath = packageName.replace('.', '/') + val outputFile = outputDir.get().file("$packagePath/ArtifactId.kt").asFile + + outputs.file(outputFile) + + doLast { + outputFile.parentFile.mkdirs() + outputFile.writeText( + """ + package $packageName + + public object AttributionId { + public const val VALUE: String = "$attributionId" + } + """.trimIndent() + ) + } +} + +tasks.named("preBuild") { + dependsOn(generateArtifactIdFile) +} diff --git a/maps-compose/src/main/java/com/google/maps/android/compose/GoogleMap.kt b/maps-compose/src/main/java/com/google/maps/android/compose/GoogleMap.kt index b7595b23..2468e373 100644 --- a/maps-compose/src/main/java/com/google/maps/android/compose/GoogleMap.kt +++ b/maps-compose/src/main/java/com/google/maps/android/compose/GoogleMap.kt @@ -44,9 +44,12 @@ import androidx.lifecycle.findViewTreeLifecycleOwner import com.google.android.gms.maps.GoogleMapOptions import com.google.android.gms.maps.LocationSource import com.google.android.gms.maps.MapView +import com.google.android.gms.maps.MapsApiSettings + import com.google.android.gms.maps.model.LatLng import com.google.android.gms.maps.model.MapColorScheme import com.google.android.gms.maps.model.PointOfInterest +import com.google.maps.android.compose.meta.AttributionId import com.google.maps.android.ktx.awaitMap import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineStart @@ -148,7 +151,8 @@ public fun GoogleMap( AndroidView( modifier = modifier, factory = { context -> - MapView(context, googleMapOptionsFactory()).also { mapView -> + MapView(context, googleMapOptionsFactory()) .also { mapView -> + MapsApiSettings.addInternalUsageAttributionId(context, AttributionId.VALUE ) val componentCallbacks = object : ComponentCallbacks2 { override fun onConfigurationChanged(newConfig: Configuration) {} @Deprecated("Deprecated in Java", ReplaceWith("onTrimMemory(level)"))