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
2021-01-25 16:03:39 -08:00
2025-01-14 09:49:02 -07:00
2025-01-14 10:29:10 -07:00

Build

Contributors License StackOverflow Discord

Google Maps SDK for Android Samples

Description

Samples demonstrating how to use Maps SDK for Android.

Samples in this repo (if more than one)

This repo contains the following samples:

  1. ApiDemos: A collection of small demos showing most features of the Maps SDK for Android.
  2. WearOS: Displays a map on a Wear OS device. This sample demonstrates the basic setup required for a gradle-based Android Studio project.
  3. Tutorials: Samples associated with tutorials in the developer's guide. See each sample for a link to the associated guide.
  4. Snippets: Snippets for code found in https://developers.google.com/maps/documentation/android-sdk

Requirements

To run the samples, you will need:

  • To sign up with Google Maps Platform
  • A Google Maps Platform project with the Maps SDK for Android enabled
  • An API key associated with the project above ... follow the API key instructions if you're new to the process
  • See each sample for pre-requisites.
  • All require up-to-date versions of the Android build tools and the Android support repository.

Running the sample(s)

  1. Download the samples by cloning this repository
  2. In the welcome screen of Android Studio, select "Open an Existing project"
  3. Select one of the sample directories from this repository

Alternatively, use the gradlew build command to build the project directly or download an APK under releases.

Contributing

Contributions are welcome and encouraged! If you'd like to contribute, send us a pull request and refer to our code of conduct and contributing guide.

Terms of Service

This sample uses Google Maps Platform services. Use of Google Maps Platform services through this sample is subject to the Google Maps Platform Terms of Service.

This sample is not a Google Maps Platform Core Service. Therefore, the Google Maps Platform Terms of Service (e.g. Technical Support Services, Service Level Agreements, and Deprecation Policy) do not apply to the code in this sample.

Support

This sample is offered via an open source license. It is not governed by the Google Maps Platform Support Technical Support Services Guidelines, the SLA, or the Deprecation Policy. However, any Google Maps Platform services used by the sample remain subject to the Google Maps Platform Terms of Service.

If you find a bug, or have a feature request, please file an issue on GitHub. If you would like to get answers to technical questions from other Google Maps Platform developers, ask through one of our developer community channels. If you'd like to contribute, please check the contributing guide.

You can also discuss this sample on our Discord server.

Description
Samples demonstrating how to use Maps SDK for Android
Readme Apache-2.0 38 MiB
Languages
Java 51%
Kotlin 48.9%