Merge "Compose singleLine & textAllCaps transforms" into klp-dev

This commit is contained in:
Victoria Lease
2013-11-04 15:53:52 +00:00
committed by Android (Google) Code Review
2 changed files with 28 additions and 3 deletions

View File

@@ -32,12 +32,10 @@
android:id="@+id/carrier_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="@dimen/kg_status_line_font_size"
android:textColor="?android:attr/textColorSecondary"
android:textAllCaps="@bool/kg_use_all_caps" />
android:textColor="?android:attr/textColorSecondary" />
<LinearLayout
android:layout_width="match_parent"

View File

@@ -17,14 +17,18 @@
package com.android.keyguard;
import android.content.Context;
import android.text.method.SingleLineTransformationMethod;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
import android.widget.TextView;
import com.android.internal.telephony.IccCardConstants;
import com.android.internal.telephony.IccCardConstants.State;
import com.android.internal.widget.LockPatternUtils;
import java.util.Locale;
public class CarrierText extends TextView {
private static CharSequence mSeparator;
@@ -77,6 +81,8 @@ public class CarrierText extends TextView {
public CarrierText(Context context, AttributeSet attrs) {
super(context, attrs);
mLockPatternUtils = new LockPatternUtils(mContext);
boolean useAllCaps = mContext.getResources().getBoolean(R.bool.kg_use_all_caps);
setTransformationMethod(new CarrierTextTransformationMethod(mContext, useAllCaps));
}
protected void updateCarrierText(State simState, CharSequence plmn, CharSequence spn) {
@@ -258,4 +264,25 @@ public class CarrierText extends TextView {
return mContext.getText(carrierHelpTextId);
}
private class CarrierTextTransformationMethod extends SingleLineTransformationMethod {
private final Locale mLocale;
private final boolean mAllCaps;
public CarrierTextTransformationMethod(Context context, boolean allCaps) {
mLocale = context.getResources().getConfiguration().locale;
mAllCaps = allCaps;
}
@Override
public CharSequence getTransformation(CharSequence source, View view) {
source = super.getTransformation(source, view);
if (mAllCaps && source != null) {
source = source.toString().toUpperCase(mLocale);
}
return source;
}
}
}