Consolidate logic, add crash if header index is out of bounds

This commit is contained in:
Eric Denman 2018-07-20 09:22:40 -07:00
parent fbef11207e
commit b32b13651f

View File

@ -16,6 +16,9 @@ import android.support.annotation.Size;
import android.text.TextPaint; import android.text.TextPaint;
import android.util.TypedValue; import android.util.TypedValue;
import java.util.Arrays;
import java.util.Locale;
@SuppressWarnings("WeakerAccess") @SuppressWarnings("WeakerAccess")
public class SpannableTheme { public class SpannableTheme {
@ -383,10 +386,17 @@ public class SpannableTheme {
} else { } else {
paint.setTypeface(headingTypeface); paint.setTypeface(headingTypeface);
} }
if (headingTextSizeMultipliers != null && headingTextSizeMultipliers.length >= level) { final float[] textSizes = headingTextSizeMultipliers != null
paint.setTextSize(paint.getTextSize() * headingTextSizeMultipliers[level - 1]); ? headingTextSizeMultipliers
: HEADING_SIZES;
if (textSizes != null && textSizes.length >= level) {
paint.setTextSize(paint.getTextSize() * textSizes[level - 1]);
} else { } else {
paint.setTextSize(paint.getTextSize() * HEADING_SIZES[level - 1]); throw new IllegalStateException(String.format(
Locale.US,
"Supplied heading level: %d is invalid, where configured heading sizes are: `%s`",
level, Arrays.toString(textSizes)));
} }
} }