Skip to content

feat: migrate android-maps-ktx into android-maps-utils (v6.0.0-rc03) - #1716

Draft
dkhawk wants to merge 7 commits into
mainfrom
feat/migrate-ktx-to-utils
Draft

feat: migrate android-maps-ktx into android-maps-utils (v6.0.0-rc03)#1716
dkhawk wants to merge 7 commits into
mainfrom
feat/migrate-ktx-to-utils

Conversation

@dkhawk

@dkhawk dkhawk commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Summary

Consolidates all Kotlin reactive Coroutine/Flow/Builder extensions (maps-ktx and maps-utils-ktx from android-maps-ktx) directly into android-maps-utils, establishing a single canonical source of truth (v6.0.0-rc03). Fully rebased on latest main (ca970251).

Key Changes

  1. Canonical Implementation Relocation (com.google.maps.android.*)
    • Migrated all 32 source KTX files into android-maps-utils modules (:library, :clustering, :data, :heatmaps).
    • Extensions (awaitMap(), mapClickEvents(), addMarker { ... }) now reside directly inside canonical non-ktx packages (com.google.maps.android, com.google.maps.android.model, com.google.maps.android.collections, com.google.maps.android.clustering, com.google.maps.android.data.geojson, com.google.maps.android.data.kml, com.google.maps.android.heatmaps).
  2. Backward-Compatibility Bridge Layer (com.google.maps.android.ktx.*)
    • Preserved full legacy com.google.maps.android.ktx.* package structure via @Deprecated(level = DeprecationLevel.WARNING, replaceWith = ReplaceWith(...)) forwarding wrappers and typealiases.
    • Ensures zero breaking changes for existing codebases while guiding developers toward canonical replacements.
  3. Comprehensive Test Suite & Verification
    • Migrated all KTX unit test suites with both Canonical Tests and Shim Tests to verify side-by-side execution (all 261 test tasks passed).
    • Resolved unit test runner and Robolectric download lock isolation issues in containerized environments.
  4. Rebased on latest main
  5. Demo App & Documentation
    • Integrated KtxExtensionsDemoActivity into :demo illustrating both canonical and bridge builder usage without duplicate class issues.
    • Updated README.md, CHANGELOG.md, MIGRATION.md, and Gemini skill prompts with 6.0.0-rc03 notes.

Base automatically changed from feat/rewrite-android-maps-utils to main July 15, 2026 16:38
dkhawk added a commit that referenced this pull request Aug 5, 2026
…1716)

- Consolidate Kotlin Extensions (KTX into Utils): Move all reactive Coroutine/Flow extensions (awaitMap, mapClickEvents, cameraMoveEvents) and option builder DSLs (addMarker, addPolyline, addPolygon) from android-maps-ktx directly into android-maps-utils.

- Canonical Non-KTX Packages: Place all reactive Coroutine/Flow extensions and DSL builders in canonical com.google.maps.android.* packages.

- Deprecated Compatibility Layer: Preserve the legacy com.google.maps.android.ktx.* package structure with @deprecated(level = DeprecationLevel.WARNING, replaceWith = ReplaceWith(...)) forwarding wrappers and typealiases so existing imports compile seamlessly with deprecation warnings.

- Multi-Module Integration: Integrate KTX extensions across :library, :clustering, :heatmaps, and :data modules.

- Demo & Test Consolidation: Include KtxExtensionsDemoActivity in :demo and integrate all 18 KTX unit test suites with both canonical and shim test coverage.
@dkhawk
dkhawk force-pushed the feat/migrate-ktx-to-utils branch from d5b5d7a to f4a5753 Compare August 5, 2026 17:27
dkhawk added a commit that referenced this pull request Aug 5, 2026
…1716)

- Consolidate Kotlin Extensions (KTX into Utils): Move all reactive Coroutine/Flow extensions (awaitMap, mapClickEvents, cameraMoveEvents) and option builder DSLs (addMarker, addPolyline, addPolygon) from android-maps-ktx directly into android-maps-utils.

- Canonical Non-KTX Packages: Place all reactive Coroutine/Flow extensions and DSL builders in canonical com.google.maps.android.* packages.

- Deprecated Compatibility Layer: Preserve the legacy com.google.maps.android.ktx.* package structure with @deprecated(level = DeprecationLevel.WARNING, replaceWith = ReplaceWith(...)) forwarding wrappers and typealiases so existing imports compile seamlessly with deprecation warnings.

- Multi-Module Integration: Integrate KTX extensions across :library, :clustering, :heatmaps, and :data modules.

