package com.papagiannis.tuberun.binders;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.Typeface;
import android.util.TypedValue;
import android.view.View;
import android.widget.ImageView;
import android.widget.SimpleAdapter.ViewBinder;
import android.widget.TextView;
import com.papagiannis.tuberun.LinePresentation;
import com.papagiannis.tuberun.LineType;
import com.papagiannis.tuberun.R;
public class SelectLinesBinder implements ViewBinder {
final Context context;
int attempt = 0;
int defaultHeight=45; //we need this in dip
int red=Color.RED;
public SelectLinesBinder(Context context) {
this.context = context;
red=context.getResources().getColor(R.drawable.tuberun_red_bright);
defaultHeight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, defaultHeight, context.getResources().getDisplayMetrics());
}
@Override
public boolean setViewValue(View view, Object o, String s) {
if (view.getId() == R.id.line_image) {
Integer icon = (Integer) o;
ImageView iv = (ImageView) view;
if (icon!=-1) {
Bitmap bmp = BitmapFactory.decodeResource(
context.getResources(), icon);
Bitmap resizedbitmap = Bitmap.createScaledBitmap(bmp,
bmp.getWidth() / 2, bmp.getHeight() / 2, true);
iv.setImageBitmap(resizedbitmap);
iv.setVisibility(View.VISIBLE);
}
else {
iv.setVisibility(View.GONE);
}
}
else if (view.getId() == R.id.line_color) {
if (o==null) {
view.setBackgroundColor(Color.TRANSPARENT);
return true;
}
LineType l = (LineType) o;
if (l==LineType.ALL) view.setVisibility(View.GONE);
else {
view.setVisibility(View.VISIBLE);
view.setBackgroundColor(LinePresentation.getBackgroundColor(l));
}
}
else if (view.getId() == R.id.line_distance) {
TextView tv=(TextView)view;
int i=(Integer) o;
if (i>10000) {
i=(i/1000);
tv.setText(i+" km");
}
else {
tv.setText(i+" m");
}
}
else {
TextView tv=(TextView) view;
if (s!=null && s.length()>0 && s.charAt(0)=='_') {
s=s.substring(1);
tv.setTextColor(red);
tv.setTextSize(13);
tv.setTypeface(null, Typeface.BOLD);
tv.setPadding(2, 0, 0, 0);
tv.setVisibility(View.GONE);
}
else {
tv.setTextColor(Color.WHITE);
tv.setTextSize(16);
tv.setTypeface(null, Typeface.NORMAL);
tv.setPadding(10, 0, 0, 0);
}
tv.setText(s);
tv.setVisibility(View.VISIBLE);
}
return true;
}
}