@SuppressWarnings({"PMD.NPathComplexity", "PMD.ExcessiveMethodLength"})
        @WorkerThread
        private static void createDescriptionContent(final Activity activity, final Geocache cache, final boolean restrictLength, final TextView descriptionView, final HtmlStyle descriptionStyle,
            final Translator translator, final OfflineTranslateUtils.Status status, final Consumer<Pair<CharSequence, Boolean>> successConsumer, final Consumer<Exception> errorConsumer) {
            //combine short and long description to the final description to render
            String descriptionText = cache.getDescription();
            final String shortDescriptionText = cache.getShortDescription();
            if (StringUtils.isNotBlank(shortDescriptionText)) {
                final int index = StringUtils.indexOf(descriptionText, shortDescriptionText);
                // allow up to 200 characters of HTML formatting
                if (index < 0 || index > 200) {
                    descriptionText = shortDescriptionText + "\n" + descriptionText;
                }
            }

            //check for too-long-listing
            final int descriptionFullLength = descriptionText.length();
            final boolean textTooLong = descriptionFullLength > DESCRIPTION_MAX_SAFE_LENGTH;
            if (textTooLong && restrictLength) {
                descriptionText = descriptionText.substring(0, DESCRIPTION_MAX_SAFE_LENGTH);
            }

            // translate, if requested
            if (translator == null) {
                successConsumer.accept(createDescriptionContentHelper(activity, descriptionText, textTooLong, descriptionFullLength, cache, restrictLength, descriptionView, descriptionStyle));
            } else {
                OfflineTranslateUtils.translateParagraph(translator, status, descriptionText, translatedText -> successConsumer.accept(createDescriptionContentHelper(activity, translatedText, textTooLong, descriptionFullLength, cache, restrictLength, descriptionView, descriptionStyle)), errorConsumer);
            }
        }
CALL IN BACKGROUND ONLY! Renders cache description into an Editable.
main/src/main/java/cgeo/geocaching/CacheDetailActivity.java