File tree Expand file tree Collapse file tree 3 files changed +39
-2
lines changed
src/main/java/com/google/maps/android/compose Expand file tree Collapse file tree 3 files changed +39
-2
lines changed Original file line number Diff line number Diff line change @@ -17,7 +17,7 @@ kotlinxCoroutines = "1.10.1"
1717leakcanaryAndroid = " 2.12"
1818lifecycleRuntimeKtx = " 2.8.7"
1919mapsecrets = " 2.0.1"
20- mapsktx = " 5.1.1 "
20+ mapsktx = " 5.2.0 "
2121navigation = " 6.2.0"
2222org-jacoco-core = " 0.8.12"
2323places = " 4.2.0"
Original file line number Diff line number Diff line change 1+ import org.gradle.kotlin.dsl.sourceSets
2+
13plugins {
24 id(" org.jetbrains.kotlin.android" )
35 alias(libs.plugins.compose.compiler)
@@ -33,6 +35,8 @@ android {
3335 " -Xopt-in=kotlin.RequiresOptIn" ,
3436 )
3537 }
38+
39+ sourceSets[" main" ].java.srcDir(" build/generated/source/artifactId" )
3640}
3741
3842composeCompiler {
@@ -60,3 +64,32 @@ dependencies {
6064 androidTestImplementation(libs.androidx.test.espresso)
6165 androidTestImplementation(libs.androidx.test.junit.ktx)
6266}
67+
68+ // Artifact ID logic
69+ val attributionId = " gmp_git_androidmapscompose_v$version "
70+
71+ val generateArtifactIdFile = tasks.register(" generateArtifactIdFile" ) {
72+ val outputDir = layout.buildDirectory.dir(" generated/source/artifactId" )
73+ val packageName = " com.google.maps.android.compose.meta"
74+ val packagePath = packageName.replace(' .' , ' /' )
75+ val outputFile = outputDir.get().file(" $packagePath /ArtifactId.kt" ).asFile
76+
77+ outputs.file(outputFile)
78+
79+ doLast {
80+ outputFile.parentFile.mkdirs()
81+ outputFile.writeText(
82+ """
83+ package $packageName
84+
85+ public object AttributionId {
86+ public const val VALUE: String = "$attributionId "
87+ }
88+ """ .trimIndent()
89+ )
90+ }
91+ }
92+
93+ tasks.named(" preBuild" ) {
94+ dependsOn(generateArtifactIdFile)
95+ }
Original file line number Diff line number Diff line change @@ -44,9 +44,12 @@ import androidx.lifecycle.findViewTreeLifecycleOwner
4444import com.google.android.gms.maps.GoogleMapOptions
4545import com.google.android.gms.maps.LocationSource
4646import com.google.android.gms.maps.MapView
47+ import com.google.android.gms.maps.MapsApiSettings
48+
4749import com.google.android.gms.maps.model.LatLng
4850import com.google.android.gms.maps.model.MapColorScheme
4951import com.google.android.gms.maps.model.PointOfInterest
52+ import com.google.maps.android.compose.meta.AttributionId
5053import com.google.maps.android.ktx.awaitMap
5154import kotlinx.coroutines.CoroutineScope
5255import kotlinx.coroutines.CoroutineStart
@@ -148,7 +151,8 @@ public fun GoogleMap(
148151 AndroidView (
149152 modifier = modifier,
150153 factory = { context ->
151- MapView (context, googleMapOptionsFactory()).also { mapView ->
154+ MapView (context, googleMapOptionsFactory()) .also { mapView ->
155+ MapsApiSettings .addInternalUsageAttributionId(context, AttributionId .VALUE )
152156 val componentCallbacks = object : ComponentCallbacks2 {
153157 override fun onConfigurationChanged (newConfig : Configuration ) {}
154158 @Deprecated(" Deprecated in Java" , ReplaceWith (" onTrimMemory(level)" ))
You can’t perform that action at this time.
0 commit comments