BetterRoutePromptController class

Controller for managing better route suggestions during navigation.

This controller handles:

  • Better route detection and prompts
  • Route comparison (time differences)
  • User responses to route suggestions
  • Timeout management for route prompts

The controller provides real-time route alternatives through BetterRoutePromptModel and manages user interactions with better route suggestions.

Usage example:

final controller = BetterRoutePromptController(
  navigationManager: navigationManagerInstance,
  onBetterRoutePrompted: (info) {
    print('New route suggested: ${info.timeWinning} minutes faster');
  },
  onBetterRouteAccepted: (info) {
    print('Better route accepted');
  },
  onBetterRouteRejected: () {
    print('Better route rejected by user');
  },
  onBetterRouteTimedOut: () {
    print('Better route prompt timed out');
  },
);

// Listen to better route suggestions
controller.state.addListener(() {
  final model = controller.state.value;
  print('Time difference: ${model.timeWinning} minutes');
  print('Route type: ${model.type}');
});

// Handle user decisions
controller.acceptBetterRoute();  // Accept suggested route
controller.rejectBetterRoute(); // Reject suggested route

The controller maintains a subscription to better route suggestions and provides methods to handle user responses to these suggestions.

Remember to dispose of the controller when it's no longer needed:

controller.dispose();

Constructors

BetterRoutePromptController.new({required NavigationManager navigationManager, required void onBetterRoutePrompted(BetterRouteInfo), required void onBetterRouteRejected(), required void onBetterRouteTimedOut(), required void onBetterRouteAccepted(BetterRouteInfo)})

Properties

hashCode int
The hash code for this object.
no setterinherited
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
state ValueNotifier<BetterRoutePromptModel>
The current state of better route suggestions as a ValueNotifier. Contains information about time differences and route types.
no setter

Methods

acceptBetterRoute() → void
Accepts the currently suggested better route.
dispose() → void
Cleans up resources by canceling the better route subscription. Should be called when the controller is no longer needed.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
rejectBetterRoute() → void
Rejects the currently suggested better route.
timeoutBetterRoutePrompt() → void
Handles timeout of the better route prompt.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited