From ad2114e99b545d3e8c5d8addedd418deb97f3210 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Wed, 6 Jul 2016 12:17:54 -0700 Subject: [PATCH] Use phone number as summary for 'About Phone'. Bug: 28419411 Change-Id: I3ac57a770bf4d7416459dadedf91c3d6cefbc6b4 --- .../android/settings/DeviceInfoSettings.java | 28 +++++++++++++++++-- .../settings/deviceinfo/SimStatus.java | 17 +++++------ 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java index dd8064fb45d..7befbc2150f 100644 --- a/src/com/android/settings/DeviceInfoSettings.java +++ b/src/com/android/settings/DeviceInfoSettings.java @@ -32,6 +32,8 @@ import android.provider.Settings; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceGroup; import android.telephony.CarrierConfigManager; +import android.telephony.SubscriptionInfo; +import android.telephony.SubscriptionManager; import android.text.TextUtils; import android.util.Log; import android.widget.Toast; @@ -377,17 +379,39 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In private final Context mContext; private final SummaryLoader mSummaryLoader; + private final SubscriptionManager mSubscriptionManager; + private final SubscriptionChangeListener mSubscriptionChangeListener; public SummaryProvider(Context context, SummaryLoader summaryLoader) { mContext = context; mSummaryLoader = summaryLoader; + mSubscriptionManager = SubscriptionManager.from(mContext); + mSubscriptionChangeListener = new SubscriptionChangeListener(); } @Override public void setListening(boolean listening) { if (listening) { - mSummaryLoader.setSummary(this, mContext.getString(R.string.about_summary, - Build.VERSION.RELEASE)); + updateSummary(); + mSubscriptionManager.addOnSubscriptionsChangedListener(mSubscriptionChangeListener); + } else { + mSubscriptionManager.removeOnSubscriptionsChangedListener( + mSubscriptionChangeListener); + } + } + + private void updateSummary() { + final String formattedPhoneNumbers = DeviceInfoUtils.getFormattedPhoneNumbers( + mContext, mSubscriptionManager.getActiveSubscriptionInfoList()); + mSummaryLoader.setSummary(SummaryProvider.this, formattedPhoneNumbers); + } + + private final class SubscriptionChangeListener + extends SubscriptionManager.OnSubscriptionsChangedListener { + + @Override + public void onSubscriptionsChanged() { + updateSummary(); } } } diff --git a/src/com/android/settings/deviceinfo/SimStatus.java b/src/com/android/settings/deviceinfo/SimStatus.java index ba14e132e85..45691312488 100644 --- a/src/com/android/settings/deviceinfo/SimStatus.java +++ b/src/com/android/settings/deviceinfo/SimStatus.java @@ -16,9 +16,6 @@ package com.android.settings.deviceinfo; -import static android.content.Context.CARRIER_CONFIG_SERVICE; -import static android.content.Context.TELEPHONY_SERVICE; - import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -32,7 +29,6 @@ import android.os.UserManager; import android.support.v7.preference.Preference; import android.telephony.CarrierConfigManager; import android.telephony.CellBroadcastMessage; -import android.telephony.PhoneNumberUtils; import android.telephony.PhoneStateListener; import android.telephony.ServiceState; import android.telephony.SignalStrength; @@ -58,9 +54,13 @@ import com.android.internal.telephony.PhoneFactory; import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.Utils; +import com.android.settingslib.DeviceInfoUtils; import java.util.List; +import static android.content.Context.CARRIER_CONFIG_SERVICE; +import static android.content.Context.TELEPHONY_SERVICE; + /** * Display the following information @@ -393,13 +393,10 @@ public class SimStatus extends SettingsPreferenceFragment { mShowICCID = carrierConfig.getBoolean( CarrierConfigManager.KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL); - String rawNumber = mTelephonyManager.getLine1Number(mSir.getSubscriptionId()); - String formattedNumber = null; - if (!TextUtils.isEmpty(rawNumber)) { - formattedNumber = PhoneNumberUtils.formatNumber(rawNumber); - } + // If formattedNumber is null or empty, it'll display as "Unknown". - setSummaryText(KEY_PHONE_NUMBER, formattedNumber); + setSummaryText(KEY_PHONE_NUMBER, + DeviceInfoUtils.getFormattedPhoneNumber(getContext(), mSir)); setSummaryText(KEY_IMEI, mPhone.getImei()); setSummaryText(KEY_IMEI_SV, mPhone.getDeviceSvn());