mirror of
https://github.com/googlemaps/android-samples.git
synced 2025-12-08 18:02:20 +00:00
* 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>