Add local.defaults.properties for MapWithMarker - #2420
Open
mydickassbusiness wants to merge 17 commits into
Open
Add local.defaults.properties for MapWithMarker#2420mydickassbusiness wants to merge 17 commits into
mydickassbusiness wants to merge 17 commits into
Conversation
…amples#2388) Adds a root .editorconfig with basic formatting conventions (UTF-8, LF line endings, trailing whitespace trimming, final newline, and indentation rules for Kotlin, Java, Gradle, XML, YAML/JSON, and Markdown) so contributors get consistent defaults across editors and IDEs. Fixes googlemaps-samples#964
* build: update dependencies to latest versions Bumps the version catalog and a handful of hardcoded snippet dependencies to their latest releases, including major upgrades: AGP 8.13.2 -> 9.3.1, Gradle 9.1.0 -> 9.7.0, Kotlin 2.2.0 -> 2.4.10, KSP 2.2.20-2.0.4 -> 2.3.11 (now versioned independently of Kotlin), Maps Compose 7.0.0/6.12.0 -> 8.4.0, Places(-ktx) and android-maps-utils to their latest majors. Also aligns app-rx's hardcoded play-services-maps/places versions with the rest of the repo. * build: bump actions/checkout to v7 and actions/setup-python to v7 Both are new majors since the last actions bump (googlemaps-samples#2377). Verified no workflow uses pull_request_target/workflow_run (affected by checkout v7's fork-checkout change) or setup-python's removed pip-install input, so no other changes are needed. * docs: sync WearOS install-snippet version comment with catalog scripts/update_docs_versions.py enforces this in CI; the wear bump to 1.4.0 left the inline comment stale. * build: regenerate Gradle wrapper for 9.7.0 via official wrapper task Ran ./gradlew wrapper --gradle-version=9.7.0 instead of hand-editing gradle-wrapper.properties, since that also refreshes gradle-wrapper.jar and the gradlew/gradlew.bat scripts (and picks up new 9.x wrapper properties like retries/retryBackOffMs). Drops the distributionSha256Sum pin as requested. * build: migrate to AGP 9 built-in Kotlin support AGP 9 provides Kotlin support natively and refuses to configure a module that still applies org.jetbrains.kotlin.android alongside it. Removes that plugin (all its declaration styles: catalog alias, kotlin("android"), and hardcoded id(...)) from every module actually wired into settings.gradle.kts, and drops the now-unused kotlin-android catalog entry. Also fixes two things AGP 9 surfaced as hard errors during configuration, unrelated to the plugin removal itself: - ApiDemos:java-app had a vestigial buildFeatures.compose = true with no Kotlin sources or Compose dependencies; AGP 9 now requires the Compose Compiler plugin whenever compose is enabled, so the dead flag is removed instead. - tutorials/kotlin/Polygons used the now-unsupported proguard-android.txt default file, replaced with proguard-android-optimize.txt. Standalone tutorial/sample directories not wired into settings.gradle.kts (app-rx, the java/ and duplicate kotlin/ tutorial folders) are untouched since they aren't part of the actual build graph or CI. * build: bump compileSdk/targetSdk to 37 androidx.core:core-ktx 1.19.0 requires compiling against API 37+; CI's checkDebugAarMetadata caught this. Also switches app-utils-ktx off its hardcoded compileSdk/targetSdk = 36 onto the catalog value, matching every other module. * build: pin GitHub Actions to commit SHAs The org's zizmor policy check (triggered whenever workflow files change) requires every `uses:` reference to be pinned to a full commit SHA rather than a floating version tag. Touching these three files for the checkout/setup-python bump made the check actually run for the first time in a while and it flagged all 36 `uses:` lines in them (not just the ones changed), so pins every action reference across build.yml, lint.yml, and generate-v3.yml, each with a version comment. release-please.yml is untouched by this PR and wasn't flagged, so left as-is. * build: add explicit workflow permissions and disable credential persistence zizmor flagged two more findings once these files started being scanned: excessive-permissions (Medium, blocking) because none of the three workflows declared an explicit permissions: block and so ran with the default broad GITHUB_TOKEN scope, and artipacked (Low, informational) because checkout steps left credentials persisted in the git config, which get exposed to anything that later reads the workspace (e.g. artifact uploads). - build.yml: contents: read (checkout + build only, no writes) - lint.yml: contents: read, security-events: write (needed for github/codeql-action/upload-sarif) - generate-v3.yml: contents: read (the actual PR push uses its own SYNCED_GITHUB_TOKEN_REPO secret via peter-evans/create-pull-request, not the default token) - persist-credentials: false added to every actions/checkout step across all three files; none of them do a subsequent git push with the default token, so this is safe. * fix: findViewById<View> instead of View? for applyInsets calls applyInsets(container: View) takes a non-null View, but every kotlin-app activity called it as applyInsets(findViewById<View?>(R.id.map_container)). Kotlin's newer compiler no longer treats an explicit nullable type argument on a platform-typed Java generic method leniently, so this now hard fails to compile instead of silently working. All 24 call sites always assumed a non-null result anyway (no null check), so this just drops the incorrect nullable type argument. * fix: adapt app-utils-ktx snippets to android-maps-utils 5.1.1 API The android-maps-utils bump (3.19.0 -> 5.1.1, part of the dependency update) rewrote the library in Kotlin, which is a source-incompatible change for these snippets: - ClusterItem is now a Kotlin interface with val properties (position, title, snippet, zIndex: Float?), not Java-style getter methods. Clustering.kt and Multilayer.kt's MyItem implementations used `override fun getPosition()` etc., which no longer overrides anything Kotlin recognizes; converted to `override val` properties matching the new interface, constructor-promoted where possible. - KmlLayer/KmlContainer expose getContainers()/getPlacemarks() as plain functions, not Kotlin properties, and KmlContainer's backing fields are now private. Feature.getId() is likewise a function. KML.kt used property-access syntax (layer.containers, feature.id) for all of these; switched to explicit method calls. - GeoJsonLayer's default style accessor is getDefaultPointStyle(), not a defaultPointStyle property; fixed in GeoJSON.kt. - KmlLayer/GeoJsonLayer constructors now take non-null Context/InputStream/JSONObject instead of the old nullable platform types. These snippet files use throwaway `= null` placeholders for doc purposes (never actually run), so added `!!` at each call site to match, consistent with the existing `map!!` pattern already used nearby. Verified each API shape against the actual v5.1.1 source on googlemaps/android-maps-utils (the library moved to a Kotlin rewrite there) rather than guessing. * fix: remaining android-maps-utils 5.1.1 API breaks Two more spots the compiler hadn't reached yet in the previous fix pass: - GeoJsonPointStyle (Kotlin, android-maps-utils 5.1.1) exposes isDraggable()/setDraggable(), getTitle()/setTitle(), getSnippet()/setSnippet() as plain functions, not var properties, so app-utils-ktx/GeoJSON.kt's `pointStyle.isDraggable = true` style assignments don't compile; switched to explicit setter calls. - KmlContainer.getProperty() now returns String? (nullable); KML.kt passed it straight to Log.i's non-null second parameter, added !! (guarded by the existing hasProperty() check just above it). - The JSONObject-argument GeoJsonLayer constructor is now annotated @throws(JSONException::class) in Kotlin, which surfaces in Java as a checked exception. snippets/app-utils (Java)'s addGeoJsonLayerJsonObject() didn't declare it; added `throws JSONException` to match its sibling method's existing pattern. * fix: remember MarkerState in FireMarkers to satisfy lint AGP 9's bundled lint now flags UnrememberedMutableState as an error (previously warning/unreported): MarkerState(...) was created fresh every recomposition, which would also reset marker drag state. Wraps it in remember(markerData.id) so each marker's state survives recomposition and is invalidated by React iOnly when the marker's identity actually changes. * refactor(snippets): use version catalog in documentation snippets and update Places SDK - Update dependencies in snippets (app-compose, app-utils, app-places-ktx) to use the Gradle version catalog (libs.*), resolving UseTomlInstead lint findings flagged by code scanning. - Add documentation comments within region tags showing both the recommended version catalog configuration (TOML block) and the standalone coordinate declaration for non-catalog projects. - Replace deprecated places-ktx dependency with core Places SDK (libs.places), as Kotlin extensions and coroutines are built directly into the Places SDK. - Add mapsUtils to gradle/libs.versions.toml. - Add missing androidTest dependencies (ext.junit, espresso.idling.resource) to ApiDemos:kotlin-app and update LatLngSubject / LatLngBoundsSubject custom Truth subject factories for Kotlin 2.4 / Truth 1.4.5 compatibility. - Add .kotlin/ compiler directory to .gitignore. --------- Co-authored-by: Dale Hawkins <107309+dkhawk@users.noreply.github.com>
…s#2402) Add AI-assisted contribution guidelines to CONTRIBUTING.md outlining expectations for ownership, quality standards (idiomatic Kotlin and Android architectural standards), CLA compliance, authorship rules, and prohibiting unsolicited automated pull requests and mass issues.
… update dependencies - Bump playServicesLocation to 21.4.0 in gradle/libs.versions.toml - Refactor FireMarkers animation state with rememberUpdatedMarkerState - Fix null safety and field initialization in KML.kt and Multilayer.kt - Clean up test runners and string templates in tutorial samples
…t headers - Safely wrap AmbientModeSupport.attach() in try/catch across Kotlin and Java activities to guard against missing wearable shared libraries - Align build.gradle.kts and update 2026 copyright headers
…y and fix SaveStateDemo - Safely apply system window insets in SamplesBaseActivity (Kotlin & Java) to root containers without double-padding child views - Add save_state_demo.xml layout with constraint bindings and wire up SaveStateDemoActivity - Clean up null safety and listener callbacks in OnMapAndViewReadyListener
- Modernize CameraClampingDemoActivity layout with scrollable controls and safe zoom bounds - Clean up null safety and camera animation callbacks in CameraClamping (Kotlin & Java) - Polish VisibleRegionDemoActivity across standard and v3 flavor variants
…ctivities - Modernize EventsDemoActivity with Material text view styles and coordinate formatting - Fix toolbar title and custom location provider handling in LocationSourceDemoActivity - Clean up layout constraints, borderless button styling, and checkbox state in MarkerDemo and LayersDemo
…aders - Clean up StyledMapDemoActivity raw string formatting and resource templates - Add common string array resources in arrays.xml - Update 2026 copyright headers and clean lint warnings across remaining map demo activities
… and bidirectional sync - Add Material 3 My Location Floating Action Button with FusedLocationProviderClient (PRIORITY_HIGH_ACCURACY) - Add instruction banner with dismissible hint - Synchronize camera tracking and Pegman marker heading between Map and Panorama - Center initial camera on Sydney Harbour and add literate programming docstrings
…and Venice focal point - Redesign layout with Material 3 cards, compound drawable placeholder, and captured snapshot preview - Add vector icons ic_camera and ic_clear with 2026 Apache 2.0 license headers - Update initial focal point to Venice (45.4371, 12.3345, zoom 16f) - Support portrait and landscape orientations with optimized layouts
…mera framing - Add custom framed circular badge iconView with Android logo to AdvancedMarkersDemoActivity (Kotlin & Java) - Frame Southeast Asia markers on launch with LatLngBounds and 120px padding - Initialize GroundOverlayDemoActivity with LatLngBounds framing and 0.2f default transparency - Apply LatLngBounds with padding in DataDrivenDatasetStylingActivity to frame dataset layers
…and toolbar menu - Redesign lite list item rows with Material 3 MaterialCardView, rounded corners, and location header - Add vector icons ic_view_list and ic_view_grid with 2026 Apache 2.0 headers - Wire MaterialToolbar to switch dynamically between 1-column linear list and 2-column grid modes
…#2414) * docs: add AGENTS.md guidance for AI coding agents * docs: avoid literal region tag syntax in AGENTS.md * docs: refine AGENTS.md with region tag scope, hygiene rules, and verification commands --------- Co-authored-by: Dale Hawkins <107309+dkhawk@users.noreply.github.com>
…samples#2415) Remove obsolete Maps SDK v3 Beta samples, orphaned workflows, and flavor configurations left over from legacy multi-flavor builds: - Delete uncompiled ApiDemos/project/java-app/src/v3 and kotlin-app/src/v3 directories - Remove unused flavorDimensions from java-app and kotlin-app build scripts - Delete orphaned .github/workflows/generate-v3.yml and ApiDemos/V3_FILE_HEADER - Update ApiDemos/project/README.md to reflect java-app and kotlin-app structure
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Thank you for opening a Pull Request!
Before submitting your PR, there are a few things you can do to make sure it goes smoothly:
Fixes #<issue_number_goes_here> 🦕