Enrique López Mañas 0595432ad3
chore: unified Java/Kotlin project (#2026)
* chore: unified Kotlin and Java modules

* chore: unified resources

* chore: removed Kotlin

* chore: headers

* chore: headers

* chore: headers

* chore: headers

* chore: added insets

* chore: headers

* chore: renamed

* fix: Refactor map creation, centralize Map ID, add Kotlin boundary controls

This commit refactors how map fragments and Map IDs are handled across the Java and Kotlin demo applications, and introduces feature parity for boundary layer controls in the Kotlin demo.

Key changes include:

- **Programmatic Map Fragment Creation:**
    - Replaced static `<fragment>` map declarations with `<FrameLayout>` containers (`map_fragment_container`) in `data_driven_boundaries_demo.xml` and `data_driven_styling_demo.xml` layouts.
    - Modified `DataDrivenBoundariesActivity` and `DataDrivenDatasetStylingActivity` (Java & Kotlin) to instantiate `SupportMapFragment` programmatically using `SupportMapFragment.newInstance(mapOptions)`.
    - Map options (`GoogleMapOptions`) are now created with the dynamically retrieved Map ID before fragment creation.
      - this allows moving the Map ID out of the xml files

- **Centralized Map ID and Configuration Logic:**
    - Introduced `ApiDemoApplication` in both Java (`java-app`) and Kotlin (`kotlin-app`) modules.
    - This class centralizes Map ID retrieval, checking `BuildConfig.MAP_ID` first, then the `R.string.map_id` resource, providing a consistent source.
    - The Kotlin `ApiDemoApplication` also includes API Key validation on application startup.

- **Kotlin DataDrivenBoundaries Feature Enhancement:**
    - Added boundary layer selection controls (popup menu via `button_feature_type`) to the Kotlin `DataDrivenBoundariesActivity`, achieving parity with the Java version's functionality.
    - Implemented state management for toggling Locality, Administrative Area Level 1, and Country layers.
    - Added dynamic styling logic to apply/remove styles based on layer visibility.
    - Updated feature click handling for country selection, respecting layer activation state.

- **Miscellaneous Improvements:**
    - Added distinct demo titles (`demo_title_java`, `demo_title_kotlin`) in `strings.xml` for better app identification.
    - Updated resource references within Java/Kotlin activities for cleaner imports (e.g., `R.id...` instead of fully qualified names).

* chore: address various lint issues

* fix: explicitly bind checkboxes in the UI

---------

Co-authored-by: dkhawk <107309+dkhawk@users.noreply.github.com>
2025-04-14 14:08:08 -06:00
..

Google Maps Android API Demos

These are demos for the Maps SDK for Android and Maps SDK for Android V3 BETA libraries in the Java programming language.

They demonstrate most of the features available in the API.

The Maps SDK for Android samples can be found under the main gradle product flavor, while the Maps SDK V3 BETA samples can be found under the v3 gradle product flavor. The active product flavor can be modified through Android Studios “Build Variants” toolbar options.

Pre-requisites

  • Android API level 21+
  • Latest Android Build Tools
  • Google Repository
  • Google Play Services

Getting Started

This sample use the Gradle build system.

First download the samples by cloning this repository or downloading an archived snapshot. (See the options at the top of the page.)

In Android Studio, use "Open an existing Android Studio project". Next select the ApiDemos/java/ directory that you downloaded from this repository. If prompted for a gradle configuration accept the default settings.

Alternatively use the gradlew build command to build the project directly.

This demo app requires that you add your own Google Maps API key. See Get an API key for more instructions.

Support

If you have discovered an issue with the Google Maps Android API v2, please see the resources here: https://developers.google.com/maps/documentation/android-api/support

If you've found an error in these samples, please file an issue: https://github.com/googlemaps/android-samples/issues

Patches are encouraged, and may be submitted according to the instructions in CONTRIBUTING.md.

Analytics

License

Please refer to the LICENSE at the root of this repo.