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

22 lines
751 B
Prolog

# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile