* feat: Adds a new sample demonstrating how to use Google Maps with Firebase Realtime Database on Android.
* feat(viewmodel): Add tests and error handling for controller logic
This commit introduces unit tests for the `MarkersViewModel` and enhances the app's robustness by adding error handling and improving documentation.
- **ViewModel Unit Tests:** Adds unit tests for `MarkersViewModel` using Mockito, Turbine, and Robolectric. The tests verify the controller/agent logic, ensuring that state is correctly managed based on the `controllerId` from Firebase. It also tests the new error reporting mechanism.
- **Error Handling:** Implements a `SharedFlow` in the `MarkersViewModel` to propagate database errors to the UI. The `MainActivity` now observes this flow and displays errors to the user in a `Snackbar`.
- **Architecture Documentation:** Replaces the static SVG architecture diagram with a more detailed Mermaid diagram in `ARCHITECTURE.md`. The new documentation explains the controller/agent synchronization pattern used for animations.
- **Dependency Updates:** Upgrades Gradle to version 9.1.0 and adds `mockito-kotlin` and `turbine` as test dependencies. The `libs.versions.toml` file is reorganized for better clarity.
* chore: Configure Gradle JVM args and expose ViewModel property
This commit includes two maintenance changes: enabling custom JVM arguments for the Gradle daemon and updating the visibility of a property in the `MarkersViewModel`.
* chore: Annotate the version catalog and build.gradle.kts file
- **Gradle Build Documentation:** Introduces extensive documentation and organization to the `libs.versions.toml` and `app/build.gradle.kts` files. Dependencies, plugins, and versions are now grouped logically with comments explaining their purpose, improving maintainability and clarity.
- **README Update:** The main `README.md` is updated to include a description of the new `FireMarkers` sample.
- **Manifest Cleanup:** Removes the redundant `android:label` from the `MainActivity` in the manifest.
* chore: adds copyright to the new source files
* chore: headers
---------
Co-authored-by: Enrique López Mañas <eenriquelopez@gmail.com>
* feat: Using local.properties to provide API key instead of secure.properties.
* Remove redundant declaration in main AndroidManifest.xml
* Migrate ApiDemos - Kotlin to use local.properties.
* Update README for tutorials.
* Genericize.
* Remove references to secure.properties.
* s/master/main
* Update ApiDemos/java to latest Maps SDK for Android
* Update ApiDemos/kotlin to latest Maps SDK for Android
* Update tutorials/CurrentPlaceDetailsOnMap to new Places SDK for Android
* Update tutorials/MapWithMarker to latest Maps SDK for Android
* Update tutorials/Polygons to latest Maps SDK for Android
* Update tutorials/StyledMap to latest Maps SDK for Android
* Update README with better instructions for API key