package org.emdev.common.textmarkup;
import android.text.TextPaint;
import android.util.SparseArray;
import org.emdev.common.fonts.typeface.TypefaceEx;
public class CustomTextPaintContainer {
private final SparseArray<CustomTextPaint> paints = new SparseArray<CustomTextPaint>();
private final TextPaint defPaint;
public CustomTextPaintContainer(final TextPaint defPaint) {
this.defPaint = defPaint;
}
public final CustomTextPaint getTextPaint(final TypefaceEx face, final int textSize) {
final int key = (face.id & 0x0000FFFF) + ((textSize & 0x0000FFFF) << 16);
CustomTextPaint paint = paints.get(key);
if (paint == null) {
paint = new CustomTextPaint(key, face, textSize);
if (defPaint == null) {
paint = new CustomTextPaint(key, face, textSize);
} else {
paint = new CustomTextPaint(defPaint, key, face, textSize);
}
paints.append(key, paint);
}
return paint;
}
}