/** * Ti.StyledLabel Module * Copyright (c) 2010-2013 by Appcelerator, Inc. All Rights Reserved. * Please see the LICENSE included with this distribution for details. */ package ti.styledlabel.property; import java.util.HashMap; import ti.styledlabel.Util; import android.text.ParcelableSpan; import android.text.SpannableStringBuilder; import android.text.style.LeadingMarginSpan; public class TextIndent implements IProperty { @Override public void mixWithMap(HashMap<String, IProperty> map) { map.put("text-indent", this); } private float sizeToUnit(String value) { if (value == null || value.length() == 0) return 14; int unitLength = 2; if (value.endsWith("%")) unitLength = 1; String units = value.substring(value.length() - unitLength); float size = Float.parseFloat(value.substring(0, value.length() - unitLength)); if (units.equals("px") || units.equals("dp")) { return size; } else if (units.equals("%") || units.equals("em")) { return size / 100f; } else { Util.e("Unsupported measurement used, please use px, %, or dp: " + value); return 14; } } @Override public ParcelableSpan getSpan(SpannableStringBuilder mSB, String value) { mSB.append('\n'); return new LeadingMarginSpan.Standard((int) sizeToUnit(value), 0); } }