@Nullable
    @Override
    public BitmapDrawable getDrawable(final String url) {

        if (cache.containsKey(url)) {
            return cache.get(url);
        }
        final Observable<BitmapDrawable> drawable = fetchDrawable(url);
        if (onlySave) {
            loading.onNext(drawable.ignoreElements());
            cache.put(url, null);
            return null;
        }

        BitmapDrawable result = null;
        final TextView textView = viewRef.get();
        if (textView != null) {
            result = getContainerDrawable(textView, drawable);
        } else {
            final Maybe<BitmapDrawable> lastElement = drawable.lastElement()
                    .timeout(5, TimeUnit.SECONDS).onErrorComplete();
            if (!lastElement.isEmpty().blockingGet()) {
                result = lastElement.blockingGet();
            }
        }

        cache.put(url, result);
        return result;
    }
Retrieve and optionally display an image.
See {@link #HtmlImage(String, boolean, boolean, TextView, boolean)} for the various behaviors.

@param url the URL to fetch from cache or network
@return a drawable containing the image, or <tt>null</tt> if <tt>onlySave</tt> is <tt>true</tt>
main/src/main/java/cgeo/geocaching/network/HtmlImage.java