private void initializeWaypointTypeSelector(final boolean excludeGenerated) {
        final ArrayList<WaypointType> allowedTypes = excludeGenerated ? POSSIBLE_WAYPOINT_TYPES : POSSIBLE_WAYPOINT_TYPES_WITH_GENERATED;
        waypointType
            .setValues(allowedTypes)
            .setSpinner(binding.type)
            .setDisplayMapper(wpt -> TextParam.text(wpt.getL10n())
                .setImage(ImageParam.drawable(MapMarkerUtils.getWaypointTypeMarker(getResources(), wpt)), 30));

        waypointType.setChangeListener(wpt -> {
            final String oldDefaultName = lastSelectedWaypointType == null ? StringUtils.EMPTY : getDefaultWaypointName(cache, (lastSelectedWaypointType));
            lastSelectedWaypointType = wpt;
            final String currentName = binding.name.getText().toString().trim();
            if (StringUtils.isBlank(currentName) || oldDefaultName.equals(currentName)) {
                binding.name.setText(getDefaultWaypointName(cache, getSelectedWaypointType()));
            }
        });
        waypointType.set(getDefaultWaypointType());

        binding.type.setVisibility(View.VISIBLE);
    }
State the Coordinate Calculator was last left in.
main/src/main/java/cgeo/geocaching/EditWaypointActivity.java