package v2.simpleUi;
import v2.simpleUi.uiDecoration.UiDecoratable;
import v2.simpleUi.uiDecoration.UiDecorator;
import android.content.Context;
import android.graphics.Bitmap;
import android.view.Gravity;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class M_InfoTextList implements ModifierInterface, UiDecoratable {
private String myText;
private Bitmap myIcon;
private int myIconId;
private float myTextSize;
private UiDecorator myDecorator;
public M_InfoTextList() {
}
public M_InfoTextList(int iconId, String... lineList) {
myIconId = iconId;
addLines(lineList);
}
public M_InfoTextList(int iconId, String text, float manualTextSize) {
this(iconId, text);
myTextSize = manualTextSize;
}
public M_InfoTextList(String... lineList) {
this(null, lineList);
}
public M_InfoTextList(Bitmap icon, String... lineList) {
myIcon = icon;
addLines(lineList);
}
public void addLines(String... lineList) {
for (String line : lineList) {
addLine(line);
}
}
public void addLine(String line) {
if (myText == null)
myText = line;
else
myText += "\n" + line;
}
public void clearLines() {
myText = null;
}
@Override
public View getView(Context context) {
int bottomAndTopPadding = 4;
int textPadding = 7;
int iconPadding = 10;
LinearLayout l = new LinearLayout(context);
l.setGravity(Gravity.CENTER_VERTICAL);
l.setPadding(0, bottomAndTopPadding, 0, bottomAndTopPadding);
ImageView i = null;
if (myIcon != null || myIconId != 0) {
i = new ImageView(context);
i.setPadding(0, iconPadding, iconPadding, iconPadding);
if (myIcon != null) {
i.setImageBitmap(myIcon);
} else if (myIconId != 0) {
i.setImageResource(myIconId);
}
l.addView(i);
}
TextView t = new TextView(context);
t.setText(myText);
t.setPadding(textPadding, textPadding, textPadding, textPadding);
l.addView(t);
if (myTextSize != 0)
t.setTextSize(myTextSize);
if (myDecorator != null) {
int level = myDecorator.getCurrentLevel();
if (i != null)
myDecorator.decorate(context, i, level + 1,
UiDecorator.TYPE_ICON);
myDecorator.decorate(context, t, level + 1,
UiDecorator.TYPE_INFO_TEXT);
}
return l;
}
@Override
public boolean assignNewDecorator(UiDecorator decorator) {
myDecorator = decorator;
return true;
}
@Override
public boolean save() {
return true;
}
}