diff options
Diffstat (limited to 'src/com/android/phone/common/dialpad/DialpadView.java')
-rw-r--r-- | src/com/android/phone/common/dialpad/DialpadView.java | 47 |
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 |