package treehou.se.habit.ui.widgets.factories;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import java.net.MalformedURLException;
import java.net.URL;
import se.treehou.ng.ohcommunicator.connector.models.OHLinkedPage;
import se.treehou.ng.ohcommunicator.connector.models.OHWidget;
import treehou.se.habit.R;
import treehou.se.habit.connector.Communicator;
import treehou.se.habit.ui.widgets.WidgetFactory;
public class ImageWidgetFactory implements IWidgetFactory {
@Override
public WidgetFactory.IWidgetHolder build(WidgetFactory widgetFactory, OHLinkedPage page, final OHWidget widget, final OHWidget parent) {
return new ImageWidgetHolder(widget, parent, widgetFactory);
}
public static class ImageWidgetHolder implements WidgetFactory.IWidgetHolder {
private static final String TAG = "ImageWidgetHolder";
private BaseWidgetFactory.BaseWidgetHolder baseHolder;
private ImageView imgImage;
private WidgetFactory factory;
ImageWidgetHolder(OHWidget widget, OHWidget parent, WidgetFactory factory) {
this.factory = factory;
View itemView = factory.getInflater().inflate(R.layout.item_widget_image, null);
imgImage = (ImageView) itemView.findViewById(R.id.img_image);
baseHolder = new BaseWidgetFactory.BaseWidgetHolder.Builder(factory)
.setWidget(widget)
.setParent(parent)
.setShowLabel(false)
.build();
baseHolder.getSubView().addView(itemView);
update(widget);
}
@Override
public void update(final OHWidget widget) {
Log.d(TAG, "update " + widget);
if (widget == null) {
return;
}
try {
Log.d(TAG, "Image url " + widget.getUrl());
URL imageUrl = new URL(widget.getUrl());
Communicator communicator = Communicator.instance(factory.getContext());
communicator.loadImage(factory.getServer(), imageUrl, imgImage);
} catch (MalformedURLException e) {
e.printStackTrace();
}
baseHolder.update(widget);
}
@Override
public View getView() {
return baseHolder.getView();
}
}
}