public static void fixRelativeLinks(final Spannable spannable, final String baseUrl) {
        final URLSpan[] spans = spannable.getSpans(0, spannable.length(), URLSpan.class);
        String baseScheme = Uri.parse(baseUrl).getScheme();
        if (StringUtils.isBlank(baseScheme)) {
            baseScheme = "https";
        }
        for (final URLSpan span : spans) {
            final Uri uri = Uri.parse(span.getURL());
            if (uri.getScheme() == null) {
                final int start = spannable.getSpanStart(span);
                final int end = spannable.getSpanEnd(span);
                final int flags = spannable.getSpanFlags(span);
                final Uri absoluteUri = uri.getHost() == null ? Uri.parse(baseUrl + uri) :
                        uri.buildUpon().scheme(baseScheme).build();
                spannable.removeSpan(span);
                spannable.setSpan(new URLSpan(absoluteUri.toString()), start, end, flags);
            }
        }
    }
searches a spannable for relative links and replaces them with absolute links using the given baseUrl
main/src/main/java/cgeo/geocaching/utils/html/HtmlUtils.java