From dd4443a236730046bb26919272ff7d6db084b5bc Mon Sep 17 00:00:00 2001 From: Shishir Agrawal Date: Wed, 3 Dec 2014 17:36:28 -0800 Subject: [PATCH] Settings app - read phone number from TelephonyManager. The phone number needs to be always read from the TelephonyManager since it can be overridden. Bug: 18487514 Change-Id: If72094eb230c41b4f70146b0ccb012c9f9860626 --- .../android/settings/deviceinfo/SimStatus.java | 6 ++---- src/com/android/settings/sim/SimSettings.java | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/com/android/settings/deviceinfo/SimStatus.java b/src/com/android/settings/deviceinfo/SimStatus.java index 2afdb844a3a..b3e43af26d1 100644 --- a/src/com/android/settings/deviceinfo/SimStatus.java +++ b/src/com/android/settings/deviceinfo/SimStatus.java @@ -343,7 +343,7 @@ public class SimStatus extends PreferenceActivity { } } - String rawNumber = mPhone.getLine1Number(); // may be null or empty + String rawNumber = mTelephonyManager.getLine1Number(); // may be null or empty String formattedNumber = null; if (!TextUtils.isEmpty(rawNumber)) { formattedNumber = PhoneNumberUtils.formatNumber(rawNumber); @@ -353,9 +353,7 @@ public class SimStatus extends PreferenceActivity { final String imei = mPhone.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA ? mPhone.getImei() : mPhone.getDeviceId(); setSummaryText(KEY_IMEI, imei); - setSummaryText(KEY_IMEI_SV, - ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)) - .getDeviceSoftwareVersion(/*slotId*/)); + setSummaryText(KEY_IMEI_SV, mTelephonyManager.getDeviceSoftwareVersion(/*slotId*/)); if (!mShowLatestAreaInfo) { removePreferenceFromScreen(KEY_LATEST_AREA_INFO); diff --git a/src/com/android/settings/sim/SimSettings.java b/src/com/android/settings/sim/SimSettings.java index 6c3ddb5a6a8..ecca10c9b2e 100644 --- a/src/com/android/settings/sim/SimSettings.java +++ b/src/com/android/settings/sim/SimSettings.java @@ -418,7 +418,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable } else { sir = mSelectableSubInfos.get(position); holder.title.setText(sir.getDisplayName()); - holder.summary.setText(sir.getNumber()); + holder.summary.setText(getPhoneNumber(sir)); holder.icon.setImageBitmap(sir.createIconBitmap(mContext)); } return rowView; @@ -458,11 +458,11 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable setTitle(String.format(getResources() .getString(R.string.sim_editor_title), (mSlotId + 1))); if (mSubInfoRecord != null) { - if (TextUtils.isEmpty(mSubInfoRecord.getNumber())) { + if (TextUtils.isEmpty(getPhoneNumber(mSubInfoRecord))) { setSummary(mSubInfoRecord.getDisplayName()); } else { setSummary(mSubInfoRecord.getDisplayName() + " - " + - mSubInfoRecord.getNumber()); + getPhoneNumber(mSubInfoRecord)); setEnabled(true); } setIcon(new BitmapDrawable(res, (mSubInfoRecord.createIconBitmap(mContext)))); @@ -517,7 +517,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable }); TextView numberView = (TextView)dialogLayout.findViewById(R.id.number); - final String rawNumber = mSubInfoRecord.getNumber(); + final String rawNumber = getPhoneNumber(mSubInfoRecord); if (TextUtils.isEmpty(rawNumber)) { numberView.setText(res.getString(com.android.internal.R.string.unknownName)); } else { @@ -635,6 +635,14 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable } + // Returns the line1Number. Line1number should always be read from TelephonyManager since it can + // be overridden for display purposes. + private String getPhoneNumber(SubscriptionInfo info) { + final TelephonyManager tm = + (TelephonyManager) getActivity().getSystemService(Context.TELEPHONY_SERVICE); + return tm.getLine1NumberForSubscriber(info.getSubscriptionId()); + } + private void log(String s) { Log.d(TAG, s); }