Force talkback to read imei # digit by digit am: cf21d91b76

am: 72e264b1be

Change-Id: I5d34152d7e3fb758a38b095d8e7b98a575f9c269
This commit is contained in:
Salvador Martinez
2016-07-28 03:08:42 +00:00
committed by android-build-merger

View File

@@ -21,8 +21,13 @@ import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.TextUtils; import android.text.TextUtils;
import android.text.style.TtsSpan;
import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.internal.telephony.Phone; import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.PhoneConstants;
@@ -80,7 +85,7 @@ public class ImeiInformation extends SettingsPreferenceFragment {
if (phone.getLteOnCdmaMode() == PhoneConstants.LTE_ON_CDMA_TRUE) { if (phone.getLteOnCdmaMode() == PhoneConstants.LTE_ON_CDMA_TRUE) {
// Show ICC ID and IMEI for LTE device // Show ICC ID and IMEI for LTE device
setSummaryText(KEY_ICC_ID, phone.getIccSerialNumber()); setSummaryText(KEY_ICC_ID, phone.getIccSerialNumber());
setSummaryText(KEY_IMEI, phone.getImei()); setSummaryTextAsDigit(KEY_IMEI, phone.getImei());
} else { } else {
// device is not GSM/UMTS, do not display GSM/UMTS features // device is not GSM/UMTS, do not display GSM/UMTS features
// check Null in case no specified preference in overlay xml // check Null in case no specified preference in overlay xml
@@ -88,8 +93,8 @@ public class ImeiInformation extends SettingsPreferenceFragment {
removePreferenceFromScreen(KEY_ICC_ID); removePreferenceFromScreen(KEY_ICC_ID);
} }
} else { } else {
setSummaryText(KEY_IMEI, phone.getImei()); setSummaryTextAsDigit(KEY_IMEI, phone.getImei());
setSummaryText(KEY_IMEI_SV, phone.getDeviceSvn()); setSummaryTextAsDigit(KEY_IMEI_SV, phone.getDeviceSvn());
// device is not CDMA, do not display CDMA features // device is not CDMA, do not display CDMA features
// check Null in case no specified preference in overlay xml // check Null in case no specified preference in overlay xml
removePreferenceFromScreen(KEY_PRL_VERSION); removePreferenceFromScreen(KEY_PRL_VERSION);
@@ -128,10 +133,23 @@ public class ImeiInformation extends SettingsPreferenceFragment {
} }
private void setSummaryText(String key, String text) { private void setSummaryText(String key, String text) {
setSummaryText(key, text, false /* forceDigit */);
}
private void setSummaryTextAsDigit(String key, String text) {
setSummaryText(key, text, true /* forceDigit */);
}
private void setSummaryText(String key, CharSequence text, boolean forceDigit) {
final Preference preference = findPreference(key); final Preference preference = findPreference(key);
if (TextUtils.isEmpty(text)) { if (TextUtils.isEmpty(text)) {
text = getResources().getString(R.string.device_info_default); text = getResources().getString(R.string.device_info_default);
} else if (forceDigit && TextUtils.isDigitsOnly(text)) {
final Spannable spannable = new SpannableStringBuilder(text);
final TtsSpan span = new TtsSpan.DigitsBuilder(text.toString()).build();
spannable.setSpan(span, 0, spannable.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
text = spannable;
} }
if (preference != null) { if (preference != null) {