TestNavigationManager
public class TestNavigationManager extends NavigationManager
| java.lang.Object | ||
| ↳ | androidx.car.app.navigation.NavigationManager | |
| ↳ | androidx.car.app.testing.navigation.TestNavigationManager |
The NavigationManager that is used for testing.
This class will track the following usages of the NavigationManager throughout your test:
- All the
Trips sent viaupdateTrip. - All the
NavigationManagerCallbacks set via setNavigationManagerCallback. - Count of times that the navigation was started via
navigationStarted. - Count of times that the navigation was ended via
navigationEnded.
Summary
Public constructors |
|---|
TestNavigationManager( |
Public methods |
|
|---|---|
void |
Clears the callback for receiving navigation manager events. |
int |
Returns the number of times that navigation was ended via |
@Nullable NavigationManagerCallback |
Returns the callback set via setNavigationManagerCallback. |
int |
Returns the number of times that navigation was started via |
@NonNull List<Trip> |
Returns all the |
void |
Notifies the host that the app has ended active navigation. |
void |
Notifies the host that the app has started active navigation. |
void |
reset()Resets the values tracked by this |
void |
setNavigationManagerCallback(Sets a callback to start receiving navigation manager events. |
void |
updateTrip(@NonNull Trip trip)Sends the destinations, steps, and trip estimates to the host. |
Inherited methods |
||
|---|---|---|
|
Public constructors
TestNavigationManager
public TestNavigationManager(
@NonNull TestCarContext testCarContext,
@NonNull HostDispatcher hostDispatcher
)
Public methods
clearNavigationManagerCallback
public void clearNavigationManagerCallback()
Clears the callback for receiving navigation manager events.
| Throws | |
|---|---|
java.lang.IllegalStateException |
if navigation is started (see |
getNavigationEndedCount
public int getNavigationEndedCount()
Returns the number of times that navigation was ended via navigationEnded since creation or the last call to reset.
getNavigationManagerCallback
public @Nullable NavigationManagerCallback getNavigationManagerCallback()
Returns the callback set via setNavigationManagerCallback.
The listener will be null if one was never set, or if clearNavigationManagerCallback or reset was called.
getNavigationStartedCount
public int getNavigationStartedCount()
Returns the number of times that navigation was started via navigationStarted since creation or the last call to reset.
getTripsSent
public @NonNull List<Trip> getTripsSent()
Returns all the Trips sent via updateTrip.
The trips are stored in the order in which they were sent, where the first trip in the list, is the first trip sent.
The trips will be stored until reset is called.
navigationEnded
public void navigationEnded()
Notifies the host that the app has ended active navigation.
Only one app may be actively navigating in the car at any time and ownership is managed by the host. The app must call this method to inform the system that it has ended navigation, for example, in response to the user cancelling navigation or upon reaching the destination.
This method is idempotent.
| Throws | |
|---|---|
java.lang.IllegalStateException |
if the current thread is not the main thread |
navigationStarted
public void navigationStarted()
Notifies the host that the app has started active navigation.
Only one app may be actively navigating in the car at any time and ownership is managed by the host. The app must call this method to inform the system that it has started navigation in response to user action.
This function can only called if setNavigationManagerCallback has been called with a non-null value. The callback is required so that a signal to stop navigation from the host can be handled using onStopNavigation.
This method is idempotent.
| Throws | |
|---|---|
java.lang.IllegalStateException |
if no navigation manager callback has been set, or if the current thread is not the main thread |
setNavigationManagerCallback
public void setNavigationManagerCallback(
@NonNull Executor executor,
@NonNull NavigationManagerCallback callback
)
Sets a callback to start receiving navigation manager events.
| Parameters | |
|---|---|
@NonNull Executor executor |
the executor which will be used for invoking the callback |
@NonNull NavigationManagerCallback callback |
the |
| Throws | |
|---|---|
java.lang.IllegalStateException |
if the current thread is not the main thread |
updateTrip
public void updateTrip(@NonNull Trip trip)
Sends the destinations, steps, and trip estimates to the host.
The data may be rendered at different places in the car such as the instrument cluster screen or the heads-up display.
This method should only be invoked once the navigation app has called navigationStarted, or else the updates will be dropped by the host. Once the app has called navigationEnded or received onStopNavigation it should stop sending updates.
As the location changes, and in accordance with speed and rounded distance changes, the TravelEstimates in the provided Trip should be rebuilt and this method called again. For example, when the next step is greater than 10 kilometers away and the display unit is kilometers, updates should occur roughly every kilometer.
Data provided to the cluster display depends on the vehicle capabilities. In some instances the information may not be shown at all. On some vehicles androidx.car.app.navigation.model.Maneuvers of unknown type may be skipped while on other displays the associated icon may be shown.
| Throws | |
|---|---|
androidx.car.app.HostException |
if the call is invoked by an app that is not declared as a navigation app in the manifest |
java.lang.IllegalStateException |
if the call occurs when navigation is not started (see |
java.lang.IllegalArgumentException |
if any of the destinations, steps, or trip position is not well formed |