diff --git a/Maps3DSamples/ApiDemos/common/build.gradle.kts b/Maps3DSamples/ApiDemos/common/build.gradle.kts index 76a30dc8..94c73eeb 100644 --- a/Maps3DSamples/ApiDemos/common/build.gradle.kts +++ b/Maps3DSamples/ApiDemos/common/build.gradle.kts @@ -50,12 +50,12 @@ android { } compileOptions { isCoreLibraryDesugaringEnabled = true - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } kotlin { compilerOptions { - jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11) + jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17) } } } @@ -80,7 +80,7 @@ dependencies { api(libs.play.services.base) // "com.google.android.gms:play-services-base:18.10.0" api(libs.play.services.maps3d) // "com.google.android.gms:play-services-maps3d:0.2.2" - api(libs.maps.utils.ktx) + api(libs.android.maps.utils) } jacoco { diff --git a/Maps3DSamples/ApiDemos/java-app/build.gradle.kts b/Maps3DSamples/ApiDemos/java-app/build.gradle.kts index 8eedc77d..ea9eec82 100644 --- a/Maps3DSamples/ApiDemos/java-app/build.gradle.kts +++ b/Maps3DSamples/ApiDemos/java-app/build.gradle.kts @@ -54,8 +54,8 @@ android { } compileOptions { isCoreLibraryDesugaringEnabled = true - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } buildFeatures { buildConfig = true diff --git a/Maps3DSamples/ApiDemos/kotlin-app/build.gradle.kts b/Maps3DSamples/ApiDemos/kotlin-app/build.gradle.kts index 7cbe865d..55bb1d13 100644 --- a/Maps3DSamples/ApiDemos/kotlin-app/build.gradle.kts +++ b/Maps3DSamples/ApiDemos/kotlin-app/build.gradle.kts @@ -56,12 +56,12 @@ android { } compileOptions { isCoreLibraryDesugaringEnabled = true - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } kotlin { compilerOptions { - jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11) + jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17) } } buildFeatures { diff --git a/Maps3DSamples/ComposeDemos/app/build.gradle.kts b/Maps3DSamples/ComposeDemos/app/build.gradle.kts index 0aa16053..0405c3e0 100644 --- a/Maps3DSamples/ComposeDemos/app/build.gradle.kts +++ b/Maps3DSamples/ComposeDemos/app/build.gradle.kts @@ -25,7 +25,13 @@ plugins { configure { kotlin { target("**/*.kt") - ktlint().editorConfigOverride(mapOf("indent_size" to "4", "ktlint_function_naming_ignore_when_annotated_with" to "Composable")) + ktlint().editorConfigOverride( + mapOf( + "indent_size" to "4", + "ktlint_function_naming_ignore_when_annotated_with" to "Composable", + "ktlint_standard_max-line-length" to "disabled", + ), + ) trimTrailingWhitespace() endWithNewline() } @@ -60,12 +66,12 @@ android { } compileOptions { isCoreLibraryDesugaringEnabled = true - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } kotlin { compilerOptions { - jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11) + jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17) } } buildFeatures { @@ -101,7 +107,7 @@ dependencies { implementation(libs.androidx.fragment.ktx) // Maps Utils - implementation(libs.maps.utils.ktx) + implementation(libs.android.maps.utils) // Material Icons Extended implementation(libs.androidx.material.icons.extended) diff --git a/Maps3DSamples/advanced/app/build.gradle.kts b/Maps3DSamples/advanced/app/build.gradle.kts index 60c4d126..9eba6a44 100644 --- a/Maps3DSamples/advanced/app/build.gradle.kts +++ b/Maps3DSamples/advanced/app/build.gradle.kts @@ -60,12 +60,12 @@ android { } } compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } kotlin { compilerOptions { - jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11) + jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17) } } buildFeatures { @@ -104,7 +104,7 @@ dependencies { testImplementation(libs.google.truth) // Google Maps Utils for the polyline decoder - implementation(libs.maps.utils.ktx) + implementation(libs.android.maps.utils) implementation(libs.ktor.client.core) implementation(libs.ktor.client.cio) diff --git a/Maps3DSamples/advanced/app/src/main/java/com/example/advancedmaps3dsamples/scenarios/ScenarioData.kt b/Maps3DSamples/advanced/app/src/main/java/com/example/advancedmaps3dsamples/scenarios/ScenarioData.kt index 42c8433b..8da75307 100644 --- a/Maps3DSamples/advanced/app/src/main/java/com/example/advancedmaps3dsamples/scenarios/ScenarioData.kt +++ b/Maps3DSamples/advanced/app/src/main/java/com/example/advancedmaps3dsamples/scenarios/ScenarioData.kt @@ -16,7 +16,7 @@ package com.example.advancedmaps3dsamples.scenarios import com.example.advancedmaps3dsamples.R import com.google.android.gms.maps.model.LatLng -import com.google.maps.android.ktx.utils.latLngListEncode +import com.google.maps.android.latLngListEncode const val PLANE_URL = "https://storage.googleapis.com/gmp-maps-demos/p3d-map/assets/Airplane.glb" const val PLANE_SCALE = 0.05 diff --git a/PlacesUIKit3D/build.gradle.kts b/PlacesUIKit3D/build.gradle.kts index 8e36fae8..075a014c 100644 --- a/PlacesUIKit3D/build.gradle.kts +++ b/PlacesUIKit3D/build.gradle.kts @@ -142,7 +142,7 @@ dependencies { // These are the essential libraries for this sample, providing Maps and Places functionality. implementation(libs.play.services.maps3d) // The core SDK for embedding 3D Google Maps. implementation(libs.places) // The SDK for the Places UI Kit (PlaceDetails fragments). - implementation(libs.maps.utils.ktx) // Google Maps Utils for polyline decoding and other utilities. + implementation(libs.android.maps.utils) // Google Maps Utils for polyline decoding and other utilities. // --- Dependency Injection --- // Hilt is used for managing dependencies and object lifecycles. diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b846bfaa..3819a59e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -33,7 +33,7 @@ kotlinxSerialization = "1.11.0" ktor = "3.5.2" hilt = "2.60.1" ksp = "2.3.6" -mapsUtilsKtx = "6.3.0" +mapsUtils = "6.0.0-rc01" androidx-core-ktx = "1.8.9" androidxArchCoreTesting = "2.2.0" kotlinxCoroutines = "1.8.0" @@ -81,7 +81,8 @@ ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" } ktor-client-cio = { module = "io.ktor:ktor-client-cio", version.ref = "ktor" } ktor-client-content-negotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" } ktor-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" } -maps-utils-ktx = { module = "com.google.maps.android:maps-utils-ktx", version.ref = "mapsUtilsKtx" } +android-maps-utils = { module = "com.google.maps.android:android-maps-utils", version.ref = "mapsUtils" } +android-maps-utils-core = { module = "com.google.maps.android:android-maps-utils-core", version.ref = "mapsUtils" } androidx-material-icons-extended = { module = "androidx.compose.material:material-icons-extended" } [plugins] diff --git a/maps3d-compose-demo/build.gradle.kts b/maps3d-compose-demo/build.gradle.kts index a1ee2461..b812d09a 100644 --- a/maps3d-compose-demo/build.gradle.kts +++ b/maps3d-compose-demo/build.gradle.kts @@ -25,7 +25,13 @@ plugins { configure { kotlin { target("**/*.kt") - ktlint().editorConfigOverride(mapOf("indent_size" to "4", "ktlint_function_naming_ignore_when_annotated_with" to "Composable")) + ktlint().editorConfigOverride( + mapOf( + "indent_size" to "4", + "ktlint_function_naming_ignore_when_annotated_with" to "Composable", + "ktlint_standard_max-line-length" to "disabled", + ), + ) trimTrailingWhitespace() endWithNewline() } @@ -58,12 +64,12 @@ android { } } compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } kotlin { compilerOptions { - jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11) + jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17) } } buildFeatures { diff --git a/maps3d-compose-demo/src/androidTest/java/com/example/maps3dcomposedemo/BaseVisualTest.kt b/maps3d-compose-demo/src/androidTest/java/com/example/maps3dcomposedemo/BaseVisualTest.kt index 4d4614b8..24eb2669 100644 --- a/maps3d-compose-demo/src/androidTest/java/com/example/maps3dcomposedemo/BaseVisualTest.kt +++ b/maps3d-compose-demo/src/androidTest/java/com/example/maps3dcomposedemo/BaseVisualTest.kt @@ -43,7 +43,9 @@ abstract class BaseVisualTest { key } - protected fun captureScreenshot(filename: String = "screenshot_${System.currentTimeMillis()}.png"): Bitmap { + protected fun captureScreenshot( + filename: String = "screenshot_${System.currentTimeMillis()}.png", + ): Bitmap { val screenshotFile = File(context.getExternalFilesDir(null), filename) val screenshotTaken = uiDevice.takeScreenshot(screenshotFile) assertTrue("Failed to take screenshot: $filename", screenshotTaken) diff --git a/maps3d-compose-demo/src/androidTest/java/com/example/maps3dcomposedemo/Maps3DVisualTest.kt b/maps3d-compose-demo/src/androidTest/java/com/example/maps3dcomposedemo/Maps3DVisualTest.kt index 86eae31d..8949aa3e 100644 --- a/maps3d-compose-demo/src/androidTest/java/com/example/maps3dcomposedemo/Maps3DVisualTest.kt +++ b/maps3d-compose-demo/src/androidTest/java/com/example/maps3dcomposedemo/Maps3DVisualTest.kt @@ -408,7 +408,9 @@ class Maps3DVisualTest : BaseVisualTest() { // Parse JSON and click try { - val jsonStr = geminiResponse?.substringAfter("{")?.substringBeforeLast("}")?.let { "{$it}" } ?: "" + val jsonStr = + geminiResponse?.substringAfter("{")?.substringBeforeLast("}")?.let { "{$it}" } + ?: "" val json = org.json.JSONObject(jsonStr) val x = json.getDouble("x") val y = json.getDouble("y") @@ -418,7 +420,9 @@ class Maps3DVisualTest : BaseVisualTest() { uiDevice.click(clickX, clickY) } catch (e: Exception) { - org.junit.Assert.fail("Failed to parse coordinates from Gemini response: $geminiResponse. Error: ${e.message}") + org.junit.Assert.fail( + "Failed to parse coordinates from Gemini response: $geminiResponse. Error: ${e.message}", + ) } // Wait for UI to update diff --git a/maps3d-compose-demo/src/main/java/com/example/maps3dcomposedemo/MapInteractionsActivity.kt b/maps3d-compose-demo/src/main/java/com/example/maps3dcomposedemo/MapInteractionsActivity.kt index e47f8341..cd6c4ef7 100644 --- a/maps3d-compose-demo/src/main/java/com/example/maps3dcomposedemo/MapInteractionsActivity.kt +++ b/maps3d-compose-demo/src/main/java/com/example/maps3dcomposedemo/MapInteractionsActivity.kt @@ -95,7 +95,10 @@ fun MapInteractionsScreen() { map3dInstance = instance // Set up click listener directly on the instance instance.setMap3DClickListener { location, placeId -> - Log.d("MapInteractionsActivity", "Map clicked at ${location.latitude}, ${location.longitude}") + Log.d( + "MapInteractionsActivity", + "Map clicked at ${location.latitude}, ${location.longitude}", + ) clickedInfo = if (placeId != null) { "Clicked Place ID: $placeId\nAt: ${location.latitude}, ${location.longitude}" } else { diff --git a/maps3d-compose-demo/src/main/java/com/example/maps3dcomposedemo/widgets/TiltScale.kt b/maps3d-compose-demo/src/main/java/com/example/maps3dcomposedemo/widgets/TiltScale.kt index 358e5344..babcb15e 100644 --- a/maps3d-compose-demo/src/main/java/com/example/maps3dcomposedemo/widgets/TiltScale.kt +++ b/maps3d-compose-demo/src/main/java/com/example/maps3dcomposedemo/widgets/TiltScale.kt @@ -68,10 +68,16 @@ fun TiltScale(tilt: Float, modifier: Modifier = Modifier) { ) if (isMajor) { - val measuredText = textMeasurer.measure(i.toString(), style = TextStyle(color = onPrimaryColor, fontSize = 12.sp)) + val measuredText = textMeasurer.measure( + i.toString(), + style = TextStyle(color = onPrimaryColor, fontSize = 12.sp), + ) drawText( textLayoutResult = measuredText, - topLeft = Offset(centerLineX + 20f, yPos - measuredText.size.height / 2f), + topLeft = Offset( + centerLineX + 20f, + yPos - measuredText.size.height / 2f, + ), ) } } diff --git a/maps3d-compose-demo/src/main/java/com/example/maps3dcomposedemo/widgets/WhiskeyCompass.kt b/maps3d-compose-demo/src/main/java/com/example/maps3dcomposedemo/widgets/WhiskeyCompass.kt index d969d546..aaf0e4fc 100644 --- a/maps3d-compose-demo/src/main/java/com/example/maps3dcomposedemo/widgets/WhiskeyCompass.kt +++ b/maps3d-compose-demo/src/main/java/com/example/maps3dcomposedemo/widgets/WhiskeyCompass.kt @@ -73,7 +73,9 @@ fun WhiskeyCompass( showDegreeLabels: Boolean = true, degreeLabelInterval: Int = 15, - degreeLabelTextStyle: TextStyle = MaterialTheme.typography.labelSmall.copy(textAlign = TextAlign.Center), + degreeLabelTextStyle: TextStyle = MaterialTheme.typography.labelSmall.copy( + textAlign = TextAlign.Center, + ), degreeLabelVerticalOffset: Dp = 4.dp, showCardinalLabels: Boolean = true, @@ -142,7 +144,9 @@ fun WhiskeyCompass( val absoluteDegree = repetitionBaseDegree + degreeInRepetition val xPos = absoluteDegree * pixelsPerDegree - if (xPos < -xOffset + canvasWidth + canvasWidth && xPos > -xOffset - canvasWidth) { + if (xPos < -xOffset + canvasWidth + canvasWidth && + xPos > -xOffset - canvasWidth + ) { val isMajorTickEquivalent = degreeInRepetition % 10 == 0 val isMinorTickEquivalent = degreeInRepetition % 5 == 0 && !isMajorTickEquivalent @@ -167,7 +171,9 @@ fun WhiskeyCompass( textLayoutResult = measuredText, topLeft = Offset( x = xPos - measuredText.size.width / 2f, - y = tickTopY - measuredText.size.height - cardinalLabelVerticalOffsetPx, + y = + tickTopY - measuredText.size.height - + cardinalLabelVerticalOffsetPx, ), ) } @@ -272,7 +278,9 @@ private fun FlatWhiskeyCompassPreview() { lubberLineColor = Color(0xFFFFD600), pixelsPerDegree = 12f, degreeLabelInterval = 10, - degreeLabelTextStyle = MaterialTheme.typography.bodySmall.copy(color = Color(0xFF81D4FA)), + degreeLabelTextStyle = MaterialTheme.typography.bodySmall.copy( + color = Color(0xFF81D4FA), + ), cardinalLabelTextStyle = MaterialTheme.typography.labelLarge.copy( color = Color.White, fontWeight = FontWeight.Bold, diff --git a/maps3d-compose/build.gradle.kts b/maps3d-compose/build.gradle.kts index 8db06bc1..1a4e7174 100644 --- a/maps3d-compose/build.gradle.kts +++ b/maps3d-compose/build.gradle.kts @@ -24,7 +24,13 @@ plugins { configure { kotlin { target("**/*.kt") - ktlint().editorConfigOverride(mapOf("indent_size" to "4", "ktlint_function_naming_ignore_when_annotated_with" to "Composable")) + ktlint().editorConfigOverride( + mapOf( + "indent_size" to "4", + "ktlint_function_naming_ignore_when_annotated_with" to "Composable", + "ktlint_standard_max-line-length" to "disabled", + ), + ) trimTrailingWhitespace() endWithNewline() } @@ -40,12 +46,12 @@ android { } compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } kotlin { compilerOptions { - jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11) + jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17) } } buildFeatures { @@ -66,7 +72,7 @@ dependencies { // Maps 3D SDK implementation(libs.play.services.maps3d) - implementation(libs.maps.utils.ktx) + implementation(libs.android.maps.utils) testImplementation(libs.junit) testImplementation(libs.robolectric) diff --git a/maps3d-compose/src/main/java/com/google/maps/android/compose3d/GoogleMap3D.kt b/maps3d-compose/src/main/java/com/google/maps/android/compose3d/GoogleMap3D.kt index bd14fbdc..e233052b 100644 --- a/maps3d-compose/src/main/java/com/google/maps/android/compose3d/GoogleMap3D.kt +++ b/maps3d-compose/src/main/java/com/google/maps/android/compose3d/GoogleMap3D.kt @@ -82,7 +82,7 @@ fun GoogleMap3D( minTilt = 0.0, maxTilt = 90.0, bounds = null, - mapMode = Map3DMode.SATELLITE, // using the class from com.google.android.gms.maps3d.model.Map3DMode + mapMode = Map3DMode.SATELLITE, mapId = null, minAltitude = 0.0, maxAltitude = 1000000.0, @@ -129,7 +129,10 @@ fun GoogleMap3D( if (currentOnMapClick != null || currentOnPlaceClick != null) { googleMap3D.setMap3DClickListener { location, placeId -> - android.util.Log.d("GoogleMap3D", "Map clicked at $location, placeId: $placeId") + android.util.Log.d( + "GoogleMap3D", + "Map clicked at $location, placeId: $placeId", + ) if (placeId != null) { currentOnPlaceClick?.invoke(placeId) } else { diff --git a/maps3d-compose/src/main/java/com/google/maps/android/compose3d/Map3DState.kt b/maps3d-compose/src/main/java/com/google/maps/android/compose3d/Map3DState.kt index 11539222..85695a52 100644 --- a/maps3d-compose/src/main/java/com/google/maps/android/compose3d/Map3DState.kt +++ b/maps3d-compose/src/main/java/com/google/maps/android/compose3d/Map3DState.kt @@ -85,7 +85,11 @@ class Map3DState { } } - private fun createMarker(map: GoogleMap3D, config: MarkerConfig, overrideId: String? = null): Marker? { + private fun createMarker( + map: GoogleMap3D, + config: MarkerConfig, + overrideId: String? = null, + ): Marker? { val marker = map.addMarker(config.toMarkerOptions(overrideId)) config.onClick?.let { callback -> marker?.setClickListener { @@ -129,7 +133,11 @@ class Map3DState { } } - private fun createPolyline(map: GoogleMap3D, config: PolylineConfig, overrideId: String? = null): Polyline { + private fun createPolyline( + map: GoogleMap3D, + config: PolylineConfig, + overrideId: String? = null, + ): Polyline { val polyline = map.addPolyline(config.toPolylineOptions(overrideId)) config.onClick?.let { callback -> polyline.setClickListener { @@ -173,7 +181,11 @@ class Map3DState { } } - private fun createPolygon(map: GoogleMap3D, config: PolygonConfig, overrideId: String? = null): Polygon { + private fun createPolygon( + map: GoogleMap3D, + config: PolygonConfig, + overrideId: String? = null, + ): Polygon { val polygon = map.addPolygon(config.toPolygonOptions(overrideId)) config.onClick?.let { callback -> polygon.setClickListener { @@ -220,7 +232,11 @@ class Map3DState { } } - private fun createModel(map: GoogleMap3D, config: ModelConfig, overrideId: String? = null): Model { + private fun createModel( + map: GoogleMap3D, + config: ModelConfig, + overrideId: String? = null, + ): Model { val model = map.addModel(config.toModelOptions(overrideId)) config.onClick?.let { callback -> model.setClickListener { diff --git a/maps3d-compose/src/main/java/com/google/maps/android/compose3d/utils/Units.kt b/maps3d-compose/src/main/java/com/google/maps/android/compose3d/utils/Units.kt index d0d96c02..6a114f5b 100644 --- a/maps3d-compose/src/main/java/com/google/maps/android/compose3d/utils/Units.kt +++ b/maps3d-compose/src/main/java/com/google/maps/android/compose3d/utils/Units.kt @@ -137,7 +137,9 @@ fun getUnitsConverter(countryCode: String?): UnitsConverter { /** Class to render measurements in imperial units. */ object ImperialUnitsConverter : UnitsConverter() { - override fun toDistanceUnits(meters: Meters): ValueWithUnitsTemplate = if (meters < 0.25.miles) { + override fun toDistanceUnits(meters: Meters): ValueWithUnitsTemplate = if (meters < + 0.25.miles + ) { ValueWithUnitsTemplate(meters.toFeet, R.string.in_feet) } else { ValueWithUnitsTemplate(meters.toMiles, R.string.in_miles) @@ -148,7 +150,9 @@ object ImperialUnitsConverter : UnitsConverter() { /** Class to render measurements in metric units. */ object MetricUnitsConverter : UnitsConverter() { - override fun toDistanceUnits(meters: Meters): ValueWithUnitsTemplate = if (meters < 1000.meters) { + override fun toDistanceUnits(meters: Meters): ValueWithUnitsTemplate = if (meters < + 1000.meters + ) { ValueWithUnitsTemplate(meters.toMeters, R.string.in_meters) } else { ValueWithUnitsTemplate(meters.toKilometers, R.string.in_kilometers) diff --git a/maps3d-compose/src/main/java/com/google/maps/android/compose3d/utils/Utilities.kt b/maps3d-compose/src/main/java/com/google/maps/android/compose3d/utils/Utilities.kt index 951e8f1a..ea7c987a 100644 --- a/maps3d-compose/src/main/java/com/google/maps/android/compose3d/utils/Utilities.kt +++ b/maps3d-compose/src/main/java/com/google/maps/android/compose3d/utils/Utilities.kt @@ -319,10 +319,7 @@ fun FlyAroundOptions.copy( } } -fun FlyToOptions.copy( - endCamera: Camera? = null, - durationInMillis: Long? = null, -): FlyToOptions { +fun FlyToOptions.copy(endCamera: Camera? = null, durationInMillis: Long? = null): FlyToOptions { val objectToCopy = this return flyToOptions { diff --git a/settings.gradle.kts b/settings.gradle.kts index 494cd19c..d0e4a1b4 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -30,13 +30,7 @@ pluginManagement { dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { - val useLocalMaven = providers.gradleProperty("use_local_maven") - .getOrElse("false") - .toBoolean() - - if (useLocalMaven) { - mavenLocal() - } + mavenLocal() google() mavenCentral() } diff --git a/snippets/build.gradle.kts b/snippets/build.gradle.kts index f5ce5c09..e4a5d8a7 100644 --- a/snippets/build.gradle.kts +++ b/snippets/build.gradle.kts @@ -35,7 +35,13 @@ subprojects { } kotlin { target("**/*.kt") - ktlint().editorConfigOverride(mapOf("indent_size" to "4", "ktlint_function_naming_ignore_when_annotated_with" to "Composable")) + ktlint().editorConfigOverride( + mapOf( + "indent_size" to "4", + "ktlint_function_naming_ignore_when_annotated_with" to "Composable", + "ktlint_standard_max-line-length" to "disabled", + ), + ) trimTrailingWhitespace() endWithNewline() } diff --git a/snippets/common/build.gradle.kts b/snippets/common/build.gradle.kts index cc74c3f1..a9c8107d 100644 --- a/snippets/common/build.gradle.kts +++ b/snippets/common/build.gradle.kts @@ -40,12 +40,12 @@ android { } compileOptions { isCoreLibraryDesugaringEnabled = true - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } kotlin { compilerOptions { - jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11) + jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17) } } } diff --git a/snippets/java-app/build.gradle.kts b/snippets/java-app/build.gradle.kts index eecb7bb0..db4988ee 100644 --- a/snippets/java-app/build.gradle.kts +++ b/snippets/java-app/build.gradle.kts @@ -53,12 +53,12 @@ android { } compileOptions { isCoreLibraryDesugaringEnabled = true - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } kotlin { compilerOptions { - jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11) + jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17) } } buildFeatures { diff --git a/snippets/kotlin-app/build.gradle.kts b/snippets/kotlin-app/build.gradle.kts index cf1fd925..8c6a70ab 100644 --- a/snippets/kotlin-app/build.gradle.kts +++ b/snippets/kotlin-app/build.gradle.kts @@ -54,12 +54,12 @@ android { } compileOptions { isCoreLibraryDesugaringEnabled = true - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } kotlin { compilerOptions { - jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11) + jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17) } } buildFeatures { diff --git a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/MapActivity.kt b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/MapActivity.kt index dfc6e489..55780874 100644 --- a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/MapActivity.kt +++ b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/MapActivity.kt @@ -54,7 +54,10 @@ class MapActivity : AppCompatActivity() { val groupTitle = intent.getStringExtra("group_title") val snippetTitle = intent.getStringExtra(EXTRA_SNIPPET_TITLE) val snippetList = SnippetRegistry.getSnippetGroups().flatMap { it.items } - var currentIndex = snippetList.indexOfFirst { it.title == snippetTitle && (groupTitle == null || it.groupTitle == groupTitle) } + var currentIndex = snippetList.indexOfFirst { + it.title == snippetTitle && + (groupTitle == null || it.groupTitle == groupTitle) + } findViewById(R.id.snapshot_button).apply { setOnClickListener { @@ -187,7 +190,10 @@ class MapActivity : AppCompatActivity() { if (snippetTitle == null) return val key = if (groupTitle != null) "$groupTitle - $snippetTitle" else snippetTitle val snippet = SnippetRegistry.snippets[key] - ?: SnippetRegistry.getSnippetGroups().flatMap { it.items }.find { it.title == snippetTitle } + ?: SnippetRegistry.getSnippetGroups().flatMap { it.items }.find { + it.title == + snippetTitle + } ?: return if (!::googleMap3D.isInitialized) return diff --git a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/SnippetRegistry.kt b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/SnippetRegistry.kt index e81504dd..f4cfecde 100644 --- a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/SnippetRegistry.kt +++ b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/SnippetRegistry.kt @@ -105,7 +105,9 @@ object SnippetRegistry { // Most snippet methods take no args because they use initialized class fields if (method.parameterCount == 0) { method.invoke(instance) - } else if (method.parameterCount == 1 && method.parameterTypes[0] == Context::class.java) { + } else if (method.parameterCount == 1 && + method.parameterTypes[0] == Context::class.java + ) { method.invoke(instance, context) } else { // Fallback or log error @@ -132,14 +134,29 @@ object SnippetRegistry { return groups } - private fun createInstance(clazz: Class<*>, context: Context, map: TrackedMap3D, scope: CoroutineScope): Any = try { - clazz.getConstructor(Context::class.java, TrackedMap3D::class.java, CoroutineScope::class.java).newInstance(context, map, scope) + private fun createInstance( + clazz: Class<*>, + context: Context, + map: TrackedMap3D, + scope: CoroutineScope, + ): Any = try { + clazz.getConstructor( + Context::class.java, + TrackedMap3D::class.java, + CoroutineScope::class.java, + ).newInstance(context, map, scope) } catch (e: Exception) { try { - clazz.getConstructor(TrackedMap3D::class.java, CoroutineScope::class.java).newInstance(map, scope) + clazz.getConstructor( + TrackedMap3D::class.java, + CoroutineScope::class.java, + ).newInstance(map, scope) } catch (e: Exception) { try { - clazz.getConstructor(Context::class.java, TrackedMap3D::class.java).newInstance(context, map) + clazz.getConstructor( + Context::class.java, + TrackedMap3D::class.java, + ).newInstance(context, map) } catch (e: Exception) { try { clazz.getConstructor(TrackedMap3D::class.java).newInstance(map) diff --git a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/TrackedMap3D.kt b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/TrackedMap3D.kt index d7637e0c..683d246a 100644 --- a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/TrackedMap3D.kt +++ b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/TrackedMap3D.kt @@ -23,10 +23,7 @@ import com.google.android.gms.maps3d.model.PopoverOptions /** * Decorator wrapper around GoogleMap3D to track elements added during a snippet session. */ -class TrackedMap3D( - val delegate: GoogleMap3D, - private val items: MutableList, -) { +class TrackedMap3D(val delegate: GoogleMap3D, private val items: MutableList) { fun addMarker(options: MarkerOptions): Marker? { val marker = delegate.addMarker(options) diff --git a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/annotations/SnippetGroup.kt b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/annotations/SnippetGroup.kt index 1558bc3d..7beb349f 100644 --- a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/annotations/SnippetGroup.kt +++ b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/annotations/SnippetGroup.kt @@ -8,7 +8,4 @@ package com.example.snippets.kotlin.annotations */ @Target(AnnotationTarget.CLASS) @Retention(AnnotationRetention.RUNTIME) -annotation class SnippetGroup( - val title: String, - val description: String = "", -) +annotation class SnippetGroup(val title: String, val description: String = "") diff --git a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/annotations/SnippetItem.kt b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/annotations/SnippetItem.kt index d9aa6110..b1a22eee 100644 --- a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/annotations/SnippetItem.kt +++ b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/annotations/SnippetItem.kt @@ -8,7 +8,4 @@ package com.example.snippets.kotlin.annotations */ @Target(AnnotationTarget.FUNCTION) @Retention(AnnotationRetention.RUNTIME) -annotation class SnippetItem( - val title: String, - val description: String = "", -) +annotation class SnippetItem(val title: String, val description: String = "") diff --git a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/CameraControlSnippets.kt b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/CameraControlSnippets.kt index a37c536c..c56cfe82 100644 --- a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/CameraControlSnippets.kt +++ b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/CameraControlSnippets.kt @@ -56,7 +56,8 @@ class CameraControlSnippets( @Suppress("unused") @SnippetItem( title = "1. Fly To", - description = "Animates the camera to a specific position with a tilt and heading over 5 seconds.", + description = "Animates the camera to a specific position with a tilt and heading over " + + "5 seconds.", ) fun flyCameraToPosition() { // [START maps_android_3d_camera_fly_to_kt] diff --git a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/MapInitSnippets.kt b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/MapInitSnippets.kt index b9c3a6dc..a4abb95b 100644 --- a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/MapInitSnippets.kt +++ b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/MapInitSnippets.kt @@ -50,7 +50,8 @@ class MapInitSnippets { @Suppress("unused") @SnippetItem( title = "2. Add Map to AndroidView", - description = "Shows how to add a Map3DView to an AndroidView which bridges to Jetpack Compose.", + description = "Shows how to add a Map3DView to an AndroidView which bridges to " + + "Jetpack Compose.", ) fun BasicMap3D() { AndroidView( diff --git a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/ModelSnippets.kt b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/ModelSnippets.kt index 75d81691..baa9c04e 100644 --- a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/ModelSnippets.kt +++ b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/ModelSnippets.kt @@ -37,7 +37,8 @@ import com.google.android.gms.maps3d.model.vector3D ) class ModelSnippets(private val context: Context, private val map: TrackedMap3D) { companion object { - const val SAUCER_URL = "https://storage.googleapis.com/gmp-maps-demos/p3d-map/assets/UFO.glb" + const val SAUCER_URL = + "https://storage.googleapis.com/gmp-maps-demos/p3d-map/assets/UFO.glb" } /** diff --git a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/PlaceSnippets.kt b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/PlaceSnippets.kt index f4f16aff..778e1e8d 100644 --- a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/PlaceSnippets.kt +++ b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/PlaceSnippets.kt @@ -38,7 +38,8 @@ class PlaceSnippets(private val context: Context, private val map: TrackedMap3D) @Suppress("unused") @SnippetItem( title = "1. Listen Clicks", - description = "Sets up a listener that logs the Place ID when a user clicks on a 3D building or POI.", + description = "Sets up a listener that logs the Place ID when a user clicks on a " + + "3D building or POI.", ) fun listenToPlaceClicks() { // [START maps_android_3d_place_click_kt] diff --git a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/PolygonSnippets.kt b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/PolygonSnippets.kt index 68e80efb..6d2d17da 100644 --- a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/PolygonSnippets.kt +++ b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/PolygonSnippets.kt @@ -116,7 +116,8 @@ class PolygonSnippets(private val context: Context, private val map: TrackedMap3 @Suppress("unused") @SnippetItem( title = "2. Extruded", - description = "Draws a semi-transparent red extruded polygon (height 50m) around a small area", + description = "Draws a semi-transparent red extruded polygon (height 50m) around a " + + "small area", ) fun addExtrudedPolygon() { // [START maps_android_3d_polygon_extruded_kt] diff --git a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/PolylineSnippets.kt b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/PolylineSnippets.kt index 61b31140..2ea22d7c 100644 --- a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/PolylineSnippets.kt +++ b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/PolylineSnippets.kt @@ -104,7 +104,8 @@ class PolylineSnippets(private val context: Context, private val map: TrackedMap @Suppress("unused") @SnippetItem( title = "2. Styled", - description = "Draws a magenta polyline with a green outline, extruded and following the ground curvature (geodesic), connecting two points.", + description = "Draws a magenta polyline with a green outline, extruded and following the " + + "ground curvature (geodesic), connecting two points.", ) fun addStyledPolyline() { // [START maps_android_3d_polyline_options_kt] diff --git a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/PopoverSnippets.kt b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/PopoverSnippets.kt index 2e8d598d..273e17fe 100644 --- a/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/PopoverSnippets.kt +++ b/snippets/kotlin-app/src/main/java/com/example/snippets/kotlin/snippets/PopoverSnippets.kt @@ -99,7 +99,8 @@ class PopoverSnippets(private val context: Context, private val map: TrackedMap3 @Suppress("unused") @SnippetItem( title = "2. Configured", - description = "Adds an 'Info' popover anchored to a marker with auto-close enabled and auto-pan disabled.", + description = "Adds an 'Info' popover anchored to a marker with auto-close enabled and " + + "auto-pan disabled.", ) fun addConfiguredPopover() { // [START maps_android_3d_popover_options_kt]