1 package com.actionbarsherlock.internal.widget;
3 import java.util.Locale;
4 import android.content.Context;
5 import android.content.res.TypedArray;
6 import android.os.Build;
7 import android.util.AttributeSet;
8 import android.widget.TextView;
10 public class CapitalizingTextView extends TextView {
11 private static final boolean SANS_ICE_CREAM = Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH;
12 private static final boolean IS_GINGERBREAD = Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD;
14 private static final int[] R_styleable_TextView = new int[] {
15 android.R.attr.textAllCaps
17 private static final int R_styleable_TextView_textAllCaps = 0;
19 private boolean mAllCaps;
21 public CapitalizingTextView(Context context, AttributeSet attrs) {
22 this(context, attrs, 0);
25 public CapitalizingTextView(Context context, AttributeSet attrs, int defStyle) {
26 super(context, attrs, defStyle);
28 TypedArray a = context.obtainStyledAttributes(attrs, R_styleable_TextView, defStyle, 0);
29 mAllCaps = a.getBoolean(R_styleable_TextView_textAllCaps, true);
33 public void setTextCompat(CharSequence text) {
34 if (SANS_ICE_CREAM && mAllCaps && text != null) {
36 setText(text.toString().toUpperCase(Locale.ROOT));
38 setText(text.toString().toUpperCase());