in car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/navigation/NavigationNotificationService.java [192:229]
private static DirectionInfo getDirectionInfo(int notificationCount) {
DecimalFormat formatter = new DecimalFormat("#.##");
formatter.setRoundingMode(RoundingMode.DOWN);
int repeatingCount = notificationCount % 35;
if (0 <= repeatingCount && repeatingCount < 10) {
// Distance decreases from 1km to 0.1km
String distance = formatter.format((10 - repeatingCount) * 0.1) + "km";
return new DirectionInfo(
"Go Straight",
distance,
R.drawable.arrow_straight,
/* onlyAlertOnce= */ repeatingCount > 0);
} else if (10 <= repeatingCount && repeatingCount < 20) {
// Distance decreases from 5km to 0.5km
String distance = formatter.format((20 - repeatingCount) * 0.5) + "km";
return new DirectionInfo(
"Turn Right",
distance,
R.drawable.arrow_right_turn,
/* onlyAlertOnce= */ repeatingCount > 10);
} else if (20 <= repeatingCount && repeatingCount < 25) {
// Distance decreases from 200m to 40m
String distance = formatter.format((25 - repeatingCount) * 40) + "m";
return new DirectionInfo(
"Take 520",
distance,
R.drawable.ic_520,
/* onlyAlertOnce= */ repeatingCount > 20);
} else {
// Distance decreases from 1km to 0.1km
String distance = formatter.format((35 - repeatingCount) * 0.1) + "km";
return new DirectionInfo(
"Gas Station",
distance,
R.drawable.ic_local_gas_station_white_48dp,
repeatingCount > 25);
}
}