package cgeo.geocaching.network;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.widget.TextView;
import org.apache.commons.lang3.tuple.ImmutablePair;
import cgeo.geocaching.utils.ImageUtils;
import cgeo.geocaching.utils.ImageUtils.LineHeightContainerDrawable;
import io.reactivex.Observable;
/**
* Specialized image class for fetching and displaying smileys in the log book.
*/
public class SmileyImage extends HtmlImage {
public SmileyImage(final String geocode, final TextView view) {
super(geocode, false, false, view, false);
}
@Override
protected ImmutablePair<BitmapDrawable, Boolean> scaleImage(final ImmutablePair<Bitmap, Boolean> loadResult) {
final Bitmap bitmap = loadResult.left;
if (bitmap == null) {
return ImmutablePair.of(null, loadResult.right);
}
final TextView view = viewRef.get();
final BitmapDrawable drawable = new BitmapDrawable(view.getResources(), bitmap);
drawable.setBounds(ImageUtils.scaleImageToLineHeight(drawable, view));
return ImmutablePair.of(drawable, loadResult.right);
}
@Override
protected BitmapDrawable getContainerDrawable(final TextView view, final Observable<BitmapDrawable> drawable) {
return new LineHeightContainerDrawable(view, drawable);
}
}