- Demo & Test Consolidation: Include KtxExtensionsDemoActivity in :demo and integrate all 18 KTX unit test suites with both canonical and shim test coverage.
@dkhawk
dkhawk force-pushed the feat/migrate-ktx-to-utils branch from f4a5753 to 407fded Compare August 5, 2026 17:48
Comment thread demo/src/main/res/values/strings.xml Fixed
@googlemaps-bot

googlemaps-bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Code Coverage

Overall Project 49.79% -5.96% 🍏
Files changed 46.01%

Module Coverage
heatmaps 78.03% -6.24%
library 66.47% -23.94%
data 48.57% -1.52%
clustering 32.4% -0.63% 🍏
Files
Module File Coverage
heatmaps Heatmap.kt 0% -86.79%
library MarkerManager.kt 77.61% -8.26% 🍏
GroundOverlayManager.kt 72.86% -11.56% 🍏
PolylineManager.kt 72.86% -11.56% 🍏
CircleManager.kt 72.86% -11.56% 🍏
PolygonManager.kt 72.86% -11.56% 🍏
FusedLocationProvider.kt 68.82% -31.18% 🍏
LocationManager.kt 68.66% -28.17% 🍏
StreetViewPanoramaView.kt 63.39% -34.7% 🍏
GoogleMap.kt 57.99% -37.29%
PolylineOptions.kt 0% -66.67%
CircleOptions.kt 0% -66.67%
PolygonOptions.kt 0% -66.67%
GroundOverlayOptions.kt 0% -66.67%
TileOverlayOptions.kt 0% -66.67%
MarkerOptions.kt 0% -66.67%
StreetViewPanoramaCamera.kt 0% -73.68%
StreetViewPanoramaOrientation.kt 0% -73.68%
CameraPosition.kt 0% -73.68%
StreetViewPanoramaFragment.kt 0% -92.22%
Polyline.kt 0% -76.36%
MapView.kt 0% -92.22%
SupportMapFragment.kt 0% -82.93%
SupportStreetViewPanoramaFragment.kt 0% -92.22%
Polygon.kt 0% -69.41%
LatLng.kt 0% -50.72%
MapsInitializer.kt 0% -96.57%
MapFragment.kt 0% -82.93%
data Kml.kt 0% -80.8%
GeoJson.kt 0% -85.96%
clustering ClusterManagerFlows.kt 83.74% -16.26% 🍏
PointExtensions.kt 0% -37.5%

dkhawk added a commit that referenced this pull request Aug 5, 2026
…1716)

- Consolidate Kotlin Extensions (KTX into Utils): Move all reactive Coroutine/Flow extensions (awaitMap, mapClickEvents, cameraMoveEvents) and option builder DSLs (addMarker, addPolyline, addPolygon) from android-maps-ktx directly into android-maps-utils.

- Canonical Non-KTX Packages: Place all reactive Coroutine/Flow extensions and DSL builders in canonical com.google.maps.android.* packages.

- Deprecated Compatibility Layer: Preserve the legacy com.google.maps.android.ktx.* package structure with @deprecated(level = DeprecationLevel.WARNING, replaceWith = ReplaceWith(...)) forwarding wrappers and typealiases so existing imports compile seamlessly with deprecation warnings.

- Multi-Module Integration: Integrate KTX extensions across :library, :clustering, :heatmaps, and :data modules.

- Demo & Test Consolidation: Include KtxExtensionsDemoActivity in :demo and integrate all 18 KTX unit test suites with both canonical and shim test coverage.
@dkhawk
dkhawk force-pushed the feat/migrate-ktx-to-utils branch from 407fded to 96b0801 Compare August 5, 2026 19:48
dkhawk added a commit that referenced this pull request Aug 5, 2026
…1716)

- Consolidate Kotlin Extensions (KTX into Utils): Move all reactive Coroutine/Flow extensions (awaitMap, mapClickEvents, cameraMoveEvents) and option builder DSLs (addMarker, addPolyline, addPolygon) from android-maps-ktx directly into android-maps-utils.

- Canonical Non-KTX Packages: Place all reactive Coroutine/Flow extensions and DSL builders in canonical com.google.maps.android.* packages.

- Deprecated Compatibility Layer: Preserve the legacy com.google.maps.android.ktx.* package structure with @deprecated(level = DeprecationLevel.WARNING, replaceWith = ReplaceWith(...)) forwarding wrappers and typealiases so existing imports compile seamlessly with deprecation warnings.

- Multi-Module Integration: Integrate KTX extensions across :library, :clustering, :heatmaps, and :data modules.

