private static DirectionInfo getDirectionInfo()

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);
        }
    }