package in.vesely.eclub.yodaqa.view;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.text.Html;
import android.view.View;
import android.widget.ImageButton;
import android.widget.TextView;
import org.androidannotations.annotations.EViewGroup;
import org.androidannotations.annotations.ViewById;
import in.vesely.eclub.yodaqa.R;
import in.vesely.eclub.yodaqa.adapters.BindableLinearLayout;
import in.vesely.eclub.yodaqa.restclient.SnippetSourceContainer;
/**
* Created by vesely on 11/29/15.
*/
@EViewGroup(R.layout.snippet_item)
public class SnippetItem extends BindableLinearLayout<SnippetSourceContainer> {
@ViewById(R.id.snippetSourceButton)
protected ImageButton button;
@ViewById(R.id.snippetName)
protected TextView name;
@ViewById(R.id.snippetText)
protected TextView text;
public SnippetItem(Context context) {
super(context);
}
@Override
public void bind(SnippetSourceContainer data, int pos) {
text.setText(data.getYodaSnippet().getPassageText());
if (data.getYodaSnippet().getPropertyLabel() != null) {
text.append(data.getYodaSnippet().getPropertyLabel());
}
name.setText(Html.fromHtml("<b>" + data.getYodaSource().getTitle() + "</b>"));
name.append(" (" + data.getYodaSource().getOrigin() + ")");
setImageButtonImage(data.getYodaSource().getType());
setOnClickButtonImage(data.getYodaSource().getURL());
}
private void setImageButtonImage(String type) {
switch (type) {
case "enwiki":
button.setImageResource(R.drawable.ic_wikipedia_logo);
break;
case "freebase":
button.setImageResource(R.drawable.ic_freebase_logo);
break;
case "dbpedia":
button.setImageResource(R.drawable.ic_dbpedia_logo);
break;
case "bing":
button.setImageResource(R.drawable.ic_bing_logo);
break;
}
}
private void setOnClickButtonImage(final String url) {
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
goToUrl(url);
}
});
}
private void goToUrl(String url) {
Uri uriUrl = Uri.parse(url);
Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl);
getContext().startActivity(launchBrowser);
}
}