package com.github.donkirkby.vograbulary;
import android.util.TypedValue;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.RelativeLayout.LayoutParams;
public class AndroidLetterDisplay extends LetterDisplay {
private TextView textView;
private boolean isInitialized;
private int offsetX; // add to x to get leftMargin
private int offsetY; // add to y to get topMargin
public AndroidLetterDisplay(TextView textView) {
this.textView = textView;
LayoutParams layoutParams = getLayoutParams();
layoutParams.addRule(RelativeLayout.BELOW, R.id.insertImage);
layoutParams.addRule(RelativeLayout.RIGHT_OF, R.id.spacer);
}
private LayoutParams getLayoutParams() {
return (RelativeLayout.LayoutParams)textView.getLayoutParams();
}
private void checkOffset() {
if ( ! isInitialized) {
int[] location = new int[2];
textView.getLocationOnScreen(location);
offsetX = (int)textView.getTranslationX() - location[0];
isInitialized = true;
}
}
@Override
public int getTop() {
checkOffset();
return (int)textView.getTranslationY() - offsetY;
}
@Override
public void setTop(int top) {
checkOffset();
textView.setTranslationY(top + offsetY);
}
@Override
public int getLeft() {
checkOffset();
return (int)textView.getTranslationX() - offsetX;
}
@Override
public void setLeft(int left) {
checkOffset();
textView.setTranslationX(left + offsetX);
}
@Override
public void animateTo(int left, int top) {
checkOffset();
textView.animate().x(left + offsetX).y(top + offsetY);
}
@Override
public int getHeight() {
return textView.getHeight();
}
@Override
public int getWidth() {
return textView.getWidth();
}
@Override
public float getTextSize() {
return textView.getTextSize();
}
@Override
public void setTextSize(float size) {
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, size);
}
@Override
public String getLetter() {
return textView.getText().toString();
}
public TextView getTextView() {
return textView;
}
}