summaryrefslogtreecommitdiffstats
path: root/src/com/android/phone/common/dialpad/DialpadView.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/phone/common/dialpad/DialpadView.java')
-rw-r--r--src/com/android/phone/common/dialpad/DialpadView.java47
1 files changed, 45 insertions, 2 deletions
diff --git a/src/com/android/phone/common/dialpad/DialpadView.java b/src/com/android/phone/common/dialpad/DialpadView.java
index 938379d..3911093 100644
--- a/src/com/android/phone/common/dialpad/DialpadView.java
+++ b/src/com/android/phone/common/dialpad/DialpadView.java
@@ -26,6 +26,7 @@ import android.graphics.drawable.RippleDrawable;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.Log;
+import android.util.TypedValue;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
@@ -38,6 +39,7 @@ import android.widget.TextView;
import com.android.phone.common.R;
import com.android.phone.common.animation.AnimUtils;
+import com.android.phone.common.util.SettingsUtil;
import java.text.DecimalFormat;
import java.text.NumberFormat;
@@ -124,6 +126,10 @@ public class DialpadView extends LinearLayout {
}
}
+ public void refreshKeypad() {
+ setupKeypad();
+ }
+
private void setupKeypad() {
final int[] letterIds = new int[] {R.string.dialpad_0_letters, R.string.dialpad_1_letters,
R.string.dialpad_2_letters, R.string.dialpad_3_letters, R.string.dialpad_4_letters,
@@ -137,11 +143,21 @@ public class DialpadView extends LinearLayout {
R.string.dialpad_8_labels, R.string.dialpad_9_labels,
R.string.dialpad_star_labels, R.string.dialpad_pound_labels};
- final Resources resources = getContext().getResources();
+ final int[] letter2Ids = new int[] {
+ R.string.dialpad_0_2_letters, R.string.dialpad_1_2_letters,
+ R.string.dialpad_2_2_letters, R.string.dialpad_3_2_letters,
+ R.string.dialpad_4_2_letters, R.string.dialpad_5_2_letters,
+ R.string.dialpad_6_2_letters, R.string.dialpad_7_2_letters,
+ R.string.dialpad_8_2_letters, R.string.dialpad_9_2_letters,
+ R.string.dialpad_star_2_letters, R.string.dialpad_pound_2_letters};
+
+ Locale t9SearchInputLocale = SettingsUtil.getT9SearchInputLocale(getContext());
+ final Resources resources = getResourcesForLocale(t9SearchInputLocale);
DialpadKeyButton dialpadKey;
TextView numberView;
TextView lettersView;
+ TextView letters2View;
TextView labelsView;
final Locale currentLocale = resources.getConfiguration().locale;
@@ -201,6 +217,25 @@ public class DialpadView extends LinearLayout {
labelsView.setVisibility(View.GONE);
}
}
+
+ String secondaryLabel = resources.getString(letter2Ids[i]);
+ if (letters2View != null) {
+ if (!TextUtils.isEmpty(secondaryLabel)) {
+ letters2View.setText(secondaryLabel);
+ letters2View.setVisibility(View.VISIBLE);
+
+ // use smaller text size when both labels are present
+ if (lettersView != null) {
+ float size =
+ resources.getDimension(
+ R.dimen.dialpad_key_letters_small_size);
+ letters2View.setTextSize(TypedValue.COMPLEX_UNIT_PX, size);
+ lettersView.setTextSize(TypedValue.COMPLEX_UNIT_PX, size);
+ }
+ } else {
+ letters2View.setVisibility(View.GONE);
+ }
+ }
}
final DialpadKeyButton one = (DialpadKeyButton) findViewById(R.id.one);
@@ -439,4 +474,12 @@ public class DialpadView extends LinearLayout {
Log.wtf(TAG, "Attempted to get animation duration for invalid key button id.");
return 0;
}
-}
+
+ private Resources getResourcesForLocale(Locale locale) {
+ Configuration defaultConfig = getContext().getResources().getConfiguration();
+ Configuration overrideConfig = new Configuration(defaultConfig);
+ overrideConfig.setLocale(locale);
+ Context localeContext = getContext().createConfigurationContext(overrideConfig);
+ return localeContext.getResources();
+ }
+} \ No newline at end of file