Dale Hawkins b8519f44fe
refactor: Centralize SDK versions in libs.versions.toml (#2294)
* refactor: Centralize SDK versions in libs.versions.toml

Moved compileSdk, minSdk, and targetSdk to libs.versions.toml for ApiDemos and snippets projects to ensure consistency and ease of maintenance.

fix: Corrected top bar layout in Kotlin Advanced Markers demo

The Kotlin version of the Advanced Markers demo was missing a call to applyInsets, causing the top bar to overlap with the system UI. This has been corrected to match the behavior of the Java version.

* refactor: Modernize Gradle scripts and update dependencies

This commit refactors the Gradle build scripts for all snippet modules to align with modern Android development practices.

Key changes include:
- Migrating all plugin and dependency declarations to use the version catalog (`libs.versions.toml`).
- Replacing `id("...")` with `alias(libs.plugins...)` for applying plugins.
- Updating numerous library versions, including AGP, Kotlin, and various Jetpack and Google Maps libraries.
- Setting a `namespace` in all module-level `build.gradle.kts` files.
- Enabling Compose and setting the Java toolchain to version 21 across all modules.
- Enabling minification for release builds.
- Removing the legacy `buildscript` block from the root `build.gradle.kts`.

* refactor: removed coreKtx

* refactor: fix build

* refactor: fix build

* refactor: Remove unused Compose configuration from snippet modules

Removed the Jetpack Compose plugin and `compose = true` build feature from all snippet modules as it was not being used.

fix: Update maps-utils snippets

Corrected several issues in the `app-utils` Java snippets:
- Replaced the deprecated `setWeightedData` method with `updateData` in the Heatmaps demo.
- Initialized an empty list in the Heatmaps demo to prevent a potential NullPointerException.
- Added missing R class imports.

---------

Co-authored-by: Enrique López-Mañas <eenriquelopez@gmail.com>
2025-09-26 15:12:17 -06:00

99 lines
3.0 KiB
Plaintext

/*
* Copyright 2024 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.
*/
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.jetbrains.kotlin.android)
alias(libs.plugins.kotlin.compose)
alias(libs.plugins.secrets.gradle.plugin)
}
android {
namespace = "com.google.maps.example.compose"
compileSdk = libs.versions.compileSdk.get().toInt()
defaultConfig {
applicationId = "com.google.maps.example.compose"
minSdk = libs.versions.minSdk.get().toInt()
targetSdk = libs.versions.targetSdk.get().toInt()
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
isMinifyEnabled = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
buildFeatures {
compose = true
buildConfig = true
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
kotlin {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_21)
}
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(21))
}
}
}
// [START maps_android_compose_dependency]
dependencies {
// [START_EXCLUDE silent]
implementation(libs.kotlin.stdlib)
implementation(libs.core.ktx)
implementation(libs.appcompat)
implementation(libs.compose.foundation)
implementation(libs.compose.material)
implementation(libs.material)
implementation(libs.constraintlayout)
implementation(libs.navigation.fragment.ktx)
implementation(libs.navigation.ui.ktx)
implementation(libs.volley)
implementation(libs.lifecycle.runtime.ktx)
// [END_EXCLUDE]
// Android Maps Compose composables for the Maps SDK for Android
implementation(libs.maps.compose)
}
// [END maps_android_compose_dependency]
secrets {
// To add your Maps API key to this project:
// 1. If the secrets.properties file does not exist, create it in the same folder as the local.properties file.
// 2. Add this line, where YOUR_API_KEY is your API key:
// MAPS_API_KEY=YOUR_API_KEY
propertiesFileName = "secrets.properties"
// A properties file containing default secret values. This file can be
// checked in version control.
defaultPropertiesFileName = "local.defaults.properties"
}