Skip to content

Commit

Permalink
feat: 0.2.0-beta (#3)
Browse files Browse the repository at this point in the history
This pull request includes new features and some design changes that affects some methods. Please look at the release notes.

Navigation SDK versions supported:
- Navigation SDK for Android: 5.1.1
- Navigation SDK for iOS: 5.3.1

---------

* chore: beta 2 base initial commit

---------

Co-authored-by: Ville Välimaa <[email protected]>
Co-authored-by: Jukka Alavesa <[email protected]>
Co-authored-by: Joona Petrell <[email protected]>
Co-authored-by: Joonas Kerttula <[email protected]>
Co-authored-by: Timo Pieti <[email protected]>

* tests: Integration tests improvements

* rename tests

---------

Co-authored-by: Mikko Katajaharju <[email protected]>

* feature: marker image registry

Adds support to register custom bitmap images to be used with google maps markers.
---------

Co-authored-by: Vesse Saastamoinen <[email protected]>
Co-authored-by: Joonas Kerttula <[email protected]>

* chore: Hide generated method channel message types from app facing api

* Hide generated method channel message types from app facing api

* Remove deprecated analysis rules

* chore: Align enable setter method naming with the native SDK side

* feature: Add API to query Navigation SDK version

* feature: Add API to query Navigation SDK version

* refactor: Move SDK version number to example app main page

* chore: Flutter analyze fixes

* chore: Drop example tests

---------

Co-authored-by: Joona Petrell <[email protected]>

* feature: Enable abnormal reporting API

* feature: Send Navigation UI enabled change events

Co-authored-by: Joona Petrell <[email protected]>

* chore: fix warnings from Android side

* chore: fix warnings from Android code

* fix null check and formatting

* feature: add listeners for my location

* feature: add listeners for my location and my location button

* rename consume setter and update doc

* shorten snackbar duration, hide previous

* feature: Add route token support to set destinations

Adds route token support to set destinations.
Also update example app to get route token via Routes API for testing purposes.

Co-authored-by: Joonas Kerttula <[email protected]>

* example: Add support to read dart maps api key from dart defines on android

* Add support to read dart maps api key from dart defines on android

* feature: Rename initialNavigationUIEnabled to initialNavigationUIEnabledPreference

* Rename initialNavigationUIEnabled to initialNavigationUIEnabledPreference

- Setting initialNavigationUIEnabled to true only succeeds if the navigation session has been
  initialized, rename to preference enumeration to indicate this
- Added integration tests for the widget initialization options
- Initial camera position now defaults to zoom level 3.0 instead of 0.0 (iOS defaults to 4.0,
  Android to 3.0), which fixes widget initialization example opening in broken view on iOS

* Start Maps API examples in classic map mode

* Make NavigationViewOptions's UI preference default to automatic

* feature: min/max zoom apis

* feature: min/max zoom apis

* fix: correct check for default zoom levels

* fix: remove hard zoom limits

* fix: set stored zoom values from initial map options

* fix: change min zoom constant to 2

* fix: flutter analyze issues

* fix: add reset button, change functions and variables to private

* changing tests again and again

* move zoom controls to camera page

* move zoom constants from public api to example app

* rename exception, add string description, remove zoom limits

* fix analyze

* feature: add camera changed listener

* feature: add camera changed listener

* some camera update ui changes

* update docs

* tests: Add simulator, routingOptions, simulationOptions and displayOptions integration tests

* integration tests for routing options, clear destinations and get current time and distance

* integration tests for displayOptions and guidanceRunning check to routingOptions test

* adding pause and resume simulation tests

* removing unnecessary enableMyLocation settings

* refactor navigation set up so it can be done with shared function

* improved comment clarity

* move displayOption tests to already existing tests

* declare start location coordinates before the tests

* shorten the distance to destination on some runs

* test naming update

* tests: Add test for initialMin/MaxZoomPreference

* Add test for initialMin/MaxZoomPreference

* add numbering to test cases to run them in correct order

---------

Co-authored-by: vessaas <[email protected]>

* fix: fix roadsnapping listeners stopping listening after re-initialization.

* tests: Use real implementation of navigation plugins instead of mocked version

* Use real implementation of navigation plugins instead of mocked version

* chore: Simplify session event API

* Remove unused NavigationSessionEvent and rename setDestinations params

* Simplify navigation session api

* Remove legacy conversion tests

* feature: add camera follow location listener

* tests: Clean up old patrol helper script and update instructions.

* chore: rename incidentCards to trafficIncidentCards

* chore: Mention traffic incidents API rename in the change log

* feature: add gps availability listener

* feature: add gps availability listener

* fix typos, show event counter on android only

* add gps availability event to the listener, update doc

* docs: Document followMyLocation() API in more detail

* feature: Throw exception if cleanup() is called before initialization on iOS

* docs: update dart docs

Co-authored-by: Joonas Kerttula <[email protected]>

* tests: Add camera event integration tests

* refactor camera test with function that waits for camera movement to finish

* increased simulation speed and animation wait function retries to make tests more reliable

* add camera event tests

* add followMyLocation event tests

* add startedFollowingMyLocation position test

* make camera event tests more reliable

* cameraUpdate, moveCamera and animateCamera tests

* remove setting default tilt, since the core issue is now fixed

* chore: format and script fixes

* docs: update changelog and contributing documentation

* chore: clean up todos

* docs: Update changelog to include new features

* docs: Improve documentation quality

* chore: Update pubspec
- Include proper version and repository information

* docs: Added few API omissions in the changelog

* docs: fix dart define usage instructions

* tests: Stabilize camera integration tests and standardize location simulation

* fix camera test flakiness, remove unnecessary zoom tests and refactor followMyLocation checks and some sometimes failing test with the animation wait function

---------

Co-authored-by: Joonas Kerttula <[email protected]>

* chore: Remove unnecessary throw (#5)

---------

Co-authored-by: Timo Pieti <[email protected]>
Co-authored-by: Ville Välimaa <[email protected]>
Co-authored-by: Jukka Alavesa <[email protected]>
Co-authored-by: Joona Petrell <[email protected]>
Co-authored-by: Vesse Saastamoinen <[email protected]>
Co-authored-by: Mikko Katajaharju <[email protected]>
Co-authored-by: Vesse Saastamoinen <[email protected]>
  • Loading branch information
8 people authored Jan 29, 2024
1 parent 6d9eea5 commit 4594310
Show file tree
Hide file tree
Showing 136 changed files with 12,001 additions and 7,678 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,11 @@
.idea/

# vscode related
.vscode
.vscode/*
!.vscode/tasks.json
!.vscode/settings.json
devtools_options.yaml

# Flutter/Dart/Pub related
# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock.
Expand Down
33 changes: 33 additions & 0 deletions .metadata
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled and should not be manually edited.

version:
revision: "efbf63d9c66b9f6ec30e9ad4611189aa80003d31"
channel: "stable"

project_type: plugin

# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: efbf63d9c66b9f6ec30e9ad4611189aa80003d31
base_revision: efbf63d9c66b9f6ec30e9ad4611189aa80003d31
- platform: android
create_revision: efbf63d9c66b9f6ec30e9ad4611189aa80003d31
base_revision: efbf63d9c66b9f6ec30e9ad4611189aa80003d31
- platform: ios
create_revision: efbf63d9c66b9f6ec30e9ad4611189aa80003d31
base_revision: efbf63d9c66b9f6ec30e9ad4611189aa80003d31

# User provided section

# List of Local paths (relative to this file) that should be
# ignored by the migrate tool.
#
# Files that are not part of the templates will be ignored by default.
unmanaged_files:
- 'lib/main.dart'
- 'ios/Runner.xcodeproj/project.pbxproj'
14 changes: 14 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Below is a list of people and organizations that have contributed
# to the Flutter project. Names should be added to the list like so:
#
# Name/Organization <email address>

Google Inc.
Codemate Ltd.
Joonas Kerttula <[email protected]>
Joona Petrell <[email protected]>
Jukka Alavesa <[email protected]>
Ville Välimaa <[email protected]>
Vesse Saastamoinen <[email protected]>
Mikko Katajaharju <[email protected]>
Timo Pieti <[email protected]>
57 changes: 55 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,59 @@
## 0.1.0-pre1
## 0.2.0-beta

This is the first pre-release of the Google Maps Navigation package for Flutter. It is an early look at the package and is intended for testing and feedback collection. The functionalities and APIs in this version are subject to change.
This is the beta release of the Google Maps Navigation package for Flutter. It is an early look at the package and is intended for testing and feedback collection. The functionalities and APIs in this version are subject to change.

**Key Features:**
- `setDestinations` now supports a `RouteTokenOptions` parameter.
- Added support for custom marker icons:
- `registerBitmapImage` to register `ImageDescriptor`.
- `unregisterImage` to unregister `ImageDescriptor`.
- Registered `ImageDescriptor` can be used as icon for `MarkerOptions`.
- Added following event listeners:
- `onNavigationUIEnabledChanged`
- `onMyLocationClicked`
- `onMyLocationButtonClicked`
- `onCameraMoveStarted`
- `onCameraMove`
- `onCameraIdle`
- `onCameraStartedFollowingLocation`
- `onCameraStoppedFollowingLocation`
- Added `setConsumeMyLocationButtonClickEventsEnabled` method to control if the default my location button click event should be consumed by the plugin or not.
- Added the following methods to control zoom level preferences of the map: `setMinZoomPreference`, `setMaxZoomPreference`,
`getMinZoomPreference`, `getMaxZoomPreference` and `resetMinMaxZoomPreference`.
- Added `GoogleMapsNavigator.getNavSDKVersion()` method to fetch the Navigation SDK version
- `GoogleMapsNavigator.initializeNavigationSession()` now accepts optional parameter `abnormalTerminationReportingEnabled` to enable/disable reporting abnormal SDK terminations such as app crashes
- Improved error handling and reporting.

**BREAKING CHANGES:**
- **GoogleNavigationViewController** Following gesture and UI option setters have been renamed:
- `enableNavigationUI({required bool})` to `setNavigationUIEnabled(bool)`
- `enableNavigationHeader({required bool})` to `setNavigationHeaderEnabled(bool)`
- `enableNavigationFooter({required bool})` to `setNavigationFooterEnabled(bool)`
- `enableNavigationTripProgressBar({required bool})` to `setNavigationTripProgressBarEnabled(bool)`
- `enableSpeedLimitIcon({required bool})` to `setSpeedLimitIconEnabled(bool)`
- `enableSpeedometer({required bool})` to `setSpeedometerEnabled(bool)`
- `enableMyLocation({required bool})` to `setMyLocationEnabled(bool)`
- `enableMyLocationButton({required bool})` to `setMyLocationButtonEnabled(bool)`
- `enableRecenterButton({required bool})` to `setRecenterButtonEnabled(bool)`
- `enableZoomGestures({required bool}) setZoomGesturesEnabled(bool)`
- `enableZoomControls({required bool})` to `setZoomControlsEnabled(bool)`
- `enableCompass({required bool})` to `setCompassEnabled(bool)`
- `enableRotateGestures({required bool})` to `setRotateGesturesEnabled(bool)`
- `enableScrollGestures({required bool})` to `setScrollGesturesEnabled(bool)`
- `enableScrollGesturesDuringRotateOrZoom({required bool})` to `setScrollGesturesDuringRotateOrZoomEnabled(bool)`
- `enableTiltGestures({required bool})` to `setTiltGesturesEnabled(bool)`
- `enableTraffic({required bool})` to `setTrafficEnabled(bool)`
- `enableMapToolbar({required bool})` to `setMapToolbarEnabled(bool)`
- `enableIncidentCards({required bool})` to `setTrafficIncidentCardsEnabled(bool)`
- `isIncidentCardsEnabled()` to `isTrafficIncidentCardsEnabled`

- **GoogleMapsNavigationView:**
- `initialNavigationUiEnabled` boolean has been renamed to `initialNavigationUIEnabledPreference` enumeration
- Initial camera position defaults to zoom level 3.0 instead of 0.0

## 0.1.0-beta

This is the beta release of the Google Maps Navigation package for Flutter. It is an early look at the package and is intended for testing and feedback collection. The functionalities and APIs in this version are subject to change.

**Key Features:**
- Integration of Google Maps Navigation with Flutter.
Expand Down
Loading

0 comments on commit 4594310

Please sign in to comment.