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

Commit 591e8911 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Force talkback to read imei # digit by digit" into nyc-mr1-dev

parents 92b0aa0d cf21d91b
Loading
Loading
Loading
Loading
+21 −3
Original line number Original line Diff line number Diff line
@@ -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) {