Force talkback to read imei # digit by digit
Made changes to the file so that it uses Spannables instead of just strings. This will allow us to tell Android Talkback how we would like the strings read. Fixes: 30402792 Change-Id: I893a2cbf3de092f81d927bad36523efb08dd7265
This commit is contained in:
@@ -21,8 +21,13 @@ import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
import android.telephony.SubscriptionManager;
|
||||
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.style.TtsSpan;
|
||||
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||
import com.android.internal.telephony.Phone;
|
||||
import com.android.internal.telephony.PhoneConstants;
|
||||
@@ -80,7 +85,7 @@ public class ImeiInformation extends SettingsPreferenceFragment {
|
||||
if (phone.getLteOnCdmaMode() == PhoneConstants.LTE_ON_CDMA_TRUE) {
|
||||
// Show ICC ID and IMEI for LTE device
|
||||
setSummaryText(KEY_ICC_ID, phone.getIccSerialNumber());
|
||||
setSummaryText(KEY_IMEI, phone.getImei());
|
||||
setSummaryTextAsDigit(KEY_IMEI, phone.getImei());
|
||||
} else {
|
||||
// device is not GSM/UMTS, do not display GSM/UMTS features
|
||||
// check Null in case no specified preference in overlay xml
|
||||
@@ -88,8 +93,8 @@ public class ImeiInformation extends SettingsPreferenceFragment {
|
||||
removePreferenceFromScreen(KEY_ICC_ID);
|
||||
}
|
||||
} else {
|
||||
setSummaryText(KEY_IMEI, phone.getImei());
|
||||
setSummaryText(KEY_IMEI_SV, phone.getDeviceSvn());
|
||||
setSummaryTextAsDigit(KEY_IMEI, phone.getImei());
|
||||
setSummaryTextAsDigit(KEY_IMEI_SV, phone.getDeviceSvn());
|
||||
// device is not CDMA, do not display CDMA features
|
||||
// check Null in case no specified preference in overlay xml
|
||||
removePreferenceFromScreen(KEY_PRL_VERSION);
|
||||
@@ -128,10 +133,23 @@ public class ImeiInformation extends SettingsPreferenceFragment {
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
if (TextUtils.isEmpty(text)) {
|
||||
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) {
|
||||
|
Reference in New Issue
Block a user