Maneuver.Builder

public final class Maneuver.Builder


A builder of Maneuver.

Summary

Public constructors

Builder(int type)

Constructs a new instance of a Builder.

Public methods

@NonNull Maneuver

Constructs the Maneuver defined by this builder.

@NonNull Maneuver.Builder

Sets an image representing the maneuver.

@NonNull Maneuver.Builder
setRoundaboutExitAngle(
    @IntRange(from = 1, to = 360) int roundaboutExitAngle
)

Sets an exit angle for roundabout maneuvers.

@NonNull Maneuver.Builder
setRoundaboutExitNumber(@IntRange(from = 1) int roundaboutExitNumber)

Sets an exit number for roundabout maneuvers.

Public constructors

Builder

Added in 1.0.0
public Builder(int type)

Constructs a new instance of a Builder.

The type should be chosen to reflect the closest semantic meaning of the maneuver. In some cases, an exact type match is not possible, but choosing a similar or slightly more general type is preferred. Using TYPE_UNKNOWN is allowed, but some head units will not display any information in that case.

Parameters
int type

one of the TYPE_* static constants defined in this class

Throws
java.lang.IllegalArgumentException

if type is not a valid maneuver type

Public methods

build

Added in 1.0.0
public @NonNull Maneuver build()

Constructs the Maneuver defined by this builder.

Throws
java.lang.IllegalArgumentException

if type includes an exit number and one has not been set, or if it includes an exit angle and one has not been set

setIcon

Added in 1.0.0
public @NonNull Maneuver.Builder setIcon(@NonNull CarIcon icon)

Sets an image representing the maneuver.

Icon Sizing Guidance To minimize scaling artifacts across a wide range of car screens, apps should provide icons targeting a 128 x 128 dp bounding box. If the icon exceeds this maximum size in either one of the dimensions, it will be scaled down to be centered inside the bounding box while preserving its aspect ratio.

See CarIcon for more details related to providing icon and image resources that work with different car screen pixel densities.

Throws
java.lang.NullPointerException

if icon is null

setRoundaboutExitAngle

Added in 1.0.0
public @NonNull Maneuver.Builder setRoundaboutExitAngle(
    @IntRange(from = 1, to = 360) int roundaboutExitAngle
)

Sets an exit angle for roundabout maneuvers.

Use for when type is TYPE_ROUNDABOUT_ENTER_AND_EXIT_CW_WITH_ANGLE or TYPE_ROUNDABOUT_ENTER_AND_EXIT_CCW_WITH_ANGLE. The roundaboutExitAngle represents the degrees traveled in circulation from the entrance to the exit.

For example, in a 4 exit example, if all the exits are equally spaced then exit 1 would be at 90 degrees, exit 2 at 180, exit 3 at 270 and exit 4 at 360. However if the exits are irregular then a different angle could be provided.

Throws
java.lang.IllegalArgumentException

if type does not include a exit angle or if roundaboutExitAngle is not greater than zero and less than or equal to 360 degrees

setRoundaboutExitNumber

Added in 1.0.0
public @NonNull Maneuver.Builder setRoundaboutExitNumber(@IntRange(from = 1) int roundaboutExitNumber)

Sets an exit number for roundabout maneuvers.

Use for when type is TYPE_ROUNDABOUT_ENTER_AND_EXIT_CW, TYPE_ROUNDABOUT_ENTER_AND_EXIT_CCW, TYPE_ROUNDABOUT_ENTER_AND_EXIT_CW_WITH_ANGLE or TYPE_ROUNDABOUT_ENTER_AND_EXIT_CCW_WITH_ANGLE. The roundaboutExitNumber starts from 1 to designate the first exit after joining the roundabout, and increases in circulation order.

For example, if the driver is joining a counter-clockwise roundabout with 4 exits, then the exit to the right would be exit #1, the one straight ahead would be exit #2, the one to the left would be exit #3 and the one used by the driver to join the roundabout would be exit #4.

Throws
java.lang.IllegalArgumentException

if type does not include a exit number, or if roundaboutExitNumber is not greater than zero