@SuppressWarnings("PMD.NPathComplexity") // readability won't be imporved upon split
    private void recalculateProjectionView() {

        final ProjectionType pType = this.projectionType.get();
        final boolean projectionEnabled = waypoint == null || (waypoint.isUserDefined() || waypoint.isOriginalCoordsEmpty());

        //update view visibilities
        binding.projectionType.setVisibility(projectionEnabled ? View.VISIBLE : View.GONE);
        binding.projectedLatLongitude.setVisibility(projectionEnabled && pType != ProjectionType.NO_PROJECTION ? View.VISIBLE : View.GONE);
        binding.projectionBearingBox.setVisibility(projectionEnabled && pType == ProjectionType.BEARING ? View.VISIBLE : View.GONE);
        binding.projectionOffsetBox.setVisibility(projectionEnabled && pType == ProjectionType.OFFSET ? View.VISIBLE : View.GONE);

        binding.variableList.setVisibility(projectionEnabled && pType != ProjectionType.NO_PROJECTION ? View.VISIBLE : View.GONE);
        binding.variablesTidyup.setVisibility(projectionEnabled && pType != ProjectionType.NO_PROJECTION ? View.VISIBLE : View.GONE);

        //update currentCoords and coordinate Views
        recalculateProjectedCoordinates();
    }
this method assumes a correctly filled "preprojectedCoord"-var.
It recalculates the "currentCoord" value and updates view according to projection settings
main/src/main/java/cgeo/geocaching/EditWaypointActivity.java