- Demo & Test Consolidation: Include KtxExtensionsDemoActivity in :demo and integrate all 18 KTX unit test suites with both canonical and shim test coverage.
@dkhawk
dkhawk force-pushed the feat/migrate-ktx-to-utils branch from 96b0801 to ff8f979 Compare August 5, 2026 19:56
dkhawk added a commit that referenced this pull request Aug 7, 2026
…1716)

- Consolidate Kotlin Extensions (KTX into Utils): Move all reactive Coroutine/Flow extensions (awaitMap, mapClickEvents, cameraMoveEvents) and option builder DSLs (addMarker, addPolyline, addPolygon) from android-maps-ktx directly into android-maps-utils.

- Canonical Non-KTX Packages: Place all reactive Coroutine/Flow extensions and DSL builders in canonical com.google.maps.android.* packages.

- Deprecated Compatibility Layer: Preserve the legacy com.google.maps.android.ktx.* package structure with @deprecated(level = DeprecationLevel.WARNING, replaceWith = ReplaceWith(...)) forwarding wrappers and typealiases so existing imports compile seamlessly with deprecation warnings.

- Multi-Module Integration: Integrate KTX extensions across :library, :clustering, :heatmaps, and :data modules.

- Demo & Test Consolidation: Include KtxExtensionsDemoActivity in :demo and integrate all 18 KTX unit test suites with both canonical and shim test coverage.
@dkhawk
dkhawk force-pushed the feat/migrate-ktx-to-utils branch 3 times, most recently from d00d357 to f1a4793 Compare August 10, 2026 17:42
dkhawk added a commit that referenced this pull request Aug 20, 2026
…1716)

- Consolidate Kotlin Extensions (KTX into Utils): Move all reactive Coroutine/Flow extensions (awaitMap, mapClickEvents, cameraMoveEvents) and option builder DSLs (addMarker, addPolyline, addPolygon) from android-maps-ktx directly into android-maps-utils.

- Canonical Non-KTX Packages: Place all reactive Coroutine/Flow extensions and DSL builders in canonical com.google.maps.android.* packages.

- Deprecated Compatibility Layer: Preserve the legacy com.google.maps.android.ktx.* package structure with @deprecated(level = DeprecationLevel.WARNING, replaceWith = ReplaceWith(...)) forwarding wrappers and typealiases so existing imports compile seamlessly with deprecation warnings.

- Multi-Module Integration: Integrate KTX extensions across :library, :clustering, :heatmaps, and :data modules.

- Demo & Test Consolidation: Include KtxExtensionsDemoActivity in :demo and integrate all 18 KTX unit test suites with both canonical and shim test coverage.
@dkhawk
dkhawk force-pushed the feat/migrate-ktx-to-utils branch 2 times, most recently from 5cdce08 to 3ce966a Compare August 21, 2026 22:15
dkhawk added 7 commits August 31, 2026 13:54
…1716)

- Consolidate Kotlin Extensions (KTX into Utils): Move all reactive Coroutine/Flow extensions (awaitMap, mapClickEvents, cameraMoveEvents) and option builder DSLs (addMarker, addPolyline, addPolygon) from android-maps-ktx directly into android-maps-utils.

- Canonical Non-KTX Packages: Place all reactive Coroutine/Flow extensions and DSL builders in canonical com.google.maps.android.* packages.

- Deprecated Compatibility Layer: Preserve the legacy com.google.maps.android.ktx.* package structure with @deprecated(level = DeprecationLevel.WARNING, replaceWith = ReplaceWith(...)) forwarding wrappers and typealiases so existing imports compile seamlessly with deprecation warnings.

- Multi-Module Integration: Integrate KTX extensions across :library, :clustering, :heatmaps, and :data modules.

- Demo & Test Consolidation: Include KtxExtensionsDemoActivity in :demo and integrate all 18 KTX unit test suites with both canonical and shim test coverage.
…aps-ktx

- Add canonical Context.awaitMapsSdkInitialized(preferredRenderer) suspending extension in com.google.maps.android.
- Add deprecated backward-compatibility shim in com.google.maps.android.ktx.
- Add canonical and shim unit test suites for MapsInitializer coroutine extensions.
- Showcase awaitMapsSdkInitialized in KtxExtensionsDemoActivity and register demo in MainActivity.
- Update README.md documentation with awaitMapsSdkInitialized usage example.
@dkhawk
dkhawk force-pushed the feat/migrate-ktx-to-utils branch from 3ce966a to 5f6c90f Compare August 31, 2026 23:45
@dkhawk dkhawk changed the title feat: migrate android-maps-ktx into android-maps-utils (v6.0.0-rc01) feat: migrate android-maps-ktx into android-maps-utils (v6.0.0-rc03) Aug 31, 2026
@dkhawk
dkhawk requested a review from LoyalAbbas August 31, 2026 23:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants