Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 378f1924 authored by Salvador Martinez's avatar Salvador Martinez Committed by android-build-merger
Browse files

Force talkback to read imei # digit by digit am: cf21d91b am: 72e264b1

am: 0c86e045

Change-Id: Ibf08379cc9e691c0b9c31b512647d81236bf7ba7
parents 6a3a73e4 0c86e045
Loading
Loading
Loading
Loading
+21 −3
Original line number Diff line number Diff line
@@ -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) {