DashboardController class
Controller for managing the dashboard widget's state and functionality during navigation.
This controller handles:
- Real-time navigation updates (distance, duration)
- Sound settings management
- Route visualization
- Navigation state formatting
The controller requires both navigationManager and map instances to function properly.
Usage with NavigationLayoutWidget: This controller is created automatically by the widget and provided through the builder function in NavigationLayoutWidget's constructor:
NavigationLayoutWidget(
dashboardWidgetBuilder: (controller, callback) => DashboardWidget(
controller: controller,
onHeaderChangeSize: callback,
onFinishClicked: () => navigationManager.stop(),
),
),
This architecture allows the controller to be used by custom widgets derived from DashboardWidget.
Example of controller usage:
// Access current state
print(controller.distance);
print(controller.duration);
// Format values
final formattedDistance = controller.formatDistance(localizations);
final formattedDuration = controller.formatDuration(localizations);
// Control navigation
controller.toggleSounds();
controller.showRoute();
controller.stopNavigation();
Remember to dispose of the controller when it's no longer needed:
controller.dispose();
Controller also exposes sdk.Map and sdk.NavigationManager to widget so they can be used for some non-standart logic inside widget.
Constructors
- DashboardController({required Map map})
Properties
- distance → int
-
The current distance remaining in meters.
no setter
- duration → int
-
The current duration remaining in seconds.
no setter
- estimatedArrivalTime → DateTime
-
The estimated time of arrival based on current duration.
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- isRouteViewMode → bool
-
Whether the dashboard is in route view mode (collapsed state).
no setter
- map → Map
-
final
-
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- soundsEnabled → bool
-
Whether navigation voice instructions are enabled.
no setter
-
state
→ ValueNotifier<
DashboardModel> -
The current state of the dashboard as a ValueNotifier.
Contains distance, duration, and sound settings.
no setter
Methods
-
dispose(
) → void -
formatArrivalTime(
DateFormat formatter) → String - Formats the estimatedArrivalTime using the provided date formatter.
-
formatDistance(
DgisLocalizations localizations) → FormattedMeasure -
Formats the current distance according to the provided localizations.
Returns a
FormattedMeasurecontaining the value and unit. -
formatDuration(
DgisLocalizations localizations) → FormattedMeasure -
Formats the current duration according to the provided localizations.
Returns a
FormattedMeasurecontaining the value and unit. -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
- Returns from route view mode to normal navigation view. Restores the camera to follow the current position and exits route view mode.
-
setOverlayCallback(
dynamic callback()?) → void - Sets the callback to close overlay from widget. This allows the controller to manage overlay state when switching modes.
-
showRoute(
) → Future< void> - Shows the remaining route on the map and switches to route view mode. Calculates and moves the camera to fit the remaining route geometry. Also collapses the dashboard to show only the accept button.
- Stops the current navigation session.
-
toggleSounds(
) → void - Toggles the sound state for navigation instructions. Updates the soundsEnabled state and state accordingly.
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited