package pt.rupeal.invoicexpress.layouts;
import pt.rupeal.invoicexpress.R;
import pt.rupeal.invoicexpress.utils.ScreenLayoutUtil;
import pt.rupeal.invoicexpress.utils.StringUtil;
import android.app.Activity;
import android.content.Context;
import android.util.AttributeSet;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class ValueLabelImageLayout extends LinearLayout {
public ValueLabelImageLayout(Context context) {
super(context);
}
public ValueLabelImageLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
((Activity)getContext()).getLayoutInflater().inflate(R.layout.details_value_label_image_row, this);
}
public void setText(Context context, String text) {
// resized text
String textResized = StringUtil.resizeString((Activity) context,
text,
getTextSize(),
getMarginsToResizeDetailsValue(context));
// set text
((TextView) findViewById(R.id.details_value)).setText(textResized);
}
public void setLabel(int resource) {
((TextView) findViewById(R.id.details_label)).setText(resource);
}
public void setImage(int resource) {
((ImageView) findViewById(R.id.details_image)).setImageResource(resource);
}
private float getTextSize() {
return ((TextView) findViewById(R.id.details_value)).getTextSize();
}
private int getMarginsToResizeDetailsValue(Context context) {
// margin layout
RelativeLayout layout = ((RelativeLayout) findViewById(R.id.details_value_label_image_layout));
int marginLeftRightSum = ((ViewGroup.MarginLayoutParams) layout.getLayoutParams()).leftMargin;
marginLeftRightSum += ((ViewGroup.MarginLayoutParams) layout.getLayoutParams()).rightMargin;
// margin text view value
marginLeftRightSum += ((ViewGroup.MarginLayoutParams) ((TextView) findViewById(R.id.details_value)).getLayoutParams()).leftMargin;
marginLeftRightSum += ((ViewGroup.MarginLayoutParams) ((TextView) findViewById(R.id.details_value)).getLayoutParams()).rightMargin;
// margin right between image and horizontal separate line
marginLeftRightSum += ((ViewGroup.MarginLayoutParams) (findViewById(R.id.details_horizontal_separator).getLayoutParams())).rightMargin;
// missed image width
marginLeftRightSum += ScreenLayoutUtil.convertDpToPixels(context, 50);
// return
return marginLeftRightSum;
}
}