fa3698f3b49e9e20c012a7dfb1e38909e0e42b00
[pub/Android/ownCloud.git] / actionbarsherlock / src / com / actionbarsherlock / internal / widget / CapitalizingButton.java
1 package com.actionbarsherlock.internal.widget;
2
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.Button;
9
10 public class CapitalizingButton extends Button {
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;
13
14 private static final int[] R_styleable_Button = new int[] {
15 android.R.attr.textAllCaps
16 };
17 private static final int R_styleable_Button_textAllCaps = 0;
18
19 private boolean mAllCaps;
20
21 public CapitalizingButton(Context context, AttributeSet attrs) {
22 super(context, attrs);
23
24 TypedArray a = context.obtainStyledAttributes(attrs, R_styleable_Button);
25 mAllCaps = a.getBoolean(R_styleable_Button_textAllCaps, true);
26 a.recycle();
27 }
28
29 public void setTextCompat(CharSequence text) {
30 if (SANS_ICE_CREAM && mAllCaps && text != null) {
31 if (IS_GINGERBREAD) {
32 setText(text.toString().toUpperCase(Locale.ROOT));
33 } else {
34 setText(text.toString().toUpperCase());
35 }
36 } else {
37 setText(text);
38 }
39 }
40 }